Odoo 18 Website Auto-Translation
منصة ترجمة مستضافة محليًا لموقع جامعي على Odoo 18، تعمل بـ Ollama ونماذج محلية.
OstimGPT روبوت محادثة قائم على Retrieval-Augmented Generation طُوّر لجامعة OSTİM Technical University. يجمع المعلومات من مصادر الجامعة ويعالجها ويسترجعها ويعرضها، مع الاستشهاد بالمصادر وإدارة الجلسات ولوحات المراقبة ومجموعة متدرجة من الضوابط الأمنية. ساهمتُ في مسار الاسترجاع، وطبقتي التخزين المؤقت والجلسات، وأدوات التشغيل، والتحصين الأمني.
OstimGPT روبوت محادثة قائم على Retrieval-Augmented Generation طُوّر لجامعة OSTİM Technical University. يجيب عن الأسئلة اعتمادًا على محتوى مستمد من مصادر الجامعة نفسها لا من بيانات تدريب نموذج عام، ويوضّح مصدر كل إجابة.
يعمل النظام على بنية تحتية مستضافة محليًا. كل شيء، من جمع المواد المصدرية إلى تقديم الإجابة، يجري داخل بيئة الجامعة، وهو ما شكّل تقريبًا كل قرار تقني في المشروع.
عملت على هذا المشروع ضمن فريق التطوير في مكتب تنسيق التحول الرقمي. تركّزت مساهماتي في مسار البيانات والاسترجاع، وطبقتي التخزين المؤقت والجلسات، وأدوات المراقبة والتشخيص، والتحصين الأمني للنقاط الطرفية المتاحة للعموم.
تنشر الجامعة كمًّا كبيرًا من المعلومات عبر صفحات كثيرة: شروط القبول، واللوائح الأكاديمية، وتفاصيل الأقسام، والإعلانات، والإجراءات. هذه المعلومات دقيقة لكنها مبعثرة، والعثور على إجابة محددة يتطلب غالبًا معرفة الصفحة المقصودة ابتداءً.
يدير مكتب تنسيق التحول الرقمي مشاريع برمجية داخلية للجامعة. وكان OstimGPT أحد تلك المشاريع: مساعد قادر على الإجابة بلغة طبيعية مع بقائه مرتبطًا بمصادر الجامعة المنشورة.
لا يستطيع روبوت محادثة عام أن يجيب بموثوقية عن أسئلة خاصة بمؤسسة بعينها، وروبوت يجيب بثقة دون دليل أسوأ من عدم وجود روبوت أصلًا في سياق أكاديمي. كان على النظام أن يكون مؤسَّسًا على مصادر، وقابلًا للتتبّع، وآمنًا لعرضه للعموم.
دوري في المشروع
طوّرت الزاحف الذي جمع المحتوى من موقع الجامعة، وأضفت التحقق والتنظيف المطبَّقين على ذلك المحتوى، وحسّنت جودة الاسترجاع عبر ضبط طريقة تقسيم المستندات إلى Chunks. نفّذت دعم الاستشهاد بالمصادر في الإجابات ومؤشر ثقة للإجابة. بنيت طبقة التخزين المؤقت في الذاكرة، وإدارة جلسات المستخدمين مع تنظيف تلقائي للجلسات، وتتبّع الجلسات الآمن عبر UUID. أنشأت لوحات المراقبة والإدارة، وأضفت نقطة طرفية لفحص السلامة، وطوّرت التشخيصات والسجلات المنظّمة. وعلى الجانب الأمني نفّذت تحديد معدل الطلبات، والتحقق من المدخلات ضد SQL injection، وتنقية HTML ضد cross-site scripting، ومنع حقن السكربتات، وضوابط الطلبات لكل عنوان IP.
سياق الفريق
بُني OstimGPT على يد فريق تطوير البرمجيات في مكتب تنسيق التحول الرقمي بالجامعة، بالعمل ضمن دورات Sprint وفق Scrum ومعايير عمليات متوافقة مع CMMI. كنت أحد المساهمين في ذلك الفريق. والعمل الموصوف هنا هو الجزء الذي نفّذته شخصيًا؛ أما المنصة المحيطة به ونشرها واتجاهها العام فكانت عملًا مشتركًا للفريق، يُراجَع تعاونيًا قبل الدمج.
يتبع النظام نمط الاسترجاع المعزّز المعتاد، غير أن معظم الجهد الهندسي وقع في الأجزاء المحيطة بالنموذج لا في النموذج نفسه: إدخال مواد مصدرية نظيفة، وتقسيمها تقسيمًا مفيدًا، وإرجاع الدليل مع الإجابة، وإبقاء النقطة الطرفية آمنة وقابلة للمراقبة.
يتدفق الطلب عبر التحقق وتحديد المعدل إلى مسار استرجاع واعٍ بالجلسة. يُزحف على محتوى الجامعة ويُنظَّف ويُقسَّم مسبقًا؛ وعند الاستعلام تُسترجَع الـ Chunks ذات الصلة وتُمرَّر إلى نموذج لغوي مستضاف محليًا يعيد إجابة مصحوبة باستشهادات مصادرها ومؤشر ثقة. ويقف التخزين المؤقت والسجلات المنظّمة وفحوصات السلامة إلى جانب مسار الطلب وتغذّي لوحات المراقبة.
تحمل الإجابات المصادر التي استُمدت منها، فيتحقق القارئ من الدعوى بدل أن يثق بها فحسب.
تُظهر الإجابات إشارة ثقة، فتبدو الإجابة الضعيفة مختلفة عن القوية.
يجمع محتوى الجامعة على الويب ليكون المادة المصدرية للاسترجاع.
يُتحقَّق من المحتوى المجمّع ويُنظَّف قبل أن يبلغ طبقة الاسترجاع.
تُقسَّم المستندات بحيث تحمل المقاطع المسترجَعة سياقًا كافيًا دون فقدان الدقة.
يُقدَّم العمل المتكرر من الذاكرة المؤقتة بدل إعادة حسابه.
جلسات متتبَّعة عبر UUID مع تنظيف تلقائي للحالة المنتهية.
تجعل شاشات الإدارة والمراقبة النظامَ العامل قابلًا للفحص.
تدعم نقطة فحص السلامة والسجلات المنظّمة الوعي التشغيلي.
يصل محتوى الويب المزحوف غير متسق — شذرات تنقّل ونصوص نمطية مكررة واستخلاصات جزئية مختلطة بالنص الذي يهم فعلًا.
أضفت مرحلة تحقق وتنظيف بين الجمع والتخزين، فيُرفض المحتوى أو يُطبَّع قبل أن يلوّث الاسترجاع. ومعالجة جودة البيانات عند الاستيعاب أرخص كثيرًا من التعويض عنها وقت الاستعلام.
يغيّر حجم الـ Chunk جودة الإجابة مباشرة، ولا يصلح أي من الطرفين: الـ Chunks الكبيرة تميّع الصلة، والصغيرة تفقد السياق اللازم للإجابة.
تعاملت مع التقسيم بوصفه أمرًا يُضبط لا يُهيَّأ مرة واحدة، فعدّلت طريقة تقسيم المستندات وراجعت ما تُرجعه خطوة الاسترجاع فعليًا لأسئلة تمثيلية.
تستقبل النقطة الطرفية للروبوت نصًا حرًا من أي شخص، ما يجعلها سطح إدخال واسعًا على نحو غير معتاد.
تعاملت مع المدخلات بوصفها جزءًا من الميزة لا مرحلة تحصين لاحقة: فبُني في مسار الطلب التحققُ ضد SQL injection وتنقية HTML ومنع حقن السكربتات وتحديد المعدل وضوابط الـ IP.
عنى التشغيل محليًا غياب لوحة تحكم من مزوّد يمكن الرجوع إليها عند حدوث سلوك غير متوقع.
بنيت ما احتاجه المشروع من قابلية للمراقبة: نقطة لفحص السلامة، وتشخيصات وسجلات منظّمة، ولوحات إدارة تُظهر حالة النظام دون قراءة ملفات السجلات الخام.
| القرار | البديل المطروح | المبرر |
|---|---|---|
| استضافة النموذج اللغوي محليًا بدل استدعاء واجهة API مستضافة. | واجهة API لنموذج تجاري. | يبقى محتوى الجامعة داخل بنيتها التحتية، ولا تقع على النظام تبعية خارجية ولا تكلفة لكل طلب. والثمن أن السعة وخيار النموذج محكومان بالعتاد المحلي. |
| إرجاع استشهادات المصادر مع كل إجابة. | إرجاع نص الإجابة وحده. | في سياق أكاديمي، الإجابة غير القابلة للتحقق قليلة القيمة. والاستشهادات تتيح للقارئ فحص الدعوى، وتجعل الاسترجاع الخاطئ ظاهرًا بدل أن يكون صامتًا. |
| إضافة مؤشر ثقة للإجابة. | عرض كل إجابة بالوزن نفسه. | العرض الموحّد يشجّع على ثقة موحّدة. وإظهار إشارة الثقة يتيح للقارئ معايرة حكمه، وهو ما يهم أكثر ما يهم حين لا يجد الاسترجاع ما يعمل عليه. |
| استخدام تخزين مؤقت في الذاكرة بدل خدمة تخزين خارجية. | خدمة تخزين مؤقت مخصّصة. | أزال ذلك جزءًا متحركًا من نشر مستضاف محليًا، وكان كافيًا لحجم العمل. والمقابل أن الحالة المخزَّنة مؤقتًا لا تنجو من إعادة التشغيل ولا تتوسّع عبر العمليات. |
يجيب النظام عن الأسئلة من مصادر الجامعة ويعرض المصادر التي استخدمها، مع إشارة ثقة مرفقة بكل إجابة. وتُتتبَّع الجلسات وتُنظَّف تلقائيًا، ويُقدَّم العمل المتكرر من الذاكرة المؤقتة.
الضوابط الأمنية التي نفّذتها — التحقق من المدخلات والتنقية ومنع حقن السكربتات وتحديد المعدل وضوابط الـ IP — مطبَّقة على مسار الطلب لا مضافة إليه لاحقًا.
وتمنح لوحات المراقبة والإدارة ونقطة فحص السلامة والتشخيصات المنظّمة الفريقَ وسيلة لرؤية ما يفعله النظام أثناء عمله.

واجهة المحادثة أثناء الاستخدام: سؤال عن تأسيس OSTİM يُجاب عنه من مصادر الجامعة، والجلسة تُغلق نفسها بعد فترة من الخمول.
هل لديك مشروع برمجي أو ذكاء اصطناعي أو RAG أو تطبيق ويب؟ لنتحدث عمّا تحتاجه ونحدد المنهج التقني المناسب.