Límites de tasa
Los límites de tasa de OfoxAI garantizan la estabilidad de la plataforma. Conozca las reglas de limitación y optimice su estrategia de llamadas.
Límites predeterminados
OfoxAI funciona con pago por uso, todos los usuarios comparten una estrategia de tasa unificada:
| Elemento | Cuota |
|---|---|
| RPM (solicitudes/minuto) | 200 |
| TPM (tokens/minuto) | Sin límite |
Si necesita cuotas RPM más altas, contacte al soporte de OfoxAI para solicitar un ajuste.
Rate Limit Header
Cada respuesta API incluye información sobre los límites de tasa:
x-ratelimit-limit-requests: 200
x-ratelimit-remaining-requests: 195
x-ratelimit-reset-requests: 12s| Header | Descripción |
|---|---|
x-ratelimit-limit-requests | Valor del límite RPM |
x-ratelimit-remaining-requests | Solicitudes restantes |
x-ratelimit-reset-requests | Tiempo de reinicio del límite |
Manejo del error 429
Cuando se alcanza el límite de tasa, la API devuelve 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"Límite alcanzado, esperando {retry_after}s...")
time.sleep(retry_after)Estrategias de optimización
1. Use Prompt Caching
Para system prompts repetidos, habilitar la caché puede reducir el consumo de tokens:
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[
# El system prompt largo se almacena en caché automáticamente
{"role": "system", "content": "Eres un profesional de...(texto largo omitido)"},
{"role": "user", "content": "Pregunta del usuario"}
]
)Más detalles en Caché de prompts.
2. Procesamiento por lotes
Combine múltiples solicitudes cortas en una sola:
# No recomendado: enviar una solicitud independiente por cada pregunta
for question in questions:
client.chat.completions.create(messages=[{"role": "user", "content": question}])
# Recomendado: combinar en una sola solicitud
combined = "\n".join(f"{i+1}. {q}" for i, q in enumerate(questions))
client.chat.completions.create(
messages=[{"role": "user", "content": f"Responda las siguientes preguntas en orden:\n{combined}"}]
)3. Elija el modelo adecuado
| Escenario | Modelo recomendado | Razón |
|---|---|---|
| Conversación simple | openai/gpt-4o-mini | Rápido, ahorra tokens |
| Razonamiento complejo | openai/gpt-4o | Salida de alta calidad |
| Generación de código | anthropic/claude-sonnet-4.5 | Fuerte capacidad de código |
| Procesamiento de texto largo | google/gemini-3-flash-preview | Gran contexto, buena relación calidad-precio |
4. Controle max_tokens
Establezca un límite razonable de max_tokens para evitar consumo innecesario de tokens:
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[{"role": "user", "content": "Resume en una frase"}],
max_tokens=100 # Limitar longitud de salida
)5. Use respaldo de modelos
Cuando el modelo principal alcanza el límite, cambie automáticamente a un modelo alternativo:
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[...],
extra_body={
"provider": {
"fallback": ["anthropic/claude-sonnet-4.5", "google/gemini-3-flash-preview"]
}
}
)Más detalles en Respaldo automático.