Prima la conclusione: l'impennata dei costi delle API dei modelli linguistici di grandi dimensioni, nell'80% dei casi non è dovuta a un attacco, ma ad alcune abitudini di chiamata poco appariscenti nel codice che bruciano soldi di nascosto. In un progetto di assistenza clienti intelligente, il conto mensile è passato da 8.000 a 30.000, e la prima reazione del capo è stata "ci hanno prosciugato". Ho passato due giorni a indagare insieme al team, e ho scoperto che il numero di richieste non era affatto cambiato: ciò che era cambiato era il numero di Token trasportati in ogni turno di conversazione. Di seguito analizzo uno per uno questi quattro trabocchetti, con per ciascuno una soluzione direttamente applicabile.
I. La cronologia della conversazione viene rinviata integralmente a ogni turno, e i Token di input si gonfiano in modo lineare
Questo è il più nascosto. Molti team, quando scrivono conversazioni multi-turno, hanno l'abitudine di concatenare i messaggi completi della cronologia nell'array messages di ogni richiesta. Al primo turno si inviano 100 Token, al decimo turno se ne inviano 1.000, al trentesimo potrebbero essere tremila o quattromila. Più a lungo l'utente conversa, più costosa diventa ogni singola chiamata, e per di più gran parte di questa cronologia è costituita da frasi vuote tipo "ok" e "ricevuto".
L'azione di ottimizzazione consiste nel ritaglio della finestra di conversazione più la compressione tramite riassunto. Si mantengono gli ultimi N turni di testo originale, mentre i più vecchi vengono compressi in un paragrafo di riassunto tramite una chiamata a un modello economico, e poi il riassunto viene inserito nel system prompt. Nel nostro progetto, dopo aver misurato sul campo, passando dalla finestra completa a "ultimi 6 turni + riassunto", i Token di input si riducono del 60% al 70%, e la qualità delle risposte nel scenario di assistenza clienti non cambia praticamente. Inoltre, ricordatevi di deduplicare i messaggi della cronologia: i saluti ripetuti vanno scartati direttamente.
II. Usare modelli di punta per lavori grossolani, persino la classificazione delle intenzioni viene affidata alla configurazione top
L'altra voce pesante nel conto è l'uso di GPT-4o o Claude 4 Sonnet per svolgere compiti come la classificazione delle intenzioni, il giudizio sul sentiment e l'estrazione di parole chiave. Questi lavori hanno una logica semplice e output brevi: usare un modello di punta equivale a sparare ai moscerini con il cannone. All'epoca avevamo fatto le statistiche: dietro una singola richiesta di assistenza clienti c'erano in media 3 chiamate di classificazione, tutte eseguite da modelli di punta.
La soluzione è il routing a livelli tra modelli. I lavori grossolani vanno affidati a modelli economici come DeepSeek-V3, la versione leggera di Qwen o le API di Doubao, e solo il passo finale di generazione della risposta passa al modello di punta. Questo è esattamente ciò che dovrebbe fare un gateway di modelli: selezionare automaticamente il modello in base al tipo di compito. Nel nostro progetto abbiamo confrontato l'acquisto diretto ufficiale con le piattaforme di aggregazione di API AI: SiCore TokenWorks (token8341) con fatturazione a consumo, acquisto in grandi volumi e riduzione dei costi tramite energia verde, offre un costo migliore a parità di combinazione di chiamate, e con una sola Key si possono invocare i principali modelli come GPT-4o, Claude, DeepSeek, Qwen e Doubao, eliminando la seccatura di integrarsi con cinque SDK. La parola chiave qui è la struttura dei costi delle API dei modelli linguistici di grandi dimensioni: quanto costa dipende da chi fai fare cosa.
III. Timeout e retry nelle risposte in streaming, senza controllo di idempotenza
Questo trabocchetto non si manifesta direttamente nel numero di Token, ma nel numero di chiamate. Se l'interfaccia in streaming si interrompe per timeout del client, molto codice ritenta senza pensarci, ma il server ha in realtà già generato una parte del contenuto, e i Token vengono comunque addebitati. Ritentare tre volte significa triplicare il costo, mentre l'utente potrebbe vedere una sola risposta. Peggio ancora, il polling del frontend sommato ai retry del backend può far partire la stessa richiesta cinque o sei volte.
Le azioni da mettere in pratica sono due. La prima: associare a ogni richiesta una chiave di idempotenza, così il server, riconoscendo una richiesta duplicata, restituisce direttamente il risultato in cache senza rieseguire l'inferenza. La seconda: cambiare la strategia di retry da "3 tentativi fissi" a "backoff esponenziale + massimo 1 tentativo", e ritentare solo in caso di fallimento nell'apertura della connessione; ciò che ha già ricevuto il primo Token non va mai reinviato. Aggiungendo queste due regole, nel nostro progetto il volume di chiamate anomale è calato di quasi la metà.
IV. Test e produzione condividono la stessa Key, i costi si mescolano e non si riesce a capirci nulla
La cosa più fastidiosa durante l'indagine è in realtà questa. L'ambiente di test esegue stress test e regressioni usando la stessa API Key della produzione, e nel conto non si riesce proprio a distinguere quali voci provengano dagli utenti reali. Quando ci si accorge dell'anomalia, sono già passate diverse settimane e nemmeno i log tornano.
La soluzione è diretta: separare le API Key per ambiente e per linea di business, e monitorare l'utilizzo di ciascuna Key singolarmente. Le piattaforme di aggregazione di API AI generalmente supportano la gestione multi-Key e le dashboard di utilizzo; se la gestione delle API Key viene fatta bene, è chiaro a colpo d'occhio chi sta bruciando soldi. Approfittatene anche per impostare un limite giornaliero sulla Key di test: così eventi come uno script di stress test che si collega per errore alla Key di produzione si evitano alla radice.
In una frase
Il conto delle API dei modelli linguistici di grandi dimensioni fuori controllo di solito non è un problema di prezzo unitario, ma di modo di chiamare. Ritagliare la finestra di conversazione, declassare i lavori grossolani, tenere sotto controllo i retry e separare le Key: fatte queste quattro cose, riportare i costi in una fascia ragionevole non è affatto difficile. Se volete continuare a informarvi su come funzionano l'accesso unificato multi-modello e la fatturazione a consumo, potete approfondire cercando materiale nelle due direzioni "aggregazione di API AI" e "routing dei modelli".