Das Kontext-Cache-Objekt, das Sie in Ihrem Code verwenden, enthält die folgenden Eigenschaften:
name
: Der Name der Kontext-Cache-Ressource. Das Format istprojects/PROJECT_NUMBER/locations/LOCATION/cachedContents/CACHE_ID
. Wenn Sie einen Kontext-Cache erstellen, finden Sie den Ressourcennamen in der Antwort. Die Projektnummer ist eine eindeutige Kennung für Ihr Projekt. Die Cache-ID ist eine ID für Ihren Cache. Wenn Sie in Ihrem Code einen Kontext-Cache angeben, müssen Sie den vollständigen Ressourcennamen des Kontext-Cache verwenden. Im folgenden Beispiel wird gezeigt, wie du den Namen einer im Cache gespeicherten Inhaltsressource in einem Anfragetext angibst:"cached_content": "projects/123456789012/locations/us-central1/123456789012345678"
model
: Der Ressourcenname des Modells, mit dem der Cache erstellt wurde. Das Format istprojects/PROJECT_NUMBER/locations/LOCATION/publishers/PUBLISHER_NAME/models/MODEL_ID
.createTime
: EinTimestamp
, das die Erstellungszeit des Kontext-Caches angibt.updateTime
: EinTimestamp
, das die letzte Aktualisierungszeit eines Kontext-Caches angibt. Nach der Erstellung eines Kontext-Caches und vor seiner Aktualisierung sindcreateTime
undupdateTime
identisch.expireTime
: EinTimestamp
, das angibt, wann ein Kontext-Cache abläuft. Der Standardwert fürexpireTime
ist 60 Minuten nachcreateTime
. Sie können den Cache mit einer neuen Ablaufzeit aktualisieren. Weitere Informationen finden Sie unter Kontext-Cache aktualisieren. Nach Ablauf eines Caches wird er zum Löschen markiert und kann nicht mehr verwendet oder aktualisiert werden. Wenn Sie einen abgelaufenen Kontext-Cache verwenden möchten, müssen Sie ihn mit einer entsprechenden Gültigkeitsdauer neu erstellen.
Einschränkungen bei der Verwendung des Kontext-Cache
Beim Erstellen eines Kontext-Caches können Sie die folgenden Funktionen angeben. Geben Sie diese Informationen nicht noch einmal in Ihrer Anfrage an:
Das Attribut
GenerativeModel.system_instructions
. Mit dieser Property können Sie dem Modell Anweisungen geben, bevor es Anweisungen von einem Nutzer erhält. Weitere Informationen finden Sie in der Systemanleitung.Das Attribut
GenerativeModel.tool_config
. Mit der Propertytool_config
werden Tools angegeben, die vom Gemini-Modell verwendet werden, z. B. ein Tool, das für die Funktion Funktionsaufruf verwendet wird.Das Attribut
GenerativeModel.tools
. Mit der PropertyGenerativeModel.tools
werden Funktionen zum Erstellen einer Anwendung für Funktionsaufrufe angegeben. Weitere Informationen finden Sie unter Funktionsaufrufe.
Beispiel für einen Kontext-Cache verwenden
Im Folgenden wird gezeigt, wie ein Kontext-Cache verwendet wird. Wenn Sie einen Kontext-Cache verwenden, können Sie die folgenden Properties nicht angeben:
GenerativeModel.system_instructions
GenerativeModel.tool_config
GenerativeModel.tools
Gen AI SDK for Python
Installieren
pip install --upgrade google-genai
Legen Sie Umgebungsvariablen fest, um das Gen AI SDK mit Vertex AI zu verwenden:
# 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
Sie können mit REST einen Kontext-Cache mit einem Prompt verwenden. 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.
- 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/publishers/google/models/gemini-1.5-pro-002: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/publishers/google/models/gemini-1.5-pro-002: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/publishers/google/models/gemini-1.5-pro-002:generateContent" | Select-Object -Expand Content
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Beispiel: cURL-Befehls
LOCATION="us-central1"
MODEL_ID="gemini-1.5-pro-002"
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"
}
],
}'
- Ablaufzeit eines Kontext-Cache aktualisieren
- Weitere Informationen zum Erstellen eines neuen Kontext-Cache
- Informationen zu allen Kontext-Caches abrufen, die mit einem Google Cloud-Projekt verknüpft sind
- Kontext-Cache löschen