สำหรับฟีเจอร์ AI คุณอาจส่งโทเค็นอินพุต (เนื้อหา) เดียวกันซ้ำแล้วซ้ำอีกไปยังโมเดล สำหรับกรณีการใช้งานเหล่านี้ คุณสามารถแคชเนื้อหานี้แทน ซึ่งหมายความว่าคุณจะส่งเนื้อหาไปยังโมเดลครั้งเดียว จัดเก็บ และอ้างอิงเนื้อหาดังกล่าวในคำขอต่อๆ ไป
การแคชบริบทช่วยลดเวลาในการตอบสนองและค่าใช้จ่ายสำหรับงานที่ทำซ้ำๆ ซึ่งเกี่ยวข้องกับเนื้อหาจำนวนมากได้อย่างมาก เช่น ข้อความจำนวนมาก ไฟล์เสียง หรือไฟล์วิดีโอ กรณีการใช้งานที่พบบ่อยสำหรับเนื้อหาที่แคชไว้ ได้แก่ เอกสาร Persona โดยละเอียด ฐานของโค้ด หรือคู่มือ
โมเดล Gemini มีกลไกการแคช 2 แบบที่แตกต่างกัน ดังนี้
การแคชโดยนัย: เปิดใช้โดยอัตโนมัติในโมเดลส่วนใหญ่ ไม่รับประกันการประหยัดค่าใช้จ่าย
การแคชที่ชัดเจน: สามารถเปิดใช้ได้ตามต้องการและด้วยตนเองในโมเดลส่วนใหญ่ ซึ่งมักจะช่วยประหยัดค่าใช้จ่าย
การแคชอย่างชัดแจ้งมีประโยชน์ในกรณีที่คุณต้องการรับประกันการประหยัดค่าใช้จ่ายมากขึ้น แต่ต้องเพิ่มงานของนักพัฒนาซอฟต์แวร์บางอย่าง
สำหรับการแคชทั้งแบบโดยนัยและโดยชัดแจ้ง ฟิลด์ cachedContentTokenCount ในข้อมูลเมตาของการตอบกลับจะระบุจำนวนโทเค็นในส่วนที่แคชไว้ของอินพุต สำหรับการแคชที่ชัดเจน โปรดตรวจสอบข้อมูลราคาที่ด้านล่างของหน้านี้
โมเดลที่รองรับ
ระบบรองรับการแคชเมื่อใช้โมเดลต่อไปนี้
gemini-4-argon(เฉพาะการแคชโดยนัย ไม่รองรับการแคชโดยชัดแจ้ง)gemini-3.8-flash(และgemini-3.7-flash,gemini-3.6-flashและgemini-3.5-flashรุ่นเก่า)gemini-3.5-flash-lite(และgemini-3.1-flash-liteรุ่นเก่า)
โมเดล gemini-3.1-pro-preview และโมเดล Gemini 2.5 สำหรับการใช้งานทั่วไป (ซึ่งเลิกใช้งานแล้ว) ก็รองรับความสามารถนี้เช่นกัน
โมเดลที่สร้างสื่อ (เช่น โมเดล Gemini Nano Banana อย่าง gemini-nano-banana-2.1) ไม่รองรับการแคชบริบท
ขีดจำกัดขนาดเนื้อหาที่แคชไว้
แต่ละโมเดลมีข้อกำหนดจำนวนโทเค็นขั้นต่ำสำหรับเนื้อหาที่แคชไว้ โดยค่าสูงสุดจะกำหนดโดยหน้าต่างบริบทของโมเดล
- Gemini 4 Argon: โทเค็นขั้นต่ำ 4,096 รายการ (Gemini Developer API) หรือโทเค็นขั้นต่ำ 6,144 รายการ (Agent Platform Gemini API (formerly Vertex AI))
- โมเดล Gemini Pro: โทเค็นขั้นต่ำ 4,096 รายการ
- โมเดล Gemini Flash: ขั้นต่ำ 1,024 โทเค็น
นอกจากนี้ ขนาดสูงสุดของเนื้อหาที่คุณแคชได้โดยใช้ BLOB หรือข้อความคือ 10 MB
การแคชโดยนัย
การแคชโดยนัยจะเปิดใช้อยู่โดยค่าเริ่มต้นและใช้ได้กับโมเดล Gemini ส่วนใหญ่
Google จะส่งต่อการประหยัดค่าใช้จ่ายโดยอัตโนมัติหากคำขอของคุณเข้าถึงเนื้อหาที่แคชไว้ ต่อไปนี้เป็นวิธีเพิ่มโอกาสที่คำขอจะใช้การแคชโดยนัย
- ลองใส่เนื้อหาขนาดใหญ่และเนื้อหาที่พบบ่อยไว้ที่ตอนต้นของพรอมต์
- พยายามส่งคำขอที่มีคำนำหน้าคล้ายกันในระยะเวลาสั้นๆ
จำนวนโทเค็นในส่วนที่แคชไว้ของอินพุตจะแสดงในช่อง cachedContentTokenCount ในข้อมูลเมตาของการตอบกลับ
การแคชที่ชัดเจน
การแคชที่ชัดเจนไม่ได้เปิดใช้โดยค่าเริ่มต้น และเป็นความสามารถที่ไม่บังคับของโมเดล Gemini
โปรดทราบว่าโมเดล gemini-4-argon ไม่รองรับการแคชที่ชัดเจน
วิธีตั้งค่าและทำงานกับแคชเนื้อหาที่อาจไม่เหมาะสม
จัดการแคชที่ชัดเจน ซึ่งรวมถึงรายการต่อไปนี้
โปรดทราบว่าแคชเนื้อหาที่ชัดเจนจะโต้ตอบกับการแคชโดยนัย ซึ่งอาจทำให้มีการแคชเพิ่มเติมที่นอกเหนือจากเนื้อหาที่แคชไว้อย่างชัดเจน คุณสามารถป้องกันการเก็บรักษาข้อมูลแคชได้โดยปิดใช้การแคชโดยนัยและไม่สร้างแคชที่ชัดเจน ดูข้อมูลเพิ่มเติมได้ที่เปิดและปิดใช้การแคช
สร้างและใช้แคชที่ชัดเจน
การสร้างและการใช้แคชเนื้อหาที่อาจไม่เหมาะสมต้องมีคุณสมบัติต่อไปนี้
ข้อมูลสำคัญเกี่ยวกับการสร้างและการใช้แคชที่ชัดเจน
แคชต้องสอดคล้องกับคำขอพรอมต์ของแอปและเทมเพลตพรอมต์ของเซิร์ฟเวอร์ ดังนี้
แคชจะเจาะจงสำหรับผู้ให้บริการ Gemini API คำขอข้อความแจ้งของแอปต้องใช้ผู้ให้บริการรายเดียวกัน
สำหรับ Firebase AI Logic เราขอแนะนำอย่างยิ่งให้ใช้แคชเนื้อหาที่ชัดเจนเฉพาะกับ Agent Platform Gemini API (formerly Vertex AI) เท่านั้น ข้อมูลและตัวอย่างทั้งหมดในหน้านี้เป็นข้อมูลเฉพาะสำหรับผู้ให้บริการ Gemini API รายนั้นแคชจะเจาะจงสำหรับโมเดล Gemini คำขอพรอมต์ของแอปต้องใช้โมเดลเดียวกัน
แคชจะเจาะจงตามสถานที่เมื่อใช้ Agent Platform Gemini API (formerly Vertex AI)
ตำแหน่งของแคชที่ชัดเจนต้องตรงกับตำแหน่งของเทมเพลตพรอมต์เซิร์ฟเวอร์และตำแหน่งที่คุณเข้าถึงโมเดลในคำขอพรอมต์ของแอป
นอกจากนี้ โปรดคำนึงถึงข้อจำกัดและข้อกำหนดต่อไปนี้สำหรับการแคชที่ชัดเจน
เมื่อสร้างแคชที่ชัดเจนแล้ว คุณจะเปลี่ยนแปลงสิ่งใดเกี่ยวกับแคชไม่ได้ ยกเว้น TTL หรือเวลาหมดอายุ
คุณสามารถแคชประเภท MIME ของไฟล์อินพุตที่รองรับหรือแม้แต่ข้อความที่ระบุไว้ในคำขอสร้างแคชได้
หากต้องการรวมไฟล์ไว้ในแคช คุณต้องระบุไฟล์เป็น Cloud Storage URI โดยต้องไม่ใช่ URL ของเบราว์เซอร์หรือ URL ของ YouTube
นอกจากนี้ ระบบจะตรวจสอบข้อจำกัดการเข้าถึงไฟล์ที่เวลาสร้างแคช และจะไม่ตรวจสอบข้อจำกัดการเข้าถึงอีกครั้งที่เวลาส่งคำขอของผู้ใช้ ด้วยเหตุนี้ โปรดตรวจสอบว่าข้อมูลที่รวมอยู่ในแคชที่ชัดเจนนั้นเหมาะสำหรับผู้ใช้ที่ส่งคำขอซึ่งรวมแคชนั้นไว้
หากต้องการใช้คำสั่งของระบบหรือเครื่องมือ (เช่น การเรียกใช้โค้ด, บริบท URL, การอ้างอิงข้อมูลใน
Google Search หรือการอ้างอิงข้อมูลในGoogle Maps ) แคชเองต้องมีการกำหนดค่าของคำสั่งหรือเครื่องมือเหล่านั้น ไม่สามารถกำหนดค่าในเทมเพลตพรอมต์ของเซิร์ฟเวอร์หรือในคำขอพรอมต์ของแอป โปรดทราบว่าเทมเพลตพรอมต์ของเซิร์ฟเวอร์ยังไม่รองรับการเรียกใช้ฟังก์ชัน (หรือแชท) ดูรายละเอียดเกี่ยวกับวิธีกำหนดค่าคำสั่งของระบบและเครื่องมือในแคชได้ที่ REST API ของ Agent Platform Gemini API (formerly Vertex AI)
ขั้นตอนที่ 1: สร้างแคช
สร้างแคชโดยใช้ REST API ของ Agent Platform Gemini API (formerly Vertex AI) โดยตรง
ต่อไปนี้เป็นตัวอย่างที่สร้างแคชที่ชัดเจนของไฟล์ PDF เป็นเนื้อหา
ไวยากรณ์:
PROJECT_ID="PROJECT_ID"
MODEL_ID="GEMINI_MODEL" # for example, gemini-3.8-flash
LOCATION="LOCATION" # location for both the cache and the model
MIME_TYPE="MIME_TYPE"
CACHED_CONTENT_URI="CLOUD_STORAGE_FILE_URI" # must be a Cloud Storage URI
CACHE_DISPLAY_NAME="CACHE_DISPLAY_NAME" # optional
TTL="CACHE_TIME_TO_LIVE" # optional (if not specified, defaults to 3600s)
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/cachedContents \
-d @- <<EOF
{
"model":"projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}",
"contents": [
{
"role": "user",
"parts": [
{
"fileData": {
"mimeType": "${MIME_TYPE}",
"fileUri": "${CACHED_CONTENT_URI}"
}
}
]
}
],
"displayName": "${CACHE_DISPLAY_NAME}",
"ttl": "${TTL}"
}
EOF
ตัวอย่างคำขอ
PROJECT_ID="my-amazing-app"
MODEL_ID="gemini-3.8-flash"
LOCATION="global"
MIME_TYPE="application/pdf"
CACHED_CONTENT_URI="gs://cloud-samples-data/generative-ai/pdf/2312.11805v3.pdf"
CACHE_DISPLAY_NAME="Gemini - A Family of Highly Capable Multimodal Model (PDF)"
TTL="7200s"
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/cachedContents \
-d @- <<EOF
{
"model":"projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}",
"contents": [
{
"role": "user",
"parts": [
{
"fileData": {
"mimeType": "${MIME_TYPE}",
"fileUri": "${CACHED_CONTENT_URI}"
}
}
]
}
],
"displayName": "${CACHE_DISPLAY_NAME}",
"ttl": "${TTL}"
}
EOF
ตัวอย่างคำตอบ
การตอบกลับจะมีทรัพยากร name ที่สมบูรณ์ในตัวเอง ซึ่งไม่ซ้ำกันทั่วโลกในแคช (โปรดทราบว่ากลุ่มสุดท้ายคือรหัสแคช) คุณจะใช้ค่า name ทั้งหมดนี้ในขั้นตอนถัดไปของเวิร์กโฟลว์
{
"name": "projects/861083271981/locations/global/cachedContents/4545031458888089601",
"model": "projects/my-amazing-app/locations/global/publishers/google/models/gemini-3.8-flash",
"createTime": "2024-06-04T01:11:50.808236Z",
"updateTime": "2024-06-04T01:11:50.808236Z",
"expireTime": "2024-06-04T02:11:50.794542Z"
}
ขั้นตอนที่ 2: อ้างอิงแคชในเทมเพลตพรอมต์ของเซิร์ฟเวอร์
หลังจากสร้างแคชแล้ว ให้อ้างอิงแคชโดยใช้ name ภายในพร็อพเพอร์ตี้ cachedContent ของเทมเพลตพรอมต์เซิร์ฟเวอร์
โปรดตรวจสอบว่าคุณปฏิบัติตามข้อกำหนดต่อไปนี้เมื่อสร้างเทมเพลตพรอมต์เซิร์ฟเวอร์
ใช้ทรัพยากร
nameที่สมบูรณ์จากการตอบกลับเมื่อคุณสร้างแคช ชื่อนี้ไม่ใช่ชื่อที่แสดง (ไม่บังคับ) ที่คุณระบุไว้ในคำขอตำแหน่งสำหรับเทมเพลตพรอมต์เซิร์ฟเวอร์ต้องตรงกับตำแหน่งของแคช
หากต้องการใช้คำสั่งหรือเครื่องมือของระบบ คุณต้องกำหนดค่าเป็นส่วนหนึ่งของแคช และไม่ใช่ส่วนหนึ่งของเทมเพลตพรอมต์ของเซิร์ฟเวอร์
ไวยากรณ์:
{{cachedContent name="YOUR_CACHE_RESOURCE_NAME"}}
{{role "user"}}
{{userPrompt}}
ตัวอย่าง
{{cachedContent name="projects/861083271981/locations/global/cachedContents/4545031458888089601"}}
{{role "user"}}
{{userPrompt}}
หรือค่าของพารามิเตอร์ name ในเทมเพลตพรอมต์ของเซิร์ฟเวอร์อาจเป็นตัวแปรอินพุตแบบไดนามิกก็ได้
เช่น
{{cachedContent name=someVariable}}name ของแคชเป็นอินพุตสำหรับคำขอจากแอปได้
ขั้นตอนที่ 3: อ้างอิงเทมเพลตพรอมต์ของเซิร์ฟเวอร์ในคำขอจากแอป
โปรดระมัดระวังอย่างยิ่งเกี่ยวกับสิ่งต่อไปนี้เมื่อเขียนคำขอ
ใช้ Agent Platform Gemini API (formerly Vertex AI) เนื่องจากแคชสร้างขึ้นด้วยผู้ให้บริการ Gemini API นั้น
ตำแหน่งที่คุณเข้าถึงโมเดลในคำขอพรอมต์ของแอปต้องตรงกับตำแหน่งของเทมเพลตพรอมต์ของเซิร์ฟเวอร์และแคช
Swift
// ...
// Initialize the Agent Platform Gemini API backend service (formerly Vertex AI).
// Create a `TemplateGenerativeModel` instance.
// Make sure to specify the same location as the server prompt template and the cache.
let model = FirebaseAI.firebaseAI(backend: .agentPlatform(location: "LOCATION"))
.templateGenerativeModel()
do {
let response = try await model.generateContent(
// Specify your template ID.
templateID: "TEMPLATE_ID"
)
if let text = response.text {
print("Response Text: \(text)")
}
} catch {
print("An error occurred: \(error)")
}
print("\n")
Kotlin
// ...
// Initialize the Agent Platform Gemini API backend service (formerly Vertex AI).
// Create a `TemplateGenerativeModel` instance.
// Make sure to specify the same location as the server prompt template and the cache.
val model = Firebase.ai(backend = GenerativeBackend.agentPlatform(location = "LOCATION"))
.templateGenerativeModel()
val response = model.generateContent(
// Specify your template ID.
"TEMPLATE_ID",
)
val text = response.text
println(text)
Java
// ...
// Initialize the Agent Platform Gemini API backend service (formerly Vertex AI).
// Create a `TemplateGenerativeModel` instance.
// Make sure to specify the same location as the server prompt template and the cache.
TemplateGenerativeModel generativeModel = FirebaseAI.getInstance(GenerativeBackend.agentPlatform("LOCATION"))
.templateGenerativeModel();
TemplateGenerativeModelFutures model = TemplateGenerativeModelFutures.from(generativeModel);
Future<GenerateContentResponse> response = model.generateContent(
// Specify your template ID.
"TEMPLATE_ID"
);
addCallback(response,
new FutureCallback<GenerateContentResponse>() {
public void onSuccess(GenerateContentResponse result) {
System.out.println(result.getText());
}
public void onFailure(Throwable t) {
reportError(t);
}
}
executor);
Web
// ...
// Initialize the Agent Platform Gemini API backend service (formerly Vertex AI).
// Make sure to specify the same location as the server prompt template and the cache.
const ai = getAI(app, { backend: new AgentPlatformBackend('LOCATION') });
// Create a `TemplateGenerativeModel` instance
const model = getTemplateGenerativeModel(ai);
const result = await model.generateContent({
// Specify your template ID.
templateId: 'TEMPLATE_ID',
templateVariables: {},
});
const response = result.response;
const text = response.text();
Dart
// ...
// Initialize the Agent Platform Gemini API backend service (formerly Vertex AI).
// Create a `TemplateGenerativeModel` instance.
// Make sure to specify the same location as the server prompt template and the cache.
var _model = FirebaseAI.agentPlatform(location: 'LOCATION').templateGenerativeModel();
var response = await _model.generateContent(
// Specify your template ID.
'TEMPLATE_ID',
inputs: {},
);
var text = response?.text;
print(text);
Unity
// ...
// Initialize the Agent Platform Gemini API backend service (formerly Vertex AI).
// Make sure to specify the same location as the server prompt template and the cache.
var firebaseAI = FirebaseAI.GetInstance(FirebaseAI.Backend.AgentPlatform(location: "LOCATION"));
// Create a `TemplateGenerativeModel` instance.
var model = firebaseAI.GetTemplateGenerativeModel();
try
{
var response = await model.GenerateContentAsync(
// Specify your template ID.
"TEMPLATE_ID",
new Dictionary<string, object>()
);
Debug.Log($"Response Text: {response.Text}");
}
catch (Exception e) {
Debug.LogError($"An error occurred: {e.Message}");
}
จัดการแคชที่ชัดเจน
ส่วนนี้จะอธิบายการจัดการแคชเนื้อหาที่อาจไม่เหมาะสม ซึ่งรวมถึงวิธีแสดงรายการแคชทั้งหมด รับข้อมูลเมตาเกี่ยวกับแคช อัปเดต TTL หรือเวลาหมดอายุของแคช และลบแคช
คุณจัดการแคชที่ชัดเจนได้โดยใช้ REST API ของ Agent Platform Gemini API (formerly Vertex AI)
เมื่อสร้างแคชเนื้อหาที่อาจไม่เหมาะสมแล้ว คุณจะเปลี่ยนแปลงสิ่งใดเกี่ยวกับแคชไม่ได้ ยกเว้น TTL หรือเวลาหมดอายุ
แสดงรายการแคชทั้งหมด
คุณสามารถแสดงรายการแคชที่ชัดเจนทั้งหมดที่พร้อมใช้งานสำหรับโปรเจ็กต์ของคุณ คำสั่งนี้จะแสดงผลเฉพาะแคชในตำแหน่งที่ระบุเท่านั้น
PROJECT_ID="PROJECT_ID"
LOCATION="LOCATION"
curl \
-X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/cachedContents
รับข้อมูลเมตาเกี่ยวกับแคช
คุณไม่สามารถเรียกดูหรือดูเนื้อหาที่แคชไว้จริงได้ อย่างไรก็ตาม คุณสามารถดึงข้อมูลข้อมูลเมตาเกี่ยวกับแคชที่ชัดเจนได้ ซึ่งรวมถึง name, model, display_name, usage_metadata, create_time, update_time และ expire_time
คุณต้องระบุ CACHE_ID ซึ่งเป็นกลุ่มสุดท้ายในทรัพยากร name ที่มีคุณสมบัติครบถ้วนของแคช
PROJECT_ID="PROJECT_ID"
LOCATION="LOCATION"
CACHE_ID="CACHE_ID" # the final segment in the `name` of the cache
curl \
-X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/cachedContents/${CACHE_ID}
อัปเดต TTL หรือเวลาหมดอายุของแคช
เมื่อสร้างแคชที่ชัดเจน คุณจะเลือกตั้งค่า ttl หรือ expire_time ได้
ttl: TTL (Time-To-Live) สำหรับแคช โดยเฉพาะจำนวนวินาทีและนาโนวินาทีที่แคชยังคงอยู่หลังจากสร้างหรือหลังจากอัปเดตttlก่อนที่จะหมดอายุ เมื่อคุณตั้งค่าttlระบบจะอัปเดตexpireTimeของแคชโดยอัตโนมัติexpire_time:Timestamp(เช่น2024-06-30T09:00:00.000000Z) ที่ระบุวันที่และเวลาสัมบูรณ์ที่แคชหมดอายุ
หากคุณไม่ได้ตั้งค่าใดๆ เหล่านี้ TTL เริ่มต้นจะเป็น 1 ชั่วโมง ไม่มีขอบเขตขั้นต่ำหรือสูงสุดสำหรับ TTL
สำหรับแคชที่ชัดเจนที่มีอยู่ คุณสามารถเพิ่มหรืออัปเดต ttl หรือ expire_time ได้
คุณต้องระบุ CACHE_ID ซึ่งเป็นกลุ่มสุดท้ายในทรัพยากร name ที่มีคุณสมบัติครบถ้วนของแคช
อัปเดต ttl
PROJECT_ID="PROJECT_ID"
LOCATION="LOCATION"
CACHE_ID="CACHE_ID" # the final segment in the `name` of the cache
TTL="CACHE_TIME_TO_LIVE"
curl \
-X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/cachedContents/${CACHE_ID} -d \
'{
"ttl": "'$TTL'"
}'
อัปเดต expire_time
PROJECT_ID="PROJECT_ID"
LOCATION="LOCATION"
CACHE_ID="CACHE_ID" # the final segment in the `name` of the cache
EXPIRE_TIME="ABSOLUTE_TIME_CACHE_EXPIRES"
curl \
-X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/cachedContents/${CACHE_ID} -d \
'{
"expire_time": "'$EXPIRE_TIME'"
}'
ลบแคช
เมื่อไม่จำเป็นต้องใช้แคชที่ชัดเจนอีกต่อไป คุณก็ลบแคชดังกล่าวได้
คุณต้องระบุ CACHE_ID ซึ่งเป็นกลุ่มสุดท้ายในทรัพยากร name ที่มีคุณสมบัติครบถ้วนของแคช
PROJECT_ID="PROJECT_ID"
LOCATION="LOCATION"
CACHE_ID="CACHE_ID" # the final segment in the `name` of the cache
curl \
-X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/cachedContents/${CACHE_ID}
ราคาสำหรับการแคชที่ชัดเจน
การแคชที่ชัดเจนเป็นฟีเจอร์แบบชำระเงินที่ออกแบบมาเพื่อลดค่าใช้จ่าย ราคาจะขึ้นอยู่กับปัจจัยต่อไปนี้
โทเค็นอินพุตสำหรับการสร้างแคช: สำหรับทั้งการแคชแบบไม่ชัดแจ้งและแบบชัดแจ้ง ระบบจะเรียกเก็บเงินจากคุณสำหรับโทเค็นอินพุตที่ใช้สร้างแคชในราคาโทเค็นอินพุตมาตรฐาน
พื้นที่เก็บข้อมูลของแคช: สำหรับการแคชที่ชัดเจน จะมีค่าใช้จ่ายสำหรับพื้นที่เก็บข้อมูลตามระยะเวลาที่จัดเก็บแคชด้วย การแคชโดยนัยไม่มีค่าใช้จ่ายสำหรับพื้นที่เก็บข้อมูล ดูข้อมูลเพิ่มเติมได้ที่ราคาสำหรับ Agent Platform Gemini API (formerly Vertex AI)
การใช้เนื้อหาที่แคชไว้: การแคชที่ชัดเจนจะช่วยให้คุณได้รับส่วนลดเมื่อมีการอ้างอิงแคชที่ชัดเจน ซึ่งหมายความว่าคุณจะได้รับส่วนลดสำหรับโทเค็นอินพุตเมื่อโทเค็นเหล่านั้นอ้างอิงแคชที่มีอยู่ สำหรับรุ่น Gemini 2.5 และรุ่นที่ใหม่กว่า ส่วนลดนี้จะอยู่ที่ 90%
จำนวนโทเค็นในส่วนที่แคชไว้ของอินพุตจะแสดงในช่อง cachedContentTokenCount ในข้อมูลเมตาของการตอบกลับ