تخطَّ إلى المحتوى الرئيسي
مشروع احترافي
  • الذكاء الاصطناعي وRAG
  • Backend
  • نظام جامعي

OstimGPT

OstimGPT روبوت محادثة قائم على Retrieval-Augmented Generation طُوّر لجامعة OSTİM Technical University. يجمع المعلومات من مصادر الجامعة ويعالجها ويسترجعها ويعرضها، مع الاستشهاد بالمصادر وإدارة الجلسات ولوحات المراقبة ومجموعة متدرجة من الضوابط الأمنية. ساهمتُ في مسار الاسترجاع، وطبقتي التخزين المؤقت والجلسات، وأدوات التشغيل، والتحصين الأمني.

الدور
مساهم ضمن فريق التطوير الجامعي
الفترة
August 2025 – July 2026
الحالة
مشروع احترافي
الجهة
OSTİM Technical University

01نظرة عامة

OstimGPT روبوت محادثة قائم على Retrieval-Augmented Generation طُوّر لجامعة OSTİM Technical University. يجيب عن الأسئلة اعتمادًا على محتوى مستمد من مصادر الجامعة نفسها لا من بيانات تدريب نموذج عام، ويوضّح مصدر كل إجابة.

يعمل النظام على بنية تحتية مستضافة محليًا. كل شيء، من جمع المواد المصدرية إلى تقديم الإجابة، يجري داخل بيئة الجامعة، وهو ما شكّل تقريبًا كل قرار تقني في المشروع.

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

02السياق

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

يدير مكتب تنسيق التحول الرقمي مشاريع برمجية داخلية للجامعة. وكان OstimGPT أحد تلك المشاريع: مساعد قادر على الإجابة بلغة طبيعية مع بقائه مرتبطًا بمصادر الجامعة المنشورة.

03المشكلة

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

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

04دوري في المشروع

دوري في المشروع

طوّرت الزاحف الذي جمع المحتوى من موقع الجامعة، وأضفت التحقق والتنظيف المطبَّقين على ذلك المحتوى، وحسّنت جودة الاسترجاع عبر ضبط طريقة تقسيم المستندات إلى Chunks. نفّذت دعم الاستشهاد بالمصادر في الإجابات ومؤشر ثقة للإجابة. بنيت طبقة التخزين المؤقت في الذاكرة، وإدارة جلسات المستخدمين مع تنظيف تلقائي للجلسات، وتتبّع الجلسات الآمن عبر UUID. أنشأت لوحات المراقبة والإدارة، وأضفت نقطة طرفية لفحص السلامة، وطوّرت التشخيصات والسجلات المنظّمة. وعلى الجانب الأمني نفّذت تحديد معدل الطلبات، والتحقق من المدخلات ضد SQL injection، وتنقية HTML ضد cross-site scripting، ومنع حقن السكربتات، وضوابط الطلبات لكل عنوان IP.

05سياق الفريق

سياق الفريق

بُني OstimGPT على يد فريق تطوير البرمجيات في مكتب تنسيق التحول الرقمي بالجامعة، بالعمل ضمن دورات Sprint وفق Scrum ومعايير عمليات متوافقة مع CMMI. كنت أحد المساهمين في ذلك الفريق. والعمل الموصوف هنا هو الجزء الذي نفّذته شخصيًا؛ أما المنصة المحيطة به ونشرها واتجاهها العام فكانت عملًا مشتركًا للفريق، يُراجَع تعاونيًا قبل الدمج.

06المسؤوليات

جمع البيانات والاسترجاع

  • تطوير زاحف ويب لجمع بيانات موقع الجامعة.
  • إضافة تحقق وتنظيف للبيانات المجمّعة.
  • تحسين جودة الاسترجاع عبر ضبط تقسيم المستندات إلى Chunks.

جودة الإجابة وشفافيتها

  • تنفيذ دعم الاستشهاد بالمصادر في إجابات الروبوت.
  • تنفيذ مؤشر ثقة للإجابة.

