- Properti cache konteks: Menjelaskan properti utama objek cache konteks, seperti nama, model, dan waktu habis masa berlakunya.
- Batasan penggunaan cache konteks: Menjelaskan fitur yang tidak dapat Anda tentukan dalam permintaan saat menggunakan cache konteks.
- Menggunakan contoh cache konteks: Menyediakan contoh kode yang menunjukkan cara menggunakan cache konteks dengan REST API dan Python SDK.
Anda dapat menggunakan REST API atau Python SDK untuk mereferensikan konten yang disimpan dalam cache konteks di aplikasi AI generatif. Sebelum dapat menggunakan context cache, Anda harus membuat context cache terlebih dahulu.
Properti cache konteks
Objek cache konteks yang Anda gunakan dalam kode Anda mencakup properti berikut:
name
: Nama lengkap resource cache konteks. Anda harus menggunakan nama ini saat mereferensikan cache dalam permintaan. Nama ditampilkan dalam respons saat Anda membuat cache konteks.- Format:
projects/PROJECT_NUMBER/locations/LOCATION/cachedContents/CACHE_ID
Contoh isi permintaan:
"cached_content": "projects/123456789012/locations/us-central1/123456789012345678"
- Format:
model
: Nama resource model yang digunakan untuk membuat cache.- Format:
projects/PROJECT_NUMBER/locations/LOCATION/publishers/PUBLISHER_NAME/models/MODEL_ID
- Format:
createTime
:Timestamp
yang menentukan kapan context cache dibuat.updateTime
:Timestamp
yang menentukan waktu update terbaru cache konteks. Sebelum cache diupdate,createTime
danupdateTime
-nya sama.expireTime
:Timestamp
yang menentukan kapan cache konteks berakhir. Waktu habis masa berlaku default adalah 60 menit setelahcreateTime
. Anda dapat memperbarui cache dengan waktu habis masa berlaku baru. Setelah masa berlaku cache berakhir, cache akan ditandai untuk dihapus dan tidak dapat digunakan atau diupdate. Untuk menggunakan cache yang sudah tidak berlaku, Anda harus membuatnya ulang.
Batasan penggunaan cache konteks
Saat membuat cache konteks, Anda dapat menentukan fitur berikut. Anda tidak boleh menentukan fitur ini lagi dalam permintaan berikutnya yang menggunakan cache:
GenerativeModel.system_instructions
: Menentukan petunjuk yang akan digunakan model sebelum menerima petunjuk dari pengguna. Untuk mengetahui informasi selengkapnya, lihat Petunjuk sistem.GenerativeModel.tool_config
: Menentukan alat yang akan digunakan model Gemini, seperti alat untuk fitur panggilan fungsi. Untuk informasi selengkapnya, lihat referensitool_config
.GenerativeModel.tools
: Menentukan fungsi untuk membuat aplikasi panggilan fungsi. Untuk mengetahui informasi selengkapnya, lihat Panggilan fungsi.
Menggunakan contoh context cache
Contoh kode berikut menunjukkan cara menggunakan cache konteks dalam permintaan.
Python
Instal
pip install --upgrade google-genai
Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.
Tetapkan variabel lingkungan untuk menggunakan Gen AI SDK dengan Vertex AI:
# 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
Go
Pelajari cara menginstal atau mengupdate Go.
Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.
Tetapkan variabel lingkungan untuk menggunakan Gen AI SDK dengan Vertex AI:
# 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
Anda dapat menggunakan REST untuk menggunakan 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.
- MIME_TYPE: Perintah teks yang akan dikirimkan ke model.
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/gemini-2.0-flash-001: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/publishers/google/models/gemini-2.0-flash-001: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/publishers/google/models/gemini-2.0-flash-001:generateContent" | Select-Object -Expand Content
Anda akan melihat respons JSON yang mirip seperti berikut:
Contoh perintah curl
LOCATION="us-central1"
MODEL_ID="gemini-2.0-flash-001"
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"
}
],
}'
- Pelajari cara memperbarui waktu habis masa berlaku context cache.
- Pelajari cara membuat context cache baru.
- Pelajari cara mendapatkan informasi tentang semua cache konteks yang terkait dengan Google Cloud project.
- Pelajari cara menghapus context cache.