0Pricing
AI Agents · درس

كيف يعمل استدعاء الدوال

افهم دورة الذهاب والإياب كاملة: يختار النموذج أداة، وتشغّلها شيفرتك، ثم ترسل النتيجة إليه، فيواصل النموذج عمله.

كيف يعمل استدعاء الدوال درس مجاني في AI Agents على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في AI Agents، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة AI Agents 4 دروس في المجموع.

استدعاء الدوال: النمط الأساسي

استدعاء الدوال هو البروتوكول الذي يحوّل نموذج اللغة الكبير إلى وكيل. يختار النموذج دالة من قائمة تقدّمونها، ويملأ الوسيطات، ثم تنفّذونها.

يدعم OpenAI وAnthropic وGoogle وCohere وMistral ومعظم النماذج الرئيسية مفتوحة المصدر هذا النمط، عند توفير عمليات الضبط الدقيق المناسبة.

دورة الذهاب والإياب في خمس خطوات

  1. ترسلون الرسائل وتعريفات الأدوات
  2. يعيد النموذج إما إجابة نهائية أو tool_call
  3. تنفّذون الأداة باستخدام وسيطات النموذج
  4. تضيفون النتيجة كرسالة أداة
  5. تستدعون النموذج مجددًا مع السجل المحدّث

كرّروا الخطوات من 2 إلى 5 حتى يعيد النموذج إجابة نهائية.

الخطوة 1: تعريف الأدوات

تعريفات الأدوات هي مخططات JSON تصف كل دالة:

tools = [{
    'type': 'function',
    'function': {
        'name': 'get_weather',
        'description': 'Current weather for a city',
        'parameters': {
            'type': 'object',
            'properties': {
                'city': {'type': 'string'}
            },
            'required': ['city']
        }
    }
}]
import json
print(json.dumps(tools, indent=2))

الخطوة 2: استدعاء النموذج الأول

أرسلوا الرسائل والأدوات:

response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=[{'role': 'user', 'content': 'Weather in Paris?'}],
    tools=tools,
)
message = response.choices[0].message
print(message.tool_calls)
# [ToolCall(name='get_weather', arguments='{"city": "Paris"}')]

الخطوة 3: تنفيذ الأداة

وجّهوا الاستدعاء إلى دالة Python الخاصة بكم:

import json

def get_weather(city: str) -> dict:
    # ...call your weather API...
    return {'city': city, 'temp_c': 18, 'condition': 'cloudy'}

tool_call = message.tool_calls[0]
args = json.loads(tool_call.function.arguments)
result = get_weather(**args)

الخطوة 4: إضافة نتيجة الأداة

أضيفوا رسالة أداة باستخدام المعرّف المطابق:

messages.append(message)  # the assistant message with tool_calls
messages.append({
    'role': 'tool',
    'tool_call_id': tool_call.id,
    'content': json.dumps(result)
})

الخطوة 5: استدعاء النموذج الثاني

استدعوا النموذج مجددًا — إذ يملك الآن نتيجة الأداة ويمكنه إنتاج إجابة موجهة للمستخدم:

final = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    tools=tools,
)
print(final.choices[0].message.content)
# 'It is currently 18 degrees and cloudy in Paris.'

حلقة الوكيل

ضعوا هذا داخل حلقة while — فقد يستدعي النموذج عدة أدوات بالتتابع:

while True:
    response = client.chat.completions.create(model=MODEL, messages=messages, tools=tools)
    msg = response.choices[0].message
    messages.append(msg)
    if not msg.tool_calls:
        return msg.content  # final answer
    for tc in msg.tool_calls:
        result = dispatch(tc)
        messages.append({'role': 'tool', 'tool_call_id': tc.id, 'content': json.dumps(result)})

استدعاءات الأدوات المتوازية

تعيد النماذج الحديثة عدة استدعاءات tool_calls في استجابة واحدة. نفّذوها بالتوازي عندما يكون ذلك آمنًا:

import asyncio

async def run_tools(tool_calls):
    coros = [dispatch_async(tc) for tc in tool_calls]
    return await asyncio.gather(*coros)

finish_reason: tool_calls

يمكنكم أيضًا التحقق من finish_reason بدلًا من البحث عن tool_calls:

if response.choices[0].finish_reason == 'tool_calls':
    # the model wants to call tools
    ...
elif response.choices[0].finish_reason == 'stop':
    # done
    ...

الأخطاء الشائعة

  • نسيان إضافة رسالة المساعد قبل نتيجة الأداة
  • استخدام tool_call_id غير الصحيح
  • إرسال نتائج الأدوات كرسائل من المستخدم
  • السماح للحلقة بالاستمرار بلا حدود — عيّنوا MAX_STEPS

إنهاء الحلقة

كيف تعرفون أن الوكيل انتهى؟

مراجعة

يُعدّ استدعاء الدوال أهم نمط في هذه الدورة بأكملها. أتقنوه قبل الانتقال إلى الموضوع التالي.

الأسئلة الشائعة

هل درس «كيف يعمل استدعاء الدوال» مجاني؟

نعم — نص درس «كيف يعمل استدعاء الدوال» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة AI Agents، انتقل إلى CoddyKit PRO. تتضمن دورة AI Agents 4 دروس في المجموع.

ماذا ستتعلم في «كيف يعمل استدعاء الدوال»؟

افهم دورة الذهاب والإياب كاملة: يختار النموذج أداة، وتشغّلها شيفرتك، ثم ترسل النتيجة إليه، فيواصل النموذج عمله. تتمرن على AI Agents مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ AI Agents؟

لا تُشترط خبرة سابقة. AI Agents على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «كيف يعمل استدعاء الدوال»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس AI Agents هذا؟

نعم. كل درس في AI Agents يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. كيف يعمل استدعاء الدوال
  2. تعريف مخططات الأدوات (JSON Schema)
  3. اختيار الأدوات أثناء التشغيل
  4. إرجاع النتائج إلى النموذج
← العودة إلى AI Agents