الأداء والجلسات

  • بناء نظام تخزين مؤقت في الذاكرة.
  • إضافة إدارة لجلسات المستخدمين مع تنظيف تلقائي للجلسات.
  • استخدام تتبّع آمن للجلسات عبر UUID.

المراقبة والتشغيل

  • إنشاء لوحات مراقبة وإدارة.
  • إضافة نقطة طرفية لفحص السلامة.
  • تطوير تشخيصات وسجلات منظّمة.

التحصين الأمني

  • تنفيذ تحديد معدل الطلبات.
  • إضافة تحقق من المدخلات ضد SQL injection.
  • إضافة تنقية HTML ضد cross-site scripting.
  • إضافة منع لحقن السكربتات.
  • إضافة ضوابط للطلبات لكل عنوان IP.

07المنهج التقني

يتبع النظام نمط الاسترجاع المعزّز المعتاد، غير أن معظم الجهد الهندسي وقع في الأجزاء المحيطة بالنموذج لا في النموذج نفسه: إدخال مواد مصدرية نظيفة، وتقسيمها تقسيمًا مفيدًا، وإرجاع الدليل مع الإجابة، وإبقاء النقطة الطرفية آمنة وقابلة للمراقبة.

  1. 01الجمع: يمرّ زاحف على مصادر الجامعة على الويب ويلتقط محتواها.
  2. 02التنظيف: يمرّ المحتوى المجمّع بالتحقق والتنظيف قبل تخزينه، فلا تصل الاستخلاصات المشوّهة أو الفارغة إلى طبقة الاسترجاع.
  3. 03التقسيم: تُقسَّم المستندات إلى وحدات قابلة للاسترجاع. وقد ضُبط حجم الـ Chunk عمدًا، لأنه يحدد ما إذا كان المقطع المسترجَع يحمل سياقًا كافيًا للإجابة وجملًا غير ذات صلة قليلة بما يكفي للحفاظ على الدقة.
  4. 04الاسترجاع: يسحب الاستعلام أوثق الـ Chunks صلةً، مع الاحتفاظ بهوية كل مصدر بدل إسقاطها.
  5. 05التوليد: يجيب النموذج من السياق المسترجَع، وتُعاد الإجابة مصحوبة باستشهاداتها ومؤشر ثقة.
  6. 06التقديم: تمرّ الطلبات بالتحقق والتنقية وتحديد المعدل؛ وتُتتبَّع الجلسات عبر UUID وتُنظَّف تلقائيًا؛ ويُقدَّم العمل المتكرر من ذاكرة التخزين المؤقت.
  7. 07المراقبة: تجعل فحوصات السلامة والسجلات المنظّمة ولوحات الإدارة النظامَ العامل قابلًا للفحص.

08البنية التقنية

يتدفق الطلب عبر التحقق وتحديد المعدل إلى مسار استرجاع واعٍ بالجلسة. يُزحف على محتوى الجامعة ويُنظَّف ويُقسَّم مسبقًا؛ وعند الاستعلام تُسترجَع الـ Chunks ذات الصلة وتُمرَّر إلى نموذج لغوي مستضاف محليًا يعيد إجابة مصحوبة باستشهادات مصادرها ومؤشر ثقة. ويقف التخزين المؤقت والسجلات المنظّمة وفحوصات السلامة إلى جانب مسار الطلب وتغذّي لوحات المراقبة.

