تخزين السياق مؤقتًا في Firebase AI Logic

بالنسبة إلى الميزة التي تستخدم الذكاء الاصطناعي، يمكنك تمرير الرموز المميّزة للإدخال (المحتوى) نفسها مرارًا وتكرارًا إلى نموذج. في حالات الاستخدام هذه، يمكنك بدلاً من ذلك تخزين هذا المحتوى مؤقتًا، أي أنّك تمرّر المحتوى إلى النموذج مرة واحدة، وتخزّنه، وتشير إليه في الطلبات اللاحقة.

يمكن أن يؤدي التخزين المؤقت للسياق إلى تقليل وقت الاستجابة والتكلفة بشكل كبير للمهام المتكررة التي تتضمن كمية كبيرة من المحتوى، مثل كميات كبيرة من النصوص أو ملف صوتي أو ملف فيديو. تشمل بعض حالات الاستخدام الشائعة للمحتوى المخزَّن مؤقتًا مستندات الشخصيات المفصّلة أو قواعد الرموز البرمجية أو الأدلة.

توفّر نماذج Gemini آليتَين مختلفتَين للتخزين المؤقت:

يُعدّ التخزين المؤقت الصريح مفيدًا في الحالات التي تريد فيها ضمان توفير التكاليف بشكل أكبر، ولكن مع بعض العمل الإضافي من المطوّر.

في كل من التخزين المؤقت الضمني والصريح، يشير الحقل cachedContentTokenCount في البيانات الوصفية للردّ إلى عدد الرموز المميّزة في الجزء المخزّن مؤقتًا من الإدخال. بالنسبة إلى التخزين المؤقت الصريح، يُرجى مراجعة معلومات الأسعار في أسفل هذه الصفحة.

النماذج المتوافقة

تتوفّر ميزة التخزين المؤقت عند استخدام النماذج التالية:

  • gemini-4-argon (التخزين المؤقت الضمني فقط، ولا يتوفّر التخزين المؤقت الصريح)
  • gemini-3.8-flash
  • ‫gemini-3.5-flash-lite (والإصدار الأقدم gemini-3.1-flash-lite)

تتوفّر هذه الميزة في طُرز Gemini 3.x Flash و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: ‏1024 رمز مميّز كحدّ أدنى

بالإضافة إلى ذلك، يبلغ الحد الأقصى لحجم المحتوى الذي يمكنك تخزينه مؤقتًا باستخدام كائن ثنائي كبير (blob) أو نص 10 ميغابايت.



التخزين المؤقت الضمني

يتم تفعيل التخزين المؤقت الضمني تلقائيًا وهو متاح لمعظم نماذج Gemini.

توفّر Google تلقائيًا التكاليف إذا كان طلبك يتطابق مع المحتوى المخزَّن مؤقتًا. في ما يلي بعض الطرق لزيادة فرصة استخدام طلبك للتخزين المؤقت الضمني:

  • حاوِل وضع المحتوى الكبير والشائع في بداية طلبك.
  • حاوِل إرسال الطلبات التي تتضمّن بادئة مشابهة في فترة زمنية قصيرة.

يتم توفير عدد الرموز المميّزة في الجزء المخزَّن مؤقتًا من الإدخال في حقل cachedContentTokenCount في البيانات الوصفية للردّ.



التخزين المؤقت الصريح

لا يتم تفعيل التخزين المؤقت الصريح تلقائيًا، وهو ميزة اختيارية في نماذج Gemini.

يُرجى العِلم أنّ نموذج gemini-4-argon لا يتيح التخزين المؤقت الصريح.

في ما يلي كيفية إعداد ذاكرات التخزين المؤقت للمحتوى الفاضح والعمل معها:

يُرجى العِلم أنّ ذاكرة التخزين المؤقت الصريحة للمحتوى تتفاعل مع التخزين المؤقت الضمني، ما قد يؤدي إلى تخزين مؤقت إضافي يتجاوز المحتوى المخزَّن مؤقتًا بشكل صريح. يمكنك منع الاحتفاظ ببيانات ذاكرة التخزين المؤقت من خلال إيقاف التخزين المؤقت الضمني وعدم إنشاء ذاكرة تخزين مؤقت صريحة. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة تفعيل التخزين المؤقت وإيقافه.



إنشاء ذاكرة تخزين مؤقت صريحة واستخدامها

