Devi creare una cache di contesto prima di poterla utilizzare. La cache di contesto che crei contiene una grande quantità di dati che puoi utilizzare in più richieste a un modello Gemini. I contenuti memorizzati nella cache vengono archiviati nella regione in cui richiedi di creare la cache.
I contenuti memorizzati nella cache possono essere uno qualsiasi dei tipi MIME supportati dai modelli multimodali Gemini. Ad esempio, puoi memorizzare nella cache una grande quantità di testo, audio o video. Puoi specificare più di un file da memorizzare nella cache. Per ulteriori informazioni, consulta i seguenti requisiti per i contenuti multimediali:
Puoi specificare i contenuti da memorizzare nella cache utilizzando un blob, un testo o un percorso di un file archiviato in un bucket Cloud Storage. Se le dimensioni dei contenuti di cui stai memorizzando la cache sono superiori a 10 MB, devi specificarle utilizzando l'URI di un file archiviato in un bucket Cloud Storage.
I contenuti memorizzati nella cache hanno una durata limitata. La scadenza predefinita di una cache
di contesto è di 60 minuti dopo la sua creazione. Se vuoi una scadenza diversa,
puoi specificarne una diversa utilizzando la proprietà ttl
o expire_time
quando crei una cache di contesto. Puoi anche aggiornare la scadenza
di una cache di contesto non scaduta. Per informazioni su come specificare ttl
e expire_time
, consulta Aggiornare la data di scadenza.
Quando una cache contestuale scade, non è più disponibile. Se vuoi fare riferimento ai contenuti di una cache di contesto scaduta nelle richieste di prompt future, dovrai ricreare la cache di contesto.
Limiti della cache del contesto
I contenuti memorizzati nella cache devono rispettare i seguenti limiti:
Limiti di memorizzazione nella cache del contesto | |
---|---|
Dimensioni minime di una cache |
32.769 token |
Dimensione massima dei contenuti che puoi memorizzare nella cache utilizzando un blob o un testo |
10 MB |
Tempo minimo prima della scadenza di una cache dopo la creazione |
1 minuto |
Tempo massimo prima della scadenza di una cache dopo la creazione |
Non esiste una durata massima della cache |
Esempio di creazione di una cache di contesto
Di seguito viene illustrato come creare una cache di contesto.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, vedi Installare l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI SDK per Python.
Risposte dinamiche e non dinamiche
Puoi scegliere se il modello genera risposte in streaming o non in streaming. Per le risposte dinamiche, ricevi ogni risposta non appena viene generato il relativo token di output. Per le risposte non in streaming, riceverai tutte le risposte dopo che sono stati generati tutti i token di output.
Per una risposta in modalità flusso, utilizza il parametro stream
in
generate_content
.
response = model.generate_content(contents=[...], stream = True)
Per una risposta non in streaming, rimuovi il parametro o impostalo su
False
.
Codice di esempio
REST
Puoi utilizzare REST per creare una cache di contesto utilizzando l'API Vertex AI per inviare una richiesta POST all'endpoint del modello del publisher. L'esempio seguente mostra come creare una cache di contesto utilizzando un file archiviato in un bucket Cloud Storage.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto.
- LOCATION: la regione in cui elaborare la richiesta e dove sono archiviati i contenuti memorizzati nella cache. Per un elenco delle regioni supportate, vedi Regioni disponibili.
- MIME_TYPE: tipo MIME dei contenuti da memorizzare nella cache.
- CONTENT_TO_CACHE_URI: l'URI Cloud Storage dei contenuti da memorizzare nella cache.
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/cachedContents
Corpo JSON della richiesta:
{ "model": "projects/PROJECT_ID/locations/LOCATION/publishers/google/models/gemini-1.5-pro-001", "contents": [{ "role": "user", "parts": [{ "fileData": { "mimeType": "MIME_TYPE", "fileUri": "CONTENT_TO_CACHE_URI" } }] }, { "role": "model", "parts": [{ "text": "This is sample text to demonstrate explicit caching." }] }] }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/cachedContents"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/cachedContents" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
Comando curl di esempio
LOCATION="us-central1"
MODEL_ID="gemini-1.5-pro-001"
PROJECT_ID="test-project"
MIME_TYPE="video/mp4"
CACHED_CONTENT_URI="gs://path-to-bucket/video-file-name.mp4"
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}/cachedContents -d \
'{
"model":"projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}",
"contents": [
{
"role": "user",
"parts": [
{
"fileData": {
"mimeType": "${MIME_TYPE}",
"fileUri": "${CACHED_CONTENT_URI}"
}
}
]
}
]
}'
Passaggi successivi
- Scopri come utilizzare una cache di contesto.
- Scopri come aggiornare la data e l'ora di scadenza di una cache di contesto.