الاستيعابالتقديمالمراقبةزاحف ويبمصادر الجامعةتحقق وتنظيفتقسيممضبوط للاسترجاعمخزن الـ Chunksهوية المصدر محفوظةالطلبتحقق · تحديد معدلالجلسةUUID · تنظيف تلقائياسترجاعمدعوم بالتخزين المؤقتLocal LLMالإجابةاستشهادات · ثقةفحص السلامةالمراقبةلوحات الإدارة
  1. 01الاستيعاب: يجمع الزاحف محتوى الجامعة على الويب.
  2. 02المعالجة: يُتحقَّق من المحتوى ويُنظَّف ويُقسَّم إلى Chunks مضبوطة.
  3. 03التخزين: تُخزَّن الـ Chunks المعالَجة للاسترجاع مع بقاء هوية مصدرها سليمة.
  4. 04الطلب: يمرّ السؤال الوارد بالتحقق من المدخلات والتنقية وضوابط الـ IP وتحديد المعدل.
  5. 05الجلسة: يُربط الطلب بجلسة متتبَّعة عبر UUID؛ وتُنظَّف الجلسات المنتهية تلقائيًا.
  6. 06التخزين المؤقت: يُقدَّم العمل المتكرر من الذاكرة المؤقتة حيثما أمكن.
  7. 07الاسترجاع: تُنتقى الـ Chunks ذات الصلة بالسؤال.
  8. 08التوليد: ينتج النموذج المستضاف محليًا إجابة من السياق المسترجَع.
  9. 09الإجابة: تُعاد الإجابة مع استشهادات المصادر ومؤشر الثقة.
  10. 10قابلية المراقبة: تغذّي فحوصات السلامة والتشخيصات والسجلات المنظّمة لوحات المراقبة والإدارة.

09الميزات

  • الاستشهاد بالمصادر

    تحمل الإجابات المصادر التي استُمدت منها، فيتحقق القارئ من الدعوى بدل أن يثق بها فحسب.

  • مؤشر الثقة

    تُظهر الإجابات إشارة ثقة، فتبدو الإجابة الضعيفة مختلفة عن القوية.

  • زاحف الويب

    يجمع محتوى الجامعة على الويب ليكون المادة المصدرية للاسترجاع.

  • التحقق والتنظيف

    يُتحقَّق من المحتوى المجمّع ويُنظَّف قبل أن يبلغ طبقة الاسترجاع.

  • ضبط تقسيم الـ Chunks

    تُقسَّم المستندات بحيث تحمل المقاطع المسترجَعة سياقًا كافيًا دون فقدان الدقة.

  • تخزين مؤقت في الذاكرة

    يُقدَّم العمل المتكرر من الذاكرة المؤقتة بدل إعادة حسابه.

  • إدارة الجلسات

    جلسات متتبَّعة عبر UUID مع تنظيف تلقائي للحالة المنتهية.

  • لوحات المراقبة

    تجعل شاشات الإدارة والمراقبة النظامَ العامل قابلًا للفحص.

  • فحوصات السلامة والتشخيص

    تدعم نقطة فحص السلامة والسجلات المنظّمة الوعي التشغيلي.

10الأمان والموثوقية

ضوابط الأمان

  • تحقق من المدخلات ضد SQL injection.
  • تنقية HTML ضد cross-site scripting.
  • منع حقن السكربتات.
  • تحديد معدل الطلبات.
  • ضوابط للطلبات لكل عنوان IP.
  • تتبّع آمن للجلسات عبر UUID.

الموثوقية والرصد

  • نقطة طرفية لفحص السلامة لأغراض المراقبة التشغيلية.
  • تشخيصات وسجلات منظّمة.
  • لوحات مراقبة وإدارة.
  • تنظيف تلقائي للجلسات المنتهية.
  • تخزين مؤقت في الذاكرة لتفادي تكرار العمل نفسه.
  • تحقق وتنظيف يُطبَّقان على البيانات المجمّعة قبل تخزينها.

