該項目是使用檢索型生成(RAG)方法構建的電子商務聊天機器人。 RAG結合了信息檢索和生成語言模型的力量,使聊天機器人能夠基於存儲在矢量數據庫中的廣泛的產品相關信息提供準確和上下文感知的響應。我們使用蘭班鏈作為管理聊天機器人組件的框架,並有效地協調檢索生成流程。
聊天機器人採用Llama3.1-8B ,這是一種大型語言模型,其能力能夠理解細微的上下文並產生連貫的響應。為了提高檢索性能,該項目利用HuggingFace的句子轉換器/全MPNET-BASE-V2模型生成的嵌入。這些嵌入式編碼語義含義,使聊天機器人能夠根據用戶查詢快速檢索相關的產品數據。嵌入在AstradB中存儲和管理,該嵌入是一個高性能向量數據庫。
為了提供連貫的,上下文感知的響應,聊天機器人使用了歷史吸引的抹布方法。通過將聊天歷史記錄納入每個交互中,該模型可以理解對先前消息的引用,並在多個轉彎之間保持連續性。 Langchain的歷史管理功能通過允許每個用戶會話的聊天歷史記錄進行狀態管理,從而使此過程無縫。
該項目中使用的數據集包括來自電子商務平台Flipkart的產品評論。該數據集包括產品標題,評分和詳細評論,並為各種產品提供了全面的客戶反饋視圖。該數據集的主要目的是為聊天機器人的檢索功能提供動力,使其能夠參考現實世界中的產品情感,功能和客戶體驗。每個審查都作為文檔對象存儲在蘭鏈中,其中包含評論作為內容和產品名稱作為元數據。該數據集作為矢量商店攝入了Astradb ,從而實現了相似性搜索,這些搜索將用戶查詢與相關評論匹配,從而增強了聊天機器人的建議和響應。
前端是使用HTML , CSS和JavaScript創建的響應式Web界面,旨在提供直觀的聊天體驗。用戶可以與聊天機器人進行互動以諮詢產品詳細信息並接收個性化建議。該界面具有CSS的樣式,具有現代漸變背景和結構化的聊天框,在該聊天框中,用戶消息和機器人響應實時顯示。
鑑於該模型的大尺寸,使用Llama 3.1-8B生成響應有時可能會超過默認的1分鐘服務器超時限制。為了管理這一點,我們實施了Redis作為消息經紀和芹菜的背景任務管理。當用戶提交查詢時,聊天機器人會觸發芹菜任務,該任務異步地處理響應,從而使前端可以定期進行響應狀態進行輪詢。此方法有效地防止了服務器超時錯誤,同時確保用戶在不中斷的情況下收到響應。
聊天機器人部署在AWS EC2上,為運行模型,處理用戶交互以及管理數據庫的檢索提供了一個可擴展且可靠的環境。
該項目的數據集取自Kaggle。這是數據集鏈接。該項目中使用的數據集包含450個產品評論,內容涉及從Flipkart收集的不同品牌的耳機,Erabuds和其他產品,包括以下關鍵功能:
數據集名稱: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:8080這個電子商務聊天機器人通過抹布方法結合了檢索和生成,提供了智能的互動購物體驗,並根據實際的客戶評論提供了相關的產品建議。
Llama 3.1的大型語言模型和擁抱面嵌入能夠啟用細微響應,從而通過上下文意識到的對話來增強用戶參與度。
用Redis和芹菜處理有效的響應處理可解決高性能應用程序的需求,即使使用大型LLM,也可以確保穩定,響應迅速的用戶體驗。
完全可擴展的AWS EC2部署允許無縫集成到電子商務平台,為高流量環境提供了強大的基礎架構。
該項目展示了大型語言模型的強大應用,並在電子商務域中突破了聊天機器人功能的界限。