Sie können das Kontext-Caching für Ihre optimierten Gemini-Modelle verwenden, um die Leistung zu verbessern und die Kosten für Prompts mit großen Mengen an Kontext zu senken. Durch das Caching häufig verwendeter Kontexte vermeiden Sie, dass bei jeder Anfrage große Datenmengen an Ihr optimiertes Modell gesendet werden.
Die Verwaltungsvorgänge (Read
, Update
, Delete
) des Kontext-Caches für abgestimmte Gemini-Modelle bleiben mit den Basismodellen identisch. Nur die Erstellung und Inferenz von Inhalten im Cache erfordert eine spezielle Anpassung, die unten beschrieben wird.
Unterstützte Modelle
Das Kontext-Caching wird für Modelle unterstützt, die anhand des folgenden Basismodells optimiert wurden:
gemini-2.0-flash-001
Vorbereitung
Gemini-Modell optimieren:Sie benötigen ein bereitgestelltes, optimiertes Gemini-Modell, das auf einem unterstützten Basismodell basiert (siehe Unterstützte Modelle). Weitere Informationen zur Feinabstimmung eines Gemini-Modells finden Sie unter Gemini-Modell optimieren. Informationen zum Abrufen des Endpunkts für Ihr bereitgestelltes, optimiertes Modell finden Sie unter Abgestimmtes Modell bereitstellen.
Du benötigst Folgendes:
- Die ID und die Version des optimierten Gemini-Modells
- Der Name der Endpunktressource für das bereitgestellte optimierte Modell
Kontext-Cache für ein abgestimmtes Modell erstellen
Das unterstützte Basismodell ist unter Unterstützte Modelle aufgeführt.
Das Erstellen eines Kontext-Caches für ein optimiertes Modell entspricht weitgehend den Schritten unter Kontext-Cache erstellen. In der verlinkten Dokumentation finden Sie Informationen zum allgemeinen Prozess. In diesem Leitfaden geht es um die Unterschiede beim Erstellen des Kontext-Caches für optimierte Gemini-Modelle.
Anstatt das Basismodell im Format projects/{PROJECT}/locations/{LOCATION}/publishers/google/models/{MODEL}
zu verwenden, müssen Sie das optimierte Modell im Format projects/{PROJECT}/locations/{LOCATION}/models/{MODEL}@{VERSION}
verwenden.
In den folgenden Beispielen wird gezeigt, 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 Vertex AI 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 und die im Cache gespeicherten Inhalte 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 optimierte Gemini-Modellversion.
- CACHE_DISPLAY_NAME: Ein aussagekräftiger Anzeigename, der jeden Kontext-Cache beschreibt und bei der Identifizierung hilft.
- MIME_TYPE: Der MIME-Typ der zu cachenden Inhalte.
- 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" } }] }, { "role": "model", "parts": [{ "text": "This is sample text to demonstrate explicit caching." }] }] }
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 in etwa folgende JSON-Antwort 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 Verwendung eines Kontext-Caches für ein optimiertes Modell entspricht weitgehend den Schritten unter Kontext-Cache verwenden. In der verlinkten Dokumentation finden Sie Informationen zum allgemeinen Ablauf. In diesem Leitfaden liegt der Schwerpunkt auf den Unterschieden bei der Verwendung des Kontext-Caches für optimierte Gemini-Modelle.
Anstatt die Anfrage in Form von projects/{PROJECT}/locations/{LOCATION}/publishers/google/models/{MODEL}
an den Endpunkt des Basismodells zu senden, müssen Sie sie in Form von projects/{PROJECT}/locations/{LOCATION}/endpoints/{ENDPOINT_ID}
an den Endpunkt Ihres bereitgestellten optimierten Modells senden.
Im folgenden Codebeispiel wird gezeigt, wie ein Kontext-Cache mit einem optimierten Gemini-Modell verwendet wird.
Wenn Sie einen Kontext-Cache verwenden, können Sie die folgenden Properties nicht angeben:
GenerativeModel.system_instructions
GenerativeModel.tool_config
GenerativeModel.tools
REST
Sie können mit REST einen Kontext-Cache mit einem Prompt angeben. Dazu senden Sie mit der Vertex AI 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.
- MIME_TYPE: 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"
}
],
}'