Pular para o conteúdo

C# / .NET

Visao Geral

O Floopy e um gateway sem SDK. O pacote NuGet Betalgo.OpenAI suporta dominios base personalizados, entao voce pode rotear todas as requisicoes pelo Floopy sem dependencias extras. Voce ganha cache, rate limiting, fallbacks e observabilidade de graca.

Instalacao

Terminal window
dotnet add package Betalgo.OpenAI

Configuracao

using OpenAI;
using OpenAI.Managers;
using OpenAI.ObjectModels;
using OpenAI.ObjectModels.RequestModels;
var openAiService = new OpenAIService(new OpenAIOptions
{
BaseDomain = "https://api.floopy.ai/v1",
ApiKey = Environment.GetEnvironmentVariable("FLOOPY_API_KEY") // starts with fp_
});

Defina FLOOPY_API_KEY no seu ambiente. Voce pode criar uma no dashboard.

Requisicao Basica

var completionResult = await openAiService.ChatCompletion.CreateCompletion(
new ChatCompletionCreateRequest
{
Messages = new List<ChatMessage>
{
ChatMessage.FromUser("Explain quantum computing in one sentence.")
},
Model = Models.Gpt_4o,
}
);
if (completionResult.Successful)
{
Console.WriteLine(completionResult.Choices.First().Message.Content);
}

Streaming

var completionResult = openAiService.ChatCompletion.CreateCompletionAsStream(
new ChatCompletionCreateRequest
{
Messages = new List<ChatMessage>
{
ChatMessage.FromUser("Write a short poem.")
},
Model = Models.Gpt_4o,
}
);
await foreach (var result in completionResult)
{
if (result.Successful)
{
Console.Write(result.Choices.First().Message.Content);
}
}

Headers Personalizados

Passe headers especificos do Floopy usando um HttpClient com headers de requisicao padrao:

var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Add("Floopy-Cache", "semantic");
httpClient.DefaultRequestHeaders.Add("floopy-property-environment", "production");
httpClient.DefaultRequestHeaders.Add("floopy-fallback", "claude-sonnet-4-20250514");
var openAiService = new OpenAIService(new OpenAIOptions
{
BaseDomain = "https://api.floopy.ai/v1",
ApiKey = Environment.GetEnvironmentVariable("FLOOPY_API_KEY"),
}, httpClient);
HeaderDescricao
Floopy-CacheEstrategia de cache: semantic ou exact
floopy-property-*Anexe metadados personalizados para filtragem no dashboard
floopy-fallbackModelo de fallback se o provedor principal falhar
floopy-session-idAgrupe requisicoes relacionadas em uma sessao
floopy-user-idAssocie requisicoes a um usuario final

Consulte a Referencia de Headers para a lista completa.