الرؤية - استدعاء الأداة
يُعرف استدعاء الأداة أيضًا باستدعاء الوظيفة، وهو قدرة النموذج الكبير على تحديد ما إذا كان يحتاج إلى استدعاء أداة/وظيفة خارجية للحصول على معلومات أو تنفيذ عملية بناءً على محتوى الحوار. سيقوم النموذج بإرجاع اسم الوظيفة المطلوبة ومعاملاتها، ثم يقوم المطور بتنفيذ الاستدعاء الفعلي وإعادة النتائج إلى النموذج لمتابعة الحوار.
يدعم AIChatPlus ميزات Tool Call في المنصات التالية:
- OpenAI
- Claude
- Gemini
- Ollama
- CllamaServer (خادم llama.cpp)
المفاهيم الأساسية
تعريف الأداة
يتضمن تعريف الأداة الحقول الأساسية التالية:
النوع: نوع الأداة، يدعم حاليًا فقط Function
* الاسم: اسم الدالة، يجب أن يتكون من الأحرف a-z أو A-Z أو الأرقام 0-9 أو الشرطة السفلية أو الواصلة، بحد أقصى 64 حرفًا
* الوصف: وصف الدالة، النموذج سيحدد متى يتم استدعاء هذه الدالة بناءً على هذا الوصف
* الخصائص: قائمة معاملات الدالة، حيث يحتوي كل معامل على خصائص مثل الاسم، والوصف، والنوع، والإلزامية
سير عملية استدعاء الأداة
التدفق الكامل لـ Tool Call هو كما يلي:
- إرسال الطلب: إرسال طلب محادثة إلى النموذج يتضمن تعريفات الأدوات
- حكم النموذج: يحدد النموذج ما إذا كان بحاجة إلى استدعاء أداة بناءً على محتوى الحوار
- استدعاءات الأدوات: في حالة الحاجة إلى الاستدعاء، يقوم النموذج بإرجاع اسم الدالة المعنية والمعاملات المطلوبة
- تنفيذ الوظيفة: يقوم المطور بتنفيذ استدعاء الوظيفة الفعلي بناءً على المعلومات المرتجعة
- إرجاع النتائج: يتم إرسال نتيجة تنفيذ الدالة كرسالة جديدة إلى النموذج
- مواصلة الحوار: يقوم النموذج بإنشاء الرد النهائي بناءً على نتيجة الوظيفة
مثال على استدعاء أداة OpenAI
فيما يلي مثال على استخدام OpenAI لتوضيح كيفية استخدام ميزة Tool Call.
1. تعريف الأدوات
أولاً، قم بإنشاء تعريف الأداة. في هذا المثال، نعرف وظيفة تُدعى get_delivery_date للحصول على موعد وصول الطرد.
2. تحديد معلمات الأداة
إضافة خصائص (Properties) للأداة (Tool). في هذا المثال، تتم إضافة معلمة order_id من نوع string، ويتم تعيينها كحقل إلزامي.
3. خيارات التهيئة
إنشاء عقدة OpenAI Chat Request Options، وضبط مفتاح API والنموذج، ثم توصيل مصفوفة الأدوات بخيارات الطلب.
4. إنشاء الرسائل
إنشاء رسالة مستخدم للاستفسار عن مشاكل متعلقة بطرود البريد السريع.
5. إرسال الطلب ومعالجة نداء الأداة
إنشاء عقدة Send OpenAI Chat Request In World، وربطها بحدث On Message Finished. ضمن رد فعل الحدث، احصل على مجموعة ToolCalls من الحمولة.
عندما يقرر النموذج استدعاء أداة، فإن مصفوفة ToolCalls لا تكون فارغة. قم باجتياز المصفوفة للحصول على معلومات عن كل استدعاء أداة:
- الرمز: المعرّف الفريد لـ "طلب الأداة"
- اسم الدالة: اسم الدالة المراد استدعاؤها
- FunctionArguments: وسيطات الدالة (بتنسيق سلسلة JSON)
6. تنفيذ الدالة وإرجاع النتيجة
قم بتنفيذ المنطق المطابق للدالة بناءً على FunctionName (في هذا المثال يتم محاكاة الحصول على وقت وصول الطرد البريدي)، ثم إرجاع النتيجة كرسالة من نوع ToolCallResult إلى النموذج.
لإنشاء رسالة جديدة، يجب تعيين:
- الدور: تم تعيينه على
أداة - المحتوى: نتيجة تنفيذ الوظيفة
- نتائج نداء الأداة: أضف
FAIChatPlus_ChatRequestToolCallResult، وحدد المعرف (باستخدام معرف نداء الأداة السابق)، واسم الوظيفة ونتيجة الوظيفة
7. متابعة المحادثة
إضافة رسالة تحتوي على نتيجة أداة (ToolCallResult) إلى سجل الرسائل، ثم إعادة إرسال الطلب. سيقوم النموذج بإنشاء رد نهائي بلغة طبيعية بناءً على النتائج التي تم إرجاعها من الوظيفة.
9. المخطط الكامل
10. نتائج التشغيل
استخدامات متقدمة
أدوات متعددة
يمكن تعريف أدوات متعددة في الوقت نفسه، وسيقوم النموذج باختيار أي وظيفة أو وظائف سيتم استدعاؤها حسب الحاجة.
أنواع المعاملات المعقدة
يدعم مُعامل الأداة أنواعًا متعددة، ويمكن إضافة تعريفات مُعاملات أكثر تعقيدًا مثل النوع المُعدَّد عبر حقل ExtraJsonString أو ExtraJsonObject، على سبيل المثال:
منصات أخرى
يتم استخدام Tool Call لـ Claude و Gemini و Ollama و CllamaServer بشكل مشابه لـ OpenAI، كل ما عليك هو استبدال عقدة Request و Options المقابلة. الهياكل الأساسية للبيانات لكل منصة (مثل FAIChatPlus_ChatRequestTool، FAIChatPlus_ChatResponseToolCall وما إلى ذلك) هي عالمية.
Original: https://wiki.disenone.site/ar
This post is protected by CC BY-NC-SA 4.0 agreement, should be reproduced with attribution.
Visitors. Total Visits. Page Visits.
هذا المنشور تمت ترجمته باستخدام ChatGPT، يُرجى تقديم ملاحظاتكم عبر نموذج الملاحظاتأشر إلى أي نقص ملحوظ.








