Skip to main content
Suas próprias chaves de provedor não têm limite de gastos. As Managed Keys gastam um saldo pré-pago, portanto, podem se esgotar. Dois cabeçalhos de resposta informam o que você tem restante. GET /v1/limits informa o panorama completo em uma única chamada.

Suas próprias chaves não têm limite de gastos

Não definimos cota de requisições nem limite mensal. Você não mantém saldo para ser debitado. Consulte preços e faturamento. Um limite se aplica. Sua organização executa um número fixo de flex races por vez. Ultrapassado esse número, executamos a requisição na camada padrão. Você perde o desconto, não a resposta. O relatório chama esse número de own_keys.flex_race_slots.

O que as Managed Keys podem esgotar

Uma revisão de risco pode pausar requisições gerenciadas além desses quatro. Ela retorna account_under_review. Suas rotas de chave própria continuam funcionando. Mais quatro limites cobrem todas as organizações. Três contam requisições por minuto de uma organização, de uma chave e de um endereço IP. O quarto conta tentativas de autenticação falhas de um endereço IP. Também recusamos um corpo de requisição com mais de 50.000.000 bytes como request_too_large. O relatório nomeia cada limite por minuto com sua janela e seu escopo. Ele omite o número, porque a Cloudflare conta cada um em cada local onde opera e um único número não seria um orçamento contra o qual você poderia planejar. Em vez disso, aguarde pelos segundos em Retry-After.

Dois cabeçalhos de resposta informam seus gastos

Uma resposta de chaves próprias os carrega assim que suas rotas são resolvidas, e uma resposta gerenciada os carrega a partir da retenção de saldo. Três respostas não possuem nenhum dos cabeçalhos: uma que recusamos anteriormente, o catálogo de modelos e uma requisição gerenciada cujo saldo não pudemos ler. Omitimos os cabeçalhos em vez de tentar adivinhar. Lemos ambos ao admitir esta requisição. O número cobre o que você tinha restante antes que esta requisição liquidasse seu próprio custo. Um número negativo significa que recusamos toda requisição gerenciada. Adicionar dinheiro corrige um saldo negativo. Um saldo diário negativo se recupera na próxima meia-noite UTC ou com um limite elevado, nunca com uma recarga. Leia esses cabeçalhos no tráfego que você já envia. Consultar o endpoint antes de cada requisição custa uma ida e volta e não informa mais do que o cabeçalho já fez.

O endpoint de limites

GET /v1/limits aceita sua chave FlexInference. Ele informa os limites sob os quais sua organização opera. Ele lê os registros que admitem suas requisições, então nunca reivindica espaço que recusaríamos. Nunca armazenamos a resposta em cache.
Cada campo monetário é um inteiro micro-USD. Um USD equivale a 1.000.000 deles. Os últimos três campos explicam por que seu número de concorrência e seu limite diário são lidos como são. Uma organização isenta não tem limite para explicar, então todos os três são lidos como null. Um saldo pausado informa a pausa em vez de um número. Nenhuma figura positiva pode então ser lida como permissão para enviar. Esses números são válidos em as_of e não prometem nada sobre sua próxima requisição. Outra requisição os move, assim como uma liquidação, uma recarga ou um reembolso. Uma chave ausente ou incorreta retorna 401 com invalid_api_key. Quando não conseguimos ler um desses registros, o endpoint retorna 503 com limits_unavailable. Ele recusa em vez de entregar um valor em cache, o que poderia reivindicar espaço que sua próxima requisição não obteria. As requisições continuam funcionando de qualquer forma.

Custo dentro de um stream

Uma resposta que você não transmitiu (stream) informa seu custo duas vezes, no cabeçalho x-flexinference-cost e no bloco usage.cost. Uma resposta transmitida não pode usar o cabeçalho, porque enviamos os cabeçalhos antes que a resposta exista e não sabemos o custo naquele momento. Envie include_cost: true para mover o custo para dentro do stream.
O custo então vai para o frame de uso que o endpoint já envia. Um bloco usage.routing fica ao lado e nomeia a rota que executou a requisição.
A chave permanece desligada por padrão. Um stream para o qual você não solicitou isso corresponde ao que o provedor enviou, byte por byte. /v1/chat/completions torna o próprio frame de uso opt-in na OpenAI. Envie "stream_options": {"include_usage": true} também. Sem isso, o custo não tem um frame para ser inserido. Uma requisição gerenciada informa o que o provedor nos cobrou. Uma requisição de chaves próprias informa o preço de tabela do provedor na camada que a executou. Uma requisição que não podemos precificar não informa cost algum. Leia um bloco ausente como nada a relatar, não como zero. Dois cabeçalhos de roteamento vêm em cada resposta de qualquer forma. Eles são x-flexinference-served-provider e x-flexinference-routing-reason. Um chamador de streaming que ignora include_cost ainda vê qual rota executou a requisição e por quê. Consulte lendo o resultado. include_cost nunca chega ao provedor. Nós o removemos do corpo antes de encaminhar a requisição.