Đối với tính năng AI, bạn có thể truyền cùng một mã thông báo đầu vào (nội dung) nhiều lần cho một mô hình. Đối với những trường hợp sử dụng này, bạn có thể lưu vào bộ nhớ đệm nội dung này, nghĩa là bạn truyền nội dung đến mô hình một lần, lưu trữ nội dung đó và tham chiếu nội dung đó trong các yêu cầu tiếp theo.
Tính năng lưu vào bộ nhớ đệm ngữ cảnh có thể giảm đáng kể độ trễ và chi phí cho các tác vụ lặp lại liên quan đến một lượng lớn nội dung, chẳng hạn như một lượng lớn văn bản, tệp âm thanh hoặc tệp video. Một số trường hợp sử dụng phổ biến cho nội dung được lưu vào bộ nhớ đệm bao gồm tài liệu chi tiết về chân dung người dùng, cơ sở mã hoặc hướng dẫn sử dụng.
Các mô hình Gemini cung cấp hai cơ chế lưu vào bộ nhớ đệm:
Lưu vào bộ nhớ đệm ngầm ẩn: tự động bật trên hầu hết các mô hình, không đảm bảo tiết kiệm chi phí
Lưu vào bộ nhớ đệm rõ ràng: có thể được bật không bắt buộc và thủ công trên hầu hết các mô hình, thường giúp tiết kiệm chi phí
Tính năng lưu vào bộ nhớ đệm rõ ràng rất hữu ích trong trường hợp bạn muốn đảm bảo tiết kiệm chi phí hơn, nhưng nhà phát triển sẽ phải làm thêm một số việc.
Đối với cả việc lưu vào bộ nhớ đệm ngầm ẩn và rõ ràng, trường cachedContentTokenCount trong siêu dữ liệu của phản hồi cho biết số lượng mã thông báo trong phần được lưu vào bộ nhớ đệm của dữ liệu đầu vào. Đối với tính năng lưu vào bộ nhớ đệm rõ ràng, hãy nhớ xem thông tin về giá ở cuối trang này.
Mô hình được hỗ trợ
Tính năng lưu vào bộ nhớ đệm được hỗ trợ khi sử dụng các mô hình sau:
gemini-4-argon(chỉ lưu vào bộ nhớ đệm ngầm ẩn; không hỗ trợ lưu vào bộ nhớ đệm rõ ràng)gemini-3.8-flashgemini-3.5-flash-lite(vàgemini-3.1-flash-litecũ hơn)
Các mô hình Gemini 3.x Flash đa năng cũ hơn hỗ trợ tính năng này, nhưng không còn được đề xuất sử dụng do ngày ngừng hoạt động sắp tới và/hoặc tự động định tuyến đến các mô hình mới hơn.
Các mô hình tạo nội dung nghe nhìn (ví dụ: các mô hình Gemini Nano Banana như gemini-nano-banana-2.1) không hỗ trợ tính năng lưu vào bộ nhớ đệm ngữ cảnh.
Giới hạn kích thước nội dung được lưu vào bộ nhớ đệm
Mỗi mô hình đều có yêu cầu về số lượng mã thông báo tối thiểu đối với nội dung được lưu vào bộ nhớ đệm. Giá trị tối đa được quyết định bởi cửa sổ ngữ cảnh của mô hình.
- Gemini 4 Argon: tối thiểu 4096 mã thông báo (Gemini Developer API) hoặc tối thiểu 6144 mã thông báo (Agent Platform Gemini API (formerly Vertex AI))
- Mô hình Gemini Pro: tối thiểu 4.096 token
- Mô hình Gemini Flash: tối thiểu 1024 token
Ngoài ra, kích thước tối đa của nội dung mà bạn có thể lưu vào bộ nhớ đệm bằng blob hoặc văn bản là 10 MB.
Lưu vào bộ nhớ đệm ngầm ẩn
Tính năng lưu vào bộ nhớ đệm ngầm định được bật theo mặc định và có sẵn cho hầu hết các mô hình Gemini.
Google sẽ tự động chuyển khoản tiết kiệm chi phí nếu yêu cầu của bạn truy cập vào nội dung được lưu vào bộ nhớ đệm. Sau đây là một số cách để tăng khả năng yêu cầu của bạn sử dụng bộ nhớ đệm ngầm:
- Hãy thử đặt nội dung lớn và phổ biến ở đầu câu lệnh.
- Hãy thử gửi các yêu cầu có tiền tố tương tự trong một khoảng thời gian ngắn.
Số lượng mã thông báo trong phần được lưu vào bộ nhớ đệm của dữ liệu đầu vào được cung cấp trong trường cachedContentTokenCount trong siêu dữ liệu của một phản hồi.
Lưu vào bộ nhớ đệm một cách rõ ràng
Tính năng lưu vào bộ nhớ đệm rõ ràng không được bật theo mặc định và là một tính năng không bắt buộc của các mô hình Gemini.
Xin lưu ý rằng mô hình gemini-4-argon không hỗ trợ tính năng lưu vào bộ nhớ đệm một cách rõ ràng.
Sau đây là cách bạn có thể thiết lập và làm việc với bộ nhớ đệm nội dung tường minh:
Quản lý bộ nhớ đệm rõ ràng, bao gồm:
Xin lưu ý rằng bộ nhớ đệm nội dung tường minh tương tác với bộ nhớ đệm ngầm ẩn, có khả năng dẫn đến việc lưu vào bộ nhớ đệm bổ sung ngoài nội dung được lưu vào bộ nhớ đệm tường minh. Bạn có thể ngăn việc giữ lại dữ liệu trong bộ nhớ đệm bằng cách tắt tính năng lưu vào bộ nhớ đệm ngầm ẩn và không tạo bộ nhớ đệm rõ ràng. Để biết thêm thông tin, hãy xem phần Bật và tắt tính năng lưu vào bộ nhớ đệm.
Tạo và sử dụng bộ nhớ đệm rõ ràng
Để tạo và sử dụng bộ nhớ đệm nội dung tường minh, bạn cần làm như sau:
Thông tin quan trọng về việc tạo và sử dụng bộ nhớ đệm rõ ràng
Bộ nhớ đệm phải phù hợp với các yêu cầu về câu lệnh của ứng dụng và mẫu câu lệnh của máy chủ:
Bộ nhớ đệm dành riêng cho một nhà cung cấp Gemini API. Yêu cầu câu lệnh của ứng dụng phải sử dụng cùng một nhà cung cấp.
Đối với Firebase AI Logic, bạn nên sử dụng bộ nhớ đệm nội dung rõ ràng chỉ với Agent Platform Gemini API (formerly Vertex AI). Tất cả thông tin và ví dụ trên trang này đều dành riêng cho nhà cung cấp Gemini API đó.Bộ nhớ đệm này dành riêng cho một mô hình Gemini. Yêu cầu về câu lệnh của ứng dụng phải sử dụng cùng một mô hình.
Bộ nhớ đệm dành riêng cho một vị trí khi sử dụng Agent Platform Gemini API (formerly Vertex AI).
Vị trí của bộ nhớ đệm rõ ràng phải khớp với vị trí của mẫu câu lệnh trên máy chủ và vị trí bạn truy cập vào mô hình trong yêu cầu câu lệnh của ứng dụng.
Ngoài ra, hãy lưu ý các giới hạn và yêu cầu sau đây đối với việc lưu vào bộ nhớ đệm rõ ràng:
Sau khi tạo bộ nhớ đệm rõ ràng, bạn không thể thay đổi bất kỳ thông tin nào về bộ nhớ đệm, ngoại trừ TTL hoặc thời gian hết hạn.
Bạn có thể lưu vào bộ nhớ đệm bất kỳ loại MIME tệp đầu vào được hỗ trợ hoặc thậm chí chỉ là văn bản được cung cấp trong yêu cầu tạo bộ nhớ đệm.
Nếu muốn đưa một tệp vào bộ nhớ đệm, bạn phải cung cấp tệp đó dưới dạng URI Cloud Storage. Đó không được là URL của trình duyệt hoặc URL của YouTube.
Ngoài ra, các quy định hạn chế truy cập vào tệp sẽ được kiểm tra tại thời điểm tạo bộ nhớ đệm và các quy định hạn chế truy cập sẽ không được kiểm tra lại tại thời điểm người dùng yêu cầu. Vì lý do này, hãy đảm bảo rằng mọi dữ liệu có trong bộ nhớ đệm rõ ràng đều phù hợp với bất kỳ người dùng nào đưa ra yêu cầu có chứa bộ nhớ đệm đó.
Nếu muốn sử dụng chỉ dẫn hoặc công cụ hệ thống (như thực thi mã, bối cảnh từ URL, Grounding bằng
Google Search hoặc Grounding bằngGoogle Maps ), thì bộ nhớ đệm phải chứa cấu hình của các chỉ dẫn hoặc công cụ đó. Bạn không thể định cấu hình các tham số này trong mẫu câu lệnh của máy chủ hoặc trong yêu cầu câu lệnh của ứng dụng. Xin lưu ý rằng các mẫu câu lệnh của máy chủ chưa hỗ trợ tính năng gọi hàm (hoặc trò chuyện). Để biết thông tin chi tiết về cách định cấu hình chỉ dẫn và công cụ hệ thống trong bộ nhớ đệm, hãy xem API REST của Agent Platform Gemini API (formerly Vertex AI).
Bước 1: Tạo bộ nhớ đệm
Tạo bộ nhớ đệm bằng cách trực tiếp sử dụng API REST của Agent Platform Gemini API (formerly Vertex AI).
Sau đây là ví dụ về cách tạo bộ nhớ đệm rõ ràng cho tệp PDF dưới dạng nội dung của tệp đó.
Cú pháp:
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
Yêu cầu minh hoạ:
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
Câu trả lời mẫu:
Phản hồi bao gồm một tài nguyên đủ điều kiện name, là duy nhất trên toàn cầu
đối với bộ nhớ đệm (lưu ý rằng phân đoạn cuối cùng là mã bộ nhớ đệm). Bạn sẽ sử dụng toàn bộ giá trị name này trong bước tiếp theo của quy trình làm việc.
{
"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"
}
Bước 2: Tham chiếu bộ nhớ đệm trong mẫu câu lệnh của máy chủ
Sau khi tạo bộ nhớ đệm, hãy tham chiếu bộ nhớ đệm đó bằng name trong thuộc tính cachedContent của mẫu câu lệnh phía máy chủ.
Hãy đảm bảo bạn tuân thủ các yêu cầu sau khi tạo mẫu câu lệnh máy chủ:
Sử dụng tài nguyên đủ điều kiện
nametừ phản hồi khi bạn tạo bộ nhớ đệm. Đây không phải là tên hiển thị không bắt buộc mà bạn đã chỉ định trong yêu cầu.Vị trí của mẫu câu lệnh máy chủ phải khớp với vị trí của bộ nhớ đệm.
Để sử dụng các lệnh hoặc công cụ hệ thống, bạn phải định cấu hình các lệnh hoặc công cụ đó dưới dạng một phần của bộ nhớ đệm chứ không phải là một phần của mẫu câu lệnh của máy chủ.
Cú pháp:
{{cachedContent name="YOUR_CACHE_RESOURCE_NAME"}}
{{role "user"}}
{{userPrompt}}
Ví dụ:
{{cachedContent name="projects/861083271981/locations/global/cachedContents/4545031458888089601"}}
{{role "user"}}
{{userPrompt}}
Ngoài ra, giá trị của tham số name trong mẫu câu lệnh của máy chủ có thể là một biến đầu vào động.
Ví dụ:
{{cachedContent name=someVariable}}name của bộ nhớ đệm vào làm dữ liệu đầu vào cho yêu cầu từ
ứng dụng của bạn.
Bước 3: Tham chiếu mẫu câu lệnh của máy chủ trong yêu cầu từ ứng dụng
Hãy hết sức lưu ý những điều sau khi viết yêu cầu:
Sử dụng Agent Platform Gemini API (formerly Vertex AI) vì bộ nhớ đệm được tạo bằng nhà cung cấp Gemini API đó.
Vị trí nơi bạn truy cập vào mô hình trong yêu cầu câu lệnh của ứng dụng phải khớp với vị trí của mẫu câu lệnh trên máy chủ và bộ nhớ đệm.
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}");
}
Quản lý bộ nhớ đệm rõ ràng
Phần này mô tả cách quản lý bộ nhớ đệm nội dung rõ ràng, bao gồm cả cách liệt kê tất cả bộ nhớ đệm, lấy siêu dữ liệu về bộ nhớ đệm, cập nhật TTL hoặc thời gian hết hạn của bộ nhớ đệm, và xoá bộ nhớ đệm.
Bạn quản lý bộ nhớ đệm rõ ràng bằng cách sử dụng API REST của Agent Platform Gemini API (formerly Vertex AI).
Sau khi tạo bộ nhớ đệm nội dung tường minh, bạn không thể thay đổi bất kỳ thông tin nào về bộ nhớ đệm ngoại trừ TTL hoặc thời gian hết hạn.
Liệt kê tất cả bộ nhớ đệm
Bạn có thể liệt kê tất cả bộ nhớ đệm rõ ràng có sẵn cho dự án của mình. Lệnh này sẽ chỉ trả về các bộ nhớ đệm ở vị trí được chỉ định.
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
Lấy siêu dữ liệu về một bộ nhớ đệm
Bạn không thể truy xuất hoặc xem nội dung thực tế được lưu vào bộ nhớ đệm. Tuy nhiên, bạn có thể truy xuất siêu dữ liệu về bộ nhớ đệm rõ ràng, bao gồm name, model, display_name, usage_metadata, create_time, update_time và expire_time.
Bạn cần cung cấp CACHE_ID, là phân đoạn cuối cùng trong tài nguyên đủ điều kiện name của bộ nhớ đệm.
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}
Cập nhật TTL hoặc thời gian hết hạn cho bộ nhớ đệm
Khi tạo bộ nhớ đệm rõ ràng, bạn có thể tuỳ ý đặt ttl hoặc expire_time.
ttl: TTL (thời gian tồn tại) của bộ nhớ đệm, cụ thể là số giây và nano giây mà bộ nhớ đệm tồn tại sau khi được tạo hoặc sau khittlđược cập nhật trước khi hết hạn. Khi bạn đặtttl,expireTimecủa bộ nhớ đệm sẽ tự động được cập nhật.expire_time: MộtTimestamp(như2024-06-30T09:00:00.000000Z) chỉ định ngày và giờ tuyệt đối khi bộ nhớ đệm hết hạn.
Nếu bạn không đặt giá trị nào trong số này, thì TTL mặc định là 1 giờ. Không có giới hạn tối thiểu hoặc tối đa về TTL.
Đối với bộ nhớ đệm rõ ràng hiện có, bạn có thể thêm hoặc cập nhật ttl hoặc expire_time.
Bạn cần cung cấp CACHE_ID, là phân đoạn cuối cùng trong tài nguyên đủ điều kiện name của bộ nhớ đệm.
Cập nhật 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'"
}'
Cập nhật 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'"
}'
Xoá bộ nhớ đệm
Khi không cần bộ nhớ đệm rõ ràng nữa, bạn có thể xoá bộ nhớ đệm đó.
Bạn cần cung cấp CACHE_ID, là phân đoạn cuối cùng trong tài nguyên đủ điều kiện name của bộ nhớ đệm.
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}
Giá cho tính năng lưu vào bộ nhớ đệm rõ ràng
Lưu vào bộ nhớ đệm một cách rõ ràng là một tính năng có tính phí được thiết kế để giảm chi phí. Giá được tính dựa trên các yếu tố sau:
Mã thông báo đầu vào để tạo bộ nhớ đệm: Đối với cả bộ nhớ đệm ngầm ẩn và rõ ràng, bạn sẽ được tính phí cho mã thông báo đầu vào dùng để tạo bộ nhớ đệm theo giá mã thông báo đầu vào tiêu chuẩn.
Lưu trữ bộ nhớ đệm: Đối với bộ nhớ đệm tường minh, chi phí lưu trữ cũng được tính dựa trên thời gian lưu trữ bộ nhớ đệm. Không có chi phí lưu trữ cho việc lưu vào bộ nhớ đệm ngầm định. Để biết thêm thông tin, hãy xem mức giá cho Agent Platform Gemini API (formerly Vertex AI).
Sử dụng nội dung đã lưu vào bộ nhớ đệm: Việc lưu vào bộ nhớ đệm rõ ràng đảm bảo bạn được chiết khấu khi tham chiếu đến bộ nhớ đệm rõ ràng, nghĩa là bạn được chiết khấu cho mã thông báo đầu vào khi chúng tham chiếu đến bộ nhớ đệm hiện có. Đối với các mẫu Gemini 2.5 trở lên, mức chiết khấu này là 90%.
Số lượng mã thông báo trong phần được lưu vào bộ nhớ đệm của dữ liệu đầu vào được cung cấp trong trường cachedContentTokenCount trong siêu dữ liệu của một phản hồi.