1. ما هي ميزة "البث ثنائي الاتجاه"؟
تتيح عمليات البث الثنائي الاتجاه (bidi-streaming) التواصل الثنائي الاتجاه في الوقت نفسه بين تطبيقك ونماذج الذكاء الاصطناعي. على عكس أنماط الطلب والاستجابة التقليدية التي ترسل فيها رسالة كاملة وتنتظر ردًا كاملاً، يتيح البث الثنائي ما يلي:
- الإدخال المستمر: بث الصوت أو الفيديو أو النص أثناء تسجيله
- النتائج في الوقت الفعلي: تلقّي ردود الذكاء الاصطناعي أثناء إنشائها
- المقاطعة الطبيعية: يمكن للمستخدمين مقاطعة الذكاء الاصطناعي أثناء الرد، تمامًا كما يحدث في المحادثات بين البشر

أهمية هذه الميزة: تتيح ميزة "البث الثنائي الاتجاه" إجراء محادثات طبيعية مع الذكاء الاصطناعي. يمكن للذكاء الاصطناعي الردّ أثناء تقديمك السياق، ويمكنك مقاطعته عندما تسمع ما يكفي، تمامًا كما لو كنت تتحدّث إلى شخص.
ما هي مجموعة أدوات ADK Gemini Live API؟
توفّر حزمة تطوير الوكلاء (ADK) تجريدًا عالي المستوى من Gemini Live API، ما يتيح لك التركيز على إنشاء تطبيقك من خلال التعامل مع التفاصيل المعقّدة للبث المباشر في الوقت الفعلي.

تتولّى مجموعة أدوات ADK Gemini Live API إدارة ما يلي:
- دورة حياة الاتصال: إنشاء اتصالات WebSocket والحفاظ عليها واستعادتها
- توجيه الرسائل: توجيه الصوت والنصوص والصور إلى المعالِجات المناسبة
- حالة الجلسة: الاحتفاظ بسجلّ المحادثات عند إعادة الاتصال
- تنفيذ الأدوات: إجراء المكالمات واستئنافها تلقائيًا من خلال استدعاء الدوال
لماذا يجب استخدام ADK بدلاً من Live API؟
يمكنك إنشاء التطبيقات مباشرةً باستخدام Gemini Live API، ولكنّ ADK يتعامل مع البنية الأساسية المعقّدة حتى تتمكّن من التركيز على تطبيقك:

الإمكانية | Raw Live API | مجموعة أدوات ADK Gemini Live API |
Agent Framework | الإنشاء من نقطة الصفر | وكيل واحد أو عدّة وكلاء مع أدوات وتقييم وأمان |
تنفيذ الأداة | المعالجة اليدوية | التنفيذ المتوازي التلقائي |
إدارة الاتصال | إعادة الربط يدويًا | استئناف الجلسة بشكلٍ شفاف |
نموذج الأحداث | البُنى المخصّصة | عناصر الأحداث الموحّدة والمكتوبة |
إطار عمل غير متزامن | التنسيق اليدوي | LiveRequestQueue + run_live() generator |
استمرار الجلسة | التنفيذ اليدوي | لغة الاستعلامات البنيوية (SQL) المضمّنة أو Vertex AI أو الذاكرة |
الخلاصة: يقلّل "إطار عمل تطوير التطبيقات" من أشهر من تطوير البنية الأساسية إلى أيام من تطوير التطبيقات. عليك التركيز على ما يفعله الوكيل، وليس على طريقة عمل البث.
حالات الاستخدام في الحياة الواقعية
- خدمة العملاء: يعرض العميل ماكينة القهوة المعطّلة عبر كاميرا الهاتف أثناء شرح المشكلة. يحدّد الذكاء الاصطناعي الطراز ونقطة التعطُّل، ويمكن للعميل مقاطعة المحادثة لتصحيح التفاصيل في منتصفها.
- التجارة الإلكترونية: يرفع المتسوّق قطعة ملابس أمام كاميرا الويب ويسأل "أريد العثور على أحذية تتناسب مع هذه السراويل". يحلّل الوكيل الأسلوب ويشارك في محادثة سلسة: "أريد شيئًا أكثر عصرية" → "ما رأيك في هذه الأحذية الرياضية؟" → "أضِف الأحذية الزرقاء بالمقاس 10".
- الخدمة الميدانية: يشارك فني يرتدي نظارات ذكية ما يراه أثناء طرح السؤال التالي: "أسمع ضوضاء غريبة من هذا الضاغط، هل يمكنك تحديد مصدرها؟" يقدّم الوكيل إرشادات مفصّلة بدون الحاجة إلى استخدام اليدين.
- الرعاية الصحية: يشارك مريض فيديو مباشرًا لحالة جلدية. يُجري الذكاء الاصطناعي تحليلاً أوليًا، ويطرح أسئلة توضيحية، ويقدّم إرشادات بشأن الخطوات التالية.
- الخدمات المالية: يراجع أحد العملاء محفظته بينما يعرض الوكيل الرسوم البيانية ويحاكي تأثيرات التداول. يمكن للعميل مشاركة شاشته لمناقشة مقالات إخبارية معيّنة.
عرض توضيحي لـ Shopper's Concierge 2: عرض توضيحي في الوقت الفعلي لـ Agentic RAG للتجارة الإلكترونية، تم إنشاؤه باستخدام مجموعة أدوات ADK Gemini Live API والبحث المتّجه في Vertex AI، وEmbeddings، وFeature Store، وRanking API:

