Errore timeout: cosa fare quando glm-4.6 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.

glm-4.6 è fornito da Z.AI. 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 glm-4.6 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 = 'glm-4.6'


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
FornitoreZ.AI
Contesto204.8K
FunzionalitàReasoning, Tools, Open Weights
Formati APIopenai, openai-response, openai-response-compact, anthropic, gemini, openai-alpha-search
Formula di fatturazionep * 0.6 + cr * 0.11 + cc * 0 + c * 2.2

Domande frequenti

Condividere una key tra più servizi rende timeout più probabile?

È soprattutto una questione di quota, non un guasto del modello. Sia alzare il limite del piano sia ridurre la frequenza delle chiamate aiuta. La fatturazione segue p * 0.6 + cr * 0.11 + cc * 0 + c * 2.2: senza output nessun addebito. Il prezzo di input è circa $0.60 per milione di token. Stimando il costo da p * 0.6 + cr * 0.11 + cc * 0 + c * 2.2, includi anche il budget per i ritenti.

Il retry farà eseguire la richiesta due volte?

Di solito non serve cambiare il codice, solo il ritmo delle chiamate. Riprovare è il primo passo più efficace. Con la fatturazione p * 0.6 + cr * 0.11 + cc * 0 + c * 2.2, le richieste fallite non rientrano nel consumo. Usa il backoff esponenziale per gli errori ritentabili e restituisci subito l’errore per gli altri.

timeout è più probabile con chiamate dirette dal frontend o via backend?

Tieni pronto anche un modello di riserva. Questo modello di Z.AI ha più nodi upstream tra cui il gateway può commutare. Tieni pronto un modello di riserva più leggero, così il flusso principale non si interrompe. Metti il nome del modello in configurazione, così cambiare upstream non richiede modifiche al codice.

Quando glm-4.6 restituisce timeout, quali campi del body guardare?

Conserva l’id della richiesta e il corpo grezzo della risposta, altrimenti non si può risalire a nulla. Se accade solo in produzione, di solito è una differenza di ambiente, non il modello. Questo modello è servito da Z.AI, quindi lo stato upstream segue gli annunci del fornitore. Registra l’id della richiesta a ogni fallimento: serve più del codice di stato.

Altri errori su questo modello

Altri modelli con lo stesso errore

Dati aggiornati: 2026-10-10 15:55

Supporto tecnicoAssistenza online
Torna in alto