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 :
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 hi@ofox.ai 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: 12sGestion 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-6.1-sol",
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-6.1-sol",
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-6.1-sol",
messages=[...],
extra_body={
"extra_body": {
"provider": {
"fallback": ["anthropic/claude-sonnet-5.5", "google/gemini-3.8-flash"]
}
}
}
)Le paramètre extra_body= du SDK Python fusionne son contenu au niveau supérieur du corps de la requête ; il faut donc ajouter un niveau extra_body supplémentaire afin que provider se trouve dans extra_body.provider du corps de la requête. Plus de détails dans Repli automatique.