← 返回列表

ملخص تقنية Function Calling

ملخص تقنية Function Calling

1. تعريف

Function Calling هي آلية تسمح للمطورين بوصف الأدوات الخارجية المتاحة (مثل واجهات برمجة التطبيقات) لنموذج اللغة الكبير (LLM) عبر مخطط JSON. عندما يقرر النموذج أنه بحاجة إلى استدعاء أداة للإجابة على سؤال المستخدم، فإنه يخرج بيانات JSON منظمة tool_calls تشير إلى اسم الدالة والمعاملات المراد استدعاؤها. يقوم البرنامج المضيف بتحليل هذا الاستدعاء وتنفيذه، ثم إرجاع النتيجة إلى النموذج، الذي يقوم بدوره بتوليد الإجابة النهائية.

2. المبدأ الأساسي والمشكلات التي يحلها

  • الجوهر: حلقة مغلقة من "جولتين من الحوار + تنفيذ وسيط". في الجولة الأولى، يقرر النموذج ويخرج طلب استدعاء الأداة؛ في الوسط، ينفذ الكود الأداة؛ في الجولة الثانية، يولد النموذج الإجابة النهائية بناءً على نتيجة التنفيذ.
  • المشكلات التي يحلها: يحل مشكلة الاعتماد على تحليل اللغة الطبيعية غير المستقر والمعرض للأخطاء (if/else) عند استدعاء الأدوات سابقًا، مما يحقق التوحيد القياسي وتحسين الدقة من خلال المخرجات المنظمة.

3. تقسيم المسؤوليات (تشبيه تفويض المهام)

  • المطور (HR): يحدد الأدوات، ويكتب مخطط JSON الذي يصف وظيفة الأداة ومعاملاتها وغيرها من المعلومات.
  • نموذج LLM (المدير): يفهم وصف الأداة، ويقرر ما إذا كان بحاجة إلى استدعائها، وأي أداة، وما هي المعاملات، ويخرج طلب استدعاء منظم (tool_calls). النموذج يتخذ القرارات ويولد النص فقط، ولا ينفذ الكود بنفسه.
  • المنفذ/الكود المضيف (الموظف): يحلل طلب tool_calls من النموذج، وينفذ الدالة أو استدعاء API فعليًا، ويعيد النتيجة.

4. تعريف الأداة (JSON Schema)

المخطط هو "دليل" الأداة، والمعلومات الرئيسية تشمل:
- name: المعرف الفريد للأداة.
- description: بالغ الأهمية، يعتمد النموذج كليًا على هذا الوصف لتحديد ما إذا كان سيستدعي الأداة. كلما كان الوصف أوضح وأدق، كان قرار النموذج أفضل.
- parameters: يحدد المعاملات المطلوبة للأداة وأنواعها وأوصافها وقيودها (مثل القيم المعدودة، الإلزامية، إلخ).

5. عملية الاستدعاء الكاملة

يشرح المقال من خلال مثال كود لاستعلام الطقس العملية الكاملة بدءًا من سؤال المستخدم، مرورًا بالاستدعاء الأول للنموذج مع تعريف الأداة، وعودة النموذج بـ tool_calls، وتنفيذ الكود للدالة، وإدراج النتيجة كرسالة role: "tool" في تاريخ المحادثة، وأخيرًا توليد النموذج للإجابة النهائية باللغة الطبيعية.

6. ميزة متقدمة - استدعاء الأدوات المتوازي

عندما يتطلب سؤال المستخدم تعاون عدة أدوات للإجابة (مثل الاستعلام عن طقس عدة مدن في وقت واحد)، يمكن للنموذج إخراج قائمة تحتوي على عدة tool_calls في استجابة واحدة. يمكن للكود المضيف تنفيذ هذه الاستدعاءات بالتوازي، ثم إرجاع جميع النتائج إلى النموذج لتجميعها، مما يحسن الكفاءة.

评论

暂无已展示的评论。

发表评论(匿名)