Sie müssen einen Kontext-Cache erstellen, bevor Sie ihn verwenden können. Der von Ihnen erstellte Kontext-Cache enthält eine große Datenmenge, die Sie in verschiedenen Anfragen an ein Gemini-Modell verwenden können. Der im Cache gespeicherte Inhalt wird in der Region gespeichert, in der Sie die Anfrage zum Erstellen des Caches stellen.
Im Cache gespeicherte Inhalte können beliebige, von multimodalen Gemini-Modellen unterstützte MIME-Typen haben. Sie können beispielsweise eine große Menge an Text, Audio oder Video im Cache speichern. Sie können mehrere Dateien für den Cache angeben. Weitere Informationen finden Sie in den folgenden Medienanforderungen:
Sie geben den im Cache zu speichernden Inhalt mithilfe eines Blobs, Textes oder eines Pfads zu einer Datei an, die in einem Cloud Storage-Bucket gespeichert ist. Wenn die Größe des Inhalts, den Sie im Cache speichern, 10 MB übersteigt, müssen Sie ihn mit dem URI einer Datei angeben, die in einem Cloud Storage-Bucket gespeichert ist.
Im Cache gespeicherte Inhalte haben eine begrenzte Lebensdauer. Die Standardablaufzeit eines Kontext-Caches beträgt 60 Minuten nach seiner Erstellung. Wenn Sie eine andere Ablaufzeit verwenden möchten, können Sie beim Erstellen eines Kontext-Caches mit dem Attribut ttl
oder expire_time
eine andere Ablaufzeit angeben. Sie können weiter die Ablaufzeit für einen noch nicht abgelaufenen Kontext-Cache aktualisieren. Informationen zum Angeben von ttl
und expire_time
finden Sie unter Ablaufzeit aktualisieren.
Nachdem ein Kontext-Cache abgelaufen ist, ist er nicht mehr verfügbar. Wenn Sie in zukünftigen Prompt-Anfragen auf den Inhalt in einem abgelaufenen Kontext-Cache verweisen möchten, müssen Sie den Kontext-Cache neu erstellen.
Kontext-Cache-Limits
Für die Inhalte, die Sie im Cache speichern, gelten die folgenden Beschränkungen:
Limits für das Kontext-Caching | |
---|---|
Mindestgröße eines Caches |
32.769 Tokens |
Maximale Größe von Inhalten, die Sie mit einem Blob oder Text im Cache speichern können |
10 MB |
Mindestzeit, bevor ein Cache nach seiner Erstellung abläuft |
1 Minute |
Maximale Zeit, bevor ein Cache nach dessen Erstellung abläuft |
Es gibt keine maximale Cache-Dauer. |
Beispiel für das Erstellen eines Kontext-Cache
Im Folgenden wird gezeigt, wie ein Kontext-Cache erstellt wird.
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der API-Referenzdokumentation zur Vertex AI SDK for Python.
Streaming- und Nicht-Streaming-Antworten
Sie können auswählen, ob das Modell Streaming-Antworten oder Nicht-Streaming-Antworten generiert. Bei Streaming-Antworten erhalten Sie jede Antwort, sobald ihr Ausgabetoken generiert wurde. Bei Nicht-Streaming-Antworten erhalten Sie alle Antworten, nachdem alle Ausgabetokens erzeugt wurden.
Verwenden Sie für eine Streaming-Antwort den Parameter stream
in generate_content
.
response = model.generate_content(contents=[...], stream = True)
Entfernen Sie für eine Nicht-Streamingantwort den Parameter oder setzen Sie den Parameter auf False
.
Beispielcode
Go
Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Go in der Vertex AI-Kurzanleitung. Weitere Informationen finden Sie in der Referenzdokumentation zum Vertex AI Go SDK für Gemini.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Streaming- und Nicht-Streaming-Antworten
Sie können auswählen, ob das Modell Streaming-Antworten oder Nicht-Streaming-Antworten generiert. Bei Streaming-Antworten erhalten Sie jede Antwort, sobald ihr Ausgabetoken generiert wurde. Bei Nicht-Streaming-Antworten erhalten Sie alle Antworten, nachdem alle Ausgabetokens erzeugt wurden.
Verwenden Sie für eine Nicht-Streamingantwort die Methode GenerateContentStream
.
iter := model.GenerateContentStream(ctx, genai.Text("Tell me a story about a lumberjack and his giant ox. Keep it very short."))
Verwenden Sie für eine Nicht-Streamingantwort die Methode GenerateContent
.
resp, err := model.GenerateContent(ctx, genai.Text("What is the average size of a swallow?"))
Beispielcode
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 werden soll und in der der im Cache gespeicherte Inhalt gespeichert wird. Eine Liste der unterstützten Regionen finden Sie unter Verfügbare Regionen.
- MIME_TYPE: Der MIME-Typ des im Cache zu speichernden Inhalts.
- CONTENT_TO_CACHE_URI: Der Cloud Storage-URI des im Cache zu speichernden Inhalts.
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/cachedContents
JSON-Text der Anfrage:
{ "model": "projects/PROJECT_ID/locations/LOCATION/publishers/google/models/gemini-1.5-pro-002", "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/v1beta1/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/v1beta1/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="gemini-1.5-pro-002"
PROJECT_ID="test-project"
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}/publishers/google/models/${MODEL_ID}/cachedContents -d \
'{
"model":"projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}",
"contents": [
{
"role": "user",
"parts": [
{
"fileData": {
"mimeType": "${MIME_TYPE}",
"fileUri": "${CACHED_CONTENT_URI}"
}
}
]
}
]
}'