สำหรับฟีเจอร์ AI คุณอาจส่งโทเค็นอินพุต (เนื้อหา) เดียวกันซ้ำๆ ไปยังโมเดล สำหรับกรณีการใช้งานเหล่านี้ คุณสามารถ แคช เนื้อหาดังกล่าวแทนได้ ซึ่งหมายความว่าคุณจะส่งเนื้อหาไปยังโมเดล 1 ครั้ง จัดเก็บเนื้อหา และอ้างอิง เนื้อหาในคำขอที่ตามมา
การแคชบริบทช่วยลดเวลาในการตอบสนองและค่าใช้จ่ายได้อย่างมากสำหรับงานที่ทำซ้ำๆ ซึ่งเกี่ยวข้องกับ เนื้อหาจำนวนมาก เช่น ข้อความจำนวนมาก ไฟล์เสียง หรือไฟล์วิดีโอ กรณีการใช้งานที่พบบ่อยบางส่วนสำหรับเนื้อหาที่แคชไว้ ได้แก่ เอกสารเพอร์โซนาโดยละเอียด ฐานของโค้ด หรือคู่มือ
โมเดล Gemini มีกลไกการแคช 2 แบบที่แตกต่างกัน ดังนี้
การแคชแบบไม่เจาะจง: เปิดใช้โดยอัตโนมัติ ในโมเดลส่วนใหญ่ ไม่รับประกันการประหยัดค่าใช้จ่าย
การแคชแบบเจาะจง: สามารถเปิดใช้ เลือกได้ และ ด้วยตนเอง ในโมเดลส่วนใหญ่ มักจะส่งผลให้ ประหยัดค่าใช้จ่าย
การแคชแบบเจาะจงมีประโยชน์ในกรณีที่คุณต้องการรับประกันการประหยัดค่าใช้จ่ายมากขึ้น แต่ต้องมีงานเพิ่มเติมสำหรับนักพัฒนาแอป
สำหรับการแคชทั้งแบบไม่เจาะจงและแบบเจาะจง ฟิลด์ cachedContentTokenCount ในข้อมูลเมตาของการตอบกลับจะระบุจำนวนโทเค็นในส่วนที่แคชไว้ของอินพุต สำหรับการแคชแบบเจาะจง โปรดตรวจสอบข้อมูลราคา
ที่ด้านล่างของหน้านี้
โมเดลที่รองรับ
ระบบรองรับการแคชเมื่อใช้โมเดลต่อไปนี้
gemini-3.1-pro-previewgemini-3.7-flash(และgemini-3.6-flashกับgemini-3.5-flashเวอร์ชันเก่ากว่า)gemini-3.5-flash-lite(และgemini-3.1-flash-liteเวอร์ชันเก่ากว่า)
โมเดล Gemini 2.5 แบบใช้งานทั่วไปรองรับความสามารถนี้ แต่โมเดลทั้งหมดเลิกใช้งานแล้ว
โมเดลที่สร้างสื่อ (เช่น โมเดล "Nana Banana" อย่าง gemini-3.1-flash-image) ไม่ รองรับการแคชบริบท
ข้อจำกัดด้านขนาดของเนื้อหาที่แคชไว้
โมเดลแต่ละรายการมีข้อกำหนดจำนวนโทเค็น ขั้นต่ำ สำหรับเนื้อหาที่แคชไว้ ส่วนจำนวนโทเค็นสูงสุดจะกำหนดโดยหน้าต่างบริบทของโมเดล
- โมเดล Gemini Pro: โทเค็นขั้นต่ำ 4096 รายการ
- โมเดล Gemini Flash: โทเค็นขั้นต่ำ 1024 รายการ
นอกจากนี้ ขนาดสูงสุดของเนื้อหาที่คุณแคชไว้โดยใช้ BLOB หรือข้อความคือ 10 MB
การแคชแบบไม่เจาะจง
การแคชแบบไม่เจาะจงเปิดใช้โดยค่าเริ่มต้น และพร้อมให้บริการสำหรับโมเดล Gemini ส่วนใหญ่
Google จะส่งต่อการประหยัดค่าใช้จ่ายโดยอัตโนมัติหากคำขอของคุณตรงกับเนื้อหาที่แคชไว้ ต่อไปนี้คือวิธีเพิ่มโอกาสที่คำขอของคุณจะใช้การแคชแบบไม่เจาะจง
- ลองวางเนื้อหาขนาดใหญ่และเนื้อหาที่พบบ่อยไว้ที่จุดเริ่มต้นของพรอมต์
- ลองส่งคำขอที่มีคำนำหน้าที่คล้ายกันภายในระยะเวลาสั้นๆ
ระบบจะระบุจำนวนโทเค็นในส่วนที่แคชไว้ของอินพุตในฟิลด์ cachedContentTokenCount ในข้อมูลเมตาของการตอบกลับ
การแคชแบบเจาะจง
การแคชแบบเจาะจง ไม่ได้ เปิดใช้โดยค่าเริ่มต้น และเป็น ความสามารถเสริมของโมเดล Gemini
วิธีตั้งค่าและใช้แคชเนื้อหาแบบเจาะจง
จัดการแคชแบบเจาะจง ซึ่งรวมถึง
โปรดทราบว่าแคชเนื้อหาแบบเจาะจงจะโต้ตอบกับการแคชแบบไม่เจาะจง ซึ่งอาจนำไปสู่การแคชเพิ่มเติมนอกเหนือจากเนื้อหาที่แคชแบบเจาะจง คุณสามารถป้องกันการเก็บรักษาข้อมูลแคชได้โดยการปิดใช้การแคชแบบไม่เจาะจงและไม่สร้างแคชแบบเจาะจง ดูข้อมูลเพิ่มเติมได้ที่ หัวข้อเปิดและปิดใช้การแคช
สร้างและใช้แคชแบบเจาะจง
การสร้างและใช้แคชเนื้อหาแบบเจาะจงต้องดำเนินการดังนี้
ข้อมูลสำคัญเกี่ยวกับการสร้างและใช้แคชแบบเจาะจง
แคชต้องสอดคล้องกับคำขอพรอมต์ของแอปและเทมเพลตพรอมต์ของเซิร์ฟเวอร์ โดยมีรายละเอียดดังนี้
แคชมีไว้สำหรับผู้ให้บริการ 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.7-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.7-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.7-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.
'TEMPLATE_ID'
);
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',
);
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"
);
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 ในข้อมูลเมตาของการตอบกลับ