مكتبة بايثون خفيفة الوزن لبناء خطوط أنابيب معالجة الذكاء الاصطناعي المعيارية وغير المتزامنة والقابلة للتركيب، تدعم معالجة المحتوى المتوازي بكفاءة.
تفاصيل مشروع معالجات GenAI
نظرة عامة على المشروع
GenAI Processors هي مكتبة بايثون خفيفة الوزن مصممة لبناء مسارات معالجة الذكاء الاصطناعي المعيارية وغير المتزامنة والقابلة للتركيب، والمخصصة لتطبيقات الذكاء الاصطناعي التوليدي. تم إطلاق هذا المشروع بواسطة Google بهدف تبسيط عملية تطوير تطبيقات الذكاء الاصطناعي المعقدة، خاصة تلك التي تتطلب معالجة مدخلات متعددة الوسائط وتتطلب استجابات في الوقت الفعلي.
المفاهيم الأساسية
المعالج (Processor)
في صميم GenAI Processors يكمن مفهوم المعالج (Processor): وهو لبنة بناء أساسية تغلف وحدة عمل محددة. يستقبل تدفقًا من المدخلات، ويُجري عمليات، ويُخرج تدفقًا من النتائج. يمتلك كل معالج واجهة برمجة تطبيقات (API) بسيطة وموحدة:
# أي فئة ترث من processor.Processor وتنفذ هذه الدالة هي معالج
async def call(
content: AsyncIterable[ProcessorPart]
) -> AsyncIterable[ProcessorPartTypes]
جزء المعالج (ProcessorPart)
جزء المعالج (ProcessorPart) هو غلاف حول genai.types.Part
، ويحتوي على بيانات وصفية غنية مثل نوع MIME والدور والخصائص المخصصة. يدعم أنواعًا مختلفة من المحتوى (النص، الصور، الصوت، JSON المخصص).
الميزات الرئيسية
1. تصميم معياري
- يقسم المهام المعقدة إلى وحدات
Processor
وPartProcessor
قابلة لإعادة الاستخدام - يمكن ربطها بسهولة (
+
) أو موازاتها (//
) لإنشاء تدفقات بيانات وسلوكيات وكيل معقدة
2. التكامل مع واجهة برمجة تطبيقات GenAI
- يتضمن معالجات جاهزة للاستخدام، مثل
GenaiModel
لاستدعاءات واجهة برمجة التطبيقات القائمة على الدورات - يدعم
LiveProcessor
للتفاعل المتدفق في الوقت الفعلي
3. قابلية التوسع
- إنشاء معالجات مخصصة عن طريق وراثة الفئات الأساسية أو استخدام مزخرفات دالة بسيطة
- يدعم توسيعات المعالج التي يساهم بها المجتمع
4. غير متزامن ومتزامن
- يعتمد على إطار عمل
asyncio
المألوف في بايثون - ينسق المهام المتزامنة (بما في ذلك إدخال/إخراج الشبكة والاتصال مع الخيوط الفرعية كثيفة الحساب)
5. إدارة التدفق
- يوفر أدوات مساعدة لتقسيم وربط ودمج تدفقات
ProcessorPart
غير المتزامنة - يدعم المعالجة المتدفقة لتقليل زمن الاستجابة ووقت أول رمز (TTFT)
متطلبات التثبيت
تتطلب هذه المكتبة إصدار بايثون 3.10 أو أحدث.
أمر التثبيت:
pip install genai-processors
أمثلة الاستخدام
الاستخدام الأساسي
from genai_processors import content_api
from genai_processors import streams
# إنشاء تدفق الإدخال (سيتم تحويل السلاسل تلقائيًا إلى أجزاء)
input_parts = ["Hello", content_api.ProcessorPart("World")]
input_stream = streams.stream_content(input_parts)
# تطبيق المعالج على تدفق الأجزاء وتكرار النتائج
async for part in simple_text_processor(input_stream):
print(part.text)
مصادر التعلم
يوفر المشروع سلسلة من دفاتر ملاحظات Colab لمساعدة المستخدمين على التعرف على GenAI Processors (يُنصح بالتعلم بالترتيب):
- Content API Colab - يشرح أساسيات
ProcessorPart
وProcessorContent
وكيفية إنشائها - Processor Intro Colab - مقدمة للمفاهيم الأساسية لـ GenAI Processors
- Create Your Own Processor - شرح تفصيلي للخطوات النموذجية لإنشاء
Processor
أوPartProcessor
- Work with the Live API - مثال على بناء معالج في الوقت الفعلي باستخدام فئة
LiveProcessor
من واجهة برمجة تطبيقات Gemini Live
أمثلة على التطبيقات العملية
1. مثال مباشر في الوقت الفعلي
examples/realtime_simple_cli.py
- وكيل مباشر (Live agent) لإدخال الصوت وإخراج الصوت، يدمج بحث Google كأداة. هذا تطبيق عميل لمعالج مباشر، يوضح قدرات GenAI Processors في المعالجة المتدفقة والتنسيق.
2. مثال وكيل البحث
examples/research/README.md
- وكيل بحث مبني باستخدام المعالجات (Processors)، يتضمن 3 معالجات فرعية، ومعالجة متسلسلة، وإنشاء ProcessorPart
، وميزات أخرى.
3. مثال التعليق الصوتي في الوقت الفعلي
examples/live/README.md
- وكيل تعليق صوتي في الوقت الفعلي مبني باستخدام واجهة برمجة تطبيقات Gemini Live، ويتكون من وكيلين: أحدهما لاكتشاف الأحداث، والآخر لإدارة المحادثة.
هيكل المشروع
دليل Core
يحتوي دليل core/
على مجموعة من المعالجات الأساسية التي يمكن استخدامها في تطبيقاتك الخاصة. يتضمن لبنات البناء العامة المطلوبة لمعظم التطبيقات في الوقت الفعلي، وسيتطور بمرور الوقت ليشمل المزيد من المكونات الأساسية.
دليل Contrib
يحتوي دليل contrib/
على توسيعات المعالج التي يساهم بها المجتمع، وتستخدم لتوسيع مجموعة المعالجات المدمجة.
المزايا التقنية
1. معالجة بزمن استجابة منخفض
حتى في حالات الاستخدام غير المتدفقة، فإن المعالجة الفورية بمجرد توفر البيانات يمكن أن تقلل بشكل كبير من زمن الاستجابة ووقت أول رمز (TTFT)، وهو أمر بالغ الأهمية لبناء تجربة مستخدم جيدة.
2. تطوير تطبيقات سريعة الاستجابة
بينما تفضل العديد من واجهات برمجة تطبيقات نماذج اللغة الكبيرة (LLM) الواجهات المتزامنة والمبسطة، توفر GenAI Processors طريقة لكتابة تطبيقات سريعة الاستجابة من خلال الاستفادة من ميزات بايثون الأصلية، دون تعقيد الكود.
3. قدرة المعالجة المتزامنة
توضح أمثلة مخطط الرحلات ووكيل البحث كيف يمكن للوكلاء القائمين على الدورات استخدام ميزات التزامن في GenAI Processors لتحسين الاستجابة.
الملخص
توفر GenAI Processors للمطورين إطار عمل قويًا ومرنًا لبناء تطبيقات الذكاء الاصطناعي التوليدي المعقدة. إن تصميمها المعياري، وقدرتها على المعالجة غير المتزامنة، وتكاملها العميق مع خدمات Google AI، يجعلها خيارًا مثاليًا لتطوير تطبيقات الذكاء الاصطناعي الحديثة. سواء كنت تبني أنظمة محادثة في الوقت الفعلي، أو مسارات معالجة متعددة الوسائط، أو وكلاء ذكاء اصطناعي معقدين، فإن GenAI Processors توفر الأدوات وطبقات التجريد اللازمة لتبسيط عملية التطوير.