مزيد من المعلومات: دليل المطوِّر
للحصول على شرح تفصيلي شامل، يُرجى الاطّلاع على دليل المطوّرين لمجموعة أدوات ADK Gemini Live API، وهو سلسلة من 5 أجزاء تغطي البنية الأساسية إلى نشر الإنتاج:
الجزء | التركيز | ما ستتعرّف عليه |
مؤسسة | البنية الأساسية، ومنصات Live API، ودورة حياة من 4 مراحل | |
Upstream | إرسال نصوص ومحتوى صوتي وفيديوهات عبر LiveRequestQueue | |
Downstream | معالجة الأحداث وتنفيذ الأدوات وسير العمل المتعدّد الوكلاء | |
التهيئة | إدارة الجلسات والحصص وعناصر التحكّم في الإنتاج | |
متعدد الوسائط | مواصفات الصوت وبُنى النماذج والميزات المتقدّمة |
2. نظرة عامة على ورشة العمل
ما ستنشئه
في ورشة العمل العملية هذه، ستنشئ تطبيقًا كاملاً للذكاء الاصطناعي يتيح البث ثنائي الاتجاه من البداية. في النهاية، سيكون لديك ذكاء اصطناعي صوتي يعمل ويمكنه تنفيذ ما يلي:
- قبول إدخال النصوص والصوت والصور
- الردّ بنص متدفّق أو كلام طبيعي
- التعامل مع المقاطعات بشكل طبيعي
- استخدام أدوات مثل "بحث Google"
على عكس قراءة المستندات، ستتمكّن من فحص كل مكوّن خطوة بخطوة، وفهم كيفية عمل الأجزاء معًا أثناء الإنشاء بشكل تدريجي.

أسلوب التعلّم
نتبع نهجًا تدريجيًا في إنشاء التطبيقات:
- الخطوة 1: إنشاء خادم WebSocket بسيط → عرض الردّ "Hello World"
- الخطوة 2: إضافة Agent → تحديد سلوك الذكاء الاصطناعي وأدواته
- الخطوة 3: تهيئة التطبيق ← خدمة التشغيل والجلسة
- الخطوة 4: بدء الجلسة → RunConfig وLiveRequestQueue
- الخطوة 5: مهمة المنبع ← التواصل بين العميل وقائمة الانتظار
- الخطوة 6: مهمة في اتجاه واحد → أحداث يتم بثها إلى العميل
- الخطوة 7: إضافة الصوت → الإدخال والإخراج الصوتي
- الخطوة 8: إضافة مدخلات الصور → الذكاء الاصطناعي المتعدد الوسائط
وتعتمد كل خطوة على الخطوة السابقة. ستُجري اختبارًا بعد كل خطوة لمعرفة مدى تقدّمك.
المتطلبات الأساسية
- حساب Google Cloud مع تفعيل الفوترة
- معرفة أساسية بلغة Python والبرمجة غير المتزامنة (async/await)
- متصفّح ويب يمكنه الوصول إلى الميكروفون وكاميرا الويب (يُنصح باستخدام Chrome)
تقدير الوقت
- ورشة عمل كاملة: حوالي 90 دقيقة
- الإصدار السريع (الخطوات من 1 إلى 4 فقط): 45 دقيقة تقريبًا
3- ورشة عمل
ابدأ ورشة العمل باتّباع التعليمات هنا:
https://github.com/kazunori279/adk-streaming-guide/blob/main/workshops/workshop.md
4. الخلاصة وأهمّ الاستنتاجات
ما أنشأته
لقد أنشأت تطبيقًا كاملاً للذكاء الاصطناعي يتيح البث المباشر في اتجاهين من البداية. يتعامل التطبيق مع النصوص والأصوات والصور التي يتم إدخالها من خلال الردود المتدفقة في الوقت الفعلي، ما يشكّل الأساس لإنشاء ذكاء اصطناعي حواري جاهز للاستخدام.
المكوّن | الإجراءات التي ينفّذها | Step |
الوكيل | تحدّد هذه السمة شخصية الذكاء الاصطناعي والتعليمات والأدوات المتاحة (مثل "بحث Google") | الخطوة 2 |
SessionService | الاحتفاظ بسجلّ المحادثات عند إعادة الاتصال | الخطوة 3 |
جري | تنظيم دورة حياة البث المباشر، وربط موظّف الدعم بواجهة Live API | الخطوة 3 |
RunConfig | تضبط هذه السمة طريقة الرد (TEXT/AUDIO) والنسخ الصوتي واستئناف الجلسة | الخطوة 4 |
LiveRequestQueue | واجهة موحّدة لإرسال النصوص والصوت والصور إلى النموذج | الخطوة 5 |
run_live() | مولّد غير متزامن يعرض أحداث البث من النموذج | الخطوة 6 |
send_realtime() | ترسل هذه السمة كائنات ثنائية كبيرة (BLOB) للصوت/الصور من أجل إدخال البث المتواصل | الخطوتان 7 و8 |
الموارد
يمكنك مواصلة التعلّم من خلال هذه المراجع الرسمية. يقدّم "دليل مجموعة أدوات ADK Gemini Live API" تغطية أعمق لكل ما تم تناوله في ورشة العمل هذه.
المرجع | URL |
مستندات ADK | |
دليل مجموعة أدوات ADK Gemini Live API | |
Gemini Live API | |
Vertex AI Live API | https://cloud.google.com/vertex-ai/generative-ai/docs/live-api |
مستودع عيّنات ADK |