قمت بتطوير مساعد افتراضي تفاعلي (Chatbot) متكامل لمدينة زويل للعلوم والتكنولوجيا، يهدف إلى توفير إجابات فورية ودقيقة على الاستفسارات الشائعة. المشروع مبني على Python باستخدام إطار عمل Streamlit، ويدمج قدرات معالجة اللغة الطبيعية (NLP) لتقديم تجربة مستخدم سلسة وفعالة.
المهام المنجزة والتقنيات المستخدمة:
تصميم وتطوير الواجهة الأمامية (Frontend Development):
بناء واجهة مستخدم حديثة وجذابة باستخدام Streamlit، مع تصميم يتناسب بصريًا مع الهوية المؤسسية لمدينة زويل.
تنفيذ نظام دردشة تفاعلي يعرض رسائل المستخدم والروبوت بوضوح، مع تمييز بصري لكل منهما.
إضافة ميزة "الأسئلة السريعة" (Quick Questions) في الجزء العلوي من الواجهة، والتي تمكن المستخدمين من النقر على أسئلة شائعة مثل "كيفية التقديم؟" و"المنح الدراسية؟" للحصول على إجابات فورية.
تضمين زر "مسح الدردشة" (Clear Chat) لتسهيل إعادة تعيين المحادثة وبدء محادثة جديدة.
تطبيق تصميم متجاوب (Responsive Design) لضمان تجربة مثلى عبر مختلف الأجهزة والشاشات.
استخدام تصميم ألوان أزرق وأبيض (Blue and White Theme) لتقديم واجهة نظيفة واحترافية.
تطوير منطق الروبوت والمعالجة الخلفية (Backend Logic & NLP):
استخدام مكتبة sentence_transformers من PyTorch لتضمين (embedding) الأسئلة والأجوبة، مما يتيح للروبوت فهم سياق الأسئلة المطروحة.
تنفيذ وظيفة find_best_answer التي تستخدم تشابه جيب التمام (cosine_similarity) لتحديد الإجابة الأكثر صلة بسؤال المستخدم من قاعدة بيانات معرفية (QA pairs) محددة مسبقًا.
عرض "درجة الثقة" (Confidence Score) بجانب كل إجابة يقدمها الروبوت (مثال: "Confidence: 0.57")، مما يوفر للمستخدم مؤشرًا على مدى دقة الإجابة المحتملة.
دمج مكتبتي torch و nn لمعالجة النماذج العصبية المستخدمة في تضمين الجمل.
إدارة حالة الجلسة (Session Management):
استخدام st.session_state في Streamlit لإدارة وتخزين سجل الدردشة (chat_history) بشكل فعال، مما يوفر استمرارية في المحادثة للمستخدم.
تجربة المستخدم (User Experience Enhancements):
إضافة مؤشر تحميل ("Thinking...") يظهر للمستخدم أثناء معالجة الروبوت للإجابات، مما يحسن من الإدراك الزمني للاستجابة.
تضمين رسالة ترحيبية في حالة عدم وجود محادثات سابقة، لتوجيه المستخدمين لبدء التفاعل.
المخرجات:
تطبيق مساعد افتراضي متكامل وظيفيًا وجاهز للاستخدام.
كود بايثون نظيف، منظم، وموثق (حسب الحاجة).
واجهة مستخدم بديهية وجذابة.
التقنيات المستخدمة:
Python
Streamlit
PyTorch
Sentence-Transformers
scikit-learn (cosine_similarity)
هذا المشروع يمثل حلًا فعالًا لتوفير معلومات سريعة ودقيقة للطلاب المحتملين والمهتمين بمدينة زويل، ويقلل من الحاجة إلى التدخل البشري للاستفسارات المتكررة.