Limites de taxa
Os limites de taxa do OfoxAI garantem a estabilidade da plataforma. Entenda as regras de limitação e otimize sua estratégia de chamadas.
Limites padrão
O OfoxAI cobra por uso. Todos os usuários compartilham limites de taxa unificados:
| Limite | Cota |
|---|---|
| RPM (requisições/minuto) | 200 |
| TPM (tokens/minuto) | Ilimitado |
Para uma cota RPM mais alta, entre em contato com o suporte OfoxAI .
Rate Limit Header
Cada resposta da API inclui informações sobre o limite de taxa:
x-ratelimit-limit-requests: 200
x-ratelimit-remaining-requests: 195
x-ratelimit-reset-requests: 12s| Header | Descrição |
|---|---|
x-ratelimit-limit-requests | Limite de RPM |
x-ratelimit-remaining-requests | Requisições restantes |
x-ratelimit-reset-requests | Tempo para reset do limite |
Tratamento do erro 429
Quando o limite de taxa é atingido, a API retorna 429 Too Many Requests:
from openai import RateLimitError
import time
try:
response = client.chat.completions.create(...)
except RateLimitError as e:
retry_after = float(e.response.headers.get("retry-after", 1))
print(f"Limite de taxa atingido, aguardando {retry_after}s...")
time.sleep(retry_after)Estratégias de otimização
1. Usar Prompt Caching
Para system prompts repetidos, o cache pode reduzir o consumo de tokens:
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[
# System prompts longos são automaticamente cacheados
{"role": "system", "content": "Você é um profissional... (texto longo omitido)"},
{"role": "user", "content": "Pergunta do usuário"}
]
)Veja mais em Cache de prompt.
2. Processamento em lote
Combine múltiplas requisições curtas em uma só:
# ❌ Não recomendado: Requisição separada para cada pergunta
for question in questions:
client.chat.completions.create(messages=[{"role": "user", "content": question}])
# ✅ Recomendado: Combinar em uma única requisição
combined = "\n".join(f"{i+1}. {q}" for i, q in enumerate(questions))
client.chat.completions.create(
messages=[{"role": "user", "content": f"Responda às seguintes perguntas em ordem:\n{combined}"}]
)3. Escolher o modelo adequado
| Cenário | Modelo recomendado | Motivo |
|---|---|---|
| Diálogos simples | openai/gpt-4o-mini | Rápido, econômico em tokens |
| Raciocínio complexo | openai/gpt-4o | Saída de alta qualidade |
| Geração de código | anthropic/claude-sonnet-4.5 | Forte capacidade de código |
| Textos longos | google/gemini-3-flash-preview | Grande janela de contexto, bom custo-benefício |
4. Controlar max_tokens
Defina um limite max_tokens adequado para evitar consumo desnecessário de tokens:
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[{"role": "user", "content": "Resuma em uma frase"}],
max_tokens=100 # Limitar tamanho da saída
)5. Usar fallback de modelo
Quando o modelo principal atinge o limite, trocar automaticamente para alternativas:
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[...],
extra_body={
"provider": {
"fallback": ["anthropic/claude-sonnet-4.5", "google/gemini-3-flash-preview"]
}
}
)Veja mais em Failover.