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) | 200 |
| TPM (tokens/minute) | Sans limite |
Si vous avez besoin de quotas RPM plus élevés, contactez le support OfoxAI 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: 200
x-ratelimit-remaining-requests: 195
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
| Scénario | Modèle recommandé | Raison |
|---|---|---|
| Conversation simple | openai/gpt-4o-mini | Rapide, économise les tokens |
| Raisonnement complexe | openai/gpt-4o | Sortie de haute qualité |
| Génération de code | anthropic/claude-sonnet-4.5 | Forte capacité de code |
| Traitement de texte long | google/gemini-3-flash-preview | Grand contexte, bon rapport qualité-prix |
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.5", "google/gemini-3-flash-preview"]
}
}
)Plus de détails dans Repli automatique.