Context Caching untuk Model Gemini yang Disempurnakan

Anda dapat menggunakan penyimpanan dalam cache konteks untuk model Gemini yang telah dioptimalkan untuk meningkatkan performa dan mengurangi biaya untuk perintah yang menyertakan konteks dalam jumlah besar. Dengan meng-cache konteks yang sering digunakan, Anda dapat menghindari pengiriman ulang data dalam jumlah besar dengan setiap permintaan ke model yang telah dioptimalkan.

Operasi pengelolaan (Read, Update, Delete) cache konteks untuk Gemini yang dioptimalkan tetap konsisten dengan model dasar. Hanya pembuatan dan inferensi konten yang di-cache yang memerlukan penyesuaian tertentu, yang dijelaskan di bawah ini.

Model yang didukung

Cache konteks didukung untuk model yang dioptimalkan dari model dasar berikut:

  • gemini-2.0-flash-001

Prasyarat

Menyesuaikan Model Gemini: Anda memerlukan model Gemini yang telah disesuaikan dan di-deploy berdasarkan model dasar yang didukung (lihat Model yang didukung). Untuk mengetahui detail tentang cara meningkatkan kualitas model Gemini, lihat Meningkatkan kualitas model Gemini. Untuk mendapatkan endpoint model yang telah disesuaikan dan di-deploy, lihat Men-deploy model yang telah disesuaikan.

Pastikan Anda memiliki informasi berikut:

  • ID dan versi model Gemini yang dioptimalkan
  • Nama resource endpoint untuk model yang telah disesuaikan dan di-deploy

Membuat cache konteks untuk model yang dioptimalkan

Model dasar yang didukung tercantum di Model yang didukung.

Prosedur untuk membuat cache konteks untuk model yang dioptimalkan sebagian besar mengikuti langkah-langkah yang diuraikan dalam Membuat cache konteks. Lihat dokumentasi tertaut untuk proses umum; panduan ini berfokus pada perbedaan pembuatan cache konteks untuk model Gemini yang telah dioptimalkan.

Daripada menggunakan model dasar dalam bentuk projects/{PROJECT}/locations/{LOCATION}/publishers/google/models/{MODEL}, Anda harus menggunakan model yang dioptimalkan dalam bentuk projects/{PROJECT}/locations/{LOCATION}/models/{MODEL}@{VERSION}.

Contoh berikut menunjukkan cara membuat cache konteks dengan model Gemini yang dioptimalkan.

REST

Anda dapat menggunakan REST untuk membuat cache konteks menggunakan Vertex AI API untuk mengirim permintaan POST ke endpoint model penayang. Contoh berikut menunjukkan cara membuat cache konteks menggunakan file yang disimpan di bucket Cloud Storage.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID Anda.
  • LOCATION: Region untuk memproses permintaan dan tempat konten yang di-cache disimpan. Untuk mengetahui daftar region yang didukung, lihat Region yang tersedia.
  • MODEL_ID: ID model Gemini yang telah disesuaikan.
  • MODEL_VERSION: Versi model Gemini yang telah disesuaikan.
  • CACHE_DISPLAY_NAME: Nama tampilan yang bermakna untuk mendeskripsikan dan membantu Anda mengidentifikasi setiap cache konteks.
  • MIME_TYPE: Jenis MIME konten yang akan di-cache.
  • CONTENT_TO_CACHE_URI: URI Cloud Storage konten yang akan di-cache.

Metode HTTP dan URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cachedContents

Isi JSON permintaan:

{
  "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."
      }]
  }]
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

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

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$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

Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

Contoh perintah curl

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}"
          }
        }
      ]
    }
  ]
}'

Menggunakan cache konteks untuk model yang disesuaikan

Prosedur untuk menggunakan cache konteks untuk model yang dioptimalkan sebagian besar mengikuti langkah-langkah yang diuraikan dalam Menggunakan cache konteks. Lihat dokumentasi tertaut untuk mengetahui proses umumnya; panduan ini berfokus pada perbedaan penggunaan cache konteks untuk model Gemini yang telah disesuaikan.

Alih-alih mengirim permintaan ke endpoint model dasar dalam bentuk projects/{PROJECT}/locations/{LOCATION}/publishers/google/models/{MODEL}, Anda harus mengirimnya ke endpoint model yang telah disesuaikan dan di-deploy dalam bentuk projects/{PROJECT}/locations/{LOCATION}/endpoints/{ENDPOINT_ID}.

Contoh kode berikut menunjukkan cara menggunakan cache konteks dengan model Gemini yang dioptimalkan.

Saat menggunakan cache konteks, Anda tidak dapat menentukan properti berikut:

  • GenerativeModel.system_instructions
  • GenerativeModel.tool_config
  • GenerativeModel.tools

REST

Anda dapat menggunakan REST untuk menentukan cache konteks dengan perintah menggunakan Vertex AI API untuk mengirim permintaan POST ke endpoint model penayang.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID Anda.
  • LOCATION: Region tempat permintaan untuk membuat cache konteks diproses.
  • ENDPOINT_ID: Endpoint tempat model yang telah disesuaikan di-deploy.
  • MIME_TYPE: Perintah teks yang akan dikirim ke model.

Metode HTTP dan URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID:generateContent

Isi JSON permintaan:

{
  "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"
      }
  ],
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

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

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$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

Anda akan melihat respons JSON yang mirip seperti berikut:

Contoh perintah curl

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"
    }
  ],
}'