Prompt caching e Batch API: come pagare molto meno le API IA

8 min di lettura

Nell’articolo sulla context window ho notato una cosa curiosa: mandando due volte di fila lo stesso testo a GPT-6 Luna, alla seconda chiamata OpenAI aveva già messo in cache da solo quasi tutto il contesto. È il prompt caching, e insieme alla Batch API è il modo più semplice per pagare molto meno le API dei modelli IA senza cambiare modello e senza togliere una riga dal prompt.

Le due leve funzionano in modo diverso. La cache fa risparmiare quando mandi spesso lo stesso contesto; il batch quando puoi aspettare la risposta. In questo articolo ti spiego come funzionano con OpenAI, Anthropic e Google, e ti mostro cosa è successo quando le ho provate davvero, compresa una soglia che, se non la conosci, ti fa credere di risparmiare mentre paghi prezzo pieno.

Cos’è il prompt caching

Quando un modello legge il tuo prompt, fa un lavoro di calcolo su ogni token. Se la richiesta successiva comincia esattamente con lo stesso testo, il provider può riusare quel lavoro invece di rifarlo da capo. Tu paghi quella parte molto meno e ricevi la risposta prima.

La parola chiave è “comincia”. La cache funziona sul prefisso: il testo deve essere identico dall’inizio fino al punto messo in cache, carattere per carattere. Basta una data, un nome utente o uno spazio diverso nelle prime righe e la cache non serve più. Per questo l’ordine del prompt conta: prima le parti fisse, per ultime quelle che cambiano.

I casi tipici in cui fa la differenza:

  • istruzioni di sistema lunghe, uguali per tutti gli utenti;
  • lo stesso documento su cui fai tante domande diverse, come un manuale o un contratto;
  • le chat, dove a ogni turno rimandi tutta la cronologia precedente;
  • gli agenti con tanti strumenti, le cui definizioni viaggiano identiche in ogni chiamata.

Come funziona il prompt caching da un provider all’altro

Il principio è lo stesso per tutti, ma i dettagli cambiano parecchio.

OpenAI (GPT-6)Anthropic (Claude)Google (Gemini)
Come si attivaDa solaCon cache_control nella richiestaDa sola (implicita)
Soglia minima1.024 token512 token su Opus 5.5 e Fable 5.1, 1.024 su Sonnet 5, 4.096 su Haiku 4.54.096 token sui Flash 3.x
Lettura dalla cache10% del prezzo di input10% (5% su Opus 5.5, 2,5% su Fable 5.1)scontata in automatico
Scrittura in cachen.d.125% del prezzo di input (200% per la cache da un’ora)n.d.
Quanto dura30 minuti dall’ultimo uso5 minuti, rinnovati a ogni uso (oppure un’ora)n.d.
Dalla documentazione ufficiale di OpenAI, Anthropic e Google a fine settembre 2026. “n.d.” quando la pagina non lo dice in modo chiaro.

Con OpenAI e Google non devi fare niente: se il prompt è abbastanza lungo e comincia come uno recente, lo sconto arriva da solo. Con Anthropic invece la cache la chiedi tu, e c’è un piccolo sovrapprezzo sulla prima scrittura: la paghi il 25% in più, poi ogni lettura costa un decimo. Su Claude puoi anche mettere il parametro una volta sola in cima alla richiesta e lasciare che sia l’API a scegliere il punto di cache, oppure indicare tu fino a quattro punti precisi.

Per attivarla su Claude basta questo nel blocco delle istruzioni di sistema:

"system": [
  {
    "type": "text",
    "text": "Istruzioni lunghe e documento di riferimento...",
    "cache_control": {"type": "ephemeral"}
  }
]

L’esperimento: la cache alla prova

Ho messo nelle istruzioni di sistema il testo di questo blog, una volta tutto intero e una volta solo l’inizio, con la cache attiva, e ho fatto la stessa domanda tre volte di fila. Ecco cosa riportava il campo usage delle risposte.

ProvaToken del prompt1ª chiamata2ª e 3ª chiamataTempi
Claude Haiku 4.5, inizio del blog2.859nessuna cachenessuna cache1,63 · 0,90 · 0,89 s
Claude Sonnet 5, inizio del blog3.0793.079 scritti in cache3.079 letti dalla cache1,13 · 1,12 · 1,03 s
Claude Haiku 4.5, tutto il blog47.29547.295 scritti in cache47.295 letti dalla cache1,42 · 0,91 · 1,02 s
Prove del 28 settembre 2026, domanda di 17 token, risposta di 20.

La soglia che non ti avvisa

Guarda la prima riga. Il prompt aveva cache_control, ma con 2.859 token Haiku 4.5 è sotto la sua soglia minima di 4.096 e la cache semplicemente non si attiva. Nessun errore, nessun avviso: la richiesta va a buon fine e paghi prezzo pieno. Se non controlli i campi cache_creation_input_tokens e cache_read_input_tokens nella risposta, non te ne accorgi mai.

La seconda riga è quasi lo stesso testo, ma su Claude Sonnet 5, che ha la soglia a 1.024 token: la cache parte subito. È lo stesso motivo per cui il chatbot di questo blog, quando rispondeva con Haiku, non poteva usare la cache: il suo prompt stava sotto la soglia. Lo racconto nell’articolo su quanto costa davvero un chatbot AI.

Quanto si risparmia davvero

Prendiamo la terza riga, tutto il blog su Haiku 4.5, a $1 per milione di token di input:

  • senza cache, ogni chiamata costa circa $0,047 di input;
  • con la cache, la prima costa $0,059 (la scrittura si paga il 25% in più) e ognuna delle successive $0,0047, un decimo.

