النقاط الرئيسية
نعم أو لا: نموذج Llama 3.2 3B هو نموذج لغوي خفيف الوزن ولكنه قادر، ويدعم استدعاء الدوال (Function Calling).
ما يمكنه فعله: يسمح استدعاء الدوال للنموذج بالتفاعل مع الأدوات الخارجية وواجهات API، مما يوسع وظائفه إلى ما هو أبعد من مجرد توليد النصوص.
كيفية التنفيذ؟ قم بتثبيت واجهات API عبر Novita AI “LLM Playground”، ثم نفذ باستخدام إطار Langchain.
في المجال الحالي للذكاء الاصطناعي، يناقش العديد من الأشخاص بنشاط ما إذا كان نموذج Llama 3.2 3B يمكنه تنفيذ قدرات استدعاء الدوال. يشارك العديد من المستخدمين والمطورين تجاربهم مع استدعاء الدوال في Llama 3.2 3B على المنتديات ووسائل التواصل الاجتماعي. يُبلغ بعض المستخدمين عن تحقيق نتائج جيدة بمعدل نجاح يصل إلى حوالي 80% عند استخدام النموذج لاستدعاء الأدوات. ومع ذلك، هناك أيضًا تقارير من المستخدمين تشير إلى أنه في بعض الحالات، قد يسيء النموذج فهم السياق، مما يؤدي إلى استدعاءات دوال غير دقيقة أو فاشلة. اليوم، سوف نتعمق أكثر في ميزة استدعاء الدوال في Llama 3.2.
هل يدعم Llama 3.2 استدعاء الدوال؟
نعم!
تدعم نماذج Llama 3.2، بما في ذلك متغير 3B، استدعاء الدوال. تسمح هذه الإمكانية للنموذج باكتشاف متى يحتاج إلى استدعاء دالة ثم إخراج JSON مع الوسائط لاستدعاء تلك الدالة. هذه الوظيفة هي ميزة رئيسية لسلسلة Llama 3.2، حيث تم ضبط النماذج بدقة من أجلها. نموذج Llama 3.2 3B مناسب بشكل خاص للتطبيقات على الأجهزة نظرًا لتصميمه خفيف الوزن مع استمراره في دعم الميزات القوية مثل استدعاء الدوال.

ما هو استدعاء الدوال؟
استدعاء الدوال هو منهجية تمكن نماذج اللغة الكبيرة من التفاعل مع الأنظمة الخارجية وواجهات API والأدوات. من خلال تجهيز نموذج اللغة الكبير بمجموعة من الدوال أو الأدوات، إلى جانب تفاصيل حول كيفية استخدامها، يمكن للنموذج اختيار وتنفيذ الدالة المناسبة بذكاء لأداء مهمة محددة. تعمل هذه الإمكانية على توسيع وظائف نماذج اللغة الكبيرة إلى ما هو أبعد من مجرد توليد النصوص، مما يمكنها من تنفيذ الإجراءات والتحكم في الأجهزة والوصول إلى قواعد البيانات.
النماذج المدعومة لاستدعاء الدوال
العديد من نماذج اللغة الكبيرة والمنصات تدعم الآن استدعاء الدوال. يمكنك تثبيت API من خلال صفحة “LLM Playground” في Novita AI، وتنفيذ استدعاء الدوال عبر Langchain.
- Llama 3.3: أظهر الإصدار ذو 70 مليار معلمة أداءً قويًا في اختبارات استدعاء الدوال من خلال تحديد متى وأي الدوال يجب استدعاؤها بناءً على طلبات المستخدم بنجاح.
- Mistral: أظهرت نماذج مثل Mistral-Large-2 نجاحًا في استدعاء الدوال ضمن بيئات مثل watsonx.ai.
- Gemini: تدعم نماذج Google Gemini أيضًا استدعاء الدوال مع أمثلة استخدام متنوعة متاحة.
إذا كنت ترغب في معرفة المزيد من المعلومات، يمكنك زيارة هذا الموقع!

