Rate limits (limites de débit)
IA / LLM 🟡 MidDé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.
Termes liés
Fiche mise à jour le 2026-09-27