Errore timeout: cosa fare quando gemini-2.5-flash fallisce

Un timeout significa che il client ha rinunciato prima dell'arrivo della risposta. Le richieste LLM in streaming sono le più colpite, perché il modello pensa prima del primo token e quella fase non produce alcun byte.

Un timeout non è un codice di stato HTTP, ma un limite di attesa lato client. La richiesta di solito ha raggiunto il gateway ed è stata inoltrata all’upstream, ma il modello non ha prodotto un risultato entro il tempo impostato. Contesto lungo, output lungo e chiamate senza streaming sono i tre fattori più comuni.

gemini-2.5-flash è fornito da Google. Tutto in questa pagina — cause, soluzioni e dati misurati — è ricavato dal comportamento reale di questo modello al livello del gateway.

Su questo gateway, la causa più comune è: Il timeout del client è impostato troppo basso. La prima azione consigliata è: Porta il timeout del client a 300 secondi o più.

Cause comuni

  • Il timeout del client è impostato troppo basso
  • Un prompt o contesto lungo alza la latenza del primo token
  • Il modello sta svolgendo un lungo compito di ragionamento
  • Jitter di rete

Come risolvere

  • Porta il timeout del client a 300 secondi o più
  • Attiva lo streaming per non attendere l'intera risposta
  • Accorcia il contesto o usa un modello più rapido
  • Riduci max_tokens

Retry con backoff esponenziale

Il codice qui sotto ritenta quando gemini-2.5-flash restituisce timeout: fino a 5 tentativi, con attesa crescente e jitter casuale per evitare che le chiamate concorrenti ritentino insieme. Leggi base URL e API key dalle variabili d’ambiente, non inserirle hardcoded.

import os, time, random
import requests

BASE  = os.getenv("OPENAI_BASE_URL")   # e.g. https://<your-gateway>/v1
KEY   = os.getenv("OPENAI_API_KEY")
MODEL = 'gemini-2.5-flash'


def chat(messages, retries=5):
    """Retry with exponential backoff + jitter."""
    for i in range(retries):
        try:
            r = requests.post(
                BASE + "/chat/completions",
                headers={"Authorization": "Bearer " + KEY},
                json={"model": MODEL, "messages": messages, "stream": True},
                timeout=60,
            )
            if r.status_code == 429 or r.status_code >= 500:
                time.sleep(min(2 ** i + random.uniform(0, 1), 30))
                continue
            r.raise_for_status()
            return r.json()
        except requests.exceptions.Timeout:
            time.sleep(min(2 ** i + random.uniform(0, 1), 30))
    raise RuntimeError("gave up after " + str(retries) + " retries")


print(chat([{"role": "user", "content": "hello"}]))

Dati chiave di questo modello

Endpoint APIhttps://api.airai.cc/v1
Compatibile con OpenAIOpenAI-compatible
FornitoreGoogle
Contesto1M
FunzionalitàReasoning, Tools, Files, Vision, Audio
Formati APIopenai, openai-response, openai-response-compact, anthropic, gemini, openai-alpha-search
Formula di fatturazionep * 0.3 + cr * 0.03 + ai * 1 + c * 2.5

Domande frequenti

timeout su gemini-2.5-flash è legato alla quota del mio account?

È soprattutto una questione di quota, non un guasto del modello. Con la fatturazione p * 0.3 + cr * 0.03 + ai * 1 + c * 2.5, le richieste fallite non rientrano nel consumo. Controlla prima saldo e limiti di velocità nella console, poi il codice. Stimando il costo da p * 0.3 + cr * 0.03 + ai * 1 + c * 2.5, includi anche il budget per i ritenti.

Un max_tokens troppo alto può causare timeout?

I parametri vanno cambiati; riprovare da solo non aiuterà. È un problema di configurazione lato client; lato server non cambia nulla. I tag delle capacità sono Reasoning, Tools, Files, Vision, Audio e i limiti dei parametri derivano da quel set. La finestra di contesto 1M stabilisce l’input massimo per richiesta; oltre viene rifiutato subito. Tronca o riassumi gli input lunghi: riduce notevolmente timeout.

Le richieste fallite rientrano nella quota di rate limit?

Viene fatturato solo l’output già prodotto, non la parte fallita. La fatturazione segue p * 0.3 + cr * 0.03 + ai * 1 + c * 2.5: senza output nessun addebito. Con fatturazione p * 0.3 + cr * 0.03 + ai * 1 + c * 2.5, il costo degli output lunghi deriva soprattutto dai token di output. Controlla prima saldo e limiti di velocità nella console, poi il codice. Stimando il costo da p * 0.3 + cr * 0.03 + ai * 1 + c * 2.5, includi anche il budget per i ritenti.

Come pianificare i job batch quando gemini-2.5-flash restituisce timeout?

Qui le vere variabili sono la concorrenza e i timeout, non il modello. Un contesto di 1M significa che input lunghi aumentano la latenza del primo token. Parti da una concorrenza bassa, osserva per qualche minuto, poi aumenta.

Altri errori su questo modello

Altri modelli con lo stesso errore

Dati aggiornati: 2026-10-10 15:55

Supporto tecnicoAssistenza online
Torna in alto