L'oggetto cache del contesto che utilizzi nel codice include le seguenti proprietà:
name
: il nome della risorsa della cache contestuale. Il formato èprojects/PROJECT_NUMBER/locations/LOCATION/cachedContents/CACHE_ID
. Quando crei una cache contestuale, puoi trovare il nome della risorsa nella risposta. Il numero di progetto è un identificatore univoco del progetto. L'ID cache è un ID per la tua cache. Quando specifichi una cache del contesto nel tuo codice, devi utilizzare il nome completo della risorsa della cache del contesto. Di seguito è riportato un esempio che mostra come specificare il nome di una risorsa di contenuti memorizzata nella cache nel corpo di una richiesta:"cached_content": "projects/123456789012/locations/us-central1/123456789012345678"
model
: il nome della risorsa per il modello utilizzato per creare la cache. Il formato èprojects/PROJECT_NUMBER/locations/LOCATION/publishers/PUBLISHER_NAME/models/MODEL_ID
.createTime
: unTimestamp
che specifica l'ora di creazione della cache del contesto.updateTime
: unTimestamp
che specifica l'ora dell'aggiornamento più recente di una cache del contesto. Dopo la creazione di una cache contestuale e prima dell'aggiornamento, i relativicreateTime
eupdateTime
sono uguali.expireTime
: unTimestamp
che specifica la scadenza di una cache contestuale. IlexpireTime
predefinito è 60 minuti dopo ilcreateTime
. Puoi aggiornare la cache con un nuovo tempo di scadenza. Per ulteriori informazioni, vedi Aggiornare la cache del contesto. Una volta scaduta, una cache viene contrassegnata per l'eliminazione e non devi presumere che possa essere utilizzata o aggiornata. Se devi utilizzare una cache di contesto scaduta, devi ricrearla con un tempo di scadenza appropriato.
Limitazioni all'utilizzo della cache contestuale
Quando crei una cache contestuale, puoi specificare le seguenti funzionalità. Non devi specificarli di nuovo nella richiesta:
La proprietà
GenerativeModel.system_instructions
. Questa proprietà viene utilizzata per specificare le istruzioni per il modello prima che riceva istruzioni da un utente. Per ulteriori informazioni, consulta le istruzioni di sistema.La proprietà
GenerativeModel.tool_config
. La proprietàtool_config
viene utilizzata per specificare gli strumenti utilizzati dal modello Gemini, ad esempio uno strumento utilizzato dalla funzionalità chiamata di funzione.La proprietà
GenerativeModel.tools
. La proprietàGenerativeModel.tools
viene utilizzata per specificare le funzioni per creare un'applicazione di chiamata di funzione. Per ulteriori informazioni, vedi Chiamata di funzioni.
Utilizzare un esempio di cache contestuale
Di seguito viene mostrato come utilizzare una cache di contesto. Quando utilizzi una cache di contesto, non puoi specificare le seguenti proprietà:
GenerativeModel.system_instructions
GenerativeModel.tool_config
GenerativeModel.tools
Python
Installa
pip install --upgrade google-genai
Per saperne di più, consulta la documentazione di riferimento dell'SDK.
Imposta le variabili di ambiente per utilizzare l'SDK Gen AI con Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=us-central1 export GOOGLE_GENAI_USE_VERTEXAI=True
Go
Scopri come installare o aggiornare Go.
Per saperne di più, consulta la documentazione di riferimento dell'SDK.
Imposta le variabili di ambiente per utilizzare l'SDK Gen AI con Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=us-central1 export GOOGLE_GENAI_USE_VERTEXAI=True
REST
Puoi utilizzare REST per utilizzare una cache contestuale 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 seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto
- LOCATION: la regione in cui è stata elaborata la richiesta di creazione della cache contestuale.
- 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/publishers/google/models/gemini-2.0-flash-001: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/publishers/google/models/gemini-2.0-flash-001: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/publishers/google/models/gemini-2.0-flash-001:generateContent" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente.
Comando curl di esempio
LOCATION="us-central1"
MODEL_ID="gemini-2.0-flash-001"
PROJECT_ID="test-project"
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}: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"
}
],
}'
- Scopri come aggiornare il tempo di scadenza di una cache contestuale.
- Scopri come creare una nuova cache contestuale.
- Scopri come ottenere informazioni su tutte le cache contestuali associate a un progetto Google Cloud .
- Scopri come eliminare una cache contestuale.