Calculadora de límites 429 y concurrencia para LLM
Calcula los RPM, Input TPM (ITPM) y Output TPM (OTPM) necesarios en 60 modelos activos de 2026, anticipa cuellos de botella de cuota y copia configuraciones de backoff con jitter completo.
Uso de cuota y diagnóstico de cuellos de botella
// Full-jitter exponential backoff + Retry-After guard (google/gemini-4-hydrogen)
export async function callWithRateLimitGuard<T>(
fn: () => Promise<Response>,
maxRetries = 5,
baseDelayMs = 500,
maxDelayMs = 30_000
): Promise<T> {
for (let attempt = 0; attempt <= maxRetries; attempt++) {
const res = await fn();
if (res.status !== 429 && res.status < 500) {
return (await res.json()) as T;
}
if (attempt === maxRetries) {
throw new Error(`LLM quota exhausted (HTTP ${res.status}) after ${maxRetries} retries`);
}
const retryAfterSec = Number(res.headers.get('retry-after'));
const ceiling = Math.min(maxDelayMs, baseDelayMs * 2 ** attempt);
const sleepMs = Number.isFinite(retryAfterSec) && retryAfterSec > 0
? retryAfterSec * 1000
: Math.floor(Math.random() * ceiling);
await new Promise((r) => setTimeout(r, sleepMs));
}
throw new Error('Unreachable');
}
Por qué ocurren los cuellos de botella 429 en LLM
Las pasarelas empresariales de API para LLM aplican tres techos simultáneos de cubeta de tokens: RPM (solicitudes por minuto), ITPM (tokens de entrada por minuto, incluidos fragmentos RAG) y OTPM (tokens de salida por minuto). Superar cualquiera de las tres cubetas devuelve HTTP 429 aunque las otras dos estén por debajo del 20%. Combina el cálculo de cuota con el Gasto de API a 30 días y revisa las fechas de retiro en LLMEOL.
Salvaguardas de colas y reintentos en producción
- Limitar la concurrencia en vuelo: Acota los grupos de workers aplicando la Ley de Little (
Concurrency = Safe_RPM × Avg_Latency_Sec ÷ 60) con un margen de seguridad del 15%. - Respetar primero los encabezados
Retry-After: Aplica backoff exponencial acotado con jitter aleatorio completo para evitar avalanchas sincronizadas de reintentos. - Derivar cargas diferibles a Batch API: Mover evaluaciones nocturnas y extracción documental a colas asíncronas de 24 horas evita los límites RPM en tiempo real y reduce un 50% el costo de tokens LLM.
Preguntas frecuentes
¿Por qué recibo errores HTTP 429 si mi volumen de llamadas está muy por debajo del límite RPM?
Los prompts extensos de RAG y los historiales multiturno agotan las cubetas de Input TPM (ITPM) u Output TPM (OTPM) mucho antes de alcanzar el techo de solicitudes por minuto (RPM).
¿La caché de prompts amplía mi límite efectivo de Input TPM?
La caché de prompts reduce la facturación de entrada entre un 90% y un 95%, y varios proveedores excluyen los prefijos en caché del cupo ITPM; simula el ahorro exacto en la Calculadora de costos LLM.
¿Por qué usar backoff exponencial con jitter completo en lugar de pausas fijas?
Los intervalos fijos provocan que los workers limitados en el mismo segundo reintenten en oleadas sincronizadas; el jitter aleatorio distribuye los reintentos de forma uniforme en clientes TypeScript y Python.