Rate limits (limites de débit)

IA / LLM 🟡 Mid

Définition

Quotas par organisation et par modèle : requêtes par minute (RPM), tokens d'entrée par minute (ITPM) et tokens de sortie par minute (OTPM), par palier d'usage. Dépassement = HTTP 429 avec en-tête retry-after et en-têtes anthropic-ratelimit-*-remaining. Chez Anthropic, les tokens lus depuis le cache ne comptent pas dans l'ITPM : le caching augmente le débit utile.

Analogie

Un péâge : tant de voitures par minute, et un panneau qui indique quand la file se rouvre.

Exemple de code

async function callWithBackoff<T>(fn: () => Promise<T>, tries = 5): Promise<T> {
  for (let i = 0; ; i++) {
    try { return await fn(); }
    catch (e) {
      if (!(e instanceof Anthropic.RateLimitError) || i >= tries) throw e;
      const ra = Number(e.headers?.['retry-after'] ?? 0);
      const wait = ra > 0 ? ra * 1000 : 1000 * 2 ** i + Math.random() * 500;
      console.warn(`429, attente ${wait} ms`, e.headers?.['anthropic-ratelimit-tokens-remaining']);
      await new Promise(r => setTimeout(r, wait));
    }
  }
}
// Le SDK réessaie déjà 2 fois par défaut (maxRetries) : n'ajouter ceci qu'au-delà.

Cas d'usage

Dimensionner un pipeline de masse ; choisir Batch API plutôt que de marteler l'API temps réel.

Anti-pattern

Réessayer immédiatement en boucle sur un 429 : on aggrave la saturation et on brûle le quota.
#ia#api#production

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre