โครงการนี้เป็น chatbot อีคอมเมิร์ซ ที่สร้างขึ้นโดยใช้วิธี การดึง (RAG) RAG ผสมผสานพลังของการดึงข้อมูลและรูปแบบภาษาที่เกิดขึ้นทำให้แชทบ็อตสามารถให้การตอบสนองที่แม่นยำและรับรู้บริบทตามข้อมูลที่เกี่ยวข้องกับผลิตภัณฑ์ที่จัดเก็บไว้ในฐานข้อมูลเวกเตอร์ เราใช้ Langchain เป็นกรอบในการจัดการส่วนประกอบของ chatbot และ orchestrate โฟลว์รุ่นดึงได้อย่างมีประสิทธิภาพ
Chatbot ใช้ LLAMA3.1-8B ซึ่งเป็นรูปแบบภาษาขนาดใหญ่ที่รู้จักกันดีในการทำความเข้าใจบริบทที่เหมาะสมและสร้างการตอบสนองที่สอดคล้องกัน เพื่อปรับปรุงประสิทธิภาพการดึงข้อมูลโครงการใช้ประโยชน์จากการฝังตัวที่สร้างขึ้นโดย การแปลงประโยคของ HuggingFace/MPNET-BASE-V2 แบบจำลองทั้งหมด Embeddings เหล่านี้เข้ารหัสความหมายทางความหมายทำให้ chatbot สามารถดึงข้อมูลผลิตภัณฑ์ที่เกี่ยวข้องได้อย่างรวดเร็วตามแบบสอบถามของผู้ใช้ Embeddings จะถูกจัดเก็บและจัดการใน Astradb ซึ่งทำหน้าที่เป็นฐานข้อมูลเวกเตอร์ประสิทธิภาพสูง
เพื่อให้การตอบสนองที่เชื่อมโยงกันโดยรู้ตัวบริบท chatbot ใช้วิธีการ RAG ที่รับรู้ประวัติศาสตร์ โดยการรวม ประวัติการแชท เข้ากับการโต้ตอบแต่ละครั้งโมเดลสามารถเข้าใจการอ้างอิงถึงข้อความก่อนหน้าและรักษาความต่อเนื่องในหลายรอบ คุณสมบัติ การจัดการประวัติของ Langchain ทำให้กระบวนการนี้ราบรื่นโดยอนุญาตให้มีการจัดการประวัติการแชทสำหรับผู้ใช้แต่ละเซสชันแต่ละครั้ง
ชุดข้อมูล ที่ใช้ในโครงการนี้ประกอบด้วยบทวิจารณ์ผลิตภัณฑ์ที่มาจาก Flipkart ซึ่งเป็นแพลตฟอร์มอีคอมเมิร์ซ ชุดข้อมูลรวมถึงชื่อผลิตภัณฑ์การให้คะแนนและความคิดเห็นโดยละเอียดนำเสนอมุมมองที่ครอบคลุมเกี่ยวกับความคิดเห็นของลูกค้าในผลิตภัณฑ์ต่าง ๆ วัตถุประสงค์หลักของชุดข้อมูลนี้คือการเพิ่มความสามารถในการดึงข้อมูลของ Chatbot ทำให้สามารถอ้างอิงความรู้สึกของผลิตภัณฑ์คุณสมบัติและประสบการณ์ของลูกค้าได้ การตรวจสอบแต่ละครั้งจะถูกจัดเก็บเป็นวัตถุ เอกสาร ภายใน Langchain ซึ่งมีรีวิวเป็นเนื้อหาและชื่อผลิตภัณฑ์เป็นข้อมูลเมตา ชุดข้อมูล จะถูกนำเข้าสู่ Astradb เป็นร้านค้าเวกเตอร์ทำให้ การค้นหาความคล้ายคลึงกัน ที่ตรงกับการสืบค้นผู้ใช้กับบทวิจารณ์ที่เกี่ยวข้องเพิ่มคำแนะนำและคำตอบของ Chatbot
ส่วนหน้าเป็นเว็บอินเตอร์เฟสตอบสนองที่สร้างขึ้นโดยใช้ HTML , CSS และ JavaScript ซึ่งออกแบบมาเพื่อให้ประสบการณ์การแชทที่ใช้งานง่าย ผู้ใช้สามารถโต้ตอบกับ chatbot เพื่อสอบถามรายละเอียดผลิตภัณฑ์และรับคำแนะนำส่วนบุคคล อินเทอร์เฟซมีสไตล์ด้วย CSS ซึ่งมีพื้นหลังการไล่ระดับสีที่ทันสมัยและกล่องแชทที่มีโครงสร้างซึ่งข้อความผู้ใช้และการตอบสนองของบอทจะแสดงแบบเรียลไทม์
ด้วยขนาดที่มีขนาดใหญ่ของโมเดลการสร้างการตอบสนองด้วย LLAMA 3.1-8B บางครั้งอาจเกิน ขีด จำกัด การหมดเวลาเซิร์ฟเวอร์ 1 นาที เริ่มต้น ในการจัดการสิ่งนี้เราได้ใช้ Redis เป็นนายหน้าส่งข้อความและ ผักชีฝรั่ง เพื่อการจัดการงานพื้นหลัง เมื่อผู้ใช้ส่งแบบสอบถาม chatbot จะเรียกงานคื่น ฉ่าย ที่ประมวลผลการตอบ สนองแบบอะซิงโครนัส ทำให้ส่วนหน้าสามารถสำรวจความคิดเห็นเป็นระยะสำหรับสถานะการตอบกลับ วิธีนี้ช่วยป้องกันข้อผิดพลาดในการหมดเวลาเซิร์ฟเวอร์ได้อย่างมีประสิทธิภาพในขณะที่ทำให้ผู้ใช้ได้รับการตอบกลับโดยไม่หยุดชะงัก
chatbot ถูกนำไปใช้กับ AWS EC2 ให้สภาพแวดล้อมที่ปรับขนาดได้และมีประสิทธิภาพสำหรับการเรียกใช้โมเดลจัดการการโต้ตอบของผู้ใช้และการจัดการการดึงข้อมูลจากฐานข้อมูล
ชุดข้อมูลสำหรับโครงการนี้นำมาจาก Kaggle นี่คือลิงค์ชุดข้อมูล ชุดข้อมูลที่ใช้ในโครงการนี้มีรีวิวผลิตภัณฑ์ 450 รายการเกี่ยวกับหูฟังแบรนด์ต่าง ๆ ERABUDS และอื่น ๆ ที่รวบรวมจาก Flipkart รวมถึงคุณสมบัติที่สำคัญต่อไปนี้:
ชื่อชุดข้อมูล: flipkart_dataset จำนวนคอลัมน์: 5 จำนวนระเบียน: 450
รหัสถูกเขียนใน Python 3.10.15 หากคุณไม่ได้ติดตั้ง Python คุณสามารถค้นหาได้ที่นี่ หากคุณใช้ Python เวอร์ชันที่ต่ำกว่าคุณสามารถอัปเกรดโดยใช้แพ็คเกจ PIP เพื่อให้แน่ใจว่าคุณมี PIP เวอร์ชันล่าสุด
git clone https://github.com/jatin-12-2002/E-Commerce_ChatBot cd E-Commerce_ChatBotconda create -p env python=3.10 -y source activate ./envpip install -r requirements.txtASTRA_DB_API_ENDPOINT= " "
ASTRA_DB_APPLICATION_TOKEN= " "
ASTRA_DB_KEYSPACE= " "
HF_TOKEN= " "curl -fsSL https://ollama.com/install.sh | shollama serveollama pull llama3.1:8bsudo apt-get updatesudo apt-get install redis-serversudo service redis-server startredis-cli pingcelery -A app.celery worker --loglevel=infogunicorn -w 2 -b 0.0.0.0:8000 app:apphttp://localhost:8000/



