نقوم ببناء chatbot التي يمكن أن تلخص وتوصي المدونات على موقع Redis.com على موقع Quarety على استعلام المستخدم.

يستخدم هذا المشروع الصغير نماذج من الذكاء الاصطناعي
في هذا المشروع ، نهدف إلى التظاهر
أسهل طريقة لاستخدام صورة Docker باستخدام الأمر أدناه
docker run -d -p 6379:6379 -p 8001:8001 redis/redis-stack:latestإذا كنت لا ترغب في استخدام صورة Docker ، فيمكنك الاشتراك في اشتراك Redis Cloud مجاني هنا.
قم بتنزيل المستودع
git clone https://github.com/mar1boroman/ask-redis-blogs.git && cd ask-redis-blogs
إعداد وتفعيل البيئة الافتراضية
python3 -m venv .env && source .env/bin/activate
تثبيت المكتبات والتبعيات اللازمة
pip install -r requirements.txt
لدينا قاعدة معرفة واسعة في مدونة REDIS ، LETNE First Script وهو عبارة عن WebScraper ، سيؤدي هذا البرنامج النصي إلى كشافة موقع الويب وإنشاء ملف CSV يحتوي على بيانات جميع المدونات المتاحة.
python 0_ext_redis_blogs.pyلاحظ أن هذا المستودع قد تم تحديث المدونات حتى 19 سبتمبر 2023 ، فإن تشغيل هذا البرنامج النصي سيقوم فقط بتنزيل المدونات الجديدة. يتم حفظ ملف CSV في Redis_blogs.csv
في هذه الخطوة ، نقوم بإنشاء التضمين لمحتوى النص لكل مدونة وتخزينها بتنسيق التجزئة
python 1_load_redis_blogs.pyيمكنك استكشاف محتوى قاعدة بيانات Redis الخاصة بك في Redisinsight على متصفحك على http: // localhost: 8001
الآن بعد أن قمنا بتخزين المدونات وتضميناتها في Redis ، حان الوقت لرؤية chatbot في العمل!.
streamlit run 3_ui.py
دعنا ندير بحثًا بسيطًا عن تشابه المتجه على مدوناتنا.

تأكد من أن مربع الاختيار "التلقائي الملخص" لم يتم تحديده
أدخل مطالبة. على سبيل المثال
Triggers and Functions
ستحصل على 3 توصيات مدونة ضمن مللي ثانية. يتضمن الاستجابة أيضًا الوقت المستغرق لإعادة الاستجابة. في هذه الحالة ، يحدث البحث بالكامل في redis ، باستثناء أن المطالبة يتم تشغيلها من خلال All-MPNET-Base-V2 قبل تشغيل البحث عن التشابه
دعونا نحصل على المزيد من التقدم.

تأكد من فحص مربع اختيار "تلخيص تلقائي"
أدخل مطالبة. على سبيل المثال
Triggers and Functions
عند إدخال هذه المطالبة لأول مرة ، ستحدث الأشياء التالية
هذا يستغرق وقتًا طويلاً للغاية ، حوالي 30 ثانية
وبالتالي ، نحن نخزن الاستجابة والمطالبة في redis. تحقق من redisinsight في المتصفح وسترى مفتاحًا تم إنشاؤه مع البادئة LLM_CACHE
بمجرد إرجاع الاستجابة ، يتم تخزين المطالبة والاستجابة ، والأهم من ذلك أن المطالبة يتم تشغيلها من خلال All-MPNET-Base-V2 ويتم تخزين التضمين المقابل لها أيضًا
حاول الآن تشغيل نفس الموجه (أو موجه مماثل مرة أخرى). على سبيل المثال
About Triggers and functions
ستحصل على الاستجابة المخزنة مؤقتًا بناءً على بحث تشابه المتجه السريع بين المطالبات والاستجابة التي تم تخزينها في الخطوة السابقة.
يمكننا أن نرى بوضوح فوائد استخدام التخزين المؤقت الدلالي هنا
يتوفر إصدار من chatbot في إصدار CLI
python 2_vecsim_redis_blogs.py