المشكلة
كان على روبوت المحادثة أن يجيب بالعربية والإنجليزية، وأن يعمل على نماذج ذاتية الاستضافة على خوادم A100، وأن يستند في إجاباته إلى المستندات ونتائج الويب الحية، وأن يرشد المستخدم في إعداد الخدمات عبر محادثة متعددة الجولات. وفي بيئة الإنتاج، كان على خوادم النماذج أن تتعافى تلقائيًا عند حدوث أي عطل.
النهج
- استرجاع هجين لخطوط RAG: بحث متجهي مع BM25، ثم إعادة ترتيب بنموذج لغوي، مع تخزين مؤقت عبر SQLite على مستوى عُقد المخطط.
- بحث حي على الويب عبر خادم Brave Search MCP.
- خدمة Qwen عبر vLLM على وحدات NVIDIA A100، مع تولّي دورة حياتها كاملة: إعدادات الخدمة، وتخصيص وحدات GPU، وإصدارات النماذج، ومراقبة الحالة، وإعادة التشغيل التلقائي على عدة خوادم GPU في بيئة الإنتاج.
- النشر كخدمات FastAPI في حاويات Docker خلف Nginx، مع CI/CD.
البنية
عرض للمكوّنات: وكلاء LangGraph غير متزامنين يستدعون Qwen ذاتي الاستضافة على vLLM، ويسترجعون عبر بحث هجين مع إعادة ترتيب بنموذج لغوي، ويصلون إلى الويب عبر MCP، فيما تعمل خدمات FastAPI خلف Nginx. الشكل 1
- المستخدمون والواجهات
-
- المستخدمون (عربي / إنجليزي)
- التنسيق
-
- تنسيق LangGraph · توجيه عبر Command، غير متزامن
- الوكلاء
-
- 6 وكلاء متخصصين · مخططات فرعية معيارية
- النماذج
-
- vLLM يخدم Qwen
- الاسترجاع
-
- بحث هجين: متجهي + BM25
- إعادة ترتيب بنموذج لغوي
- البيانات
-
- تخزين مؤقت للعُقد (SQLite)
- الخدمات
-
- خدمات FastAPI (Docker)
- Brave Search عبر MCP
- البنية التحتية
-
- Nginx
- خوادم A100 · إصدارات، فحوص حالة، إعادة تشغيل تلقائي
- الروابط بين المكوّنات
-
- من المستخدمون (عربي / إنجليزي) إلى Nginx
- من Nginx إلى خدمات FastAPI (Docker)
- من خدمات FastAPI (Docker) إلى تنسيق LangGraph
- من تنسيق LangGraph إلى 6 وكلاء متخصصين
- من تنسيق LangGraph إلى تخزين مؤقت للعُقد (SQLite)
- من 6 وكلاء متخصصين إلى بحث هجين: متجهي + BM25
- من بحث هجين: متجهي + BM25 إلى إعادة ترتيب بنموذج لغوي
- من 6 وكلاء متخصصين إلى Brave Search عبر MCP
- من 6 وكلاء متخصصين إلى vLLM يخدم Qwen
- من vLLM يخدم Qwen إلى خوادم A100
الشكل 2 نمط الاسترجاع وراء أعمالي في RAG: بحث بالكلمات المفتاحية (BM25) وبحث بالمتجهات الكثيفة بالتوازي، ثم دمج النتائج وإعادة ترتيبها بواسطة LLM، وتوليد الإجابة من هذا السياق. تعرض المخططات المكوّنات المذكورة في الأوصاف المنشورة للعمل، وهي مبسّطة وليست خرائط كاملة للأنظمة.
- الاسترجاع. يعمل البحث بالكلمات المفتاحية (BM25) والبحث بالمتجهات الكثيفة بالتوازي.
- الدمج. تُدمج قائمتا النتائج في مجموعة مرشحين واحدة.
- إعادة الترتيب. يعيد LLM ترتيب المرشحين قبل وصولهم إلى الموجِّه (prompt).
- التوليد. يولّد LLM الإجابة من السياق بعد إعادة ترتيبه.
وصف نصي للمخطط
مخطط تدفق. يُرسَل الاستعلام بالتوازي إلى بحث BM25 بالكلمات المفتاحية وإلى بحث بالمتجهات الكثيفة عبر التضمينات. تُدمج النتائج ثم يعيد LLM ترتيبها، وتُمرَّر سياقًا إلى LLM يولّد الإجابة.
الشكل 3 دورة حياة كاملة لنشر نماذج Qwen عبر vLLM على عدة خوادم إنتاج بمعالجات A100: CI/CD والحاويات، وإصدارات النماذج، وإعدادات الخدمة وتوزيع موارد GPU، ومراقبة الصحة وإعادة التشغيل الآلية. تعرض المخططات المكوّنات المذكورة في الأوصاف المنشورة للعمل، وهي مبسّطة وليست خرائط كاملة للأنظمة.
- التسليم. CI/CD ونشر عبر الحاويات باستخدام Docker وGit وأتمتة بسكربتات shell، في بيئتي التطوير والإنتاج.
- الإصدارات. إدارة إصدارات نماذج Qwen في بيئة الإنتاج.
- الخدمة. إعدادات الخدمة في vLLM وتوزيع موارد GPU.
- خوادم GPU. عدة خوادم إنتاج بمعالجات NVIDIA A100 تعمل بـ vLLM.
- المراقبة. مراقبة صحة الخدمة عبر خوادم GPU.
- التعافي. مسارات آلية لإعادة التشغيل.
وصف نصي للمخطط
مخطط معماري. التسليم: تمر الشيفرة من Git عبر CI/CD بأتمتة مكتوبة بسكربتات shell إلى صور Docker، تُرقّى من بيئة التطوير إلى بيئة الإنتاج وتُنشر على خوادم GPU الإنتاجية. وتُطبَّق على الخوادم نفسها إدارة إصدارات نماذج Qwen وإعدادات الخدمة في vLLM، بما فيها توزيع موارد GPU. الإنتاج: عدة خوادم بمعالجات A100، يشغّل كلٌّ منها vLLM مع نموذج Qwen؛ يظهر في المخطط خادمان وعنصر يمثّل البقية. يرسل وكلاء روبوت المحادثة المبني على LangGraph طلبات الاستدلال إليها. وتفحص مراقبة الصحة الخوادم، وتعيد مسارات إعادة التشغيل الآلية تشغيلها.
النتيجة
- النشر في بيئة الإنتاج نظامًا غير متزامن بالكامل وثنائي اللغة (عربي/إنجليزي).
- خدمة نماذج ذاتية الاستضافة مع مراقبة الحالة وإعادة التشغيل التلقائي على عدة خوادم GPU في بيئة الإنتاج.
- إجابات تستند إلى المستندات المسترجعة ونتائج الويب الحية.
التقنيات
- التنسيق
- LangGraph
- النماذج
- QwenvLLM
- الاسترجاع
- BM25Brave Search
- البيانات
- SQLite
- الخدمات
- FastAPIMCP
- خطوط المعالجة
- CI/CD
- البنية التحتية
- NVIDIA A100DockerNginx
مصادر هذه المعلومات. كل ما في هذه الصفحة مأخوذ من سيرتي الذاتية وملفي على LinkedIn وملفي ومستودعاتي على GitHub. لا شيء هنا تقديري: وحين لا يوجد رقم منشور، تصف الصفحة ما يفعله النظام.