Pular para o conteúdo principal
Casos de uso
  • Impedir que modelos lentos bloqueiem indefinidamente solicitações voltadas ao usuário.
  • Definir limites diferentes para cargas de trabalho interativas (curtas) e em lote (longas).
  • Acionar a lógica de fallback quando um provedor excede um tempo de espera aceitável.
  • Garantir SLAs de tempo de resposta em recursos sensíveis à latência.

Início rápido

Defina a duração máxima da solicitação para evitar solicitações travadas.

Configuração

O timeout se aplica a:
  • Tempo de geração do modelo em chamadas sem streaming. A chamada inteira precisa terminar dentro de call_timeout.
  • Tempo até o primeiro token em chamadas com streaming. Consulte Timeout com streaming.
  • Cada tentativa de retry e de fallback. Cada tentativa recebe o próprio call_timeout, exceto na Responses API com streaming, em que as tentativas compartilham o prazo da solicitação.
call_timeout limita apenas a chamada ao modelo. Ele não limita Guardrails nem Evaluators: cada referência de Guardrail na solicitação tem o próprio timeout, com padrão igual ao tempo limite do Evaluator ou, se ele não tiver um, 60 segundos, e configurável até 10 minutos. Consulte Timeout de Guardrail.

Erro de timeout

Quando call_timeout é atingido, o gateway cancela a tentativa e responde com HTTP 408:
408 faz parte dos códigos padrão de retry e dos códigos padrão de fallback, então quem faz a chamada só recebe esse erro depois que os retries e fallbacks se esgotam.

Tratamento de erros

Boas práticas

Escolha do timeout:
  • Defina com base nos requisitos de experiência do usuário.
  • Considere a complexidade do modelo e o tamanho do prompt.
  • Leve em conta a latência da rede (adicione uma margem de 2 a 5 s).
  • Teste com prompts e dados realistas.
Timeouts específicos por ambiente:
Timeouts progressivos:

Integração com fallbacks

Os timeouts funcionam perfeitamente com fallbacks:
Tempo total possível, em chat completions e chamadas sem streaming: timeout × (1 + retry_count) × (1 + fallback_count)
  • Modelo principal mais 2 fallbacks com timeout de 15 s e os 2 retries padrão: 15 s × 3 tentativas × 3 modelos, até 135 s mais os intervalos de backoff entre retries.
  • A solicitação inteira também é limitada por um prazo interno: 12 minutos para solicitações sem streaming ou que executam um Agent, e 30 minutos para as demais solicitações de modelo com streaming. Com timeout omitido, o padrão de 12 minutos já é igual ao prazo sem streaming.

Solução de problemas

Timeouts frequentes
  • Aumente o valor do timeout.
  • Use modelos mais rápidos (gpt-5.4-mini em vez de gpt-5.6-sol).
  • Reduza a complexidade/o tamanho do prompt.
  • Verifique o status do provedor para identificar lentidão.
Problemas de experiência do usuário
  • Defina o timeout com base nas expectativas do usuário.
  • Exiba estados de carregamento para operações mais longas.
  • Implemente aprimoramento progressivo.
  • Considere o processamento assíncrono para tarefas longas.
Otimização de desempenho

Padrões avançados

Ajuste dinâmico do timeout

Timeout com streaming

Com stream: true, call_timeout limita a espera pelo primeiro token, não a duração total do stream. O cronômetro para quando o primeiro chunk chega, então um stream que continua produzindo tokens pode durar mais que call_timeout. Depois do primeiro token, o gateway cancela o stream somente quando o provedor fica em silêncio por mais tempo que o timeout de inatividade do stream, que é de 12 minutos. Se o timeout for atingido antes do primeiro token, /v3/router/chat/completions retorna HTTP 408 com o corpo timeout_error de Erro de timeout. Em /v3/router/responses, um stream já aberto termina com um evento response.failed cujo error.code é timeout_error. Na Responses API com streaming, as tentativas compartilham o prazo geral da solicitação, então o orçamento até o primeiro token de um retry é limitado ao orçamento restante da solicitação dividido pelas tentativas restantes.

Padrão circuit breaker

Limitações

  • Timeout fixo: call_timeout não se adapta ao tamanho do prompt nem ao modelo.
  • Multiplicação por fallback: cada tentativa de fallback recebe o mesmo call_timeout, então a latência no pior caso se multiplica pelo número de tentativas.
  • Variações entre provedores: provedores diferentes têm tempos de resposta de referência diferentes.
  • Streaming: call_timeout limita apenas o primeiro token; o timeout de inatividade do stream limita o restante.

Monitoramento

Principais métricas a acompanhar:
  • Taxa de timeout: % de solicitações que atingem o timeout.
  • Tempo médio de resposta: desempenho de referência.
  • Percentil 95: para definir timeouts ideais.
  • Impacto do timeout: degradação da experiência do usuário.
  • Desempenho do modelo: tempos de resposta por modelo.