Proyek ini adalah chatbot e-commerce yang dibangun menggunakan pendekatan generasi pengambilan (RAG) . RAG menggabungkan kekuatan pengambilan informasi dan model bahasa generatif, memungkinkan chatbot untuk memberikan respons yang akurat dan sadar konteks berdasarkan informasi terkait produk yang luas yang disimpan dalam database vektor. Kami menggunakan Langchain sebagai kerangka kerja untuk mengelola komponen chatbot dan mengatur aliran generasi pengambilan secara efisien.
Chatbot menggunakan LLAMA3.1-8B , model bahasa besar yang dikenal karena kemampuannya untuk memahami konteks yang bernuansa dan menghasilkan respons yang koheren. Untuk meningkatkan kinerja pengambilan, proyek memanfaatkan embeddings yang dihasilkan oleh transformator kalimat HuggingFace/all-mpnet-base-v2 model . Embeddings ini mengkode makna semantik, memungkinkan chatbot untuk mengambil data produk yang relevan dengan cepat berdasarkan kueri pengguna. Embeddings disimpan dan dikelola di AstradB , yang berfungsi sebagai database vektor berkinerja tinggi.
Untuk memberikan tanggapan yang koheren dan sadar konteks, chatbot menggunakan pendekatan kain yang sadar sejarah. Dengan memasukkan riwayat obrolan ke dalam setiap interaksi, model dapat memahami referensi ke pesan sebelumnya dan menjaga kesinambungan di berbagai putaran. Fitur manajemen sejarah Langchain membuat proses ini mulus dengan memungkinkan manajemen stateful dari riwayat obrolan untuk setiap sesi pengguna.
Dataset yang digunakan dalam proyek ini terdiri dari ulasan produk yang bersumber dari Flipkart , platform e-commerce. Dataset mencakup judul produk, peringkat, dan ulasan terperinci, menawarkan pandangan komprehensif tentang umpan balik pelanggan di berbagai produk. Tujuan utama dari dataset ini adalah untuk memberi daya pada kemampuan pengambilan chatbot, memungkinkannya merujuk pada sentimen produk, fitur, dan pengalaman pelanggan dunia nyata. Setiap ulasan disimpan sebagai objek dokumen di dalam Langchain , berisi ulasan sebagai konten dan nama produk sebagai metadata. Dataset dicerna ke AstradB sebagai toko vektor, memungkinkan pencarian kesamaan yang cocok dengan kueri pengguna dengan ulasan yang relevan, meningkatkan rekomendasi dan tanggapan chatbot.
Frontend adalah antarmuka web responsif yang dibuat menggunakan HTML , CSS , dan JavaScript , yang dirancang untuk memberikan pengalaman obrolan yang intuitif. Pengguna dapat berinteraksi dengan chatbot untuk menanyakan tentang detail produk dan menerima rekomendasi yang dipersonalisasi. Antarmuka ditata dengan CSS , menampilkan latar belakang gradien modern dan kotak obrolan terstruktur di mana pesan pengguna dan respons bot ditampilkan secara real-time.
Mengingat ukuran model yang besar, menghasilkan respons dengan LLAMA 3.1-8B kadang-kadang dapat melebihi batas batas waktu server 1 menit default. Untuk mengelola ini, kami menerapkan Redis sebagai broker pesan dan seledri untuk manajemen tugas latar belakang. Ketika pengguna mengirimkan kueri, chatbot memicu tugas seledri yang memproses respons secara tidak sinkron , memungkinkan frontend untuk melakukan polling secara berkala untuk status respons. Metode ini secara efektif mencegah kesalahan batas waktu server sambil memastikan pengguna menerima tanggapan tanpa gangguan.
Chatbot digunakan di AWS EC2 , menyediakan lingkungan yang dapat diskalakan dan kuat untuk menjalankan model, menangani interaksi pengguna, dan mengelola pengambilan dari database.
Dataset untuk proyek ini diambil dari Kaggle. Ini tautan datasetnya. Dataset yang digunakan dalam proyek ini berisi 450 ulasan produk tentang berbagai merek headphone, erabud dan lainnya yang dikumpulkan dari Flipkart, termasuk fitur utama berikut:
Nama Dataset: flipkart_dataset Jumlah kolom: 5 Jumlah catatan: 450
Kode ini ditulis dalam Python 3.10.15. Jika Anda tidak menginstal Python, Anda dapat menemukannya di sini. Jika Anda menggunakan versi Python yang lebih rendah, Anda dapat meningkatkan menggunakan paket PIP, memastikan Anda memiliki versi PIP terbaru.
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.txtATAU
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:8080Chatbot e-commerce ini memberikan pengalaman belanja interaktif yang cerdas melalui pendekatan RAG yang menggabungkan pengambilan dan generasi, menawarkan rekomendasi produk yang relevan berdasarkan ulasan pelanggan yang sebenarnya.
Model Bahasa Besar Llama 3.1 dan Embeddings Wadface memungkinkan respons yang bernuansa, meningkatkan keterlibatan pengguna dengan percakapan sadar kontekstual.
Penanganan respons yang efisien dengan Redis dan seledri membahas tuntutan aplikasi berkinerja tinggi, memastikan pengalaman pengguna yang stabil dan responsif bahkan dengan LLM besar .
Penyebaran AWS EC2 yang sepenuhnya diskalakan memungkinkan integrasi yang mulus ke dalam platform e-commerce, menawarkan infrastruktur yang kuat untuk lingkungan lalu lintas tinggi.
Proyek ini menampilkan aplikasi yang kuat dari model bahasa besar , mendorong batas-batas kemampuan chatbot dalam domain e-commerce.