المصدر من Berkeley Function-Calling Leaderboard
كيف يعمل استدعاء الدوال؟
يتضمن استدعاء الدوال عادةً عملية من خطوتين:
- تعيين موجه المستخدم (prompt) إلى الدالة الصحيحة ومعلمات الإدخال. يقوم نموذج اللغة الكبير بتقييم ما إذا كانت أي من الأدوات المتاحة ذات صلة باستفسار المستخدم.
- معالجة مخرجات الدالة لتوليد استجابة نهائية متماسكة. إذا كان ذلك مناسبًا، يقوم نموذج اللغة الكبير ببناء طلب منسق لاستدعاء الأداة.
- ثم يتم تحليل مخرجات الأداة ودمجها في الاستجابة النهائية.
التطبيقات العملية لاستدعاء الدوال
استدعاء الدوال مع نموذج Llama 3.2 3B له العديد من التطبيقات الواقعية:
- روبوتات الدردشة لدعم العملاء: أتمتة الردود التي تتطلب عمليات حسابية أو البحث عن معلومات.
- معالجة البيانات: التفاعل مع الأنظمة الخلفية لجلب البيانات أو تحديثها.
- المساعدون الافتراضيون: تحسين تفاعلات المستخدم من خلال تمكين المساعد من إجراء عمليات مثل الجدولة أو الحسابات.
- التفاعلات مع واجهات API: تحويل اللغة الطبيعية إلى استدعاءات API.
- استعلامات قواعد البيانات: إنشاء تطبيقات تترجم اللغة الطبيعية إلى استعلامات صالحة لقواعد البيانات.
- التحكم في المنزل الذكي: التحكم في أجهزة المنزل الذكي عن طريق ضبط درجة الحرارة أو تشغيل الأضواء باستخدام أوامر اللغة الطبيعية.
- محركات استرجاع المعرفة المحادثة: التفاعل مع قواعد المعرفة.
- منصات التجارة الإلكترونية: تقديم اقتراحات منتجات فورية بناءً على قواعد بيانات المخزون، أو تتبع الطلبات، أو إدارة تذاكر دعم العملاء.
- الرعاية الصحية: جدولة المواعيد أو استرداد معلومات المريض.
- السفر: استرداد معلومات الرحلات الجوية، حجز الحجوزات، أو إدارة الحجوزات.
- المالية: توفير أرصدة الحسابات الحديثة ومعالجة المعاملات.
كيفية استخدام استدعاء الدوال في Llama 3.2 3B عبر Novita AI
الخطوة 1: الحصول على مفتاح API
ادخل إلى صفحة “Keys” (المفاتيح)، يمكنك نسخ مفتاح API كما هو موضح في الصورة.

