Function calling (LLM) — استدعاء الدوال
Function Calling (استدعاء الدوال) — هي آلية في النماذج اللغوية الكبيرة (LLM) تسمح للنموذج بالتفاعل مع الأدوات الخارجية وواجهات برمجة التطبيقات (API)، وذلك عبر توليد بيانات مهيكلة (عادةً بصيغة JSON) لاستدعاء الدوال بدلاً من تقديم إجابة نصية مباشرة[1].
بعبارة أخرى، يحدد النموذج بناءً على طلب المستخدم أي دالة يجب استدعاؤها من مجموعة محددة مسبقًا وبأي معاملات. توسع هذه الآلية نطاق تطبيقات النماذج اللغوية الكبيرة، مما يسمح لها بالعمل كواجهة بين اللغة الطبيعية والإجراءات العملية. وهذا يفتح المجال لدمج الذكاء الاصطناعي مع الأنظمة الخارجية: يمكن للنموذج طلب بيانات محدّثة، أو تنفيذ عمليات، أو استخدام خدمات، وهو أمر ذو قيمة خاصة عند إنشاء المساعدين الأذكياء والوكلاء المستقلين. كما أن استخدام الأدوات الخارجية يقلل من خطر الهلوسة (توليد حقائق وهمية) من خلال الرجوع إلى مصادر موثوقة[2].
التاريخ ومناهج التطبيق
المناهج المبكرة (التوجيه وToolformer)
تشكلت فكرة تعليم النماذج اللغوية كيفية استدعاء الأدوات في الفترة ما بين 2022 و2023. اعتمدت المناهج المبكرة على تقنيات التوجيه المعقد (complex prompting). ففي عام 2022، تم اقتراح إطار عمل ReAct، حيث كان النموذج يتناوب أثناء الحوار بين التفكير والإجراءات (استدعاءات الأدوات)، وكلها مشفرة في نص واحد.
كانت الخطوة الرئيسية هي ظهور نموذج Toolformer، الذي قدمه باحثون من Meta في أوائل عام 2023. أظهر Toolformer أنه يمكن تدريب النماذج اللغوية الكبيرة بشكل إضافي لتتعلم استدعاء الأدوات الخارجية (مثل الآلة الحاسبة، ومحرك البحث، والتقويم) بشكل مستقل بناءً على إشارات نصية، وذلك عن طريق إدراج رموز (tokens) خاصة لاستدعاء واجهة برمجة التطبيقات (API) في النص الذي يتم توليده[3].
الدعم الرسمي والتطوير
حققت شركة OpenAI إنجازًا بارزًا عندما أضافت رسميًا في يونيو 2023 دعمًا لـ Function Calling في واجهات برمجة التطبيقات (API) الخاصة بها لنماذج GPT-3.5 و GPT-4[4]. تم تدريب الإصدارات الجديدة من النماذج لتحديد الحالات التي يتطلب فيها طلب المستخدم استدعاء دالة خارجية، وتوليد كائن JSON مهيكل بدقة يحتوي على الوسائط (arguments). وصفت OpenAI هذه الميزة بأنها "طريقة جديدة لربط GPT بشكل موثوق بالأدوات وواجهات برمجة التطبيقات الخارجية".
المبادرات المفتوحة المصدر
بعد التطبيقات التجارية، ظهرت نماذج مفتوحة المصدر تم تدريبها بشكل إضافي لتوليد استدعاءات دوال صحيحة.
- Gorilla: مشروع من جامعة كاليفورنيا في بيركلي، وهو نسخة مدربة بشكل إضافي من LLaMA، قادرة على إنشاء استدعاءات لآلاف من واجهات برمجة التطبيقات المختلفة. ولتقييم هذه النماذج، تم إنشاء معيار قياس (benchmark) باسم Berkeley Function-Calling Leaderboard[5].
- ToolAlpaca، ToolLLaMA، Hermes: سلاسل من النماذج المفتوحة المصدر التي تم تدريبها بشكل إضافي على أمثلة اصطناعية لاستدعاءات الدوال، والتي غالبًا ما يتم توليدها بواسطة نماذج أقوى.
آلية العمل
تتضمن عملية استخدام Function Calling عادةً عدة خطوات:
- تحديد الدوال. يحدد المطور مسبقًا مجموعة الدوال المتاحة للنموذج (مثل واجهات برمجة التطبيقات الخارجية) ويصف توقيعاتها (signatures) والغرض منها، عادةً بتنسيق JSON Schema.
- تحليل الطلب. أثناء الحوار، يحلل النموذج نية المستخدم ويقرر بشكل مستقل ما إذا كان يجب استدعاء إحدى الدوال المحددة للرد.
- توليد الاستدعاء. إذا كان الإجراء مطلوبًا، يقوم النموذج اللغوي الكبير (LLM) بتوليد مخرجات مهيكلة خاصة (مثل JSON يحتوي على اسم الدالة ووسائطها) بدلاً من النص العادي. أما إذا لم يكن الاستدعاء ضروريًا، فيُرجع النموذج إجابة نصية عادية.
- تنفيذ الدالة. يستقبل البرنامج الخارجي (مثل غلاف روبوت المحادثة أو الوكيل) كائن JSON، وينفذ الاستدعاء الفعلي للدالة المحددة بالمعاملات المقترحة، ثم يمرر النتيجة مرة أخرى إلى النموذج.
- تكوين الإجابة النهائية. يستخدم النموذج البيانات التي تم تلقيها لتوليد الإجابة النهائية للمستخدم[4].
لإدارة هذه العملية متعددة الخطوات، يتم استخدام تنسيقات حوار خاصة أثناء تدريب النماذج، مثل ChatML من OpenAI، حيث تُضاف دور "دالة" (function) إلى جانب دوري "المستخدم" (user) و"المساعد" (assistant) لتمرير نتائج استدعاءات الدوال.
التطبيقات والمزايا
تؤدي القدرة على استدعاء الدوال إلى توسيع نطاق المهام التي يمكن حلها باستخدام النماذج اللغوية الكبيرة بشكل ملحوظ.
- التكامل مع واجهات برمجة التطبيقات (API) الخارجية. يمكن للنموذج الرد على الاستفسارات التي تتطلب معلومات محدّثة عن طريق استدعاء خدمات خارجية (مثل الحصول على حالة الطقس، أسعار العملات، أو آخر الأخبار).
- أتمتة إجراءات المستخدم. يمكن للنموذج اللغوي الكبير أداء مهام روتينية مثل إرسال رسائل بريد إلكتروني، إنشاء أحداث في التقويم، أو تقديم طلبات في المتاجر عبر الإنترنت.
- الوصول إلى قواعد البيانات والتحليلات. يمكن ترجمة الاستعلامات باللغة الطبيعية إلى استدعاءات لواجهات برمجة التطبيقات الداخلية أو استعلامات SQL لاستخراج البيانات وتحليلها.
- استخراج المعلومات المهيكلة. يستطيع النموذج اللغوي الكبير استخلاص الحقائق من نص طويل (مثل الأسماء، التواريخ، والعناوين) وإعادتها في شكل مصفوفة JSON مهيكلة، مما يسهل معالجتها برمجيًا لاحقًا.
المخاطر الأمنية
مع توسيع قدرات النماذج، يجلب Function Calling معه مخاطر جديدة.
- المخرجات غير المتحقق منها. يجب تأمين تفاعل النموذج مع الأدوات الخارجية بعناية. إذا تلقى النموذج قيمة ضارة أو خاطئة من واجهة برمجة تطبيقات، فقد يدرجها في إجابته أو يستخدمها لاستدعاء دالة أخرى، مما يؤدي إلى عواقب غير متوقعة.
- الهجمات عبر وسائط الدوال. اكتشف الباحثون ثغرات أمنية خاصة بوضع استدعاء الدوال. في عام 2025، تم عرض هجوم أُطلق عليه اسم "الجانب المظلم لاستدعاء الدوال" (The Dark Side of Function Calling). يكمن جوهر هذا الهجوم في تزويد النموذج "بدالة" خاصة، تُخفى ضمن وسائطها تعليمات محظورة (jailbreak payload). يتبع النموذج مبدأ استدعاء الدوال، فيقوم بتوليد الوسائط التي تحتوي على محتوى ينتهك السياسات، وبالتالي يتجاوز مرشحات الإشراف (moderation filters). أظهرت الاختبارات نجاح الهجوم في أكثر من 90% من الحالات على ستة نماذج حديثة، بما في ذلك GPT-4 و Claude[2].
لمنع مثل هذه الحوادث، يُنصح بتزويد النموذج بأدوات موثوقة فقط، وتطبيق آلية تأكيد من المستخدم قبل تنفيذ الإجراءات الحاسمة، بالإضافة إلى استخدام توجيهات "دفاعية" خاصة والتحقق الصارم من الوسائط بحثًا عن محتوى خطير.
روابط خارجية
- الإعلان الرسمي عن Function Calling من OpenAI
- صفحة مشروع Gorilla LLM
- Apideck (2024). An Introduction to Function Calling and Tool Use. Apideck Blog.
- LangChain (2025). Tool Calling (Documentation). LangChain Docs.
- Mistral AI (2025). Function Calling – Documentation. Mistral Docs.
- Hopsworks (2024). What is Function Calling with LLMs?. Hopsworks Dictionary.
- Hopsworks (2024). Unlocking the Power of Function Calling with LLMs. Hopsworks Blog.
- University of California, Berkeley (2025). Berkeley Function Calling Leaderboard V3. Online Resource.
المراجع
- Wu, Z. et al. (2025). The Dark Side of Function Calling: Pathways to Jailbreaking Large Language Models. ACL 2025.
- OpenAI (2023). Function Calling and Other API Updates. OpenAI Blog.
- Schick, T. et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. arXiv:2302.04761.
- Patil, S. G. et al. (2023). Gorilla: Large Language Model Connected with Massive APIs. arXiv:2305.15334.
- Liu, W. et al. (2024). ToolACE: Winning the Points of LLM Function Calling. arXiv:2409.00920.
- Yao, S. et al. (2022). ReAct: Synergizing Reasoning and Acting in Language Models. arXiv:2210.03629.
ملاحظات
- ↑ «What is Function Calling with LLMs?». Hopsworks. [١]
- ↑ 2.0 2.1 Wu, Z. et al. «The Dark Side of Function Calling: Pathways to Jailbreaking Large Language Models». Proceedings of the 2025 Conference on Empirical Methods in Natural Language Processing, 2025. [٢]
- ↑ Schick, T. et al. «Toolformer: Language Models Can Teach Themselves to Use Tools». arXiv:2302.04761, 2023. [٣]
- ↑ 4.0 4.1 «Function calling and other API updates». OpenAI, 2023. [٤]
- ↑ «Gorilla: Large Language Model Connected to Massive APIs». University of California, Berkeley. [٥]