Use t2.large or greater size instances only as it is a GenerativeAI using LLMs project.sudo apt-get updatesudo apt update -ysudo apt install git nginx -ysudo apt install git curl unzip tar make sudo vim wget -ygit clone https://github.com/jatin-12-2002/E-Commerce_ChatBot cd E-Commerce_ChatBottouch .envvi .envASTRA_DB_API_ENDPOINT= " "
ASTRA_DB_APPLICATION_TOKEN= " "
ASTRA_DB_KEYSPACE= " "
HF_TOKEN= " "cat .envsudo apt install python3-pippip3 install -r requirements.txtหรือ
pip3 install -r requirements.txt --break-system-packagesgunicorn -w 2 -b 0.0.0.0:8000 app:appsudo nano /etc/nginx/sites-available/defaultserver {
listen 80 ;
server_name your-ec2-public-ip ;
location / {
proxy_pass http://127.0.0.1:8000 ;
proxy_set_header Host $host ;
proxy_set_header X-Real-IP $remote_addr ;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ;
proxy_set_header X-Forwarded-Proto $scheme ;
}
}sudo systemctl restart nginxsudo nano /etc/systemd/system/gunicorn.service[Unit]
Description=Gunicorn instance to serve my project
After=network.target
[Service]
User=ubuntu
Group=www-data
WorkingDirectory=/home/ubuntu/E-Commerce_ChatBot_Project
ExecStart=/usr/bin/gunicorn --workers 4 --bind 127.0.0.1:8000 app:app
[Install]
WantedBy=multi-user.targetsudo systemctl start gunicornsudo systemctl enable gunicorngunicorn -w 2 -b 0.0.0.0:8000 app:appPublic_Address:8080e-commerce chatbot นี้มอบประสบการณ์การช็อปปิ้งที่ชาญฉลาดและโต้ตอบผ่านแนวทาง RAG ที่รวมการดึงและการสร้างโดยเสนอคำแนะนำผลิตภัณฑ์ที่เกี่ยวข้องตามบทวิจารณ์ของลูกค้าจริง
รูปแบบภาษาขนาดใหญ่ของ Llama 3.1 และ การฝังตัวของ HuggingFace ช่วยให้การตอบสนองที่เหมาะสมยิ่งขึ้นเพิ่มการมีส่วนร่วมของผู้ใช้ด้วยการสนทนาที่รับรู้ตามบริบท
การจัดการการตอบสนองที่มีประสิทธิภาพด้วย Redis และ คื่นฉ่าย ตอบสนองความต้องการของแอปพลิเคชันที่มีประสิทธิภาพสูงทำให้มั่นใจได้ว่าประสบการณ์ผู้ใช้ที่มีความเสถียรและตอบสนองได้แม้จะมี LLM ขนาดใหญ่
การปรับใช้ AWS EC2 ที่ปรับขนาดได้อย่างสมบูรณ์ช่วยให้การรวมเข้ากับแพลตฟอร์มอีคอมเมิร์ซได้อย่างราบรื่นซึ่งนำเสนอโครงสร้างพื้นฐานที่แข็งแกร่งสำหรับสภาพแวดล้อมที่มีการจราจรสูง
โครงการนี้นำเสนอแอพพลิเคชั่นที่ทรงพลังของ แบบจำลองภาษาขนาดใหญ่ ผลักดันขอบเขตของความสามารถของ Chatbot ในโดเมนอีคอมเมิร์ซ