GLM 4.5، كنموذج لغة كبير (LLM) متقدم مع قدرات وكيل ذكي، يرفع مستوى الأتمتة واتخاذ القرارات الذكية إلى مستوى أعلى من خلال استدعاء الدوال. من خلال الاستفادة من استدعاء الدوال، يمكن لـ GLM 4.5 التفاعل مع الأدوات وواجهات برمجة التطبيقات الخارجية، وتنفيذ الإجراءات، واسترداد البيانات، وأتمتة سير العمل المعقدة—مما يجعله أكثر بكثير من مجرد نموذج محادثة.
لكن تكامل استدعاء الدوال واستكشاف أخطائه وإصلاحها قد يكون تحديًا. تقدم هذه المقالة إرشادات عملية وحلولًا للمشكلات الشائعة التي قد تواجهها عند استخدام استدعاء الدوال مع GLM 4.5، مثل أخطاء المحلل، وتنسيقات الإخراج غير الصحيحة، أو أخطاء تصميم المخطط. من خلال أمثلة واضحة، ونصائح لاستكشاف الأخطاء وإصلاحها، وأفضل الممارسات، تساعدك هذه المقالة على تحديد المشكلات وحلها بسرعة—مما يمكنك من الاستفادة الكاملة من الإمكانات الوكيلية لـ GLM 4.5 في تطبيقاتك الواقعية.
ما هي النتائج الأفضل التي يمكن لاستدعاء الدوال مساعدة GLM 4.5 على تحقيقها؟
استدعاء الدوال هو ميزة قوية تم تقديمها في نماذج اللغة الكبيرة مثل GLM 4.5. يسمح للنموذج بالتفاعل مع الأدوات الخارجية، أو واجهات برمجة التطبيقات، أو الأكواد المنظمة بطريقة خاضعة للتحكم وموثوقة. إليك الفوائد الرئيسية والنتائج المحسنة التي يجلبها استدعاء الدوال إلى GLM 4.5:
https://www.youtube.com/watch?v=KUEmEb71vzQ
- مخرجات أكثر دقة وموثوقية
- تحسين مصداقية المعلومات: من خلال تفويض مهام مثل الحسابات، والبحث عن البيانات، أو استعلامات قواعد البيانات إلى دوال خارجية، يمكن لـ GLM 4.5 تجنب الأخطاء الشائعة في الإجابات القائمة على النص فقط.
- تقليل الهلوسات: يعتمد النموذج على نتائج موثقة من واجهات برمجة التطبيقات أو الدوال، مما يقلل من فرص توليد معلومات غير صحيحة أو مختلقة.
- أتمتة المهام المعقدة
- سلسلة المهام: يمكن لـ GLM 4.5 تقسيم طلب المستخدم إلى خطوات متعددة، مع استدعاء الدوال المناسبة لكل خطوة ودمج النتائج.
- أتمتة سير العمل: يمكنه أتمتة عمليات الأعمال متعددة الخطوات، أو معالجة البيانات، أو إنشاء التقارير من خلال تنسيق تسلسلات استدعاء الدوال.
- تكامل محسّن مع الأنظمة الواقعية
- الوصول إلى البيانات المباشرة: مع استدعاء الدوال، يمكن للنموذج جلب معلومات في الوقت الفعلي من قواعد البيانات، أو خدمات الويب، أو أجهزة إنترنت الأشياء، مما يجعل استجاباته أكثر حداثة ووعيًا بالسياق.
- إجراءات مخصصة: يمكن للشركات تعريف دوال مخصصة (مثل إرسال رسائل البريد الإلكتروني، أو تقديم الطلبات)، مما يمكن النموذج من تنفيذ إجراءات خاصة بمجال العمل بشكل آمن.
- تجربة مستخدم محسّنة
- تطبيقات تفاعلية: يمكن للمستخدمين التفاعل مع النموذج كما لو كانوا يستخدمون تطبيقًا، مع قيام النموذج بتشغيل دوال الواجهة الخلفية بشكل شفاف.
- التخصيص: يمكن للدوال جلب بيانات أو إعدادات خاصة بالمستخدم، مما يتيح استجابات مخصصة.
- معالجة أفضل للأخطاء وقابلية التفسير
- منطق شفاف: يساعد استدعاء الدوال على تتبع الموارد أو الأدوات الخارجية التي تم استخدامها، مما يجعل عملية استدلال النموذج أكثر قابلية للمراجعة.
- تنفيذ خاضع للتحكم: يمكن للمطورين مراقبة وتحديد الدوال التي يمكن للنموذج استدعاؤها، مما يحسن الأمان والقدرة على التنبؤ.
ما هي قيود استدعاء الدوال في GLM-4.5؟
1. الاستدعاء المفرط
قد يقوم GLM-4.5 أحيانًا بإجراء استدعاءات مفرطة أو غير ضرورية للأدوات أو واجهات برمجة التطبيقات الخارجية. هذا يزيد من استخدام الرموز (tokens) والتكاليف التشغيلية، حيث يتم استهلاك المزيد من الموارد الحسابية دون أن يفيد النتيجة النهائية دائمًا.
2. حالات حدية في البث المتدفق
في وضع البث المتدفق، إذا تم إرسال بيانات JSON جزئية قبل اكتمال الاستجابة الكاملة، فقد تتلقى التطبيقات اللاحقة معلومات غير مكتملة. بدون تخزين مؤقت مناسب، يمكن أن يؤدي هذا إلى أخطاء أو فشل في معالجة الإخراج.
3. البصمة المواردية
بالنسبة لاستدعاء الدوال، يعني هذا أن الموارد hardware المحدودة يمكن أن تؤثر على قدرة النموذج على التعامل بكفاءة مع عدد كبير من الطلبات، أو معالجة البيانات المعقدة، أو تنفيذ سلاسل معقدة من استدعاءات الأدوات. في البيئات ذات الموارد المحدودة، قد ينخفض أداء استدعاء الدوال ودقته بشكل ملحوظ.
فوائد استخدام استدعاء الدوال مع GLM-4.5
تم إجراء تقييم مستقل لقدرات البرمجة الوكيلية لـ GLM-4.5 باستخدام Claude Code، وشمل 52 مهمة برمجة متنوعة مثل تطوير الواجهات الأمامية، وإنشاء الأدوات، وتحليل البيانات، والاختبار، وتنفيذ الخوارزميات. حقق GLM-4.5 معدل نجاح رائد في استدعاء الأدوات بنسبة 90.6%، متفوقًا على Claude-4-Sonnet (89.5%)، و Kimi K2 (86.2%)، و Qwen3-Coder (77.1%).

