البرمجة وتطوير البرمجيات

إضافة أدوات التوجيه والتحويل الاحتياطي إلى Microsoft.Extensions.AI

أعلن فريق .NET عن أربعة أنواع تجريبية جديدة تتيح توجيه طلبات الذكاء الاصطناعي بين النماذج ومزودي الخدمة، وتنفيذ التحويل الاحتياطي عند تعطل أحدهم، وبناء سياسات توجيه مخصصة داخل Microsoft.Extensions.AI.

13 أغسطس 2026
3 دقائق قراءة
0 قراءة
إضافة أدوات التوجيه والتحويل الاحتياطي إلى Microsoft.Extensions.AI

أضافت Microsoft إلى مكتبة Microsoft.Extensions.AI أربعة أنواع تجريبية لإدارة توجيه طلبات الذكاء الاصطناعي والتحويل الاحتياطي بين النماذج أو مزودي الخدمة. وتعمل هذه الأنواع جميعاً كتطبيقات لواجهة IChatClient، ما يتيح استخدامها ضمن البنية الحالية للمكتبة للتعامل مع قيود التكلفة والتوافر وزمن الاستجابة.

أدوات التوجيه والتحويل الاحتياطي

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

أما SemanticRoutingChatClient فيوجه الطلبات اعتماداً على معناها. يزوّد المطور المكتبة بأمثلة لعبارات مرتبطة بكل عميل، ثم تُحوّل آخر رسالة من المستخدم إلى تضمين، وتُقارن بالأمثلة لاختيار العميل صاحب أعلى تشابه يتجاوز العتبة المحددة. وإذا لم يتجاوز أي تطابق العتبة، يُستخدم العميل الافتراضي.

تُنشأ تضمينات أمثلة المسارات عند الحاجة وتُخزّن مؤقتاً. وتتيح إعدادات مثل scoreThreshold وtopK وscoreAggregation التحكم في الحد الأدنى للتشابه وعدد الأمثلة المستخدمة في تجميع النتيجة، مع إمكان استخدام المتوسط أو المجموع. كما يتولى النوع، افتراضياً، التخلص من العملاء ومولد التضمينات عند التخلص منه، ويمكن تعطيل ذلك عبر leaveOpen.

التحويل الاحتياطي ومراقبة المحاولات

يمدّد FailoverChatClient قدرات التوجيه بإضافة حلقة لإعادة المحاولة. فإذا فشل العميل المختار قبل وصول أي مخرجات بث إلى المستدعي، يعيد النوع استدعاء SelectClientAsync لاختيار عميل آخر. أما بعد بدء إرسال المخرجات، فيُعد الفشل نهائياً ولا ينفذ النظام استعادة وسط البث.

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

وتقدم OrderedFailoverChatClient تطبيقاً جاهزاً لهذه الآلية؛ إذ تستقبل قائمة مرتبة من العملاء وتجربهم بالتتابع. وعند فشل جميع الخيارات، يعاد تمرير الاستثناء الأخير. ويحدد MaximumAttemptsPerRequest الحد الأقصى للاستدعاءات في الطلب، كما يتوقف اختيار عميل جديد عند إلغاء رمز إلغاء الطلب.

اعتبارات بناء سياسات التوجيه

يحذر المنشور من إعادة التوجيه في كل دور من أدوار المحادثة دون دراسة طبيعتها. فقد تعتمد نماذج الاستدلال على محتوى مشفر أو رموز متابعة مرتبطة بمزود محدد، كما أن الانتقال إلى نموذج أو مزود آخر قد يفقد الاستفادة من التخزين المؤقت للمقدمة ويعيد تكلفة حسابها.

وللمحادثات متعددة الأدوار، يقترح المنشور تثبيت المسار باستخدام معرّف جلسة تملكه الخدمة نفسها، بدلاً من الاعتماد على ConversationId الخاص بالمزود. ويمكن حفظ المسار المختار في حالة الجلسة أو في IDistributedCache، ولا يُثبّت المسار إلا بعد اكتمال الاستجابة بنجاح.

وتشمل السياسات الأخرى التي يمكن بناؤها التوجيه وفق زمن الاستجابة والصحة والتكلفة والقدرات والمنطقة الجغرافية، إضافة إلى تركيب أجهزة توجيه متعددة لأن كل جهاز منها يعمل كـ IChatClient. لكن هذه الأدوات لا تنفذ التوجيه المتسلسل بناءً على جودة استجابة ناجحة، أو تشغيل عدة عملاء ودمج نتائجهم، أو التسابق بين العملاء لاختيار أول استجابة؛ إذ تتطلب هذه السيناريوهات عميلاً ينفذ أكثر من استدعاء.

التوفر والحالة التجريبية

توفرت الأنواع RoutingChatClient وRoutingContext وFailoverChatClient وFailoverChatClientAttempt وOrderedFailoverChatClient وSemanticRoutingChatClient ضمن الإصدار 10.9.0 من Microsoft.Extensions.AI. وجميعها موسومة بأنها تجريبية باستخدام المعرّف التشخيصي MEAI001. ويمكن إضافة الحزمة عبر الأمر dotnet add package Microsoft.Extensions.AI.

من نفس التصنيف

مقالات قد تهمك

عرض جميع المقالات