Docs · Referência
Limites e cotas
Dois tipos diferentes de limite se aplicam à sua conta, e eles são recusados de formas diferentes.
| Limites de requisições | Cotas de tokens | |
|---|---|---|
| O que limita | quantas chamadas por minuto | quantos tokens por dia, semana e mês |
| Definido por | a instalação | o operador, para cada grupo de contas |
| Recusado com | 429 | 403 |
| Onde ler | os headers X-RateLimit-* | GET /api/v1/usage |
Limites de requisições#
Um limite é um número de requisições por minuto, contado por conta, não por chave nem por IP. A sua chave, o seu token de sessão e o app web dividem o mesmo. A janela é fixa: ela começa na sua primeira requisição e dura 60 segundos.
| Endpoints | Padrão por minuto |
|---|---|
todo endpoint /v1: modelos, chat completions, responses, messages, contagem de tokens, áudio | 20 |
POST /api/v1/chat | 60 |
POST /api/v1/agent/chat | 20 |
POST /api/v1/agent/run | 5 |
POST /api/v1/embeddings | 30 |
GET /api/v1/profiles, POST /api/v1/profiles/refresh, GET /api/v1/version | 60 |
DELETE /api/v1/conversations/{id}/permanent | 20 |
POST /api/v1/auth/login | 10, por endereço |
| escrever um documento, buscar e reindexar coleções | 30, 60 e 6 |
| todo outro endpoint descrito neste guia | 300 |
Um contador, vários tetos#
Os limites desta tabela que têm número próprio (todos menos a linha do login, a linha das coleções e a última linha) dividem um contador por conta, e cada endpoint compara essa contagem compartilhada com o seu próprio teto. Alguns endpoints que este guia não descreve também têm um número próprio e usam o mesmo contador. Então o teto mais baixo em jogo vence: depois de 20 chamadas a GET /api/v1/profiles dentro de um minuto, POST /api/v1/agent/chat responde 429 mesmo que você nunca o tenha chamado, enquanto POST /api/v1/chat, com o teto de 60, continua funcionando.
Planeje com isso em mente:
- Não faça polling de
GET /v1/modelsnem deGET /api/v1/profiles. Leia uma vez e guarde em cache. - Trate 20 por minuto como o orçamento de tudo o que você faz com
/v1, não de cada endpoint. - Espere que um assistente de código use várias requisições por turno: a mensagem, a contagem de tokens e as novas tentativas contam todas.
- O limite de 300 por minuto dos outros endpoints é um contador separado, mas as chamadas de chat nativo, do agente e de embeddings também contam nele. Os endpoints
/v1e as chamadas de perfis e de versão não contam.
Os headers#
Toda resposta de um endpoint limitado traz:
| Header | Significado |
|---|---|
X-RateLimit-Limit | o teto que vale para este endpoint |
X-RateLimit-Remaining | quantas requisições sobram na janela |
Retry-After | num 429, os segundos a esperar |
X-RateLimit-Reset | num 429, quando a janela termina, como tempo Unix |
As requisições que falham na autenticação não trazem nenhum deles.
A resposta 429#
Nos endpoints com número próprio, o corpo é {"message": "Too Many Attempts."}. Em /api/v1 é sempre JSON. Em /v1 é JSON quando você envia Accept: application/json, o que todo SDK oficial faz, e uma página HTML no caso contrário. No limite de 300 por minuto, é:
{ "codigo": "limite_de_requisicoes", "detail": "…" }A frase em detail é localizada, então use codigo e Retry-After.
Cotas de tokens#
O operador define um teto diário, um semanal e um mensal de tokens para cada grupo de contas, e um teto de -1 quer dizer nenhum. Os tokens são os das suas chamadas bem-sucedidas, de entrada e de saída, em todas as superfícies e todos os modelos, inclusive os do próprio operador. As janelas são em UTC: o dia zera à meia-noite, o mês no primeiro dia, e a semana toda quarta-feira às 14:00.
Leia a sua com GET /api/v1/usage. Quando você atinge um teto, as chamadas são recusadas com 403. É 403 e não 429 de propósito: tentar de novo não ajuda até a janela zerar.
Como a recusa aparece depende da superfície:
| Superfície | Recusa |
|---|---|
/v1/chat/completions, /v1/responses | 403, code: permission_denied |
/v1/messages | 403, error.type: permission_error |
/api/v1/agent/chat | 403 com detail |
/api/v1/chat | um evento error com codigo: limite_perfil |
A mensagem diz qual teto foi, mas o texto não é estável, então não o interprete por código.
Outros limites do seu grupo#
Além dos tokens, o grupo pode restringir:
- os modelos que você pode usar.
GET /api/auth/meos mostra comoallowed_models, ondenullquer dizer todos; - servidores remotos: alguns grupos só podem usar os servidores locais do operador;
- anexos por mensagem, no chat nativo.
Cada um deles é recusado do mesmo jeito que uma cota, com 403.
Limites de tamanho#
São padrões. Os dois primeiros são fixados pela API; o operador pode mudar os outros.
| O quê | Limite |
|---|---|
mensagens numa requisição /v1 | 200 |
| caracteres numa mensagem de texto. Uma mensagem feita de blocos é limitada a 200000 blocos | 200000 |
tamanho de uma mensagem em POST /api/v1/chat. Em POST /api/v1/agent/chat é fixo | 32000 caracteres |
| itens numa requisição de embeddings | 64 |
| caracteres por item de embeddings | 8000 |