TokenLab

Guides essentiels

Limites de requêtes

Limites de requêtes

Les valeurs par défaut par minute sont User 1 000, Partner 10 000 et VIP 10 000 ; la configuration réelle peut varier. Pour les requêtes authentifiées, ces limites sont appliquées par clé API. Les endpoints de découverte publics tels que GET /v1/models ont des limites distinctes. Pour 429, utilisez X-RateLimit-Limit et Retry-After plutôt qu’une table copiée.

429 / Retry-After

{
  "error": {
    "message": "Rate limit exceeded. Please retry later.",
    "type": "rate_limit_exceeded",
    "code": "rate_limit_exceeded",
    "retryable": true,
    "retry_after": 8
  }
}
Retry-After: 8

Attendez les secondes indiquées par Retry-After ; à défaut, utilisez une attente exponentielle avec une variation aléatoire. L’exemple limite à quatre tentatives, désactive les reprises du SDK et conserve le modèle choisi.

import random
import time
from openai import RateLimitError

def chat_with_rate_limit_retry(client, model, messages, attempts=4):
    for attempt in range(attempts):
        try:
            return client.with_options(max_retries=0).chat.completions.create(
                model=model,
                messages=messages,
            )
        except RateLimitError as exc:
            if attempt == attempts - 1:
                raise
            header = exc.response.headers.get("Retry-After")
            wait = float(header) if header else min(30, 2 ** attempt + random.random())
            time.sleep(wait)

Limitez la concurrence, mettez les pics en file et ne mettez en cache que les résultats réutilisables sans risque. Ne réessayez pas les erreurs de validation, authentification, permissions ou solde. Un modèle plus rapide n’augmente pas la limite. Contactez support@tokenlab.sh avec votre compte, le volume prévu et l’usage pour un ajustement.

Sur cette page