Puoi utilizzare la memorizzazione nella cache del contesto per i tuoi modelli Gemini sottoposti a fine-tuning 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 grandi quantità di dati a ogni richiesta al modello sottoposto a fine tuning.
Le operazioni di gestione (Read, Update, Delete) della cache del contesto per i modelli Gemini ottimizzati rimangono coerenti con i modelli di base. Solo la creazione e l'inferenza dei contenuti memorizzati nella cache richiedono un aggiustamento specifico, descritto in dettaglio nelle sezioni seguenti.
Prerequisiti
Ottimizzazione di un modello Gemini:devi disporre di un modello Gemini ottimizzato e 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 Ottimizza 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 disporre delle seguenti informazioni:
- L'ID e la versione del modello Gemini ottimizzato
- Il nome della risorsa endpoint per il modello sottoposto a fine tuning 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
Crea una cache del contesto per un modello ottimizzato
La procedura per creare una cache del contesto per un modello sottoposto a fine tuning segue in gran parte i passaggi descritti in Crea una cache del contesto. Consulta la documentazione collegata per la procedura generale. Questa guida si concentra sulla differenza tra la creazione della cache contestuale per i modelli Gemini sottoposti a fine tuning.
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 riportati di seguito mostrano come creare una cache contestuale con un modello Gemini ottimizzato.
REST
Puoi utilizzare REST per creare una cache del contesto utilizzando l'API Agent Platform per inviare una richiesta POST all'endpoint del modello del publisher. L'esempio seguente mostra come creare una cache contestuale utilizzando un file archiviato in un bucket Cloud Storage.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: Il tuo [ID progetto](/resource-manager/docs/creating-managing-projects#identifiers). .
- LOCATION: la regione in cui elaborare la richiesta e in cui viene archiviato il contenuto memorizzato nella cache. Per un elenco delle regioni supportate, consulta Regioni disponibili.
- MODEL_ID: l'ID del modello Gemini sottoposto a fine-tuning.
- MODEL_VERSION: la versione del modello Gemini ottimizzata.
- 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 contestuale per un modello ottimizzato
La procedura per utilizzare una cache contestuale per un modello ottimizzato segue in gran parte i passaggi descritti in Utilizzare una cache contestuale. Consulta la documentazione collegata per la procedura generale. Questa guida si concentra sulla differenza di utilizzo della cache contestuale 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 sottoposto a fine-tuning di cui hai eseguito il deployment nel formato projects/{PROJECT}/locations/{LOCATION}/endpoints/{ENDPOINT_ID}.
Il seguente esempio di codice mostra come utilizzare una cache contestuale con un modello Gemini ottimizzato.
Quando utilizzi una cache di contesto, non puoi specificare le seguenti proprietà:
GenerativeModel.system_instructionsGenerativeModel.tool_configGenerativeModel.tools
REST
Puoi utilizzare REST per specificare una cache di contesto con un prompt utilizzando l'API Agent Platform 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](/resource-manager/docs/creating-managing-projects#identifiers). .
- LOCATION: la regione in cui è stata elaborata la richiesta di creazione della cache del contesto.
- ENDPOINT_ID: l'endpoint in cui viene eseguito il deployment del modello sottoposto a fine tuning.
- PROMPT_TEXT: 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,
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"
}
],
}'