เราสร้าง chatbot ซึ่งสามารถสรุปและแนะนำบล็อกบนเว็บไซต์ redis.com ตามแบบสอบถามผู้ใช้

โครงการขนาดเล็กนี้ใช้ 2 รุ่น AI
ในโครงการนี้เรามุ่งมั่นที่จะสาธิต
วิธีที่ง่ายที่สุดคือใช้อิมเมจนักเทียบท่าโดยใช้คำสั่งด้านล่าง
docker run -d -p 6379:6379 -p 8001:8001 redis/redis-stack:latestหากคุณไม่ต้องการใช้อิมเมจนักเทียบท่าคุณสามารถลงทะเบียนเพื่อรับการสมัครสมาชิก 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 Blog ช่วยให้เรียกใช้สคริปต์แรกซึ่งเป็น 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 วินาที
ดังนั้นเราเก็บการตอบสนองและพรอมต์ในเรดริส ตรวจสอบ redisinsight ของคุณในเบราว์เซอร์และคุณจะเห็นคีย์ที่สร้างขึ้นด้วยคำนำหน้า llm_cache
เมื่อการตอบกลับกลับมาแล้วพรอมต์และการตอบสนองจะถูกแคชและที่สำคัญกว่านั้น การแจ้งเตือนจะถูกเรียกใช้ผ่าน All-MPNet-base-V2 และการฝังที่สอดคล้องกันก็จะถูกแคช
ตอนนี้ลองใช้พรอมต์เดียวกัน (หรือพรอมต์ที่คล้ายกันอีกครั้ง) สำหรับเช่น
About Triggers and functions
คุณจะได้รับการตอบสนองแคชตามการค้นหาความคล้ายคลึงกันของเวกเตอร์ที่รวดเร็วอย่างรวดเร็วระหว่างการฝังพรอมต์และการตอบสนองที่แคชในขั้นตอนก่อนหน้า
เราสามารถเห็นประโยชน์ของการใช้การแคชความหมายได้อย่างชัดเจนที่นี่
chatbot เวอร์ชันมีอยู่ใน CLI เวอร์ชัน
python 2_vecsim_redis_blogs.py