Memorizzazione nella cache di contesto

In un tipico flusso di lavoro IA, potresti passare sempre gli stessi token di input a un modello. Con la funzionalità di memorizzazione nella cache del contesto dell'API Gemini, puoi passare alcuni contenuti al modello una volta, memorizzare nella cache i token di input e quindi fare riferimento ai token memorizzati nella cache per le richieste successive. In alcuni volumi, l'utilizzo di token memorizzati nella cache ha un costo inferiore (e può avere una latenza inferiore) rispetto al passaggio ripetuto nello stesso corpus di token.

Quando memorizzi nella cache un insieme di token, puoi scegliere la durata della cache prima che i token vengano eliminati automaticamente. Questa durata della memorizzazione nella cache è denominata time to live (TTL). Il costo della memorizzazione nella cache dipende dalle dimensioni del token di input e da quanto tempo devono durare.

La memorizzazione nella cache del contesto supporta sia Gemini 1.5 Pro che Gemini 1.5 Flash.

Quando utilizzare la memorizzazione nella cache di contesto

La memorizzazione nella cache del contesto è particolarmente adatta agli scenari in cui richieste più brevi fanno riferimento ripetutamente a un contesto iniziale sostanziale. Valuta la possibilità di utilizzare la memorizzazione nella cache di contesto per casi d'uso quali:

  • Chatbot con complete istruzioni di sistema
  • Analisi ripetitiva di file video di lunga durata
  • Query ricorrenti su set di documenti di grandi dimensioni
  • Analisi frequenti del repository di codice o correzione di bug

In che modo la memorizzazione nella cache riduce i costi

La memorizzazione nella cache del contesto è una funzionalità a pagamento progettata per ridurre i costi operativi complessivi. La fatturazione si basa sui seguenti fattori:

  1. Conteggio token cache: il numero di token di input memorizzati nella cache, fatturati a una tariffa ridotta quando inclusi nei prompt successivi.
  2. Durata dell'archiviazione: la quantità di tempo di archiviazione (TTL) dei token memorizzati nella cache, fatturata ogni ora. Non ci sono limiti minimi o massimi sul TTL.
  3. Altri fattori: vengono applicati altri addebiti, ad esempio per i token di input e di output non memorizzati nella cache.

Per i dettagli aggiornati sui prezzi, consulta la pagina dei prezzi dell'API Gemini. Per informazioni su come contare i token, consulta la Guida ai token.

Come utilizzare la memorizzazione nella cache di contesto

Questa sezione presuppone che tu abbia installato un SDK Gemini e configurato una chiave API, come mostrato nella quickstart.

Ulteriori considerazioni

Quando utilizzi la memorizzazione nella cache di contesto, tieni presente le seguenti considerazioni:

  • Il numero minimo di token di input per la memorizzazione nella cache del contesto è pari a 32.768 e il massimo è uguale al numero massimo per il modello specificato. Per ulteriori informazioni sul conteggio dei token, consulta la Guida ai token.
  • Puoi impostare la durata (TTL) per la cache, come mostrato nel codice di esempio. Se non viene configurato, il TTL predefinito è 1 ora.
  • Il modello non fa alcuna distinzione tra token memorizzati nella cache e normali token di input. I contenuti memorizzati nella cache sono semplicemente un prefisso del prompt.
  • Il servizio di memorizzazione nella cache fornisce un'operazione di eliminazione per rimuovere manualmente i contenuti dalla cache. Per maggiori dettagli, consulta la documentazione dell'SDK che preferisci.
  • Per il livello a pagamento, non sono previsti limiti di tariffa o di utilizzo speciali per la memorizzazione nella cache del contesto; si applicano i limiti di frequenza standard per GenerateContent e i limiti di token includono i token memorizzati nella cache. Per il livello senza costi aggiuntivi, è previsto un limite di archiviazione di 1 milione di token per Gemini 1.5 Flash e la memorizzazione nella cache non è disponibile per Gemini 1.5 Pro.
  • Non è possibile recuperare o visualizzare i contenuti memorizzati nella cache, ma puoi recuperare i metadati (name, display_name, model e date di creazione, aggiornamento e scadenza).
  • È possibile impostare un nuovo ttl o expire_time. Non è possibile modificare qualsiasi altra informazione riguardo ai contenuti memorizzati nella cache.
  • Il numero di token memorizzati nella cache viene restituito in usage_metadata dalle operazioni di creazione, recupero e elenco del servizio di cache, nonché in GenerateContent quando viene utilizzata la cache.