0Pricing
AI Prompt Engineering · درس

استدعاء الدوال وتكامل API

أتقن توجيه LLMs لاستدعاء الدوال أو APIs الخارجية، مما يتيح لها التفاعل مع الأنظمة الواقعية.

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

استدعاء أدوات خارجية

تتمتع LLMs بقدرات قوية، لكنها تعمل أساسًا في عالم النصوص. ماذا لو احتاجت إلى معلومات من العالم الحقيقي أو إلى تنفيذ إجراءات؟

يتيح استدعاء الدوال لـ LLMs التفاعل مع الأدوات وواجهات API الخارجية! وهذا يردم الفجوة بين اللغة والفعل، مما يتيح للذكاء الاصطناعي:

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

وهذا يفتح إمكانات جديدة لأنظمة الذكاء الاصطناعي.

دور LLM: اقتراح الاستدعاءات

عند تمكين استدعاء الدوال، تزوّدون LLM بأوصاف الأدوات (الدوال) المتاحة.

بدلًا من الإجابة مباشرة، قد تقرر LLM أن إحدى الأدوات يمكن أن تساعد. ثم تُخرج «اقتراحًا» منظمًا لاستدعاء دالة، يتضمن اسم الدالة ومعاملاتها.

مهم: لا تقوم LLM بتنفيذ الدالة بنفسها، بل تخبر تطبيقكم فقط بالدالة التي ينبغي استدعاؤها والمدخلات التي ينبغي تمريرها إليها.

تعريف أدواتكم

لاستخدام استدعاء الدوال، يجب أن تعرّفوا أدواتكم (الدوال) بطريقة يمكن لـ LLM فهمها. ويتضمن ذلك عادةً توفير ما يلي:

  • اسم للدالة (مثل: get_current_weather)
  • وصف لما تفعله (وهو أمر بالغ الأهمية لكي تختارها LLM بشكل صحيح)
  • المعاملات التي تقبلها، بما في ذلك أنواعها وأوصافها (مثل: location: string)

يخبر هذا «المخطط» LLM بكل ما تحتاج إلى معرفته لاقتراح استدعاء صالح.

تعريف أداة الطقس

إليكم تعريفًا تصوريًا لأداة طقس بلغة Python. لاحظوا الوصف الواضح والمعاملات. هذا ما ستعرضونه على LLM.

تمثل هذه الدالة الأداة الخارجية التي ستقوم LLM باستدعائها «تصوريًا».

def get_current_weather(location: str, unit: str = "celsius"):
    """
    Get the current weather in a given location.
    Args:
        location (str): The city and state, e.g. "London, UK"
        unit (str): The unit of temperature, "celsius" or "fahrenheit"
    Returns:
        dict: Weather information.
    """
    # In a real app, this would call a weather API
    if location == "London, UK":
        return {"temperature": "15", "unit": unit, "forecast": "cloudy"}
    elif location == "New York, USA":
        return {"temperature": "20", "unit": unit, "forecast": "sunny"}
    else:
        return {"temperature": "N/A", "unit": unit, "forecast": "unknown"}

صياغة مطالبات للأدوات

لتشجيع LLM على استخدام أدواتكم، يجب أن توضّح مطالبتكم نية المستخدم بوضوح. ثم تقرر LLM ما إذا كانت إحدى الأدوات يمكن أن تساعد.

لا تخبروا LLM صراحةً «استدعِ get_weather». بدلًا من ذلك، اطرحوا سؤالًا يلمّح إلى ذلك:

  • «كيف حال الطقس في لندن؟»
  • «هل يمكنك حجز اجتماع لي غدًا؟»

وبالاستناد إلى أوصاف الأدوات، ستستنتج LLM الحاجة إلى استدعاء دالة.

اقتراح الاستدعاء من LLM

عندما تقرر LLM استخدام أداة، فإنها لا تقدم لكم إجابة مباشرة، بل تُرجع كائنًا منظمًا، يكون عادةً بتنسيق JSON، يحدد الدالة التي ينبغي استدعاؤها ومعاملاتها.

ثم يحلل تطبيقكم هذا المخرج.

