HyperAIHyperAI
Back to Headlines

من ذاكرة السمكة الذهبية إلى محادثات مثل ChatGPT: تطوير تطبيق RAG 2.0 بذكاء 10 مرات أقوى

منذ 18 أيام

تم بناء تطبيق RAG 1.0 لاستجابة أسئلة من مستند بسيط، لكنه يفتقر إلى القدرة على التفاعل المستمر والذكاء في التذكّر. في هذا التحديث، نُحوّل التطبيق إلى RAG 2.0، مُزوّدًا بقدرات محادثة ذكية، تذكّر للسياق، وتحكم للمستخدم، مما يجعله يشبه محادثات ChatGPT. أولًا، تم إنشاء ملف نصي بعنوان essay.txt يحتوي على نص حول نجاح الشركات الناشئة، مع التركيز على المرونة والتكيف السريع. ثم، تم تثبيت المكتبات الضرورية مثل streamlit وlangchain وfaiss-cpu وtransformers وsentence-transformers. الخطوة الأساسية كانت تحسين تقسيم النص. استُخدم CharacterTextSplitter سابقًا، لكنه أدى إلى تقسيم غير منطقي (مثل انقطاع كلمة "Instagram" في منتصف الجملة). لحل هذه المشكلة، تم استبداله بـ RecursiveCharacterTextSplitter، الذي يقسم النص عند الحدود الطبيعية (جمل، فقرات)، مما يضمن وضوح المحتوى في كل قطعة. كما تم ترقية النموذج من flan-t5-base إلى flan-t5-large لتحسين جودة الإجابات، خاصة في السياقات الحوارية. تم أيضًا تخصيص نموذج إرشادي (Prompt Template) يُوجّه النموذج لتقديم إجابات واضحة ومستندة إلى السياق، مع تضمين تاريخ المحادثة. لإضفاء طابع محادثة حقيقي، تم تفعيل الذاكرة باستخدام ConversationBufferMemory، التي تحفظ جميع التفاعلات السابقة. هذا يسمح للنموذج بفهم الأسئلة التالية مثل "و ماذا عن تويتر؟" كمكملة لسؤال سابق عن إنستغرام، حتى لو لم يُذكر الاسم بالكامل. تم اختبار النظام عبر سلسلة من الأسئلة: من "ما الدرس؟" إلى "كيف بدأ إنستغرام؟" ثم "وماذا عن تويتر؟". أظهر النظام قدرته على استرجاع السياق الصحيح، وإعطاء إجابات دقيقة ومترابطة، مع تضمين تاريخ المحادثة في كل استجابة. كما تم إضافة ميزة بحث تفاعلية في الشريط الجانبي، تُظهر للمستخدم النتائج الأكثر تشابهًا مع الكلمة المفتاحية المدخلة، مع توضيح درجة التشابه (أقل قيمة = أقرب تشابه). تم أيضًا تمييز الكلمات المطابقة بصريًا لتسهيل القراءة. في النهاية، تم دمج كل هذه المكونات في تطبيق ويب باستخدام Streamlit، يسمح للمستخدم بطرح الأسئلة، ورؤية سجل المحادثة، والبحث عن محتوى محدد في المستند. النتيجة: تطبيق RAG 2.0 يتفوق على النسخة الأولى من حيث الدقة، التفاعل، والتحكم. أصبح قادرًا على إدارة محادثات متعددة، واستخدام السياق السابق، وتمكين المستخدم من التحقق من مصادر الإجابة. هذه التحسينات تُعتبر خطوة كبيرة نحو بناء مساعدات ذكية واقعية، قادرة على التفاعل الطبيعي مع المستخدمين.

Related Links