Sie können Kontext-Caching für Ihre optimierten Gemini-Modelle verwenden, um die Leistung zu verbessern und die Kosten für Prompts zu senken, die große Mengen an Kontext enthalten. Durch das Caching häufig verwendeter Kontexte vermeiden Sie es, große Datenmengen mit jeder Anfrage an Ihr optimiertes Modell zu senden.
Die Verwaltungsvorgänge (Read, Update, Delete) des Kontext-Cache für optimierte Gemini-Modelle bleiben mit den Basismodellen identisch. Nur die Erstellung und Inferenz von Inhalten im Cache erfordern eine bestimmte Anpassung, die in den folgenden Abschnitten beschrieben wird.
Vorbereitung
Gemini-Modell optimieren: Sie benötigen ein bereitgestelltes optimiertes Gemini-Modell, das auf einem unterstützten Basismodell basiert (siehe Übersicht zum Kontext-Caching). Weitere Informationen zum Optimieren eines Gemini-Modells finden Sie unter Gemini-Modell optimieren. Informationen zum Abrufen des Endpunkts für Ihr bereitgestelltes optimiertes Modell finden Sie unter Optimiertes Modell bereitstellen.
Sie benötigen die folgenden Informationen:
- Die ID und die Version des optimierten Gemini-Modells
- Der Name der Endpunktressource für das bereitgestellte optimierte Modell
Unterstützte Versionen
Optimierte Gemini-Modelle unterstützen das implizite Caching für die folgenden Versionen:
- 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
Das explizite Caching wird für die folgenden Versionen unterstützt:
- 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
Kontext-Cache für ein optimiertes Modell erstellen
Die Vorgehensweise zum Erstellen eines Kontext-Cache für ein optimiertes Modell entspricht weitgehend den Schritten unter Kontext-Cache erstellen. In der verlinkten Dokumentation finden Sie die allgemeine Vorgehensweise. In diesem Leitfaden wird der Unterschied beim Erstellen eines Kontext-Cache für optimierte Gemini-Modelle beschrieben.
Anstelle des Basismodells im Format projects/{PROJECT}/locations/{LOCATION}/publishers/google/models/{MODEL} müssen Sie Ihr optimiertes Modell im Format projects/{PROJECT}/locations/{LOCATION}/models/{MODEL}@{VERSION} verwenden.
Die folgenden Beispiele zeigen, wie Sie einen Kontext-Cache mit einem optimierten Gemini-Modell erstellen.
REST
Sie können mit REST einen Kontext-Cache erstellen. Dazu senden Sie mit der Agent Platform API eine POST-Anfrage an den Endpunkt des Publisher-Modells. Im folgenden Beispiel wird gezeigt, wie ein Kontext-Cache mithilfe einer in einem Cloud Storage Bucket gespeicherten Datei erstellt wird.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Ihre Projekt-ID. .
- LOCATION: Die Region, in der die Anfrage verarbeitet wird und in der die Inhalte im Cache gespeichert werden. Eine Liste der unterstützten Regionen finden Sie unter Verfügbare Regionen.
- MODEL_ID: Die ID des optimierten Gemini-Modells.
- MODEL_VERSION: Die Version des optimierten Gemini-Modells.
- CACHE_DISPLAY_NAME: Ein aussagekräftiger Anzeigename, mit dem Sie die einzelnen Kontext-Caches beschreiben und identifizieren können.
- MIME_TYPE: Der MIME-Typ der Inhalte, die im Cache gespeichert werden sollen.
- CONTENT_TO_CACHE_URI: Der Cloud Storage-URI der Inhalte, die im Cache gespeichert werden sollen.
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cachedContents
JSON-Text der Anfrage:
{
"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"
}
}]
}]
}
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:
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
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:
$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
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Beispiel: cURL-Befehls
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}"
}
}
]
}
]
}'
Kontext-Cache für ein optimiertes Modell verwenden
Die Vorgehensweise zum Verwenden eines Kontext-Cache für ein optimiertes Modell entspricht weitgehend den Schritten unter Kontext-Cache verwenden. In der verlinkten Dokumentation finden Sie die allgemeine Vorgehensweise. In diesem Leitfaden wird der Unterschied beim Verwenden eines Kontext-Cache für optimierte Gemini-Modelle beschrieben.
Anstelle der Anfrage an den Endpunkt des Basismodells im Format projects/{PROJECT}/locations/{LOCATION}/publishers/google/models/{MODEL} müssen Sie sie an den Endpunkt Ihres bereitgestellten optimierten Modells im Format projects/{PROJECT}/locations/{LOCATION}/endpoints/{ENDPOINT_ID} senden.
Das folgende Codebeispiel zeigt, wie Sie einen Kontext-Cache mit einem optimierten Gemini-Modell verwenden.
Wenn Sie einen Kontext-Cache verwenden, können Sie die folgenden Attribute nicht angeben:
GenerativeModel.system_instructionsGenerativeModel.tool_configGenerativeModel.tools
REST
Sie können mit REST einen Kontext-Cache mit einem Prompt angeben. Dazu senden Sie mit der Agent Platform API eine POST-Anfrage an den Endpunkt des Publisher-Modells.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Ihre Projekt-ID. .
- LOCATION: Die Region, in der die Anfrage zum Erstellen des Kontext-Cache verarbeitet wurde.
- ENDPOINT_ID: Der Endpunkt, an dem das optimierte Modell bereitgestellt wird.
- PROMPT_TEXT: Der Text-Prompt, der an das Modell gesendet werden soll.
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID:generateContent
JSON-Text der Anfrage:
{
"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"
}
],
}
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:
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
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:
$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
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Beispiel: cURL-Befehls
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"
}
],
}'