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

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

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

09 سبتمبر 2026
5 دقائق قراءة
249 قراءة
certi.news Editorial Team
كيف يبني 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 واحدة. هذا قد يقلل كلفة تغيير المزود أو طريقة التشغيل، لكنه لا يلغي الفروق السلوكية بين النماذج، ولا يحل وحده مشكلة تقييم جودة المخرجات. وتوضح آلية الاختبار في المشروع أن ضمان عمل الاتصال شيء، والتأكد من أن النموذج ينتج النتيجة المطلوبة شيء آخر يحتاج إلى اختبارات حية ومعايير تقييم مستقلة.

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

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

c
كاتب المقال

certi.news Editorial Team

certi.news Editorial Team

The certi.news editorial team monitors technical sources and reconstructs news, verifying facts and context prior to publication.

ما الذي تحتاج معرفته

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

  • توفر Rig واجهة Rust موحدة للتعامل مع مزودي نماذج مثل OpenAI وAnthropic وGemini، ما يسهل تبديل المزود.
  • يمكن للوكلاء في Rig استدعاء أدوات تنفذ عمليات حسابية أو تتعامل مع قواعد البيانات والملفات والخدمات الأخرى.
  • يدعم المشروع التوليد المعزز بالاسترجاع وقواعد البيانات ومخازن المتجهات.
  • يمكن تشغيل النماذج محلياً عبر Ollama وllama.cpp أو عبر تكامل rig-candle داخل تطبيق Rust.
  • يعتمد اختبار التكاملات على تسجيل حركة HTTP في ملفات YAML وإعادة تشغيلها عبر خادم وهمي في بيئة التكامل المستمر.
  • اختبارات التسجيل تتحقق من عمل التكامل البرمجي، لكنها لا تقيس جودة إجابات النموذج أو تغيرها بعد تحديث المزود.

أسئلة شائعة

ما هي Rig؟

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

كيف تسمح Rig بتبديل مزود النموذج؟

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

هل تقيس اختبارات Rig جودة إجابات النماذج؟

لا. تتحقق الاختبارات المسجلة من استمرار عمل التكامل البرمجي، بينما تحتاج جودة المخرجات إلى اختبارات على نماذج حية ومعايير تقييم مستقلة.

ما خيارات تشغيل النماذج المحلية المذكورة؟

تذكر المادة Ollama وllama.cpp، إضافة إلى تكامل rig-candle الذي يتيح تنفيذ الاستدلال داخل تطبيق Rust.

استكشف هذه القصة

المواضيع والجهات المرتبطة

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

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

عرض كل الأخبار