هذا المشروع عبارة عن chatbot التجارة الإلكترونية مصممة باستخدام نهج الجيل المتمثل في الاسترداد (RAG) . يجمع RAG بين قوة استرجاع المعلومات ونماذج اللغة التوليدية ، مما يتيح لـ ChatBot توفير استجابات دقيقة وذات سياق بناءً على معلومات شاملة تتعلق بالمنتج المخزنة في قاعدة بيانات المتجهات. استخدمنا Langchain كإطار لإدارة مكونات chatbot وتنظيم تدفق جيل الاسترجاع بكفاءة.
توظف chatbot llama3.1-8b ، وهو نموذج لغة كبير معروف بقدرته على فهم السياق الدقيق وتوليد ردود متماسكة. لتعزيز أداء الاسترجاع ، يقوم المشروع بتوزيع التضمينات الناتجة عن نموذج Transformers من جملة Huggingface/MPNET-Base-V2 . تقوم هذه التضمينات بتشفير المعنى الدلالي ، مما يتيح لـ chatbot استرداد بيانات المنتج ذات الصلة بسرعة بناءً على استعلامات المستخدم. يتم تخزين التضمينات وإدارتها في Astradb ، والتي تعمل كقاعدة بيانات ناقلات عالية الأداء.
لتوفير استجابات متماسكة ومدروبة بالسياق ، يستخدم chatbot نهج خرقة مدرك للتاريخ. من خلال دمج سجل الدردشة في كل تفاعل ، يمكن للنموذج فهم الإشارات إلى الرسائل السابقة والحفاظ على الاستمرارية عبر منعطفات متعددة. تجعل ميزات إدارة التاريخ في Langchain هذه العملية سلسة من خلال السماح بإدارة سجل الدردشة لكل جلسة مستخدم.
تضم مجموعة البيانات المستخدمة في هذا المشروع مراجعات المنتجات التي يتم الحصول عليها من Flipkart ، وهي منصة للتجارة الإلكترونية. تتضمن مجموعة البيانات عناوين المنتجات والتقييمات والمراجعات التفصيلية ، مما يوفر عرضًا شاملاً لتعليقات العملاء عبر مختلف المنتجات. الغرض الأساسي من مجموعة البيانات هذه هو تشغيل إمكانيات استرجاع chatbot ، وتمكينها من الإشارة إلى مشاعر المنتجات الواقعية في العالم الحقيقي وتجارب العملاء. يتم تخزين كل مراجعة ككائن مستند داخل Langchain ، يحتوي على المراجعة كمحتوى واسم المنتج كبيانات تعريف. يتم تناول مجموعة البيانات في AstradB كمتجر متجه ، مما يتيح عمليات البحث عن التشابه التي تتطابق مع استعلامات المستخدم مع المراجعات ذات الصلة ، وتعزيز توصيات chatbot وردودها.
الواجهة الأمامية هي واجهة ويب متجاوبة تم إنشاؤها باستخدام HTML و CSS و JavaScript ، مصممة لتوفير تجربة دردشة بديهية. يمكن للمستخدمين التفاعل مع chatbot للاستفسار عن تفاصيل المنتج وتلقي توصيات مخصصة. تم تصميم الواجهة مع CSS ، والتي تتميز بخلفية تدرج حديثة ومربع دردشة منظم حيث يتم عرض رسائل المستخدم واستجابات الروبوت في الوقت الفعلي.
بالنظر إلى الحجم الكبير للنموذج ، يمكن لتوليد الاستجابات باستخدام LLAMA 3.1-8B أحيانًا أن يتجاوز حد مهلة الخادم الافتراضي لمدة دقيقة واحدة . لإدارة هذا ، قمنا بتنفيذ 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:8080يوفر chatbot التجارة الإلكترونية تجربة تسوق تفاعلية ذكية من خلال نهج خرقة يجمع بين الاسترجاع والتوليد ، وتقدم توصيات المنتج ذات الصلة بناءً على مراجعات العملاء الفعلية.
يتيح نموذج اللغة الكبير في Llama 3.1 وتضمينات المعانقة الاستجابات الدقيقة ، مما يعزز مشاركة المستخدم مع المحادثات المدركة للسياق.
يعالج معالجة الاستجابة الفعالة مع Redis والكرفس متطلبات تطبيق عالي الأداء ، مما يضمن تجارب مستخدم مستجيب ومستجيب حتى مع LLMs الكبيرة .
يتيح نشر AWS EC2 القابل للتطوير بالكامل تكاملًا سلسًا في منصات التجارة الإلكترونية ، مما يوفر بنية تحتية قوية للبيئات عالية الحلق.
يعرض هذا المشروع تطبيقًا قويًا لنماذج اللغة الكبيرة ، مما يدفع حدود إمكانيات chatbot في مجال التجارة الإلكترونية.