Kontext-Caching für feinabgestimmte Gemini-Modelle

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:

Das explizite Caching wird für die folgenden Versionen unterstützt:

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_instructions
  • GenerativeModel.tool_config
  • GenerativeModel.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"
    }
  ],
}'