एआई सुविधा के लिए, हो सकता है कि आपको किसी मॉडल को एक ही इनपुट टोकन (कॉन्टेंट) बार-बार पास करना पड़े. इन मामलों में, इस कॉन्टेंट को कैश मेमोरी में सेव किया जा सकता है. इसका मतलब है कि कॉन्टेंट को मॉडल को एक बार पास करें, उसे सेव करें, और बाद के अनुरोधों में उसका रेफ़रंस दें.
कॉन्टेक्स्ट कैशिंग से, ज़्यादा कॉन्टेंट वाले दोहराए जाने वाले टास्क के लिए, लेटेन्सी और लागत को काफ़ी हद तक कम किया जा सकता है. जैसे, ज़्यादा टेक्स्ट, कोई ऑडियो फ़ाइल या वीडियो फ़ाइल. कैश मेमोरी में सेव किए गए कॉन्टेंट के कुछ सामान्य इस्तेमाल के उदाहरणों में, लोगों की विस्तृत जानकारी वाले दस्तावेज़, कोडबेस या मैन्युअल शामिल हैं.
Gemini मॉडल, कैश मेमोरी में सेव करने के दो अलग-अलग तरीके उपलब्ध कराते हैं:
इंप्लिसिट कैशिंग: अपने-आप ज़्यादातर मॉडल पर चालू हो जाती है. इसमें लागत में बचत की कोई गारंटी नहीं होती
एक्सप्लिसिट कैशिंग: ज़्यादातर मॉडल पर ज़रूरत के हिसाब से और मैन्युअल तरीके से चालू की जा सकती है. इससे आम तौर पर लागत में बचत होती है
एक्सप्लिसिट कैशिंग उन मामलों में काम की होती है जहां लागत में बचत की गारंटी ज़्यादा होती है. हालांकि, इसके लिए डेवलपर को ज़्यादा काम करना पड़ता है.
इंप्लिसिट और एक्सप्लिसिट, दोनों तरह की कैशिंग के लिए, आपके जवाब के मेटाडेटा में मौजूद cachedContentTokenCount फ़ील्ड, आपके इनपुट के कैश मेमोरी में सेव किए गए हिस्से में मौजूद टोकन की संख्या दिखाता है. एक्सप्लिसिट कैशिंग के लिए, इस पेज के सबसे नीचे दी गई कीमत
की जानकारी ज़रूर देखें.
काम करने वाले मॉडल
कैशिंग की सुविधा, इन मॉडल का इस्तेमाल करने पर उपलब्ध होती है:
gemini-3.1-pro-previewgemini-3-flash-previewgemini-3.1-flash-litegemini-2.5-progemini-2.5-flashgemini-2.5-flash-lite
मीडिया जनरेट करने वाले मॉडल (उदाहरण के लिए, Nana Banana मॉडल, जैसे कि gemini-3.1-flash-image-preview), कॉन्टेक्स्ट कैशिंग की सुविधा के साथ काम नहीं करते.
कैश मेमोरी में सेव किए गए कॉन्टेंट के साइज़ की सीमाएं
हर मॉडल के लिए, कैश मेमोरी में सेव किए गए कॉन्टेंट के लिए टोकन की संख्या की कम से कम ज़रूरत होती है. ज़्यादा से ज़्यादा टोकन की संख्या, मॉडल की कॉन्टेक्स्ट विंडो के हिसाब से तय होती है.
- Gemini प्रो मॉडल: कम से कम 4,096 टोकन
- Gemini Flash मॉडल: कम से कम 1,024 टोकन
इसके अलावा, BLOB या टेक्स्ट का इस्तेमाल करके, कैश मेमोरी में सेव किए जा सकने वाले कॉन्टेंट का साइज़ ज़्यादा से ज़्यादा 10 एमबी हो सकता है.
इंप्लिसिट कैशिंग
इंप्लिसिट कैशिंग, डिफ़ॉल्ट रूप से चालू होती है और यह ज़्यादातर Gemini मॉडल के लिए उपलब्ध है.
अगर आपका अनुरोध, कैश मेमोरी में सेव किए गए कॉन्टेंट से मेल खाता है, तो Google लागत में बचत की जानकारी अपने-आप पास कर देता है. यहां कुछ तरीके दिए गए हैं, जिनसे इस बात की संभावना बढ़ जाती है कि आपका अनुरोध, इंप्लिसिट कैशिंग का इस्तेमाल करे:
- अपने प्रॉम्प्ट की शुरुआत में, ज़्यादा और सामान्य कॉन्टेंट डालने की कोशिश करें.
- कम समय में, मिलते-जुलते प्रीफ़िक्स वाले अनुरोध भेजने की कोशिश करें.
आपके इनपुट के कैश मेमोरी में सेव किए गए हिस्से में मौजूद टोकन की संख्या, जवाब के मेटाडेटा में मौजूद cachedContentTokenCount फ़ील्ड में दी जाती है.
एक्सप्लिसिट कैशिंग
एक्सप्लिसिट कैशिंग, डिफ़ॉल्ट रूप से चालू नहीं होती. यह Gemini मॉडल की एक वैकल्पिक सुविधा है.
एक्सप्लिसिट कॉन्टेंट कैश को सेट अप करने और उसके साथ काम करने का तरीका यहां दिया गया है:
एक्सप्लिसिट कैश मैनेज करना. इसमें ये शामिल हैं:
ध्यान दें कि एक्सप्लिसिट कॉन्टेंट कैश, इंप्लिसिट कैशिंग के साथ इंटरैक्ट करते हैं. इससे, एक्सप्लिसिट कैश किए गए कॉन्टेंट के अलावा, अन्य कॉन्टेंट भी कैश मेमोरी में सेव हो सकता है. इंप्लिसिट कैशिंग बंद करके और एक्सप्लिसिट कैश न बनाकर, कैश मेमोरी में सेव किए गए डेटा को सेव होने से रोका जा सकता है. ज़्यादा जानकारी के लिए, कैशिंग की सुविधा चालू और बंद करना देखें.
एक्सप्लिसिट कैश बनाना और उसका इस्तेमाल करना
एक्सप्लिसिट कॉन्टेंट कैश बनाने और उसका इस्तेमाल करने के लिए, ये ज़रूरी हैं:
एक्सप्लिसिट कैश बनाने और उसका इस्तेमाल करने के बारे में अहम जानकारी
आपका कैश, आपके ऐप्लिकेशन के प्रॉम्प्ट के अनुरोधों और आपके सर्वर प्रॉम्प्ट टेंप्लेट के साथ अलाइन होना चाहिए:
कैश, किसी Gemini API सेवा देने वाली कंपनी के लिए खास होता है. आपके ऐप्लिकेशन के प्रॉम्प्ट के अनुरोध में, उसी सेवा देने वाली कंपनी का इस्तेमाल किया जाना चाहिए.
Firebase AI Logic के लिए, हमारा सुझाव है कि एक्सप्लिसिट कॉन्टेंट कैश का इस्तेमाल सिर्फ़ Vertex AI Gemini API के साथ करें. इस पेज पर दी गई सभी जानकारी और उदाहरण, उस Gemini API सेवा देने वाली कंपनी के लिए खास हैं.कैश, Gemini मॉडल के लिए खास होता है. आपके ऐप्लिकेशन के प्रॉम्प्ट के अनुरोध में, उसी मॉडल का इस्तेमाल किया जाना चाहिए.
कैश किसी जगह के लिए खास होता है, जब Vertex AI Gemini API का इस्तेमाल किया जाता है.
एक्सप्लिसिट कैश की जगह, सर्वर प्रॉम्प्ट टेंप्लेट की जगह और आपके ऐप्लिकेशन के प्रॉम्प्ट के अनुरोध में मॉडल को ऐक्सेस करने की जगह से मेल खानी चाहिए.
इसके अलावा, एक्सप्लिसिट कैशिंग के लिए, इन सीमाओं और ज़रूरी शर्तों के बारे में जानें:
एक्सप्लिसिट कैश बनाने के बाद, कैश के बारे में कुछ भी नहीं बदला जा सकता. हालांकि, टीटीएल या समयसीमा खत्म होने का समय बदला जा सकता है.
कैश मेमोरी में, काम करने वाले किसी भी इनपुट फ़ाइल के MIME टाइप को सेव किया जा सकता है. इसके अलावा, कैश बनाने के अनुरोध में दिए गए सिर्फ़ टेक्स्ट को भी सेव किया जा सकता है.
अगर आपको कैश में कोई फ़ाइल शामिल करनी है, तो आपको फ़ाइल को Cloud Storage यूआरआई के तौर पर देना होगा. यह ब्राउज़र यूआरएल या YouTube यूआरएल नहीं हो सकता.
इसके अलावा, फ़ाइल के ऐक्सेस पर पाबंदियां, कैश बनाने के समय देखी जाती हैं. और उपयोगकर्ता के अनुरोध के समय, ऐक्सेस पर पाबंदियां फिर से नहीं देखी जाती हैं. इसलिए, पक्का करें कि एक्सप्लिसिट कैश में शामिल किया गया कोई भी डेटा, उस कैश का इस्तेमाल करने वाले किसी भी उपयोगकर्ता के लिए सही हो.
अगर आपको सिस्टम के निर्देशों या टूल (जैसे, कोड एक्ज़ीक्यूशन, यूआरएल कॉन्टेक्स्ट या
Google Search के साथ ग्राउंडिंग) का इस्तेमाल करना है, तो कैश में उनकी कॉन्फ़िगरेशन शामिल होनी चाहिए. उन्हें सर्वर प्रॉम्प्ट टेंप्लेट या आपके ऐप्लिकेशन के प्रॉम्प्ट के अनुरोध में कॉन्फ़िगर नहीं किया जा सकता. ध्यान दें कि सर्वर प्रॉम्प्ट टेंप्लेट, फ़िलहाल फ़ंक्शन कॉल (या चैट) के साथ काम नहीं करते. अपने कैश में सिस्टम के निर्देशों और टूल को कॉन्फ़िगर करने के बारे में जानने के लिए, REST API देखेंVertex AI Gemini API.
पहला चरण: कैश बनाना
के REST API का सीधे इस्तेमाल करके, कैश बनाएंVertex AI Gemini API.
यहां एक उदाहरण दिया गया है, जिसमें किसी पीडीएफ़ फ़ाइल को उसके कॉन्टेंट के तौर पर इस्तेमाल करके, एक्सप्लिसिट कैश बनाया गया है.
Cloud Shellसिंटैक्स:
PROJECT_ID="PROJECT_ID"
MODEL_ID="GEMINI_MODEL" # for example, gemini-3-flash-preview
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-flash-preview"
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-flash-preview",
"createTime": "2024-06-04T01:11:50.808236Z",
"updateTime": "2024-06-04T01:11:50.808236Z",
"expireTime": "2024-06-04T02:11:50.794542Z"
}
दूसरा चरण: सर्वर प्रॉम्प्ट टेंप्लेट में कैश का रेफ़रंस देना
सर्वर प्रॉम्प्ट टेंप्लेट बनाते समय, इन ज़रूरी शर्तों का पालन करें:
कैश बनाते समय, जवाब में मिले पूरी तरह से क्वालिफ़ाइड संसाधन
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 इनपुट के तौर पर शामिल किया जा सकता है.
तीसरा चरण: अपने ऐप्लिकेशन से मिले अनुरोध में, सर्वर प्रॉम्प्ट टेंप्लेट का रेफ़रंस देना
अनुरोध लिखते समय, इन बातों का ध्यान रखें:
Vertex AI Gemini API का इस्तेमाल करें, क्योंकि कैश को उस Gemini API सेवा देने वाली कंपनी की मदद से बनाया गया था.
Swift
// ...
// Initialize the Vertex AI Gemini API backend service
// Create a `TemplateGenerativeModel` instance
// Make sure to specify the same location as the server prompt template and the cache
let model = FirebaseAI.firebaseAI(backend: .vertexAI(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 Vertex AI Gemini API backend service
// 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.vertexAI(location = "LOCATION"))
.templateGenerativeModel()
val response = model.generateContent(
// Specify your template ID
"TEMPLATE_ID",
)
val text = response.text
println(text)
Java
// ...
// Initialize the Vertex AI Gemini API backend service
// Create a `TemplateGenerativeModel` instance
// Make sure to specify the same location as the server prompt template and the cache
TemplateGenerativeModel generativeModel = FirebaseAI.getInstance().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 Vertex AI Gemini API backend service
// Make sure to specify the same location as the server prompt template and the cache
const ai = getAI(app, { backend: new VertexAIBackend('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 Vertex AI Gemini API backend service
// Create a `TemplateGenerativeModel` instance
// Make sure to specify the same location as the server prompt template and the cache
var _model = FirebaseAI.vertexAI(location: 'LOCATION').templateGenerativeModel()
var response = await _model.generateContent(
// Specify your template ID
'TEMPLATE_ID',
);
var text = response?.text;
print(text);
Unity
// ...
// Initialize the Vertex AI Gemini API backend service
// Make sure to specify the same location as the server prompt template and the cache
var firebaseAI = FirebaseAI.GetInstance(FirebaseAI.Backend.VertexAI(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}");
}
एक्सप्लिसिट कैश मैनेज करना
इस सेक्शन में, एक्सप्लिसिट कॉन्टेंट कैश मैनेज करने के बारे में बताया गया है. इसमें, सभी कैश की सूची बनाने, कैश के बारे में मेटाडेटा पाने, कैश का टीटीएल या समयसीमा खत्म होने का समय अपडेट करने, और कैश मिटाने का तरीका शामिल है.
एक्सप्लिसिट कैश मैनेज करने के लिए, Vertex AI Gemini API के REST API का इस्तेमाल करें.
एक्सप्लिसिट कॉन्टेंट कैश बनाने के बाद, कैश के बारे में कुछ भी नहीं बदला जा सकता. हालांकि, टीटीएल या समयसीमा खत्म होने का समय बदला जा सकता है.
Cloud Shellसभी कैश की सूची बनाना
आपके पास अपने प्रोजेक्ट के लिए उपलब्ध सभी एक्सप्लिसिट कैश की सूची बनाने का विकल्प होता है. यह कमांड, सिर्फ़ तय की गई जगह में मौजूद कैश को दिखाएगी.
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 या expire_time सेट करने का विकल्प होता है.
ttl: कैश का टीटीएल (टाइम-टू-लाइव). खास तौर पर, सेकंड और नैनोसेकंड की वह संख्या जो कैश बनाने के बाद या समयसीमा खत्म होने से पहलेttlअपडेट करने के बाद, कैश के लिए तय की जाती है.ttlसेट करने पर, कैश काexpireTimeअपने-आप अपडेट हो जाता है.expire_time: एकTimestamp(जैसे,2024-06-30T09:00:00.000000Z), जो कैश की समयसीमा खत्म होने की असल तारीख और समय तय करता है.
अगर इनमें से कोई भी वैल्यू सेट नहीं की जाती है, तो डिफ़ॉल्ट टीटीएल एक घंटा होता है. टीटीएल के लिए, कम से कम या ज़्यादा से ज़्यादा की कोई सीमा नहीं है.
मौजूदा एक्सप्लिसिट कैश के लिए, 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}
एक्सप्लिसिट कैशिंग की कीमत
एक्सप्लिसिट कैशिंग, एक ऐसी सुविधा है जिसके लिए शुल्क लिया जाता है. इसे लागत कम करने के लिए डिज़ाइन किया गया है. कीमत इन कारकों पर आधारित होती है:
कैश बनाने के लिए इस्तेमाल किए गए इनपुट टोकन: इंप्लिसिट और एक्सप्लिसिट, दोनों तरह की कैशिंग के लिए, कैश बनाने के लिए इस्तेमाल किए गए इनपुट टोकन का शुल्क, इनपुट टोकन की स्टैंडर्ड कीमत के हिसाब से लिया जाता है.
कैश का स्टोरेज: एक्सप्लिसिट कैशिंग के लिए, स्टोरेज का शुल्क भी लिया जाता है. यह शुल्क, कैश को सेव करके रखने की अवधि के हिसाब से तय होता है. इंप्लिसिट कैशिंग के लिए, स्टोरेज का कोई शुल्क नहीं लिया जाता. ज़्यादा जानकारी के लिए, कीमत देखें Vertex AI Gemini API.
कैश मेमोरी में सेव किए गए कॉन्टेंट का इस्तेमाल: एक्सप्लिसिट कैशिंग से, एक्सप्लिसिट कैश का रेफ़रंस देने पर छूट मिलती है. इसका मतलब है कि मौजूदा कैश का रेफ़रंस देने पर, आपको इनपुट टोकन पर छूट मिलती है. Gemini 2.5 और उसके बाद के मॉडल के लिए, यह छूट 90% है.
आपके इनपुट के कैश मेमोरी में सेव किए गए हिस्से में मौजूद टोकन की संख्या, जवाब के मेटाडेटा में मौजूद cachedContentTokenCount फ़ील्ड में दी जाती है.