يتميز Gemini API من Google الآن بوضع الدفعة (Batch Mode)، وهو تحديث تحويلي مصمم للمهام الكبيرة وغير المتزامنة، ويأتي مع تخفيض بنسبة 50% في التكلفة. 🚀
- تتيح لك نقطة النهاية القوية هذه معالجة مهام ضخمة مع تسليم نتائجك في غضون 24 ساعة، وكل ذلك بنصف سعر API القياسي.
- تم تصميم النظام لأعباء العمل ذات الإنتاجية العالية، ويستوعب ملفات JSONL التي يصل حجمها إلى 2 جيجابايت ويستفيد من التحسينات مثل التخزين المؤقت للسياق (Context Caching) لزيادة الكفاءة.
- كما يدعم الأدوات المضمنة مثل بحث Google ويتم إدارته من خلال واجهة برمجة تطبيقات بسيطة لإنشاء الوظائف وحذفها واستردادها، مما يجعل معالجة الذكاء الاصطناعي الضخمة أكثر تكلفة وسهولة.
لذا، دعنا نلقي نظرة فاحصة على وضع الدفعة الجديد في Google Gemini API!
هل تريد منصة متكاملة وشاملة لفريق المطورين لديك للعمل معًا بأقصى إنتاجية؟
يلبي Apidog جميع متطلباتك، ويحل محل Postman بسعر أقل بكثير!
تسعير وضع الدفعة في Gemini API
من الفوائد الأساسية لوضع الدفعة في Gemini API هو التخفيض الكبير في التكلفة. يتم تسعير جميع المهام المقدمة عبر نقطة النهاية هذه بـ 50% أقل من السعر القياسي للنموذج المكافئ المستخدم في مكالمة متزامنة (في الوقت الفعلي).
ينطبق هذا الخصم البالغ 50% مباشرةً على هيكل التسعير لكل رمز (token). سواء كنت تستخدم gemini-2.5-pro
، أو gemini-2.5-flash
، أو أي نموذج آخر مدعوم، فإن تكلفة رموز الإدخال والإخراج يتم تخفيضها إلى النصف عند معالجتها عبر مهمة دفعة. يجعل نموذج التسعير هذا من الممكن ماليًا تنفيذ مهام واسعة النطاق، مثل تحليل تيرابايت من البيانات النصية أو إنشاء محتوى لكتالوج منتجات كامل، والتي قد تكون باهظة التكلفة باستخدام واجهة برمجة التطبيقات القياسية. لا تزال التكلفة تُحسب بناءً على عدد الرموز في إدخالك والإخراج الذي تم إنشاؤه، ولكن السعر لكل رمز هو ما يتم خصمه.
كيفية استخدام وضع الدفعة في Gemini API: دليل خطوة بخطوة
تم تصميم سير العمل لوضع الدفعة في Gemini API ليكون مباشرًا، ويتضمن إعداد الملفات وإنشاء المهام واسترداد النتائج. توفر الأقسام التالية دليلًا عمليًا باستخدام Google GenAI Python SDK.

