Puoi utilizzare la memorizzazione nella cache del contesto per i modelli Gemini ottimizzati per migliorare le prestazioni e ridurre i costi per i prompt che includono grandi quantità di contesto. Memorizzando nella cache il contesto utilizzato di frequente, eviti di inviare nuovamente grandi quantità di dati con ogni richiesta al modello ottimizzato.
Le operazioni di gestione (Read, Update, Delete) della cache del contesto per Gemini ottimizzato rimangono coerenti con i modelli di base. Solo la creazione e l'inferenza di contenuti memorizzati nella cache richiedono una regolazione specifica, descritta di seguito.
Prerequisiti
Ottimizzazione di un modello Gemini: devi avere un modello Gemini ottimizzato di cui è stato eseguito il deployment basato su un modello di base supportato (vedi Panoramica della memorizzazione nella cache del contesto). Per informazioni dettagliate su come ottimizzare un modello Gemini, consulta Ottimizzare un modello Gemini. Per ottenere l'endpoint del modello ottimizzato di cui è stato eseguito il deployment, consulta Eseguire il deployment di un modello ottimizzato.
Assicurati di avere le seguenti informazioni:
- L'ID e la versione del modello Gemini ottimizzato
- Il nome della risorsa endpoint per il modello ottimizzato di cui è stato eseguito il deployment
Versioni supportate
I modelli Gemini ottimizzati supportano la memorizzazione nella cache implicita per le seguenti versioni:
- Gemini 3.1 Pro
- Gemini 3.1 Flash-Lite
- Gemini 3 Pro
- Gemini 3 Flash
- Gemini 2.5 Pro
- Gemini 2.5 Flash
- Gemini 2.5 Flash-Lite
La memorizzazione nella cache esplicita è supportata per le seguenti versioni:
- Gemini 3.1 Pro
- Gemini 3.1 Flash-Lite
- Gemini 3 Pro
- Gemini 3 Flash
- Gemini 2.5 Pro
- Gemini 2.5 Flash
- Gemini 2.5 Flash-Lite
- Gemini 2.0 Flash (nota: non supportato in
gemini-2.0-flash-live-preview-04-09) - Gemini 2.0 Flash-Lite
Creare una cache del contesto per un modello ottimizzato
La procedura per creare una cache del contesto per un modello ottimizzato segue in gran parte i passaggi descritti in Creare una cache del contesto. Consulta la documentazione collegata per la procedura generale. Questa guida si concentra sulla differenza tra la creazione di una cache del contesto per i modelli Gemini ottimizzati.
Anziché utilizzare il modello di base nel formato projects/{PROJECT}/locations/{LOCATION}/publishers/google/models/{MODEL}, devi utilizzare il modello ottimizzato nel formato projects/{PROJECT}/locations/{LOCATION}/models/{MODEL}@{VERSION}.
Gli esempi seguenti mostrano come creare una cache del contesto con un modello Gemini ottimizzato.
REST
Puoi utilizzare REST per creare una cache del 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 del contesto utilizzando un file archiviato in un bucket Cloud Storage bucket.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: il tuo ID progetto.
- LOCATION: la regione in cui elaborare la richiesta e in cui sono archiviati i contenuti memorizzati nella cache. Per un elenco delle regioni supportate, consulta Regioni disponibili.
- MODEL_ID: l'ID del modello Gemini ottimizzato.
- MODEL_VERSION: la versione del modello Gemini ottimizzato.
- CACHE_DISPLAY_NAME: un nome visualizzato significativo per descrivere e aiutarti a identificare ogni cache del contesto.
- MIME_TYPE: il 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/v1/projects/PROJECT_ID/locations/LOCATION/cachedContents
Corpo JSON della richiesta:
{
"model": "projects/PROJECT_ID/locations/LOCATION/models/MODEL_ID@MODEL_VERSION",
"displayName": "CACHE_DISPLAY_NAME",
"contents": [{
"role": "user",
"parts": [{
"fileData": {
"mimeType": "MIME_TYPE",
"fileUri": "CONTENT_TO_CACHE_URI"
}
}]
}]
}
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json,
quindi esegui il comando seguente:
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/v1/projects/PROJECT_ID/locations/LOCATION/cachedContents"
PowerShell
Salva il corpo della richiesta in un file denominato request.json,
quindi esegui il comando seguente:
$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/v1/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="model-id"
PROJECT_ID="test-project"
MODEL_VERSION=1
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}/cachedContents -d \
'{
"model":"projects/${PROJECT_ID}/locations/${LOCATION}/models/${MODEL_ID}@${MODEL_VERSION}",
"contents": [
{
"role": "user",
"parts": [
{
"fileData": {
"mimeType": "${MIME_TYPE}",
"fileUri": "${CACHED_CONTENT_URI}"
}
}
]
}
]
}'
Utilizzare una cache del contesto per un modello ottimizzato
La procedura per utilizzare una cache del contesto per un modello ottimizzato segue in gran parte i passaggi descritti in Utilizzare una cache del contesto. Consulta la documentazione collegata per la procedura generale. Questa guida si concentra sulla differenza tra l'utilizzo di una cache del contesto per i modelli Gemini ottimizzati.
Anziché inviare la richiesta all'endpoint del modello di base nel formato projects/{PROJECT}/locations/{LOCATION}/publishers/google/models/{MODEL}, devi inviarla all'endpoint del modello ottimizzato di cui è stato eseguito il deployment nel formato projects/{PROJECT}/locations/{LOCATION}/endpoints/{ENDPOINT_ID}.
L'esempio di codice seguente mostra come utilizzare una cache del contesto con un modello Gemini ottimizzato.
Quando utilizzi una cache del contesto, non puoi specificare le seguenti proprietà:
GenerativeModel.system_instructionsGenerativeModel.tool_configGenerativeModel.tools
REST
Puoi utilizzare REST per specificare una cache del contesto con un prompt utilizzando l' API Vertex AI per inviare una richiesta POST all'endpoint del modello del publisher.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: il tuo ID progetto.
- LOCATION: la regione in cui è stata elaborata la richiesta di creazione della cache del contesto.
- ENDPOINT_ID: l'endpoint in cui è stato eseguito il deployment del modello ottimizzato.
- MIME_TYPE: il prompt di testo da inviare al modello.
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID:generateContent
Corpo JSON della richiesta:
{
"cachedContent": "projects/PROJECT_NUMBER/locations/LOCATION/cachedContents/CACHE_ID",
"contents": [
{"role":"user","parts":[{"text":"PROMPT_TEXT"}]}
],
"generationConfig": {
"maxOutputTokens": 8192,
"temperature": 1,
"topP": 0.95,
},
"safetySettings": [
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_HARASSMENT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
}
],
}
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json,
quindi esegui il comando seguente:
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/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID:generateContent"
PowerShell
Salva il corpo della richiesta in un file denominato request.json,
e quindi esegui il comando seguente:
$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/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID:generateContent" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente.
Comando curl di esempio
LOCATION="us-central1"
PROJECT_ID="test-project"
ENDPOINT_ID=987654321
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}/endpoints/${ENDPOINT_ID}:generateContent" -d \
'{
"cachedContent": "projects/${PROJECT_NUMBER}/locations/${LOCATION}/cachedContents/${CACHE_ID}",
"contents": [
{"role":"user","parts":[{"text":"What are the benefits of exercise?"}]}
],
"generationConfig": {
"maxOutputTokens": 8192,
"temperature": 1,
"topP": 0.95,
},
"safetySettings": [
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_HARASSMENT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
}
],
}'