Referência de Headers
O Floopy utiliza headers HTTP personalizados para controlar o comportamento do gateway por requisição. Envie esses headers junto com os headers padrão Authorization e Content-Type ao chamar o gateway.
Headers de Requisição
Headers de Cache
Controlam como o gateway faz cache de requisições e respostas.
| Header | Tipo | Descrição | Exemplo |
|---|---|---|---|
Floopy-Cache-Enabled | boolean | Ativa ou desativa o cache exato para esta requisição. | true |
Floopy-Cache-Seed | string | Isola entradas do exact cache por valor de seed. Os niveis semantic e advanced buscam por similaridade de embedding e nao sao afetados pelo seed. | deterministic-seed-abc |
Floopy-Cache-Bucket-Max-Size | integer | Número máximo de respostas em cache armazenadas por chave de cache. | 3 |
Floopy-Cache-Ignore-Keys | string | Lista separada por vírgula de chaves de mensagem a ignorar ao computar a chave de cache. | timestamp,request_id |
floopy-cache-advanced | boolean | Ativa o cache semântico avançado (baseado em Qdrant). Encontra requisições por significado em vez de conteúdo exato. | true |
cache-control | string | Header padrão HTTP cache-control. Usado para sobrescrever o TTL padrão. | max-age=3600 |
Headers de Prompt
Referenciam prompts gerenciados da biblioteca de prompts do Floopy.
| Header | Tipo | Descrição | Exemplo |
|---|---|---|---|
floopy-prompt-id | string (UUID) | O UUID de um prompt da biblioteca de prompts. O gateway o resolve e injeta no momento da requisição. | e51a2820-8ab5-4d6a-96a0-cc7bb4759371 |
floopy-prompt-version | integer | Fixa uma versão específica do prompt. Se omitido, o gateway usa a versão mais recente. | 2 |
Campo do Body: inputs
Ao usar um prompt gerenciado com floopy-prompt-id, você pode enviar um objeto inputs no body JSON da requisição para preencher as variáveis do template. O gateway substitui os placeholders {{key}} no template do prompt pelos valores correspondentes de inputs.
{ "model": "gpt-4o", "messages": [{"role": "user", "content": "placeholder"}], "inputs": { "language": "English", "topic": "quantum computing" }}Ordem de resolução: valores de inputs têm prioridade, depois os valores padrão do template na configuração do prompt, e por último o placeholder é mantido como está. O campo inputs é removido antes que a requisição chegue ao provedor LLM.
Consulte o guia de Gerenciamento de Prompts para exemplos completos.
Headers de Segurança
Ativam o firewall LLM para verificar prompts contra ataques de injeção e conteúdo inseguro.
| Header | Tipo | Descrição | Exemplo |
|---|---|---|---|
floopy-llm-security-enabled | boolean | Executa o LLM firewall para esta requisicao. O firewall envia o prompt a um modelo ajustado para seguranca (configurado por FIREWALL_MODEL) e bloqueia qualquer classificado como unsafe. Um cache de vereditos no Qdrant evita chamadas repetidas para prompts inseguros conhecidos. | true |
Headers de Tratamento de Tokens (Em Breve)
Controlam como o gateway lida com requisições que excedem a janela de contexto do modelo. Esta funcionalidade está planejada e ainda não está disponível.
| Header | Tipo | Descrição | Exemplo |
|---|---|---|---|
Floopy-Token-Limit-Exception-Handler | string | Estratégia a aplicar quando a requisição excede o limite de tokens do modelo. | truncate |
As três estratégias planejadas são:
truncate— Remove mensagens do início da conversa para caber no limite de tokens do modelo. A mensagem de sistema e as mensagens mais recentes são preservadas.middle-out— Mantém a primeira e a última mensagem da conversa e remove as mensagens do meio. Útil quando tanto o contexto inicial quanto a mensagem mais recente do usuário são importantes.fallback— Troca para um modelo com uma janela de contexto maior em vez de modificar as mensagens. O gateway seleciona um modelo apropriado do mesmo provedor.
Headers de Roteamento
Sobrescrevem o comportamento de roteamento padrão para uma única requisição.
| Header | Tipo | Descrição | Exemplo |
|---|---|---|---|
floopy-model-override | string | Sobrescreve o modelo sem alterar o body da requisição. | gpt-4o-mini |
floopy-routing-rule | string (UUID) | Sobrescreve a regra de roteamento aplicada a esta requisição. | a3f1b2c4-5678-9def-ghij-klmnopqrstuv |
floopy-ab-test | string (UUID) | ID do teste A/B. O gateway resolve a variante atribuída para esta requisição. | b7e2c3d4-1234-5678-abcd-ef0123456789 |
floopy-smart-select | string (UUID) | ID do Smart Selector. O gateway escolhe o melhor modelo com base na configuração do seletor. | c8f3d4e5-2345-6789-bcde-f01234567890 |
Headers de Rate Limit
Sobrescrevem a política de rate limit padrão para uma única requisição.
| Header | Tipo | Descrição | Exemplo |
|---|---|---|---|
floopy-ratelimit-policy | string | Política de rate limit personalizada para esta requisição. | 100;w=60;u=request;s=global |
O formato da política é <limit>;w=<window>;u=<unit>;s=<segment>:
limit— O número máximo de unidades permitidas dentro da janela.w(window) — Janela de tempo em segundos. A janela mínima é de 60 segundos.u(unit) — A unidade a ser contada:request(número de requisições) oucents(custo em centavos).s(segment) — Como segmentar o limite:global(compartilhado entre todos os usuários),user(por usuário final viafloopy-user-id) oucustom(por chave personalizada).
Exemplo: 100;w=60;u=request;s=global significa 100 requisições por 60 segundos, aplicado globalmente.
Escopo de Projeto
Segmenta requisições por projeto para rastreamento de custos e analytics por projeto.
| Header | Tipo | Descrição | Exemplo |
|---|---|---|---|
floopy-project-id | string (UUID) | Identificador do projeto. Marca a requisição com um projeto para alocação de custos e filtragem no dashboard. Se a chave de API está travada em um projeto, esse header é opcional. Um UUID divergente retorna 403. | a1b2c3d4-5678-9abc-def0-123456789abc |
Veja o guia de Projetos para a cadeia de fallback completa e modelo de ambientes.
Headers de Sessão e Propriedades
Anexam metadados de sessão e propriedades customizadas às requisições para rastreamento e analytics.
| Header | Tipo | Descrição | Exemplo |
|---|---|---|---|
floopy-user-id | string | Identificador do usuário final. Usado para rate limiting por usuário e analytics. | user-alice-001 |
floopy-session-id | string | Identificador de sessão. Agrupa requisições relacionadas. | sess-abc123 |
floopy-session-name | string | Nome legível da sessão para exibição no dashboard. | math-tutoring |
floopy-session-path | string | Caminho ou localização da sessão dentro da sua aplicação. | /dashboard/math |
floopy-property-* | string | Header de propriedade customizada. Qualquer sufixo após floopy-property- se torna a chave da propriedade. | floopy-property-usertier: premium |
Propriedades customizadas aparecem no dashboard de observabilidade e podem ser usadas para filtrar e agrupar requisições.
Headers de Resposta
O gateway adiciona esses headers a cada resposta. Eles fornecem metadados sobre como a requisição foi processada.
| Header | Descrição | Exemplo |
|---|---|---|
Floopy-Provider | O provedor que processou a requisição. | OpenAI |
Floopy-Model | O modelo que processou a requisição. | gpt-4o |
Floopy-Fallback-Used | Se um provedor de fallback foi utilizado porque o primário estava indisponível. | true |
Floopy-Reasoning-Tokens | Número de tokens de raciocínio utilizados (modelos DeepSeek). | 150 |
Floopy-Queue-Time | Tempo que a requisição ficou na fila do provedor, em segundos (Groq). | 0.5 |
Floopy-Prompt-Time | Tempo gasto processando o prompt, em segundos (Groq). | 0.2 |
Floopy-Completion-Time | Tempo gasto gerando a completion, em segundos (Groq). | 1.3 |