Calculadora de limites 429 & concorrência de workers para LLM
Calcule o RPM, o Input TPM (ITPM) e o Output TPM (OTPM) necessários em 60 modelos ativos de 2026, identifique gargalos de cota antes do lançamento e copie configurações de backoff com jitter completo.
Utilização de cota e diagnóstico de gargalos
// 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');
}
Como surgem os gargalos de limite 429 em LLM
Gateways corporativos de API de LLM aplicam três tetos simultâneos de token bucket: RPM (requisições por minuto), ITPM (tokens de entrada por minuto, incluindo blocos de RAG) e OTPM (tokens de saída por minuto). Ultrapassar qualquer um deles retorna HTTP 429 mesmo que os outros dois estejam abaixo de 20% de uso. Combine o dimensionamento de cotas com o Gasto de API em 30 dias e verifique os prazos de EOL de modelos no LLMEOL.
Salvaguardas de fila & retry em produção
- Limite a concorrência ativa de workers: Dimensione pools de workers usando a Lei de Little (
Concurrency = Safe_RPM × Avg_Latency_Sec ÷ 60) com margem de segurança de 15%. - Respeite primeiro os cabeçalhos
Retry-After: Recorra ao backoff exponencial limitado com jitter aleatório completo para evitar tempestades sincronizadas de novas tentativas. - Desvie jobs não interativos para a Batch API: Mover avaliações noturnas e extração documental para filas assíncronas de 24h contorna limites de RPM em tempo real e reduz em 50% o custo de tokens de LLM.
Perguntas frequentes
Por que recebo erros HTTP 429 quando meu volume de requisições está muito abaixo do limite de RPM?
Prompts longos de RAG e históricos extensos de agentes esgotam os buckets de Input TPM (ITPM) ou Output TPM (OTPM) muito antes de atingir o teto de requisições por minuto (RPM).
O cache de prompt aumenta meu limite de Input TPM?
O cache de prompt reduz o faturamento de tokens de entrada em 90% a 95%, e vários provedores descontam leituras em cache da cota de ITPM—simule a economia exata na Calculadora de custos de LLM.
Por que usar backoff exponencial com jitter completo em vez de intervalos fixos de retry?
Intervalos fixos fazem workers bloqueados no mesmo segundo repetirem juntos em ondas sincronizadas; o jitter aleatório completo distribui as tentativas de forma uniforme nos SDKs em TypeScript e Python.