يتطلّب إنشاء ذاكرة تخزين مؤقت للمحتوى الفاضح واستخدامها ما يلي:

  1. إنشاء ذاكرة تخزين مؤقت صريحة

  2. الإشارة إلى ذاكرة التخزين المؤقت في نموذج طلب من الخادم

  3. أشِر إلى نموذج الطلب من الخادم في طلب من تطبيقك.

معلومات مهمة حول إنشاء ذاكرة تخزين مؤقت صريحة واستخدامها

يجب أن تكون ذاكرة التخزين المؤقت متوافقة مع طلبات تطبيقك ونموذج الطلبات على الخادم:

  • تكون ذاكرة التخزين المؤقت خاصة بموفّر Gemini API. يجب أن يستخدم طلب الطلب في تطبيقك الموفّر نفسه.
    بالنسبة إلى Firebase AI Logic، ننصح بشدة باستخدام ذاكرات التخزين المؤقت الصريحة للمحتوى فقط مع Agent Platform Gemini API (formerly Vertex AI). جميع المعلومات والأمثلة الواردة في هذه الصفحة خاصة بموفّر خدمة Gemini API.

  • تكون ذاكرة التخزين المؤقت مخصّصة لطراز Gemini. يجب أن يستخدم طلب الطلب في تطبيقك النموذج نفسه.

  • تكون ذاكرة التخزين المؤقت خاصة بموقع جغرافي معيّن عند استخدام Agent Platform Gemini API (formerly Vertex AI).
    يجب أن يتطابق الموقع الجغرافي لذاكرة التخزين المؤقت الصريحة مع الموقع الجغرافي لنموذج الطلب على الخادم والموقع الجغرافي الذي تصل منه إلى النموذج في طلب تطبيقك.

يُرجى أيضًا الانتباه إلى القيود والمتطلبات التالية المتعلّقة بالتخزين المؤقت الصريح:

  • بعد إنشاء ذاكرة تخزين مؤقت صريحة، لا يمكنك تغيير أي شيء في ذاكرة التخزين المؤقت باستثناء مدة البقاء أو وقت انتهاء الصلاحية.

  • يمكنك تخزين أي نوع MIME لملف إدخال متوافق أو حتى مجرد نص مقدَّم ضمن طلب إنشاء ذاكرة التخزين المؤقت.

  • إذا أردت تضمين ملف في ذاكرة التخزين المؤقت، يجب تقديم الملف كمعرّف موارد منتظم (URI) من النوع Cloud Storage. ولا يمكن أن يكون عنوان 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}");
}



إدارة ذاكرات التخزين المؤقت الصريحة

يتناول هذا القسم كيفية إدارة ذاكرات التخزين المؤقت الصريحة للمحتوى، بما في ذلك كيفية عرض جميع ذاكرات التخزين المؤقت، والحصول على بيانات وصفية حول ذاكرة تخزين مؤقت، وتعديل مدة صلاحية ذاكرة التخزين المؤقت أو وقت انتهاء صلاحيتها، وحذف ذاكرة تخزين مؤقت.

يمكنك إدارة ذاكرات التخزين المؤقت الصريحة باستخدام REST API في Agent Platform Gemini API (formerly Vertex AI).

بعد إنشاء ذاكرة تخزين مؤقت صريحة للمحتوى، لا يمكنك تغيير أي شيء في ذاكرة التخزين المؤقت باستثناء مدة الصلاحية أو وقت انتهاء الصلاحية.

عرض قائمة بجميع ذاكرات التخزين المؤقت

يمكنك إدراج جميع ذاكرات التخزين المؤقت الصريحة المتاحة لمشروعك. سيعرض هذا الأمر فقط ذاكرة التخزين المؤقت في الموقع المحدد.

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) لذاكرة التخزين المؤقت، وتحديدًا عدد الثواني والنانوثانية التي تبقى فيها ذاكرة التخزين المؤقت بعد إنشائها أو بعد تعديل ttl قبل انتهاء صلاحيتها. عند ضبط ttl، يتم تعديل expireTime ذاكرة التخزين المؤقت تلقائيًا.

  • expire_time: Timestamp (مثل 2024-06-30T09:00:00.000000Z) يحدّد التاريخ والوقت المطلقين لانتهاء صلاحية ذاكرة التخزين المؤقت.

إذا لم تضبط أيًا من هاتين القيمتين، ستكون مدة البقاء التلقائية ساعة واحدة. ما مِن حدود دنيا أو قصوى لـ 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 في البيانات الوصفية للردّ.