Il sovrapprezzo della prima chiamata si recupera già alla seconda. Su dieci domande sullo stesso testo si passa da $0,47 a $0,10: il 78% in meno. E più domande fai, più ti avvicini al 90%.

E si va anche più veloci

Con 47.000 token, la prima chiamata ha impiegato 1,42 secondi e quelle servite dalla cache circa un secondo. Sui prompt corti la differenza sparisce nel rumore, ma con contesti lunghi il modello che non deve rileggere tutto risponde prima.

Come scrivere prompt che la cache ama

  • Prima quello che non cambia. Istruzioni, documenti di riferimento, definizioni degli strumenti in cima; la domanda dell’utente e i dati del momento in fondo.
  • Niente variabili nelle prime righe. L’errore più comune è mettere data e ora, o il nome dell’utente, all’inizio del system prompt: cambia a ogni richiesta e la cache non scatta mai. Se servono, mettili in fondo.
  • Nelle chat, aggiungi e non riscrivere. Se a ogni turno riformatti o riassumi tutta la cronologia, il prefisso cambia. Aggiungere i messaggi nuovi in coda lascia la cache valida.
  • Tieni conto della durata. Su Claude la cache vive 5 minuti dall’ultimo uso, su GPT-6 30. Se le richieste sono rade, su Claude valuta la cache da un’ora: la scrittura costa il doppio, ma non la perdi tra una domanda e l’altra.
  • Controlla i numeri. Registra i campi della cache nel log delle chiamate. È l’unico modo per sapere se sta funzionando.

Batch API: metà prezzo, se puoi aspettare

La seconda leva è ancora più semplice da capire. Invece di mandare le richieste una alla volta e aspettare ogni risposta, le mandi tutte insieme in un “batch” e le ritiri quando sono pronte. In cambio della pazienza, il provider ti fa metà prezzo su tutto, input e output.

OpenAIAnthropic
Sconto50%50% su tutto l’uso
Tempo massimo24 ore24 ore, la maggior parte entro un’ora
Dimensione massima50.000 richieste o 200 MB100.000 richieste o 256 MB
Notelimiti di velocità separati da quelli normalirisultati scaricabili per 29 giorni
Dalla documentazione ufficiale di OpenAI e Anthropic. Anche Gemini ha una modalità batch a metà prezzo, con obiettivo di 24 ore.

Il mio batch di prova

Per vedere quanto si aspetta davvero, ho mandato ad Anthropic un batch di 10 richieste a Claude Haiku 4.5: per ognuno dei primi dieci articoli di questo blog, “in una frase di massimo 20 parole, di cosa parla un articolo intitolato…”. Il batch è stato creato alle 14:56:37 ed è risultato completato alle 14:59:06: 2 minuti e mezzo, con tutte e dieci le richieste andate a buon fine.

In tutto 572 token di input e 407 di output: $0,0013 invece di $0,0026. Cifre ridicole, perché la prova era piccola, ma la proporzione vale identica per diecimila richieste. E un dettaglio onesto: una delle dieci risposte è arrivata con un “# Risposta” davanti che non avevo chiesto. Il batch cambia il prezzo e i tempi, non il modello: le sue manie restano le stesse, quindi i risultati vanno controllati come quelli normali.

Due minuti e mezzo sono un caso fortunato, con un batch minuscolo in un momento tranquillo. Per progettare un sistema vero conviene ragionare sul caso peggiore, cioè le 24 ore.

Quando usare la Batch API

Il criterio è uno solo: c’è qualcuno che aspetta la risposta? Se sì, niente batch. Se no, quasi sempre conviene. Qualche esempio:

  • classificare o riassumere un arretrato di ticket, mail o documenti;
  • generare descrizioni prodotto, meta description o traduzioni per un catalogo intero;
  • elaborazioni notturne, come un report o una rassegna da preparare per la mattina dopo;
  • test di qualità su centinaia di domande, quando confronti due modelli o due versioni di un prompt.

Cache e batch insieme

Le due leve si possono combinare. Anthropic scrive esplicitamente che gli sconti del prompt caching e quelli della Batch API si sommano: se nel batch tante richieste condividono lo stesso contesto lungo, lo paghi a metà prezzo e in più letto dalla cache. C’è però un limite: le richieste di un batch vengono elaborate in parallelo e in ordine sparso, quindi gli hit della cache sono “al meglio delle possibilità”. La stessa documentazione parla di percentuali tra il 30 e il 98%, a seconda dei casi, e consiglia la cache da un’ora, perché un batch può durare più di cinque minuti.

In sintesi

Prima di cambiare modello per risparmiare, controlla queste due leve. Se mandi spesso lo stesso contesto, il prompt caching ti fa pagare quella parte un decimo, a patto di mettere le parti fisse in cima e di superare la soglia minima del modello. Se non hai fretta, la Batch API dimezza il conto. E se hai entrambe le situazioni, gli sconti si sommano.

Il resto della serie: la guida alle API di intelligenza artificiale per il quadro generale, cosa sono i token per capire cosa stai pagando e il tracker dei modelli IA per i prezzi aggiornati. Il prossimo articolo parla dei rate limit e degli errori 429: cosa fare quando il provider ti dice di no.

Newsletter

Ti è stato utile? Il prossimo te lo mando io.

La rassegna AI ogni mattina oppure il digest della domenica: scegli tu.

Cosa vuoi ricevere
Che differenza c’è tra le due newsletter?

Rassegna AI quotidiana: ogni mattina alle 8:30, le notizie sull'IA del giorno.

Digest settimanale: la domenica, gli articoli e le rassegne della settimana in una sola mail.

Puoi sceglierle anche tutte e due.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *