
واحدة من أقوى تطبيقات LLMS هي إنشاء مطعم chatbots المتطور لإجابات الأسئلة (Q&A) ، قادرة على توفير إجابات دقيقة بناءً على معلومات مصدر محددة. يركز هذا المشروع على تطوير مساعد افتراضي للصفقة. مكتبة II ، مكتبة العناصر المحدودة C ++ مفتوحة المصدر ، باستخدام تقنية تُعرف باسم الجيل المتمثل في الاسترجاع (RAG). يتم الحصول على مجموعة البيانات من 90 خطوة تعليمية متوفرة في الوثائق الرسمية. II ، والتي يمكن الوصول إليها هنا. يتم توفير محرك نموذج اللغة الكبير (LLM) بواسطة Cohere الذي يشتهر بتقديم نماذج LLM عالية الجودة للتضمينات وخدمات الدردشة. بالنسبة لقاعدة بيانات المتجهات ، اخترنا Chroma بسبب طبيعته مفتوحة المصدر وسرعة وكفاءة في البحث واسترداد المتجهات. يتم استخدام إطار Langchain لإدارة التفاعل بين مدخلات المستخدم بكفاءة ، ومعالجة الاستعلامات ، واسترجاع المعلومات ذات الصلة من قاعدة بيانات المتجه ، مما يضمن التكامل السلس بين مكونات مختلفة من النموذج.
عملية إعداد قاعدة البيانات هي كما يلي: أولاً ، يتم استرداد الصفحات التعليمية من موقع الويب ككائنات وثيقة Langchain. لتحسين سرعة الوصول (أثناء وقت الاختبار) ، يتم حفظ كائنات المستند هذه كملفات JSON على القرص المحلي. بعد ذلك ، يتم تقسيم المستندات إلى أجزاء مناسبة الحجم (حوالي 400 رمز لكل قطعة مع تداخل من 40 رمزًا). في المجموع ، تضم مجموعة البيانات 2.3 مليون رمز. أخيرًا ، يتم تضمين هذه المستندات المقسمة في قاعدة بيانات المتجه.
تم تصميم النموذج باستخدام أربع سلاسل وثلاث قوالب سريعة.
سلسلة إعادة صياغة : تتلقى هذه السلسلة سؤال المستخدم وتاريخ المحادثة ، ثم تقوم بإعادة صياغة السؤال بناءً على الحوار السابق. على سبيل المثال ، إذا كان السؤال الأول هو "ما هو fe_nothing؟" والسؤال الثاني هو "أين يمكنني استخدامه؟" ، ستعدل سلسلة إعادة الصياغة السؤال الثاني إلى "أين يمكنني استخدام Fe_nothing؟" هذه الخطوة تضيف الذاكرة بشكل أساسي إلى المحادثة ، مما يضمن استمرارية السياق.
سلسلة متعددة التقدير : تأخذ هذه السلسلة السؤال المعاد تم إعادة صياغته وتوليد خمسة أسئلة مماثلة ، وتوفير وجهات نظر متعددة. إنه يخرج قائمة من الأسئلة من Python باستخدام وظيفة Lambda بسيطة ، ويتم إزالة أي خطوط فارغة باستخدام وظيفة remove_empty_string كخطوة أخيرة.
سلسلة الاسترجاع : تأخذ هذه السلسلة الأسئلة الخمسة من السلسلة السابقة والاستعلام عن قاعدة بيانات المتجه. تبحث قاعدة بيانات المتجه عن متجهات مماثلة وتسترجع المستندات ذات الصلة. نظرًا لأن المستند نفسه قد يتم استرداده عدة مرات لأسئلة مختلفة ، يتم إنشاء مجموعة فريدة من المستندات باستخدام وظيفة get_unique_union كخطوة أخيرة.
سلسلة Rag : تستخدم هذه السلسلة السؤال ، تاريخ المحادثة ، والمستندات التي تم استردادها من السلسلة السابقة كسياق لإنشاء الإجابة النهائية.
تم تصميم الواجهة الأمامية للتطبيق باستخدام ChatInterface من Gradio ، مع وظيفة الاستجابة المصممة لدفق الإخراج في الوقت الفعلي. يتم نشر التطبيق في مساحات الوجه المعانقة ويمكن الوصول إليها هنا.