إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
في هذه المقالة، يمكنك تكوين مساحة عمل استدلال مشغل سلسلة أدوات الذكاء الاصطناعي (KAITO) ونشرها على خدمة Azure Kubernetes (AKS) مع دعم استدعاء أداة على غرار OpenAI. يمكنك أيضا تعلم كيفية التحقق من صحة وظيفة استدعاء الأداة باستخدام مقاييس vLLM ونماذج الدالة المحلية.
ما المقصود باستدعاء الأداة؟
يتيح استدعاء الأدوات لنماذج اللغة الكبيرة (LLMs) التفاعل مع الوظائف الخارجية أو واجهات برمجة التطبيقات أو الخدمات. بدلا من مجرد إنشاء نص ، يمكن ل LLM أن يقرر:
- "أحتاج إلى الاتصال بواجهة برمجة تطبيقات الطقس."
- "أحتاج إلى استخدام آلة حاسبة."
- "يجب أن أبحث في قاعدة بيانات."
يقوم بذلك عن طريق استدعاء "أداة" محددة بمعايير يختارها بناء على طلب المستخدم. استدعاء الأداة مفيد من أجل:
- روبوتات الدردشة التي تحجز أو تلخص أو تحسب.
- تطبيقات LLM للمؤسسات حيث يجب تقليل الهلوسة.
- أطر عمل الوكيل (AutoGen و LangGraph و LangChain و AgentOps وما إلى ذلك).
في بيئات الإنتاج ، غالبا ما تتطلب التطبيقات التي تدعم الذكاء الاصطناعي أكثر من توليد اللغة الطبيعية. إنها تتطلب القدرة على اتخاذ إجراء بناء على نية المستخدم. يمكن استدعاء الأدوات LLMs من التوسع إلى ما هو أبعد من الاستجابات النصية عن طريق استدعاء الأدوات الخارجية أو واجهات برمجة التطبيقات أو المنطق المخصص في الوقت الفعلي. يعمل هذا على سد الفجوة بين فهم اللغة وتنفيذها، مما يمكن المطورين من إنشاء مساعدين ووكلاء وسير عمل أتمتة تفاعليين للذكاء الذكاء الاصطناعي تتسم بالدقة والمفيدة. بدلا من الاعتماد على الاستجابات الثابتة ، يمكن ل LLMs الآن الوصول إلى البيانات الحية وتشغيل الخدمات وإكمال المهام نيابة عن المستخدمين ، بأمان وموثوقية.
عند نشرها على AKS، يصبح استدعاء الأداة قابلا للتطوير وآمنا وجاهزا للإنتاج. يوفر Kubernetes المرونة لتنسيق أحجام عمل الاستدلال باستخدام أوقات تشغيل عالية الأداء مثل vLLM، مع ضمان إمكانية الملاحظة وحوكمة استخدام الأداة. باستخدام هذا النمط، يمكن لمشغلي AKS ومطوري التطبيقات تحديث النماذج أو الأدوات بشكل أكثر سلاسة بشكل مستقل ونشر ميزات الذكاء الاصطناعي المتقدمة دون المساس بالموثوقية.
نتيجة لذلك ، أصبحت أداة استدعاء AKS الآن نمطا أساسيا لبناء تطبيقات الذكاء الاصطناعي الحديثة التي تدرك السياق وقادرة على العمل وجاهزة للمؤسسة.
أداة الاتصال باستخدام KAITO
لتبسيط نموذج النشر هذا، توفر الوظيفة الإضافية لمشغل سلسلة أدوات الذكاء الاصطناعي (KAITO) ل AKS حلا مدرا لتشغيل خدمات الاستدلال مع دعم استدعاء الأدوات. من خلال الاستفادة من مساحات عمل استدلال KAITO ، يمكنك تدوير نقاط نهاية نموذج قابلة للتطوير ومسرعة بواسطة GPU بسرعة مع دعم مدمج لاستدعاء الأدوات وواجهات برمجة التطبيقات المتوافقة مع OpenAI. هذا يلغي النفقات التشغيلية لتكوين أوقات التشغيل أو إدارة التبعيات أو توسيع نطاق البنية الأساسية يدويا.
المتطلبات
- تفترض هذه المقالة أن لديك تجمع AKS قائمًا. إذا لم يكن لديك نظام مجموعة، فقم بإنشاء نظام مجموعة باستخدام Azure CLI أو Azure PowerShell أو مدخل Microsoft Azure.
- تعمل مجموعة AKS الخاصة بك على إصدار
1.33Kubernetes أو أعلى. لترقية نظام المجموعة الخاص بك، راجع ترقية نظام مجموعة AKS الخاص بك. - قم بتثبيت إصدار
2.77.0Azure CLI أو إصدار أحدث، وتكوينه. للعثور على الإصدار الخاص بك، قم بتشغيلaz --version. للتثبيت أو التحديث، راجع تثبيت Azure CLI. - تم تمكين الوظيفة الإضافية لمشغل سلسلة أدوات الذكاء الاصطناعي على نظام المجموعة الخاص بك.
- مساحة عمل استدلال KAITO منشورة تدعم استدعاء الأدوات. ارجع إلى وثائق استدعاء أداة KAITO الرسمية للأداة التي تستدعي النماذج المدعومة باستخدام vLLM.
- لقد قمت بنشر
workspace‑phi‑4-mini-toolcallمساحة عمل KAITO بالتكوين الافتراضي.
تأكد من تشغيل مساحة عمل استدلال KAITO
راقب نشر مساحة العمل الخاصة بك باستخدام
kubectl getالأمر.kubectl get workspace workspace‑phi‑4‑mini-toolcall -wفي الإخراج، تريد التحقق من أن المورد (
ResourceReady) والاستدلال (InferenceReady) جاهزان ونجحت مساحة العمل (WorkspaceSucceededbeingtrue).
تأكد من أن واجهة برمجة تطبيقات الاستدلال جاهزة للخدمة
بمجرد أن تصبح مساحة العمل جاهزة، ابحث عن نقطة نهاية الخدمة باستخدام الأمر
kubectl get.kubectl get svc workspace‑phi‑4-mini-toolcallإشعار
قد يكون الإخراج عنوانا
ClusterIPأو عنوانا داخليا. تحقق من المنفذ (المنفذات) التي تستمع إليها الخدمة. واجهة برمجة تطبيقات استدلال KAITO الافتراضية موجودة على منفذ80HTTP. إذا كان داخليا فقط، فيمكنك إعادة التوجيه محليا.قم بإعادة توجيه خدمة الاستدلال للاختبار باستخدام الأمر
kubectl port-forward.kubectl port-forward svc/workspace‑phi‑4‑mini-toolcall 8000:80تحقق من نقطة النهاية
/v1/modelsللتأكد من توفر LLM باستخدامcurl.curl http://localhost:8000/v1/modelsلضمان نشر LLM ، وعمل واجهة برمجة التطبيقات ، يجب أن يكون الإخراج مشابها لما يلي:
... { "object": "list", "data": [ { "id": "phi‑4‑mini‑instruct", ... ... } ] } ...
اختبار أداة استدعاء الدالة المسماة
في هذا المثال، تدعم مساحة workspace‑phi‑4‑mini-toolcall العمل استدعاء أدوات الدالة المسماة بشكل افتراضي، لذا يمكننا التأكد من قبول نموذج اللغة الكبيرة لمواصفات "الأداة" في طلبات على نمط OpenAI ويعيد هيكل "استدعاء الدالة".
مقتطف Python الذي نستخدمه في هذا القسم مأخوذ من وثائق KAITO ويستخدم عميلا متوافقا مع OpenAI.
تأكد من أن نموذج اللغة الكبيرة يقبل مواصفة "أداة" في طلبات على غرار OpenAI ويعيد هيكل "استدعاء الدالة". هذا المثال:
- تهيئة العميل المتوافق مع OpenAI للتحدث إلى خادم استدلال محلي. من المفترض أن يكون الخادم يعمل في
http://localhost:8000/v1استدعاءات واجهة برمجة التطبيقات على غرار OpenAI ويقبلها. - يحاكي منطق الواجهة الخلفية لأداة تسمى
get_weather. (في سيناريو حقيقي ، قد يستدعي هذا واجهة برمجة تطبيقات الطقس.) - يصف واجهة الأداة.
Phi-4-miniسيرى LLM هذه الأداة ويقرر ما إذا كان سيتم استخدامها بناء على مدخلات المستخدم. - يرسل عينة رسالة دردشة إلى النموذج ويوفر مواصفات الأداة. يسمح الإعداد
tool_choice="auto"ل LLM بتحديد ما إذا كان يجب عليه استدعاء أداة بناء على المطالبة. - في هذه الحالة ، كان طلب المستخدم ذا صلة بالأداة
get_weather، لذلك نقوم بمحاكاة تنفيذ الأداة ، واستدعاء الوظيفة المحلية مع الوسيطات المختارة للنموذج.
from openai import OpenAI import json # local server client = OpenAI(base_url="http://localhost:8000/v1", api_key="dummy") def get_weather(location: str, unit: str) -> str: return f"Getting the weather for {location} in {unit}..." tool_functions = {"get_weather": get_weather} tools = [{ "type": "function", "function": { "name": "get_weather", "description": "Get the current weather in a given location", "parameters": { "type": "object", "properties": { "location": {"type": "string"}, "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]} }, "required": ["location", "unit"] } } }] response = client.chat.completions.create( model="phi‑4‑mini‑instruct", # or client.models.list().data[0].id messages=[{"role": "user", "content": "What's the weather like in San Francisco?"}], tools=tools, tool_choice="auto" ) # Inspect response tool_call = response.choices[0].message.tool_calls[0].function args = json.loads(tool_call.arguments) print("Function called:", tool_call.name) print("Arguments:", args) print("Result:", tool_functions[tool_call.name](**args))يجب أن يبدو الإخراج مشابها للآتي:
Function called: get_weather Arguments: {"location": "San Francisco, CA", "unit": "fahrenheit"} Result: Getting the weather for San Francisco, CA in fahrenheit...يعود حقل "tool_calls"، مما يعني أن
Phi-4-miniنموذج اللغة الكبير قرر استدعاء الدالة. الآن، تم تحليل وتنفيذ استدعاء أداة عينة بنجاح بناء على قرار النموذج بتأكيد سلوك استدعاء الأدوات من طرف إلى طرف باستخدام نشر استنتاج KAITO.- تهيئة العميل المتوافق مع OpenAI للتحدث إلى خادم استدلال محلي. من المفترض أن يكون الخادم يعمل في
Troubleshooting
إعداد النموذج لا يدعم استدعاء الأدوات
إذا اخترت نموذجا غير مدرج في القائمة المتوافقة، فقد لا يعمل استدعاء الأداة. تأكد من مراجعة وثائق KAITO، التي تسرد صراحة الإعدادات المسبقة لاستدعاء أداة الدعم.
وقت تشغيل غير محاذاة
يجب أن يستخدم استنتاج KAITO وقت تشغيل vLLM لاستدعاء الأدوات (عادة لا يدعم وقت تشغيل HuggingFace Transformer استدعاء الأدوات في KAITO).
مشكلات الشبكة / نقطة النهاية
في حالة إعادة توجيه المنفذ، تأكد من إعادة توجيه منافذ الخدمة بشكل صحيح. إذا تعذر الوصول إلى خادم MCP الخارجي، فسوف يخرج خطأ.
المهل
قد تستغرق مكالمات خادم MCP الخارجية وقتا. تأكد من أن مهلة المحول أو العميل عالية بما فيه الكفاية.
المصادقة
إذا كان خادم MCP الخارجي يتطلب المصادقة (مفتاح واجهة برمجة التطبيقات ، الرأس ، إلخ) ، فتأكد من توفير بيانات الاعتماد الصحيحة.
الخطوات التالية
- قم بإعداد مراقبة vLLM في الوظيفة الإضافية لمشغل سلسلة أدوات الذكاء الاصطناعي باستخدام Prometheus وGrafana على AKS.
- تعرف على دعم خادم MCP باستخدام KAITO واختبر أمثلة استدعاء الأدوات القياسية على مجموعة AKS الخاصة بك.