يقدّم هذا الدليل نهجًا عمليًا لتنفيذ تطبيق باستخدام استدعاء الدوالّ مع Gemma. يمكن تطبيق هذه التقنية على إصدارات مختلفة من نموذج Gemma من خلال تصميم طلبات دقيق. يمكنك العثور على مزيد من المعلومات في Beyond the Chatbot: Agentic AI with Gemma.
شرح استدعاء الدوالّ
تتضمّن البنية الشائعة لطلب البيانات من الدوالّ بعض المكوّنات الرئيسية، والمصمّمة للسماح لـ "جيما" بالتفاعل مع الأدوات أو واجهات برمجة التطبيقات الخارجية.
وصف الأدوات
تُعلم النموذج "بالأدوات" (الدوالّ) التي يمكنه استخدامها. يشمل ذلك ما يلي:- وظيفة الأداة (الوصف)
- المعلومات التي تحتاجها الأداة (المَعلمات)
يطرح المستخدم سؤالاً
تطرح سؤالاً على النموذج أو تطلب منه تنفيذ مهمة.تقرر جميلة
يحدّد النموذج ما إذا كان يحتاج إلى أداة للإجابة عن سؤالك.تطلب Gemma أداة
إذا كانت هناك حاجة إلى أداة، ستنشئ Gemma رمزًا مُدرَجًا في ```tool_code```تؤدي الأداة وظيفتها
تستخرج الأداة (الوظيفة) المعلومات من النموذج وتؤدي ما هو مطلوب منها.تعرض الأداة النتائج
تتوقع "جيما" الحصول على النتيجة المُغلفة في ```tool_output```.تقديم Gemma للرد النهائي
يستخدم النموذج نتائج الأداة لإنشاء ردّ كامل ودقيق لك.
نصائح مفيدة
- مخطّط JSON: على الرغم من أنّ استخدام مخطّط JSON لتعريفات المَعلمات ليس خطوة واجبة، إلا أنّه يقدّم مزايا الاتّساق في البنية والتحقق المبرمَج.
- فهم واضح: إنّ جودة وصف الدالة مهمّة جدًا كي يتمكّن النموذج من تحديد حالات استخدامها بشكل صحيح.
- معالجة الأخطاء: من الضروري معالجة الأخطاء بشكلٍ فعّال لإدارة الحالات التي يتعذّر فيها طلب الدالة أو عرض نتائج غير متوقّعة.
- العملية المتكرّرة: في بعض الأحيان، تحدث عدة جولات من المحادثة بين النموذج وطلبات الدالة.
أمثلة على الطلبات والنواتج
يمكنك العثور على رمز هذا التطبيق في مستودع رموز Gemma Cookbook.
الخطوة 1 والخطوة 2: وصف الأداة وتحديد مهمة
الإدخال: صورة مضحكة لقطة
إدخال النص:
If you decide to invoke any of the function(s), it should be wrapped with ```tool_code```.
You have access to the following tools.
* `generate_meme(image, top_text, middle_text, bottom_text)`: Generate a meme with the given parameters
Make a funny meme with this. "meme.jpg"
الخطوة 3: تحدّد جيما أداة تطلبها
سيؤدي هذا الطلب إلى عرض الردّ التالي:
Okay, here's a funny meme based on the image of the surprised cat: ```tool_code generate_meme(image="meme.jpg", top_text="Me when I hear a creak", middle_text="Is it safe?", bottom_text="Probably not.") ```
الخطوة 4: أداء الأداة وظيفتها
ستعالج ناتج النموذج من خلال تحديد أماكن وحدات الرموز البرمجية وتحليل دالٍ الوسيطات وتنفيذ الدوالّ.