عند التسجيل، تقدم Novita AI رصيدًا بقيمة 0.5 دولار لبدء الاستخدام!
إذا نفد الرصيد المجاني، يمكنك الدفع لمواصلة الاستخدام.
الخطوة 2: استخدام Langchain لتنفيذ استدعاء الدوال
سنقوم بإنشاء تطبيق رياضي بسيط يمكنه إجراء عمليات الجمع والضرب.
💡 بينما يستخدم هذا الدليل LangChain للراحة، فإن تنفيذ استدعاء الدوال لا يتطلب أي إطار عمل محدد. المفتاح يكمن في تصميم المطالبات (prompts) الصحيحة لجعل النموذج يفهم ويستدعي الدوال بشكل صحيح. يُستخدم LangChain هنا فقط لتبسيط التنفيذ.
المتطلبات الأساسية
أولاً، قم بتثبيت الحزم المطلوبة:
pip install langchain-openai python-dotenv
إعداد البيئة
قم بإنشاء ملف .env في جذر مشروعك وأضف مفتاح API الخاص بـ Novita AI:
NOVITA_API_KEY=your_api_key_here
خطوات التنفيذ
1. تعريف الأدوات
أولاً، لنقم بإنشاء أداتين رياضيتين بسيطتين باستخدام مزخرف @tool الخاص بـ LangChain:
from langchain_core.tools import tool
@tool
def multiply(x: float, y: float) -> float:
"""Multiply two numbers together."""
return x * y
@tool
def add(x: int, y: int) -> int:
"""Add two numbers."""
return x + y
tools = [multiply, add]
2. إنشاء دالة تنفيذ الأداة
بعد ذلك، قم بتنفيذ دالة لتنفيذ الأدوات:
from typing import Any, Dict, Optional, TypedDict
from langchain_core.runnables import RunnableConfig
class ToolCallRequest(TypedDict):
name: str
arguments: Dict[str, Any]
def invoke_tool(
tool_call_request: ToolCallRequest,
config: Optional[RunnableConfig] = None
):
"""Execute the specified tool with given arguments."""
tool_name_to_tool = {tool.name: tool for tool in tools}
name = tool_call_request["name"]
requested_tool = tool_name_to_tool[name]
return requested_tool.invoke(tool_call_request["arguments"], config=config)
3. إعداد سلسلة LangChain
قم بإنشاء سلسلة تستخدم نموذج اللغة الكبير من Novita AI لاختيار وإعداد استدعاءات الأدوات:
from langchain_openai import ChatOpenAI
from langchain_core.output_parsers import JsonOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.tools import render_text_description
def create_chain():
"""Create a chain that uses the specified LLM model to select and prepare tool calls."""
model = ChatOpenAI(
model="meta-llama/llama-3.3-70b-instruct",
api_key=os.getenv("NOVITA_API_KEY"),
base_url="https://api.novita.ai/v3/openai",
)
rendered_tools = render_text_description(tools)
system_prompt = f"""\
You are an assistant that has access to the following set of tools.
Here are the names and descriptions for each tool:
{rendered_tools}
Given the user input, return the name and input of the tool to use.
Return your response as a JSON blob with 'name' and 'arguments' keys.
The `arguments` should be a dictionary, with keys corresponding
to the argument names and the values corresponding to the requested values.
"""
prompt = ChatPromptTemplate.from_messages(
[("system", system_prompt), ("user", "{input}")]
)
return prompt | model | JsonOutputParser()
4. إنشاء دالة المعالجة الرئيسية
قم بتنفيذ الدالة الرئيسية التي تعالج الاستعلامات الرياضية:
def process_math_query(query: str):
"""Process a mathematical query by using an LLM to select the appropriate tool and execute it."""
chain = create_chain()
message = chain.invoke({"input": query})
result = invoke_tool(message, config=None)
return message, result
5. مثال على الاستخدام
إليك كيفية استخدام التنفيذ:
if __name__ == "__main__":
message, result = process_math_query(
"meta-llama/llama-3.2-3b-instruct",
"what's 3 plus 1132"
)
print(result) # Output: 1135
المشكلات الشائعة واستكشاف الأخطاء وإصلاحها
تشمل المشكلات الشائعة التي تتم مواجهتها أثناء استدعاء الدوال:
- استدعاء دالة غير صحيح: قد يسيء النموذج فهم السياق، مما يؤدي إلى استدعاء الدالة الخطأ.
- زمن استجابة مرتفع: يمكن أن تحدث استجابات بطيئة، مما قد يؤثر على تجربة المستخدم.
- دوال غير معروفة: قد يفشل النموذج في التعرف على أسماء الدوال أو المعلمات الصالحة، مما يؤدي إلى أخطاء وقت التشغيل.
- هلوسات النموذج: قد يولد النموذج مخرجات أو معلمات غير صحيحة، مما قد يؤدي إلى سلوك غير متوقع.
- تمرير معلمات غير متناسق: قد يتم تمرير المعلمات بتنسيقات غير متوقعة، مما يسبب أخطاء أثناء تنفيذ الدالة.
- مشكلات الشبكة: قد تؤدي تبعيات API الخارجية إلى تأخير أو فشل إذا كان اتصال الشبكة غير مستقر.
- فشل التحليل: قد لا تتوافق مخرجات النموذج مع التنسيقات المتوقعة (مثل JSON غير صالح)، مما يؤدي إلى أخطاء في التحليل.
أفضل الممارسات لتحسين استدعاء الدوال
لتحسين استدعاء الدوال:
- لمعالجة استدعاء الدالة غير الصحيح: قم بضبط النموذج بدقة على مطالبات محددة تتعلق باستدعاء الدوال لتعزيز فهم السياق وتقليل الأخطاء في استدعاء الدالة.
- لتخفيف زمن الاستجابة المرتفع: قم بتحسين أوقات الاستجابة عن طريق تقليل عدد الرموز (tokens) في المطالبات أو تنفيذ استدعاءات دوال غير متزامنة لتحسين الأداء.
- لحل الدوال غير المعروفة: قبل استدعاء الدوال، تحقق من أسماء الدوال والمعلمات للتأكد من التعرف عليها بشكل صحيح، وبالتالي منع أخطاء وقت التشغيل.
- لإدارة هلوسات النموذج: قم بتنفيذ استراتيجيات معالجة أخطاء دقيقة للتعامل مع المخرجات أو المعلمات غير الصحيحة التي يولدها النموذج، مع ضمان وجود آليات احتياطية للنتائج غير المتوقعة.
- لضمان تمرير معلمات متناسق: ضع إرشادات واضحة لتنسيقات المعلمات وفرض فحوصات تحقق صارمة لتحقيق الاتساق في كيفية تمرير المعلمات أثناء تنفيذ الدالة.
- للتعامل مع مشكلات الشبكة: قم بتطوير استراتيجية قوية لمعالجة الأخطاء المتعلقة بالشبكة عند التفاعل مع APIs الخارجية، بما في ذلك آليات إعادة المحاولة للفشل المؤقت.
- لمنع فشل التحليل: استخدم تقنيات التحقق من المخرجات لضمان توافق مخرجات النموذج مع التنسيقات المتوقعة (مثل JSON صالح)، وتنفيذ معالجة الأخطاء لأخطاء التحليل للحفاظ على استقرار النظام.
باختصار، تمثل قدرة استدعاء الدوال تقدمًا كبيرًا في وظائف نماذج اللغة الكبيرة، مما يسمح لها بالتفاعل بفعالية مع الأدوات الخارجية وواجهات API. بينما توجد تحديات شائعة مثل استدعاء الدوال غير الصحيح، وزمن الاستجابة المرتفع، والدوال غير المعروفة، وهلوسات النموذج، فإن تنفيذ أفضل الممارسات ومعالجة الأخطاء القوية يمكن أن يعزز موثوقيتها وأدائها. بينما يواصل المطورون استكشاف وتحسين هذه الميزة، من المحتمل أن تتوسع التطبيقات المحتملة في مختلف المجالات، مما يجعل Llama 3.2 أداة متعددة الاستخدامات للمهام الواقعية.
الأسئلة الشائعة
لماذا يعتبر استدعاء الدوال أمرًا حاسمًا للوكلاء الذكاء الاصطناعي؟
إنه يمكن وكلاء الذكاء الاصطناعي من أداء المهام بشكل مستقل التي تتطلب بيانات أو إجراءات خارجية، مما يعزز الكفاءة في البيئات الديناميكية.
كيف يحسن استدعاء الدوال أداء نموذج اللغة الكبير؟
إنه يعزز الدقة من خلال السماح باسترجاع البيانات في الوقت الفعلي، وتنفيذ المهام، واتخاذ القرارات المستنيرة عبر الأدوات الخارجية.
Novita AI هي المنصة السحابية الشاملة التي تمكن طموحاتك في الذكاء الاصطناعي. واجهات API مدمجة، بدون خادم، مثيلات GPU — الأدوات الفعالة من حيث التكلفة التي تحتاجها. تخلص من البنية التحتية، ابدأ مجانًا، واجعل رؤيتك للذكاء الاصطناعي حقيقة.