إليكم ما قد تقترحه LLM عند سؤالها «كيف حال الطقس في لندن؟»:

{
  "tool_calls": [
    {
      "id": "call_abc123",
      "function": {
        "name": "get_current_weather",
        "arguments": "{\"location\": \"London, UK\", \"unit\": \"celsius\"}"
      },
      "type": "function"
    }
  ]
}

ينفّذ تطبيقكم الأداة

عند تلقي اقتراح استدعاء الدالة من LLM، يتولى تطبيقكم المهمة:

  1. يحدد الدالة المطلوبة (مثل: get_current_weather).
  2. يستخرج المعاملات (مثل: "London, UK").
  3. ينفذ دالة Python الفعلية (أو يجري استدعاء API) ضمن بيئة تطبيقكم.

هنا يحدث الإجراء في «العالم الحقيقي» خارج LLM.

تعالج LLM مخرج الأداة

بعد أن ينفذ تطبيقكم الدالة، يتلقى نتيجة (مثل: {"temperature": "15", ...}).

ثم تُمرر هذه النتيجة مرة أخرى إلى LLM، إلى جانب سجل المحادثة الأصلي وطلب استدعاء الدالة.

بعد ذلك تستخدم LLM هذه المعلومات الجديدة لإنشاء إجابة بلغة طبيعية عن استفسار المستخدم الأصلي.

التفاعل الشامل من البداية إلى النهاية

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

هذا تمثيل مبسّط لدورة التفاعل.

def get_current_weather(location, unit="celsius"):
    if location == "London, UK":
        return {"temp": "15", "unit": unit, "forecast": "cloudy"}
    return {"temp": "N/A", "unit": unit, "forecast": "unknown"}

def simulate_llm_response(user_query):
    # LLM 'thinks' and decides to call a tool
    if "weather in London" in user_query:
        return {
            "type": "tool_call",
            "function": "get_current_weather",
            "args": {"location": "London, UK"}
        }
    return {"type": "text", "content": "I cannot help with that."}

def simulate_llm_final_response(tool_output):
    # LLM processes tool output and gives natural language
    temp = tool_output.get("temp", "N/A")
    forecast = tool_output.get("forecast", "unknown")
    return f"The weather in London is {temp} degrees and {forecast}."

def main():
    user_input = "What is the weather in London, UK?"
    print(f"User: {user_input}")

    llm_output = simulate_llm_response(user_input)

    if llm_output["type"] == "tool_call":
        func_name = llm_output["function"]
        func_args = llm_output["args"]
        print(f"LLM suggested calling: {func_name}({func_args})")

        # Execute the function
        tool_result = get_current_weather(**func_args)
        print(f"Tool output: {tool_result}")

        # Feed result back to LLM
        final_answer = simulate_llm_final_response(tool_result)
        print(f"LLM's final answer: {final_answer}")
    else:
        print(f"LLM: {llm_output['content']}")

if __name__ == "__main__":
    main()

اختبار استدعاء الدوال

تخيلوا أن LLM أعادت طلبًا لاستدعاء دالة. ما الخطوة الفورية التالية التي ينبغي أن يتخذها تطبيقكم؟

مراجعة: الأدوات قيد التنفيذ

استكشفنا في هذا الدرس كيفية تفاعل LLMs مع العالم الحقيقي من خلال استدعاء الدوال وتكامل API.

وتعلمنا ما يلي:

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

تتيح هذه التقنية القوية لـ LLMs تجاوز مجرد إنشاء النصوص، وتمكّنها من تنفيذ الإجراءات واسترداد المعلومات الحديثة.

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

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

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

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

أتقن توجيه LLMs لاستدعاء الدوال أو APIs الخارجية، مما يتيح لها التفاعل مع الأنظمة الواقعية. تتمرن على AI Prompt Engineering مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

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

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

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

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

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

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

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

  1. استدعاء الدوال وتكامل API
  2. أنظمة كتابة الأوامر متعددة الوكلاء
  3. أدوات وإضافات مخصصة لـLLMs
← العودة إلى AI Prompt Engineering