الخطوة 1: إعداد ملف الإدخال الخاص بك لوضع الدفعة في Gemini API
يعالج وضع الدفعة في Gemini API الطلبات من ملف JSON Lines (JSONL). يجب أن يكون كل سطر في الملف كائن JSON صالحًا يمثل طلبًا واحدًا ومكتملًا بذاته. يمكن أن يصل حجم الملف إلى 2 جيجابايت.
يجب أن يحتوي كل كائن JSON في الملف على حقلين:
key
: معرف سلسلة فريد (من اختيارك) لكل طلب، والذي يستخدم لربط الطلبات بنتائجها.request
: حمولة الطلب، وهي متطابقة في الهيكل مع طلب يتم إرساله إلى Gemini API المتزامن. تحتوي على حقلcontents
مع موجه النموذج.
مثال batch_requests.jsonl
:
{"key": "request_1", "request": {"contents": [{"parts": [{"text": "Explain how AI works in a few words"}]}]}}
{"key": "request_2", "request": {"contents": [{"parts": [{"text": "Summarize the key benefits of context caching in LLMs."}]}]}}
{"key": "request_3", "request": {"contents": [{"parts": [{"text": "Write a python function to reverse a string."}]}]}}
الخطوة 2: سير عمل البرمجة لوضع الدفعة في Gemini API
يبسط Python SDK عملية التفاعل مع نقطة نهاية الدفعة إلى عدد قليل من استدعاءات الوظائف الرئيسية.
تحميل ملف الإدخال: أولاً، يجب عليك تحميل ملف JSONL الخاص بك إلى خدمة ملفات Google. يعيد هذا كائن ملف ستشير إليه عند إنشاء المهمة.
import google.generativeai as genai
# It is recommended to configure your API key as an environment variable
# genai.configure(api_key="YOUR_API_KEY")
uploaded_batch_requests = genai.upload_file(path="batch_requests.jsonl")
إنشاء مهمة الدفعة: بعد تحميل الملف، يمكنك الآن إنشاء مهمة الدفعة. يتطلب هذا الاستدعاء تحديد النموذج الذي ترغب في استخدامه وتوفير الملف الذي تم تحميله كمصدر للطلبات.
batch_job = genai.create_batch_job(
model="gemini-2.5-flash", # Or "gemini-2.5-pro", etc.
requests=uploaded_batch_requests,
config={
'display_name': "MyFirstBatchJob-1",
},
)
print(f"Created batch job: {batch_job.name}")
print(f"Initial state: {batch_job.state.name}")
تعود هذه الوظيفة على الفور، وتوفر اسم المهمة وحالتها الأولية، والتي عادة ما تكون JOB_STATE_PENDING
.
الخطوة 3: إدارة ومراقبة المهام في وضع الدفعة في Gemini API
نظرًا لأن مهام الدفعة غير متزامنة، فأنت بحاجة إلى مراقبة حالتها. يمكنك استرداد الحالة الحالية للمهمة في أي وقت باستخدام اسمها. يُضمن اكتمال المهام في غضون 24 ساعة.
حالات المهام المحتملة هي:
JOB_STATE_UNSPECIFIED
: الحالة الافتراضية.JOB_STATE_PENDING
: تم إنشاء المهمة وهي في انتظار المعالجة.JOB_STATE_RUNNING
: المهمة قيد المعالجة بنشاط.JOB_STATE_SUCCEEDED
: اكتملت المهمة بنجاح.JOB_STATE_FAILED
: فشلت المهمة. سيحتوي حقلerror
في كائن المهمة على معلومات تشخيصية.JOB_STATE_CANCELLING
: تم استلام طلب إلغاء.JOB_STATE_CANCELLED
: تم إلغاء المهمة.
مثال على التحقق من حالة المهمة:
# Check the status after some time has passed
retrieved_job = genai.get_batch_job(name=batch_job.name)
print(f"Current job state: {retrieved_job.state.name}")
الخطوة 4: معالجة النتائج من وضع الدفعة في Gemini API
بمجرد أن تكون حالة المهمة JOB_STATE_SUCCEEDED
، تكون النتائج متاحة للتنزيل كملف JSONL. يتوافق كل سطر في ملف الإخراج مع طلب من ملف الإدخال.
يحتوي كائن JSON الناتج على key
من الطلب الأصلي وكائن response
يحتوي على إخراج النموذج.
- تنزيل ملف النتائج:
if retrieved_job.state.name == 'JOB_STATE_SUCCEEDED':
result_file_metadata = retrieved_job.result_file
result_file_content_bytes = genai.download_file(name=result_file_metadata.name).read()
# Decode and process the results
file_content = result_file_content_bytes.decode('utf-8')
for line in file_content.splitlines():
print(line)
elif retrieved_job.state.name == 'JOB_STATE_FAILED':
print(f"Job failed with error: {retrieved_job.error}")
مثال على سطر ملف الإخراج:
{"key": "request_1", "response": {"candidates": [{"content": {"parts": [{"text": "Artificial intelligence enables machines to learn and reason."}]}}]}}
يمكنك تحليل هذا الملف، باستخدام key
لمطابقة كل استجابة مع موجهها الأصلي.
الوظائف المتقدمة في وضع الدفعة في Gemini API
يدعم وضع الدفعة في Gemini API أيضًا ميزات أكثر تقدمًا لتحسين سير العمل على نطاق واسع.
التخزين المؤقت للسياق مع وضع الدفعة في Gemini API
للمهام التي تتضمن جزءًا كبيرًا ومشتركًا من السياق (مثل مستند طويل تريد طرح أسئلة متعددة عنه)، يمكنك استخدام التخزين المؤقت للسياق (Context Caching). تتيح لك هذه الميزة تخزين السياق المشترك، بحيث لا تتم إعادة معالجته مع كل طلب في الدفعة. يمكن أن يؤدي ذلك إلى توفير كبير في التكاليف وتسريع أوقات المعالجة عن طريق تقليل العدد الإجمالي للرموز المعالجة.
استخدام الأدوات المضمنة مع وضع الدفعة في Gemini API
تدعم مهام الدفعة استخدام الأدوات، بما في ذلك وظيفة بحث Google المضمنة. يتيح لك ذلك تنفيذ مهام واسعة النطاق تتطلب من النموذج الوصول إلى المعلومات في الوقت الفعلي من الويب ومعالجتها. على سبيل المثال، يمكن تكوين مهمة دفعة لتحليل آلاف عناوين URL وتلخيص محتواها.
سلطت Google الضوء على العديد من المنظمات التي تستخدم هذه الوظيفة بالفعل:
- تستخدم Reforged Labs وضع الدفعة في Gemini API لتحليل وتصنيف كميات كبيرة من إعلانات الفيديو، مما يقلل التكاليف ويسرع سير عملها.
- تستخدم Vals AI الإنتاجية العالية لوضع الدفعة لاختبار النماذج الأساسية بعدد كبير من استعلامات التقييم، متجاوزة قيود المعدل لواجهات برمجة التطبيقات المتزامنة.
الخاتمة: القيمة الفنية لوضع الدفعة في Gemini API
يوفر وضع الدفعة في Gemini API حلاً قويًا من الناحية الفنية ومفيدًا ماليًا لمعالجة الذكاء الاصطناعي على نطاق واسع وغير المتزامنة. من خلال تقديم تخفيض بنسبة 50% في التكلفة، وسير عمل مبسط يعتمد على الملفات، ودعم الميزات المتقدمة مثل التخزين المؤقت للسياق واستخدام الأدوات، فإنه يزيل الحواجز الهندسية والمالية المرتبطة بمهام الذكاء الاصطناعي عالية الإنتاجية. إنها أداة أساسية للمطورين والمنظمات التي تتطلع إلى الاستفادة من القوة الكاملة لنماذج Gemini على مجموعات البيانات الضخمة.
هل تريد منصة متكاملة وشاملة لفريق المطورين لديك للعمل معًا بأقصى إنتاجية؟
يلبي Apidog جميع متطلباتك، ويحل محل Postman بسعر أقل بكثير!