11التحديات

  • يصل محتوى الويب المزحوف غير متسق — شذرات تنقّل ونصوص نمطية مكررة واستخلاصات جزئية مختلطة بالنص الذي يهم فعلًا.

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

  • يغيّر حجم الـ Chunk جودة الإجابة مباشرة، ولا يصلح أي من الطرفين: الـ Chunks الكبيرة تميّع الصلة، والصغيرة تفقد السياق اللازم للإجابة.

    تعاملت مع التقسيم بوصفه أمرًا يُضبط لا يُهيَّأ مرة واحدة، فعدّلت طريقة تقسيم المستندات وراجعت ما تُرجعه خطوة الاسترجاع فعليًا لأسئلة تمثيلية.

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

    تعاملت مع المدخلات بوصفها جزءًا من الميزة لا مرحلة تحصين لاحقة: فبُني في مسار الطلب التحققُ ضد SQL injection وتنقية HTML ومنع حقن السكربتات وتحديد المعدل وضوابط الـ IP.

  • عنى التشغيل محليًا غياب لوحة تحكم من مزوّد يمكن الرجوع إليها عند حدوث سلوك غير متوقع.

    بنيت ما احتاجه المشروع من قابلية للمراقبة: نقطة لفحص السلامة، وتشخيصات وسجلات منظّمة، ولوحات إدارة تُظهر حالة النظام دون قراءة ملفات السجلات الخام.

12القرارات والمفاضلات

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

13النتيجة

يجيب النظام عن الأسئلة من مصادر الجامعة ويعرض المصادر التي استخدمها، مع إشارة ثقة مرفقة بكل إجابة. وتُتتبَّع الجلسات وتُنظَّف تلقائيًا، ويُقدَّم العمل المتكرر من الذاكرة المؤقتة.

الضوابط الأمنية التي نفّذتها — التحقق من المدخلات والتنقية ومنع حقن السكربتات وتحديد المعدل وضوابط الـ IP — مطبَّقة على مسار الطلب لا مضافة إليه لاحقًا.

وتمنح لوحات المراقبة والإدارة ونقطة فحص السلامة والتشخيصات المنظّمة الفريقَ وسيلة لرؤية ما يفعله النظام أثناء عمله.

14الدروس المستفادة

  1. 01معظم الجودة في نظام استرجاع تُحسم قبل أن يدخل النموذج أصلًا. فبيانات المصدر النظيفة والـ Chunks حسنة الحجم حرّكت جودة الإجابة أكثر من أي شيء فعلته لاحقًا في المسار.
  2. 02الاستشهادات ميزة هندسية لا تفصيلة عرض. فحمل هوية المصدر عبر المسار كله أمر يجب أن يُصمَّم من البداية — ولا يمكن إضافته في النهاية على نحو مقنع.
  3. 03أي نقطة طرفية تستقبل نصًا حرًا تحتاج إلى تصميم التعامل مع مدخلاتها جنبًا إلى جنب مع الميزة. وإضافة التحقق والتنقية لاحقًا عمل أكبر ويترك ثغرات.
  4. 04الأنظمة المستضافة ذاتيًا تحتاج قابلية مراقبة خاصة بها. وبناء فحص السلامة والسجلات المنظّمة واللوحات مبكرًا جعل فهم كل مشكلة لاحقة أسرع.

15حزمة التقنيات

اللغة

  • Python

Backend

  • REST APIs
  • In-memory caching
  • Session management

الذكاء الاصطناعي والاسترجاع

  • Retrieval-Augmented Generation
  • Local LLM
  • Document chunking
  • Web crawling

الممارسات

  • Scrum
  • CMMI
  • Code review
  • Testing
  • Technical documentation

16لقطات الشاشة

  • نافذة محادثة OstimGPT تجيب عن سؤال بالتركية حول سنة تأسيس OSTİM وعدد أعضائها، مع رد المساعد وإشعار بانتهاء الجلسة فوق حقل إدخال الرسالة.

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

لنتحدث عن مشروعك

هل لديك مشروع برمجي أو ذكاء اصطناعي أو RAG أو تطبيق ويب؟ لنتحدث عمّا تحتاجه ونحدد المنهج التقني المناسب.