الذكاء الاصطناعي

كيف يبني Rust تطبيقات النماذج اللغوية باستخدام Rig؟

يشرح عرض عملي مشترك بين JetBrains وRust Foundation كيفية استخدام مكتبة Rig لبناء وكلاء ذكاء اصطناعي في Rust، مع دعم مزودي النماذج والأدوات وRAG والنماذج المحلية. وتبرز المادة أيضاً أسلوب اختبار تكاملات النماذج عبر تسجيل طلبات HTTP وإعادة تشغيلها في بيئة التكامل المستمر.

09 سبتمبر 2026
5 دقائق قراءة
1 قراءة
فريق تحرير certi.news
كيف يبني Rust تطبيقات النماذج اللغوية باستخدام Rig؟

تنتقل تطبيقات الذكاء الاصطناعي المبنية بلغة Rust تدريجياً من التجارب الأولية إلى نماذج أكثر عملية، وفق عرض مباشر نظمته JetBrains بالتعاون مع Rust Foundation. ركزت الجلسة الأولى على مكتبة Rig مفتوحة المصدر، وعلى كيفية استخدامها لبناء تطبيقات تعتمد على النماذج اللغوية الكبيرة ووكلاء قادرين على استدعاء أدوات وتنفيذ مهام داخل التطبيق.

شارك Orhun Parmaksız، وهو Developer Advocate، في استعراض وكيل برمجي صغير بناه باستخدام Rig وRatatui، بينما شرح Stephen Korzeniewski، المشرف الرئيسي على Rig في 0xPlaygrounds، البنية الداخلية للمشروع والاختيارات التي تقف خلف واجهاته البرمجية.

واجهة موحدة لمزودي النماذج

تعالج Rig مشكلة عملية شائعة في تطبيقات النماذج اللغوية: لكل من OpenAI وAnthropic وGemini وغيرهم واجهات برمجية مختلفة، حتى عندما تعلن بعض الخدمات توافقها مع واجهة OpenAI. وبدلاً من ربط أجزاء التطبيق مباشرة بواجهة مزود واحد، تقدم Rig واجهة Rust موحدة يمكن من خلالها تبديل المزود من دون إعادة كتابة الأجزاء المرتبطة بالنموذج.

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

تُمرر تعليمات الوكيل في ما تسميه Rig اسم preamble، وهي تعليمات تؤدي دور مطالبة النظام وتُدرج في بداية كل طلب. أما الاتصالات الشبكية مع مزودي النماذج فتُدار عبر واجهات غير متزامنة، مع إبقاء كثير من تفاصيل العمل غير المتزامن داخل المكتبة حتى يركز كود التطبيق على الإعداد والسلوك المطلوبين.

الأدوات تجعل الوكيل جزءاً من التطبيق

تعرّف Rig الأداة من خلال واجهة Tool trait في Rust. ويتضمن تعريف الأداة اسمها وأنواع المدخلات والمخرجات والأخطاء، إلى جانب الدالة التي تُنفذ عند استدعائها. كما يصف تعريفها الوسائط المتوقعة باستخدام JSON Schema، بحيث يحصل النموذج على وصف منظم للبيانات التي يمكنه تقديمها.

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

من العرض التجريبي إلى تطبيق قابل للاختبار

جمع مشروع Rat Code هذه المكونات في وكيل برمجي صغير يعمل من الطرفية باستخدام Rig وRatatui. يهيئ الملف main.rs عميل المزود والنموذج والوكيل، بينما تُعرّف قدرات قراءة الملفات وكتابتها وتشغيل أوامر الصدفة بصورة منفصلة، ثم تُسجل لدى الوكيل عبر واجهة الأدوات في Rig.

يستخدم التطبيق أيضاً واجهة البث في Rig لمعالجة الرد على دفعات وتحديث واجهة الطرفية أثناء توليد النموذج للإجابة. وتناول العرض كذلك نظام الخطافات، وآلية التعافي من استدعاءات الأدوات، والاختيارات التصميمية وراء التجريدات التي توفرها المكتبة. يبدأ استعراض الكود الكامل في التسجيل عند الدقيقة 27:28.

RAG والنماذج المحلية والاختبار

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

كما يمكن تشغيل نماذج محلية عبر Ollama وllama.cpp، أو استخدام تكامل rig-candle لتنفيذ الاستدلال مباشرة داخل تطبيق Rust. ويتيح هذا الخيار تضمين أوزان النموذج في التطبيق وتشغيل نماذج مدعومة عبر WebAssembly، من دون الاعتماد على واجهة نموذج مستضافة أو خادم استدلال محلي منفصل.

تظهر أهمية هذه الخيارات في المكان الذي تُشغّل فيه النماذج والبيانات، لكنها تطرح في الوقت نفسه تحدي اختبار التكاملات. تعتمد Rig أساساً على نظام تسجيل، إذ تُنفذ الاختبارات مع المزودين الحقيقيين وتُحفظ حركة HTTP في ملفات YAML، ثم يعيد خادم وهمي تشغيل الطلبات والردود داخل اختبارات التكامل المستمر. ويضم المشروع نحو 1,700 تفاعل مسجل، وتُعاد هذه التفاعلات مع كل طلب دمج خلال ثوانٍ قليلة.

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

القراءة التحريرية: ما الذي يهم المطورين؟

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

مصدر الخبر
كيف أعددنا هذا الخبر؟

اعتمد الخبر على المصدر الأصلي الموضح أعلاه. قد نستخدم أدوات آلية للمساعدة في الاستخراج والتصنيف والصياغة، لكن النشر يخضع لقواعد تمنع المحتوى المكرر والقصير أو الروتيني منخفض القيمة. اقرأ سياستنا التحريرية.

ف
كاتب المقال

فريق تحرير certi.news

فريق التحرير

فريق تحرير certi.news يتابع المصادر التقنية ويعيد بناء الأخبار بالعربية مع مراجعة الحقائق والسياق قبل النشر.

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

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

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