Limites de débit
Les limites de débit d’OfoxAI garantissent la stabilité de la plateforme. Comprenez les règles de limitation et optimisez votre stratégie d’appels.
Limites par défaut
OfoxAI fonctionne en paiement à l’usage, tous les utilisateurs partagent une stratégie de débit unifiée :
| Élément | Quota |
|---|---|
| RPM (requêtes/minute) | 100 (agrégé par équipe) |
| TPM (tokens/minute) | Sans limite |
Agrégation au niveau de l’équipe : le RPM est calculé cumulativement pour toute l’organisation (équipe). Plusieurs clés API d’une même équipe partagent un quota unique, ce qui empêche à la source que l’empilement de plusieurs clés ne dépasse les limites des fournisseurs en amont. Si vous avez besoin d’un quota RPM plus élevé, contactez [email protected] pour demander un ajustement.
En-têtes de limite de débit (Rate Limit Headers)
Chaque réponse API inclut les informations de limite de débit :
x-ratelimit-limit-requests: 100
x-ratelimit-remaining-requests: 95
x-ratelimit-reset-requests: 12s| Header | Description |
|---|---|
x-ratelimit-limit-requests | Valeur de la limite RPM |
x-ratelimit-remaining-requests | Requêtes restantes |
x-ratelimit-reset-requests | Temps de réinitialisation de la limite |
Gestion de l’erreur 429
Lorsque la limite de débit est atteinte, l’API renvoie 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 atteinte, attente de {retry_after}s...")
time.sleep(retry_after)Stratégies d’optimisation
1. Utilisez le Prompt Caching
Pour les system prompts répétés, activer le cache peut réduire la consommation de tokens :
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[
# Le system prompt long est automatiquement mis en cache
{"role": "system", "content": "Vous êtes un professionnel de...(texte long omis)"},
{"role": "user", "content": "Question de l'utilisateur"}
]
)Plus de détails dans Cache de prompts.
2. Traitement par lots
Combinez plusieurs requêtes courtes en une seule :
# Non recommandé : envoyer une requête indépendante pour chaque question
for question in questions:
client.chat.completions.create(messages=[{"role": "user", "content": question}])
# Recommandé : combiner en une seule requête
combined = "\n".join(f"{i+1}. {q}" for i, q in enumerate(questions))
client.chat.completions.create(
messages=[{"role": "user", "content": f"Répondez aux questions suivantes dans l'ordre :\n{combined}"}]
)3. Choisissez le bon modèle
Pour les modèles recommandés, consultez le Marché des modèles .
4. Contrôlez max_tokens
Définissez une limite raisonnable de max_tokens pour éviter une consommation de tokens inutile :
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[{"role": "user", "content": "Résumez en une phrase"}],
max_tokens=100 # Limiter la longueur de sortie
)5. Utilisez le repli de modèles
Lorsque le modèle principal atteint la limite, basculez automatiquement vers un modèle alternatif :
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[...],
extra_body={
"provider": {
"fallback": ["anthropic/claude-sonnet-4.6", "google/gemini-3.1-flash-lite-preview"]
}
}
)Plus de détails dans Repli automatique.