Batch API معناه إنك تجمع عدد كبير من الطلبات المستقلة وتبعتها كدفعة واحدة، بدل ما تبعت كل request وتستنى الرد لحظيًا. مزود الخدمة يعالجها في الخلفية خلال فترة زمنية محددة، غالبًا ساعات أو حتى 24 ساعة، مقابل سعر أقل من الـAPI العادي. فعند مزود زي OpenAI Batch API بيخلي التكلفة 50% أقل!

تخيّل عندك 50,000 ticket من Jira / Zendesk / Intercom، وعاوز تصنّفهم مثلًا إلى:

BillingBugFeature RequestAccountTechnical SupportRefundOther

بدل ما تبعت كل ticket للـ API وتستنى الرد فورًا، بتجهّزهم كلهم كـ batch job وتبعته مرة واحدة، والنتيجة ترجعلك لاحقًا.

الفكرة ببساطة بدل الشكل ده:

Ticket 1 → API → wait → result
Ticket 2 → API → wait → result
Ticket 3 → API → wait → result

يبقى الشكل كده:

Tickets file:
- Ticket 1
- Ticket 2
- Ticket 3
- ...
- Ticket 50,000

        ↓

Batch API

        ↓

Results file لاحقًا

في المثال اللي ذكرته، السعر ينزل للنصف من $10 input / $50 output لكل مليون token إلى $5 input / $25 output عند استخدام الـBatch API. طبعًا دا قلل التكلفة ولم تخسر شيئاَ لأن المهمة ممكن تخلص بشكل Asynch.

امتى استخدم الـ Batch API ؟

الـBatch API مناسب للمهام اللي مش محتاجة رد فوري، أي حاجة تقدر تعملها بشكل Asynch زي:

  • تلخيص آلاف الملفات
  • تصنيف tickets
  • تحليل logs علي مدار اليوم
  • إنشاء embeddings أو metadata
  • مراجعة كمية كبيرة من PRs القديمة
  • باختصار: استخدم prompt caching لما نفس السياق الطويل بيتكرر في requests كثيرة واستخدم Batch API لما عندك requests كثيرة لكن مش محتاج نتائجها فورًا.

تشغيل evaluations على prompts وموديلات مختلفة.لكنه غير مناسب لواجهة chatbot مباشرة أو coding assistant أثناء ما أنت بتكتب كود، لأن المهام دي بطبيعتها Synchronous وبتحتاج رد فوري وتفاعل و مش هينفع تنتظر نتيجة الدفعة بدل الاستجابة اللحظية.

ما الفرق بينه وبين ال Prompt Caching ؟

الاثنين بيوفروا في فاتورة استخدامك لل LLMs ولكن كل واحد ليه دوره وشرحنا ال Prompt Caching في ورقة وقلم من قبل تقدروا تشوفوه من هنا.