برنامج تعليمي: استخدام استدعاء الدوال في GLM-4.5 للمبتدئين
يوضح هذا الدليل كيفية استخدام استدعاء الدوال لاسترداد معلومات الطقس الحالية لموقع محدد من قبل المستخدم. سنقوم بشرح مثال كامل لرمز Python.
للحصول على تنسيق API المحدد لاستدعاء الدوال، يرجى الرجوع إلى التوثيق!

- تهيئة العميل
أولاً، تحتاج إلى تهيئة العميل باستخدام مفتاح Novita API الخاص بك.
from openai import OpenAI
import json
client = OpenAI(
base_url="https://api.novita.ai/v3/openai",
# احصل على مفتاح Novita AI API من: https://novita.ai/settings/key-management.
api_key="<YOUR Novita AI API Key>",
)
model = "zai-org/glm-4.5"
- تعريف الدالة المراد استدعاؤها
بعد ذلك، حدد دالة Python التي يمكن للنموذج استدعاؤها. في هذا المثال، هي دالة للحصول على معلومات الطقس.
# Example function to simulate fetching weather data.
def get_weather(location):
"""Retrieves the current weather for a given location."""
print("Calling get_weather function with location: ", location)
# In a real application, you would call an external weather API here.
# This is a simplified example returning hardcoded data.
return json.dumps({"location": location, "temperature": "60 degrees Fahrenheit"})
- إنشاء طلب API مع الأدوات ورسالة المستخدم
الآن، أنشئ طلب API إلى نقطة نهاية Novita. يتضمن هذا الطلب معامل tools، الذي يحدد الدوال التي يمكن للنموذج استخدامها، ورسالة المستخدم.
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get weather of an location, the user shoud supply a location first",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA",
}
},
"required": ["location"]
},
}
},
]
messages = [
{
"role": "user",
"content": "What is the weather in San Francisco?"
}
]
# Let's send the request and print the response.
response = client.chat.completions.create(
model=model,
messages=messages,
tools=tools,
)
# Please check if the response contains tool calls if in production.
tool_call = response.choices[0].message.tool_calls[0]
print(tool_call.model_dump())
- الإخراج
{'id': '0', 'function': {'arguments': '{"location": "San Francisco, CA"}', 'name': 'get_weather'}, 'type': 'function'}
- الرد بنتيجة استدعاء الدالة والحصول على الإجابة النهائية
الخطوة التالية هي معالجة استدعاء الدالة، وتنفيذ دالة get_weather، وإرسال النتيجة مرة أخرى إلى النموذج لتوليد الاستجابة النهائية للمستخدم.
# Ensure tool_call is defined from the previous step
if tool_call:
# Extend conversation history with the assistant's tool call message
messages.append(response.choices[0].message)
function_name = tool_call.function.name
if function_name == "get_weather":
function_args = json.loads(tool_call.function.arguments)
# Execute the function and get the response
function_response = get_weather(
location=function_args.get("location"))
# Append the function response to the messages
messages.append(
{
"tool_call_id": tool_call.id,
"role": "tool",
"content": function_response,
}
)
# Get the final response from the model, now with the function result
answer_response = client.chat.completions.create(
model=model,
messages=messages,
# Note: Do not include tools parameter here.
)
print(answer_response.choices[0].message)
- الإخراج
{'id': '0', 'function': {'arguments': '{"location": "San Francisco, CA"}', 'name': 'get_weather'}, 'type': 'function'}
تقدم Novita AI الآن توافقًا مع حزمة SDK الخاصة بـ Anthropic
لقد حظي مزيج GLM-4.5 و Claude Code باهتمام سريع في مجتمع الذكاء الاصطناعي، حيث يقدم قدرات وكيلية متقدمة للتطبيقات الواقعية. لتبسيط هذا التكامل بشكل أكبر، تقدم Novita AI الآن توافقًا مع حزمة SDK الخاصة بـ Anthropic، مما يسمح لك بالاستفادة بسهولة من قوة GLM-4.5 من خلال واجهة Claude Code المألوفة.
يمكنك الرجوع إلى هذا التوثيق للحصول على مزيد من التفاصيل!
1. تثبيت حزمة SDK الخاصة بـ Anthropic
pip install anthropic
2. تهيئة العميل
تم تصميم حزم SDK الخاصة بـ Anthropic لجلب مفتاح API وعنوان URL الأساسي من المتغيرات البيئية: ANTHROPIC_API_KEY و ANTHROPIC_BASE_URL. كما يمكنك توفير المعلمات لعميل Anthropic عند تهيئته.
يمكنك عرض وإدارة مفاتيح API الخاصة بك على صفحة الإعدادات.
- استخدام المتغيرات البيئية
export ANTHROPIC_BASE_URL="https://api.novita.ai/anthropic"
export ANTHROPIC_API_KEY="<YOUR_NOVITA_API_KEY>"
- تعيين المعلمات أثناء تهيئة عميل Anthropic
import anthropic
client = anthropic.Anthropic(
base_url="https://api.novita.ai/anthropic",
api_key="<YOUR_NOVITA_API_KEY>"
)
3. استدعاء API
import anthropic
# Initialize the client, if you already set `ANTHROPIC_BASE_URL` and `ANTHROPIC_API_KEY`
# in the environment variables, you can omit the `api_key` and `base_url` parameters.
client = anthropic.Anthropic(
base_url="https://api.novita.ai/anthropic",
api_key="<YOUR_NOVITA_API_KEY>"
)
message = client.messages.create(
model="zai-org/glm-4.5",
max_tokens=1000,
temperature=1,
system="You are a world-class poet. Respond only with short poems.",
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": "Why is the ocean salty?"
}
]
}
]
)
print(message.content)
كيفية تحسين دقة استدعاء الدوال في GLM-4.5
- وضوح المخطط
- المقصود: استخدم أسماء معلمات قصيرة وفريدة، وتجنب
anyOfالمتداخلة حتى يصبح المحلل أكثر قوة. - ما الذي يحلّه:
- يمنع ارتباك المعلمات وتضارب الأسماء، مما يسهل على النموذج ملء الوسائط بشكل صحيح.
- يقلل من أخطاء التحليل وفشل استدعاءات الدوال الناتجة عن المخططات المعقدة للغاية.
- موجه النظام
- المقصود: اطلب من النموذج “اتخاذ قرار أولاً حول ما إذا كانت هناك حاجة إلى أداة؛ وإلا فقم بالإجابة مباشرة”.
- ما الذي يحلّه:
- يقلل من استدعاءات الأدوات/الدوال غير الضرورية أو المفرطة (الاستدعاء المفرط).
- يساعد في توفير الموارد الحسابية والتكاليف التشغيلية.
- درجة الحرارة ≤ 0.2
- المقصود: اضبط معامل درجة الحرارة على 0.2 أو أقل.
- ما الذي يحلّه:
- يقلل من عشوائية الإخراج، مما يضمن سلوكًا أكثر قابلية للتنبؤ واتساقًا.
- يمنع انحراف المخطط، بحيث يلتزم النموذج بهيكل المعلمات المطلوب ويقلل من الأخطاء.
- استخدم
tool_choice="required"
- المقصود: اضبط هذا الخيار عندما يطلب المستخدم صراحة استدعاء دالة.
- ما الذي يحلّه:
- يضمن أن النموذج يقوم دائمًا باستدعاء الدالة المطلوبة، مما يحسن الموثوقية ورضا المستخدم.
- استخدم الاستدعاءات المتوازية باعتدال
- المقصود: قم بتوازي الدوال المستقلة حقًا فقط؛ وإلا فقم بتوليد الاستدعاءات بشكل تسلسلي.
- ما الذي يحلّه:
- يمنع اختلاط الوسائط أو عدم الاتساق المنطقي بين الاستدعاءات.
- يضمن حصول كل استدعاء على السياق والمدخلات الصحيحة، مما يؤدي إلى نتائج أكثر دقة.
استكشاف أخطاء استدعاء الدوال في GLM-4.5 وإصلاحها
| العرض | السبب المحتمل | الإصلاح / الحل |
|---|---|---|
| خطأ IndexError: فهرس القائمة خارج النطاق في المحلل | استخدام المحلل الافتراضي؛ يختلف تنسيق معرف GLM. | ابدأ الخادم باستخدام --tool-call-parser glm4_moe. |
| نص عشوائي مختلط بـ JSON | درجة الحرارة مرتفعة جدًا أو tool_choice مفقود. |
اخفض درجة الحرارة؛ اضبط tool_choice على "auto" أو "required". |
| التكرار اللانهائي للأدوات | هلوسة النموذج باستدعاءات متكررة. | تتبع الاستدعاءات المنفذة وأوقف التكرارات في منطق المضيف. |
| OOM / نفاد الموارد | لا يزال بناء FP8 يتجاوز الذاكرة المشتركة في نوى Triton. | اخفض num_stages أو تحول إلى التكمية المختلطة Int4-Int8-Mix. |
| لا يتم إصدار أي استدعاء | مخطط الأداة غامض جدًا. | أضف قائمة required صارمة وقيم تعداد صريحة. |
يحول استدعاء الدوال GLM 4.5 من نموذج محادثة إلى وكيل ذكي يمكنه تنفيذ المهام وأتمتة العمليات في الوقت الفعلي. من خلال فهم المشكلات النموذجية وحلولها—مثل أخطاء المحلل، وتنسيق JSON، أو تصميم المخطط—يمكنك ضمان تكامل سلس والاستفادة الكاملة من الإمكانات الوكيلية لـ GLM 4.5. نأمل أن تكون هذه المقالة قد أوضحت الأسئلة الشائعة ومكنتك من نشر استدعاء الدوال في GLM 4.5 بثقة.
الأسئلة الشائعة
لماذا يعتبر استدعاء الدوال مهمًا لـ GLM 4.5 كنموذج لغة كبير وكيلي؟ يسمح استدعاء الدوال لـ GLM 4.5 بالتفاعل برمجيًا مع الخدمات الخارجية، وقواعد البيانات، والأدوات. هذا يتيح الأتمتة، والاستدلال متعدد الخطوات، واسترداد المعلومات، والإجراءات الواقعية التي تتجاوز توليد النص.
كيف أتجنب التكرار اللانهائي أو استدعاءات الأدوات المتكررة؟ قم بتنفيذ منطق من جانب المضيف لتتبع وإيقاف استدعاءات الدوال المكررة، لمنع الحلقات اللانهائية.
ما هي أفضل الممارسات لتصميم المخطط لضمان إصدار استدعاءات الدوال؟ استخدم أسماء معلمات موجزة وفريدة، وقدم قيم تعداد صريحة، وعرف المعلمات المطلوبة لجعل المخطط واضحًا للنموذج.
Novita AI هي منصة سحابية شاملة تمكنك من تحقيق طموحاتك في الذكاء الاصطناعي. واجهات برمجة تطبيقات متكاملة، بدون خوادم، مثيلات GPU — هي الأدوات التي تحتاجها بتكلفة فعالة. تخلص من البنية التحتية، ابدأ مجانًا، وحقق رؤيتك في الذكاء الاصطناعي.
