Home → Assistenza

Addebitato due volte per quella che sembrava una sola richiesta

Il tuo client si è arreso e ha ritentato mentre la prima richiesta era ancora in generazione. Il provider le ha completate entrambe, quindi entrambe vengono addebitate: il timeout ha annullato la tua attesa, non il lavoro.

Cosa vedi

Perché succede

Un timeout HTTP è una decisione locale. A meno che la connessione non venga davvero chiusa e il server scelga di interrompere alla disconnessione, la generazione prosegue fino alla fine e viene addebitata.

I retry automatici degli SDK sono attivi per impostazione predefinita e invisibili nei tuoi log. Un codice che sembra fare una chiamata può farne tre.

I modelli di ragionamento lo rendono molto più probabile, perché il tempo prima del primo token è abbastanza lungo da superare un timeout predefinito mentre tutto funziona normalmente.

Come risolvere

  1. Imposta il timeout sopra la risposta più lenta che ti aspettiMisura il p99 del tuo traffico e aggiungi margine. La maggior parte degli addebiti doppi è un valore predefinito di 60 secondi contro una risposta di 70.
  2. Disattiva i retry automatici per le chiamate costoseImposta max_retries a 0 nel client e ritenta in modo deliberato, dove puoi registrarlo e decidere se vale la pena ripetere il lavoro.
  3. Usa lo streaming per le richieste lungheLo streaming ti dà subito un primo token, il che impedisce ai timeout di inattività di scattare e ti dice che la richiesta è viva.
Ogni chiamata su APICLAN viene registrata separatamente con il proprio orario e addebito, quindi due voci a pochi secondi di distanza, con lo stesso modello e conteggi di token simili, sono la firma da cercare quando una fattura sembra raddoppiata.

Articoli correlati

Unexpected token '<' quando chiami un'API compatibile con OpenAI401 invalid API key: quando la chiave sembra giusta ma continua a fallire

Ultima verifica: 2026-10-01. Scritto a partire da problemi diagnosticati su un gateway compatibile con OpenAI in produzione, non raccolto da altri siti.