cache_control:
cache_control. Questo consente il riutilizzo di questo testo di grandi dimensioni in più chiamate API senza rielaborarlo ogni volta. Cambiando solo il messaggio dell’utente puoi fare varie domande sul libro mentre utilizzi il contenuto memorizzato nella cache, portando a risposte più veloci e a una maggiore efficienza.
Come funziona il caching dei prompt
Quando invii una richiesta con il caching dei prompt abilitato:- Il sistema verifica se un prefisso del prompt, fino a un punto di interruzione della cache specificato, è già memorizzato nella cache da una query recente.
- Se trovato, utilizza la versione memorizzata nella cache, riducendo il tempo di elaborazione e i costi.
- In caso contrario, elabora il prompt completo e memorizza nella cache il prefisso una volta che la risposta inizia.
- Prompt con molti esempi
- Grandi quantità di contesto o informazioni di background
- Attività ripetitive con istruzioni coerenti
- Lunghe conversazioni multi-turno
tools, system e messages (in quell’ordine) fino a e includendo il blocco designato con cache_control.Prezzi
Il caching dei prompt introduce una nuova struttura di prezzi. La tabella seguente mostra il prezzo per milione di token per ogni modello supportato:| Model | Base Input Tokens | 5m Cache Writes | 1h Cache Writes | Cache Hits & Refreshes | Output Tokens |
|---|---|---|---|---|---|
| Claude Opus 4.1 | $15 / MTok | $18.75 / MTok | $30 / MTok | $1.50 / MTok | $75 / MTok |
| Claude Opus 4 | $15 / MTok | $18.75 / MTok | $30 / MTok | $1.50 / MTok | $75 / MTok |
| Claude Sonnet 4.5 | $3 / MTok | $3.75 / MTok | $6 / MTok | $0.30 / MTok | $15 / MTok |
| Claude Sonnet 4 | $3 / MTok | $3.75 / MTok | $6 / MTok | $0.30 / MTok | $15 / MTok |
| Claude Sonnet 3.7 (deprecated) | $3 / MTok | $3.75 / MTok | $6 / MTok | $0.30 / MTok | $15 / MTok |
| Claude Haiku 4.5 | $1 / MTok | $1.25 / MTok | $2 / MTok | $0.10 / MTok | $5 / MTok |
| Claude Haiku 3.5 | $0.80 / MTok | $1 / MTok | $1.6 / MTok | $0.08 / MTok | $4 / MTok |
| Claude Opus 3 (deprecated) | $15 / MTok | $18.75 / MTok | $30 / MTok | $1.50 / MTok | $75 / MTok |
| Claude Haiku 3 | $0.25 / MTok | $0.30 / MTok | $0.50 / MTok | $0.03 / MTok | $1.25 / MTok |
- I token di scrittura della cache di 5 minuti sono 1,25 volte il prezzo dei token di input di base
- I token di scrittura della cache di 1 ora sono 2 volte il prezzo dei token di input di base
- I token di lettura della cache sono 0,1 volte il prezzo dei token di input di base
Come implementare il caching dei prompt
Modelli supportati
Il caching dei prompt è attualmente supportato su:- Claude Opus 4.1
- Claude Opus 4
- Claude Sonnet 4.5
- Claude Sonnet 4
- Claude Sonnet 3.7
- Claude Haiku 4.5
- Claude Haiku 3.5
- Claude Haiku 3
- Claude Opus 3 (deprecato)
Strutturazione del tuo prompt
Posiziona il contenuto statico (definizioni di strumenti, istruzioni di sistema, contesto, esempi) all’inizio del tuo prompt. Contrassegna la fine del contenuto riutilizzabile per il caching utilizzando il parametrocache_control.
I prefissi della cache vengono creati nel seguente ordine: tools, system, quindi messages. Questo ordine forma una gerarchia in cui ogni livello si basa su quelli precedenti.
Come funziona il controllo automatico del prefisso
Puoi utilizzare un solo punto di interruzione della cache alla fine del tuo contenuto statico e il sistema troverà automaticamente il prefisso corrispondente più lungo. Comprendere come funziona aiuta a ottimizzare la tua strategia di caching. Tre principi fondamentali:-
Le chiavi della cache sono cumulative: Quando memorizzi esplicitamente nella cache un blocco con
cache_control, la chiave hash della cache viene generata eseguendo l’hash di tutti i blocchi precedenti nella conversazione in sequenza. Ciò significa che la cache per ogni blocco dipende da tutto il contenuto che lo precede. - Controllo sequenziale all’indietro: Il sistema verifica i hit della cache lavorando all’indietro dal tuo punto di interruzione esplicito, controllando ogni blocco precedente in ordine inverso. Questo assicura di ottenere il hit della cache più lungo possibile.
-
Finestra di lookback di 20 blocchi: Il sistema controlla solo fino a 20 blocchi prima di ogni punto di interruzione
cache_controlesplicito. Dopo aver controllato 20 blocchi senza una corrispondenza, smette di controllare e passa al prossimo punto di interruzione esplicito (se presente).
cache_control solo sul blocco 30:
- Se invii il blocco 31 senza modifiche ai blocchi precedenti: Il sistema controlla il blocco 30 (corrispondenza!). Ottieni un hit della cache al blocco 30 e solo il blocco 31 ha bisogno di elaborazione.
- Se modifichi il blocco 25 e invii il blocco 31: Il sistema controlla all’indietro dal blocco 30 → 29 → 28… → 25 (nessuna corrispondenza) → 24 (corrispondenza!). Poiché il blocco 24 non è cambiato, ottieni un hit della cache al blocco 24 e solo i blocchi 25-30 hanno bisogno di rielaborazione.
-
Se modifichi il blocco 5 e invii il blocco 31: Il sistema controlla all’indietro dal blocco 30 → 29 → 28… → 11 (controllo #20). Dopo 20 controlli senza trovare una corrispondenza, smette di cercare. Poiché il blocco 5 è oltre la finestra di 20 blocchi, non si verifica alcun hit della cache e tutti i blocchi hanno bisogno di rielaborazione. Tuttavia, se avessi impostato un punto di interruzione
cache_controlesplicito sul blocco 5, il sistema continuerebbe a controllare da quel punto di interruzione: blocco 5 (nessuna corrispondenza) → blocco 4 (corrispondenza!). Questo consente un hit della cache al blocco 4, dimostrando perché dovresti posizionare i punti di interruzione prima del contenuto modificabile.
Quando utilizzare più punti di interruzione
Puoi definire fino a 4 punti di interruzione della cache se desideri:- Memorizzare nella cache sezioni diverse che cambiano a frequenze diverse (ad es., gli strumenti cambiano raramente, ma il contesto si aggiorna quotidianamente)
- Avere più controllo su esattamente cosa viene memorizzato nella cache
- Assicurare il caching per il contenuto più di 20 blocchi prima del tuo punto di interruzione finale
- Posizionare i punti di interruzione prima del contenuto modificabile per garantire hit della cache anche quando si verificano modifiche oltre la finestra di 20 blocchi
Limitazioni della cache
La lunghezza minima del prompt memorizzabile nella cache è:- 1024 token per Claude Opus 4.1, Claude Opus 4, Claude Sonnet 4.5, Claude Sonnet 4, Claude Sonnet 3.7 (deprecato) e Claude Opus 3 (deprecato)
- 4096 token per Claude Haiku 4.5
- 2048 token per Claude Haiku 3.5 e Claude Haiku 3
cache_control. Qualsiasi richiesta di memorizzare nella cache meno di questo numero di token verrà elaborata senza caching. Per verificare se un prompt è stato memorizzato nella cache, consulta i campi di utilizzo della risposta.
Per le richieste simultanee, nota che una voce della cache diventa disponibile solo dopo l’inizio della prima risposta. Se hai bisogno di hit della cache per richieste parallele, attendi la prima risposta prima di inviare le richieste successive.
Attualmente, “ephemeral” è l’unico tipo di cache supportato, che per impostazione predefinita ha una durata di 5 minuti.
Comprensione dei costi dei punti di interruzione della cache
I punti di interruzione della cache stessi non aggiungono alcun costo. Ti viene addebitato solo per:- Scritture della cache: Quando il nuovo contenuto viene scritto nella cache (25% in più rispetto ai token di input di base per TTL di 5 minuti)
- Letture della cache: Quando il contenuto memorizzato nella cache viene utilizzato (10% del prezzo del token di input di base)
- Token di input regolari: Per qualsiasi contenuto non memorizzato nella cache
cache_control non aumenta i tuoi costi - paghi comunque lo stesso importo in base a quale contenuto è effettivamente memorizzato nella cache e letto. I punti di interruzione ti danno semplicemente il controllo su quali sezioni possono essere memorizzate nella cache in modo indipendente.
Cosa può essere memorizzato nella cache
La maggior parte dei blocchi nella richiesta può essere designata per il caching concache_control. Questo include:
- Strumenti: Definizioni di strumenti nell’array
tools - Messaggi di sistema: Blocchi di contenuto nell’array
system - Messaggi di testo: Blocchi di contenuto nell’array
messages.content, sia per i turni dell’utente che dell’assistente - Immagini e documenti: Blocchi di contenuto nell’array
messages.content, nei turni dell’utente - Utilizzo di strumenti e risultati di strumenti: Blocchi di contenuto nell’array
messages.content, sia per i turni dell’utente che dell’assistente
cache_control per abilitare il caching per quella parte della richiesta.
Cosa non può essere memorizzato nella cache
Mentre la maggior parte dei blocchi di richiesta può essere memorizzata nella cache, ci sono alcune eccezioni:-
I blocchi di pensiero non possono essere memorizzati nella cache direttamente con
cache_control. Tuttavia, i blocchi di pensiero POSSONO essere memorizzati nella cache insieme ad altro contenuto quando appaiono nei turni dell’assistente precedenti. Quando memorizzati nella cache in questo modo, CONTANO come token di input quando letti dalla cache. - I blocchi di sub-contenuto (come citazioni) stessi non possono essere memorizzati nella cache direttamente. Invece, memorizza nella cache il blocco di livello superiore. Nel caso delle citazioni, i blocchi di contenuto del documento di livello superiore che servono come materiale di origine per le citazioni possono essere memorizzati nella cache. Questo ti consente di utilizzare il caching dei prompt con le citazioni in modo efficace memorizzando nella cache i documenti a cui le citazioni faranno riferimento.
- I blocchi di testo vuoti non possono essere memorizzati nella cache.
Cosa invalida la cache
Le modifiche al contenuto memorizzato nella cache possono invalidare parte o tutta la cache. Come descritto in Strutturazione del tuo prompt, la cache segue la gerarchia:tools → system → messages. Le modifiche a ogni livello invalidano quel livello e tutti i livelli successivi.
La tabella seguente mostra quali parti della cache vengono invalidate da diversi tipi di modifiche. ✘ indica che la cache viene invalidata, mentre ✓ indica che la cache rimane valida.
| Cosa cambia | Cache degli strumenti | Cache di sistema | Cache dei messaggi | Impatto |
|---|---|---|---|---|
| Definizioni di strumenti | ✘ | ✘ | ✘ | La modifica delle definizioni di strumenti (nomi, descrizioni, parametri) invalida l’intera cache |
| Attivazione/disattivazione della ricerca web | ✓ | ✘ | ✘ | L’abilitazione/disabilitazione della ricerca web modifica il prompt di sistema |
| Attivazione/disattivazione delle citazioni | ✓ | ✘ | ✘ | L’abilitazione/disabilitazione delle citazioni modifica il prompt di sistema |
| Scelta dello strumento | ✓ | ✓ | ✘ | Le modifiche al parametro tool_choice influiscono solo sui blocchi di messaggi |
| Immagini | ✓ | ✓ | ✘ | L’aggiunta/rimozione di immagini in qualsiasi punto del prompt influisce sui blocchi di messaggi |
| Parametri di pensiero | ✓ | ✓ | ✘ | Le modifiche alle impostazioni di pensiero esteso (abilitazione/disabilitazione, budget) influiscono sui blocchi di messaggi |
| Risultati non di strumenti passati alle richieste di pensiero esteso | ✓ | ✓ | ✘ | Quando i risultati non di strumenti vengono passati nelle richieste mentre il pensiero esteso è abilitato, tutti i blocchi di pensiero precedentemente memorizzati nella cache vengono rimossi dal contesto e tutti i messaggi nel contesto che seguono quei blocchi di pensiero vengono rimossi dalla cache. Per ulteriori dettagli, consulta Caching con blocchi di pensiero. |
Tracciamento delle prestazioni della cache
Monitora le prestazioni della cache utilizzando questi campi di risposta dell’API, all’interno diusage nella risposta (o evento message_start se streaming):
cache_creation_input_tokens: Numero di token scritti nella cache durante la creazione di una nuova voce.cache_read_input_tokens: Numero di token recuperati dalla cache per questa richiesta.input_tokens: Numero di token di input che non sono stati letti da o utilizzati per creare una cache.
Migliori pratiche per il caching efficace
Per ottimizzare le prestazioni del caching dei prompt:- Memorizza nella cache il contenuto stabile e riutilizzabile come istruzioni di sistema, informazioni di background, contesti ampi o definizioni di strumenti frequenti.
- Posiziona il contenuto memorizzato nella cache all’inizio del prompt per le migliori prestazioni.
- Utilizza i punti di interruzione della cache strategicamente per separare diverse sezioni di prefisso memorizzabili nella cache.
- Imposta i punti di interruzione della cache alla fine delle conversazioni e appena prima del contenuto modificabile per massimizzare i tassi di hit della cache, specialmente quando si lavora con prompt che hanno più di 20 blocchi di contenuto.
- Analizza regolarmente i tassi di hit della cache e adatta la tua strategia secondo le necessità.
Ottimizzazione per diversi casi d’uso
Personalizza la tua strategia di caching dei prompt al tuo scenario:- Agenti conversazionali: Riduci il costo e la latenza per conversazioni estese, specialmente quelle con istruzioni lunghe o documenti caricati.
- Assistenti di codifica: Migliora l’autocompletamento e le domande sulla base di codice mantenendo sezioni rilevanti o una versione riassunta della base di codice nel prompt.
- Elaborazione di documenti di grandi dimensioni: Incorpora materiale completo di lunga forma incluse immagini nel tuo prompt senza aumentare la latenza della risposta.
- Set di istruzioni dettagliati: Condividi lunghi elenchi di istruzioni, procedure ed esempi per mettere a punto le risposte di Claude. Gli sviluppatori spesso includono uno o due esempi nel prompt, ma con il caching dei prompt puoi ottenere prestazioni ancora migliori includendo 20+ esempi diversi di risposte di alta qualità.
- Utilizzo di strumenti agentici: Migliora le prestazioni per scenari che coinvolgono più chiamate di strumenti e modifiche di codice iterative, in cui ogni passaggio in genere richiede una nuova chiamata API.
- Parla con libri, articoli, documentazione, trascrizioni di podcast e altri contenuti di lunga forma: Dai vita a qualsiasi base di conoscenza incorporando l’intero documento(i) nel prompt e lasciando che gli utenti facciano domande.
Risoluzione dei problemi comuni
Se riscontri comportamenti inaspettati:- Assicurati che le sezioni memorizzate nella cache siano identiche e contrassegnate con cache_control negli stessi luoghi tra le chiamate
- Verifica che le chiamate vengano effettuate entro la durata della cache (5 minuti per impostazione predefinita)
- Verifica che
tool_choicee l’utilizzo delle immagini rimangono coerenti tra le chiamate - Convalida che stai memorizzando nella cache almeno il numero minimo di token
- Il sistema controlla automaticamente i hit della cache ai limiti dei blocchi di contenuto precedenti (fino a ~20 blocchi prima del tuo punto di interruzione). Per i prompt con più di 20 blocchi di contenuto, potrebbe essere necessario parametri
cache_controlaggiuntivi più all’inizio del prompt per assicurare che tutto il contenuto possa essere memorizzato nella cache - Verifica che le chiavi nei tuoi blocchi di contenuto
tool_useabbiano un ordine stabile poiché alcuni linguaggi (ad es. Swift, Go) randomizzano l’ordine delle chiavi durante la conversione JSON, interrompendo le cache
tool_choice o la presenza/assenza di immagini in qualsiasi punto del prompt invalideranno la cache, richiedendo la creazione di una nuova voce della cache. Per ulteriori dettagli sull’invalidazione della cache, consulta Cosa invalida la cache.Caching con blocchi di pensiero
Quando si utilizza il pensiero esteso con il caching dei prompt, i blocchi di pensiero hanno un comportamento speciale: Caching automatico insieme ad altro contenuto: Mentre i blocchi di pensiero non possono essere esplicitamente contrassegnati concache_control, vengono memorizzati nella cache come parte del contenuto della richiesta quando effettui successive chiamate API con risultati di strumenti. Questo accade comunemente durante l’utilizzo di strumenti quando passi i blocchi di pensiero per continuare la conversazione.
Conteggio dei token di input: Quando i blocchi di pensiero vengono letti dalla cache, contano come token di input nelle tue metriche di utilizzo. Questo è importante per il calcolo dei costi e il budget dei token.
Modelli di invalidazione della cache:
- La cache rimane valida quando vengono forniti solo risultati di strumenti come messaggi dell’utente
- La cache viene invalidata quando viene aggiunto contenuto dell’utente non risultato di strumenti, causando la rimozione di tutti i blocchi di pensiero precedenti
- Questo comportamento di caching si verifica anche senza marcatori
cache_controlespliciti
Archiviazione e condivisione della cache
- Isolamento dell’organizzazione: Le cache sono isolate tra le organizzazioni. Diverse organizzazioni non condividono mai le cache, anche se utilizzano prompt identici.
- Corrispondenza esatta: I hit della cache richiedono segmenti di prompt identici al 100%, inclusi tutto il testo e le immagini fino a e includendo il blocco contrassegnato con il controllo della cache.
- Generazione di token di output: Il caching dei prompt non ha effetto sulla generazione di token di output. La risposta che ricevi sarà identica a quella che otterresti se il caching dei prompt non fosse utilizzato.
Durata della cache di 1 ora
Se ritieni che 5 minuti sia troppo breve, Anthropic offre anche una durata della cache di 1 ora a costo aggiuntivo. Per utilizzare la cache estesa, includittl nella definizione di cache_control come questo:
cache_creation_input_tokens attuale è uguale alla somma dei valori nell’oggetto cache_creation.
Quando utilizzare la cache di 1 ora
Se hai prompt che vengono utilizzati a una cadenza regolare (ad es., prompt di sistema che vengono utilizzati più frequentemente di ogni 5 minuti), continua a utilizzare la cache di 5 minuti, poiché questa continuerà a essere aggiornata senza costi aggiuntivi. La cache di 1 ora è meglio utilizzata nei seguenti scenari:- Quando hai prompt che probabilmente vengono utilizzati meno frequentemente di 5 minuti, ma più frequentemente di ogni ora. Ad esempio, quando un agente laterale agentivo impiegherà più di 5 minuti, o quando memorizzi una lunga conversazione di chat con un utente e generalmente ti aspetti che l’utente potrebbe non rispondere nei prossimi 5 minuti.
- Quando la latenza è importante e i tuoi prompt di follow-up potrebbero essere inviati oltre 5 minuti.
- Quando desideri migliorare l’utilizzo del tuo limite di velocità, poiché i hit della cache non vengono detratti dal tuo limite di velocità.
Miscelazione di diversi TTL
Puoi utilizzare sia il controllo della cache di 1 ora che di 5 minuti nella stessa richiesta, ma con un vincolo importante: Le voci della cache con TTL più lungo devono apparire prima di TTL più brevi (ad es., una voce della cache di 1 ora deve apparire prima di qualsiasi voce della cache di 5 minuti). Quando si mescolano i TTL, determiniamo tre posizioni di fatturazione nel tuo prompt:- Posizione
A: Il conteggio dei token al hit della cache più alto (o 0 se nessun hit). - Posizione
B: Il conteggio dei token al bloccocache_controldi 1 ora più alto dopoA(o uguale aAse nessuno esiste). - Posizione
C: Il conteggio dei token all’ultimo bloccocache_control.
B e/o C sono più grandi di A, saranno necessariamente cache miss, perché A è il hit della cache più alto.- Token di lettura della cache per
A. - Token di scrittura della cache di 1 ora per
(B - A). - Token di scrittura della cache di 5 minuti per
(C - B).
Esempi di caching dei prompt
Per aiutarti a iniziare con il caching dei prompt, abbiamo preparato un cookbook di caching dei prompt con esempi dettagliati e migliori pratiche. Di seguito, abbiamo incluso diversi frammenti di codice che mostrano vari modelli di caching dei prompt. Questi esempi dimostrano come implementare il caching in diversi scenari, aiutandoti a comprendere le applicazioni pratiche di questa funzione:Esempio di caching del contesto di grandi dimensioni
Esempio di caching del contesto di grandi dimensioni
input_tokens: Numero di token nel messaggio dell’utente solocache_creation_input_tokens: Numero di token nell’intero messaggio di sistema, incluso il documento legalecache_read_input_tokens: 0 (nessun hit della cache sulla prima richiesta)
input_tokens: Numero di token nel messaggio dell’utente solocache_creation_input_tokens: 0 (nessuna nuova creazione della cache)cache_read_input_tokens: Numero di token nell’intero messaggio di sistema memorizzato nella cache
Caching delle definizioni di strumenti
Caching delle definizioni di strumenti
cache_control è posizionato sullo strumento finale (get_time) per designare tutti gli strumenti come parte del prefisso statico.Ciò significa che tutte le definizioni di strumenti, incluso get_weather e qualsiasi altro strumento definito prima di get_time, verranno memorizzate nella cache come un singolo prefisso.Questo approccio è utile quando hai un set coerente di strumenti che desideri riutilizzare in più richieste senza rielaborarli ogni volta.Per la prima richiesta:input_tokens: Numero di token nel messaggio dell’utentecache_creation_input_tokens: Numero di token in tutte le definizioni di strumenti e prompt di sistemacache_read_input_tokens: 0 (nessun hit della cache sulla prima richiesta)
input_tokens: Numero di token nel messaggio dell’utentecache_creation_input_tokens: 0 (nessuna nuova creazione della cache)cache_read_input_tokens: Numero di token in tutte le definizioni di strumenti e prompt di sistema memorizzati nella cache
Continuazione di una conversazione multi-turno
Continuazione di una conversazione multi-turno
cache_control in modo che la conversazione possa essere memorizzata nella cache in modo incrementale. Il sistema cercherà automaticamente e utilizzerà il prefisso precedentemente memorizzato nella cache più lungo per i messaggi di follow-up. Cioè, i blocchi che erano precedentemente contrassegnati con un blocco cache_control in seguito non sono contrassegnati con questo, ma saranno comunque considerati un hit della cache (e anche un aggiornamento della cache!) se vengono colpiti entro 5 minuti.Inoltre, nota che il parametro cache_control è posizionato sul messaggio di sistema. Questo è per assicurare che se viene rimosso dalla cache (dopo non essere stato utilizzato per più di 5 minuti), verrà aggiunto di nuovo alla cache sulla richiesta successiva.Questo approccio è utile per mantenere il contesto nelle conversazioni in corso senza rielaborare ripetutamente le stesse informazioni.Quando questo è configurato correttamente, dovresti vedere quanto segue nella risposta di utilizzo di ogni richiesta:input_tokens: Numero di token nel nuovo messaggio dell’utente (sarà minimo)cache_creation_input_tokens: Numero di token nei nuovi turni dell’assistente e dell’utentecache_read_input_tokens: Numero di token nella conversazione fino al turno precedente
Mettere tutto insieme: Più punti di interruzione della cache
Mettere tutto insieme: Più punti di interruzione della cache
-
Cache degli strumenti (punto di interruzione della cache 1): Il parametro
cache_controlsull’ultima definizione di strumento memorizza nella cache tutte le definizioni di strumenti. - Cache delle istruzioni riutilizzabili (punto di interruzione della cache 2): Le istruzioni statiche nel prompt di sistema vengono memorizzate nella cache separatamente. Queste istruzioni cambiano raramente tra le richieste.
- Cache del contesto RAG (punto di interruzione della cache 3): I documenti della base di conoscenza vengono memorizzati nella cache in modo indipendente, consentendoti di aggiornare i documenti RAG senza invalidare la cache degli strumenti o delle istruzioni.
-
Cache della cronologia della conversazione (punto di interruzione della cache 4): La risposta dell’assistente è contrassegnata con
cache_controlper abilitare il caching incrementale della conversazione man mano che progredisce.
- Se aggiorni solo il messaggio dell’utente finale, tutti e quattro i segmenti della cache vengono riutilizzati
- Se aggiorni i documenti RAG ma mantieni gli stessi strumenti e istruzioni, i primi due segmenti della cache vengono riutilizzati
- Se modifichi la conversazione ma mantieni gli stessi strumenti, istruzioni e documenti, i primi tre segmenti vengono riutilizzati
- Ogni punto di interruzione della cache può essere invalidato in modo indipendente in base a ciò che cambia nella tua applicazione
input_tokens: Token nel messaggio dell’utente finalecache_creation_input_tokens: Token in tutti i segmenti memorizzati nella cache (strumenti + istruzioni + documenti RAG + cronologia della conversazione)cache_read_input_tokens: 0 (nessun hit della cache)
input_tokens: Token nel nuovo messaggio dell’utente solocache_creation_input_tokens: Qualsiasi nuovo token aggiunto alla cronologia della conversazionecache_read_input_tokens: Tutti i token precedentemente memorizzati nella cache (strumenti + istruzioni + documenti RAG + conversazione precedente)
- Applicazioni RAG con contesti di documenti di grandi dimensioni
- Sistemi di agenti che utilizzano più strumenti
- Conversazioni di lunga durata che devono mantenere il contesto
- Applicazioni che devono ottimizzare diverse parti del prompt in modo indipendente
Domande frequenti
Ho bisogno di più punti di interruzione della cache o uno alla fine è sufficiente?
Ho bisogno di più punti di interruzione della cache o uno alla fine è sufficiente?
- Hai più di 20 blocchi di contenuto prima del tuo punto di cache desiderato
- Desideri memorizzare nella cache sezioni che si aggiornano a frequenze diverse in modo indipendente
- Hai bisogno di controllo esplicito su cosa viene memorizzato nella cache per l’ottimizzazione dei costi
I punti di interruzione della cache aggiungono costi extra?
I punti di interruzione della cache aggiungono costi extra?
- Scrivere contenuto nella cache (25% in più rispetto ai token di input di base per TTL di 5 minuti)
- Leggere dalla cache (10% del prezzo del token di input di base)
- Token di input regolari per il contenuto non memorizzato nella cache
Qual è la durata della cache?
Qual è la durata della cache?
Quanti punti di interruzione della cache posso utilizzare?
Quanti punti di interruzione della cache posso utilizzare?
cache_control) nel tuo prompt.Il caching dei prompt è disponibile per tutti i modelli?
Il caching dei prompt è disponibile per tutti i modelli?
Come funziona il caching dei prompt con il pensiero esteso?
Come funziona il caching dei prompt con il pensiero esteso?
Come abilito il caching dei prompt?
Come abilito il caching dei prompt?
cache_control nella tua richiesta API.Posso utilizzare il caching dei prompt con altre funzioni dell'API?
Posso utilizzare il caching dei prompt con altre funzioni dell'API?
Come il caching dei prompt influisce sui prezzi?
Come il caching dei prompt influisce sui prezzi?
Posso cancellare manualmente la cache?
Posso cancellare manualmente la cache?
Come posso tracciare l'efficacia della mia strategia di caching?
Come posso tracciare l'efficacia della mia strategia di caching?
cache_creation_input_tokens e cache_read_input_tokens nella risposta dell’API.Cosa può interrompere la cache?
Cosa può interrompere la cache?
Come il caching dei prompt gestisce la privacy e la separazione dei dati?
Come il caching dei prompt gestisce la privacy e la separazione dei dati?
- Le chiavi della cache vengono generate utilizzando un hash crittografico dei prompt fino al punto di controllo della cache. Ciò significa che solo le richieste con prompt identici possono accedere a una cache specifica.
- Le cache sono specifiche dell’organizzazione. Gli utenti all’interno della stessa organizzazione possono accedere alla stessa cache se utilizzano prompt identici, ma le cache non vengono condivise tra diverse organizzazioni, anche per prompt identici.
- Il meccanismo di caching è progettato per mantenere l’integrità e la privacy di ogni conversazione o contesto univoco.
-
È sicuro utilizzare
cache_controlin qualsiasi punto nei tuoi prompt. Per l’efficienza dei costi, è meglio escludere le parti altamente variabili (ad es., input arbitrario dell’utente) dal caching.
Posso utilizzare il caching dei prompt con l'API Batches?
Posso utilizzare il caching dei prompt con l'API Batches?
- Raccogli un set di richieste di messaggi che hanno un prefisso condiviso.
- Invia una richiesta batch con solo una singola richiesta che ha questo prefisso condiviso e un blocco di cache di 1 ora. Questo verrà scritto nella cache di 1 ora.
- Non appena è completo, invia il resto delle richieste. Dovrai monitorare il lavoro per sapere quando è completo.
Perché sto ricevendo l'errore `AttributeError: 'Beta' object has no attribute 'prompt_caching'` in Python?
Perché sto ricevendo l'errore `AttributeError: 'Beta' object has no attribute 'prompt_caching'` in Python?
Perché sto ricevendo 'TypeError: Cannot read properties of undefined (reading 'messages')'?
Perché sto ricevendo 'TypeError: Cannot read properties of undefined (reading 'messages')'?