Этот проект представляет собой чат-бот электронной коммерции, построенный с использованием подхода с поколением-аугментом (RAG) . RAG объединяет мощь поиска информации и генеративных языковых моделей, позволяя чат-боту предоставлять точные и контекстные ответы на основе обширной информации, связанной с продуктом, хранящейся в векторной базе данных. Мы использовали Langchain в качестве структуры для управления компонентами чат-бота и эффективного управления потоком поиска поколения.
Чатбот использует Llama3.1-8b , большую языковую модель, известную своей способностью понимать нюансированный контекст и генерировать когерентные ответы. Чтобы повысить производительность поиска, проект использует встраиваемые встраиваемые встраиваемые сгенерированные трансформаторы HuggingFace/модель All-MPNet-Base-V2 . Эти встраиваемые кодируют семантическое значение, что позволяет быстро извлекать соответствующие данные о продукте на основе запросов пользователей. Встроения хранятся и управляются в Astradb , которая служит высокоэффективной векторной базой данных.
Чтобы обеспечить последовательные, контекстные ответы, чат-бот использует подход, страдающий от RAG с учетом истории. Внедряя историю чата в каждое взаимодействие, модель может понять ссылки на предыдущие сообщения и поддерживать непрерывность между несколькими поворотами. Функции управления историей Лэнгчейна делают этот процесс беспроблемным, позволяя государственному управлению истории чата для каждого сеанса пользователя.
Набор данных , используемый в этом проекте, включает в себя обзоры продуктов, полученные из Flipkart , платформы электронной коммерции. Набор данных включает в себя названия продуктов, рейтинги и подробные обзоры, предлагая всесторонний взгляд на отзывы клиентов по различным продуктам. Основная цель этого набора данных состоит в том, чтобы привлечь возможности поиска чат-бота, что позволяет ему ссылаться на настроение продуктов, функции и опыт работы с реальными продуктами. Каждый обзор хранится как объект документа в Лангхейне , содержащий обзор в качестве контента и название продукта в качестве метаданных. Набор данных принимается в AstradB в качестве векторного хранилища, позволяя поискам сходства , которые соответствуют запросам пользователей с соответствующими отзыями, улучшая рекомендации и ответы чат -бота.
Frondend - это отзывчивый веб -интерфейс, созданный с использованием HTML , CSS и JavaScript , предназначенного для предоставления интуитивного опыта в чате. Пользователи могут взаимодействовать с Chatbot , чтобы узнать о деталях продукта и получить персонализированные рекомендации. Интерфейс стилизован с CSS , с современным фоном градиента и структурированным чатом, где пользовательские сообщения и ответы бота отображаются в режиме реального времени.
Учитывая большой размер модели, генерирование ответов с LLAMA 3.1-8B может иногда превышать 1-минутный ограничение тайм-аута по умолчанию по умолчанию. Чтобы управлять этим, мы внедрили Redis в качестве брокера сообщений и сельдерея для управления фоновыми задачами. Когда пользователь подчиняет запрос, чат -бот запускает задачу сельдерея , которая асинхронно обрабатывает ответ, что позволяет периодически опросить на фронте для статуса ответа. Этот метод эффективно предотвращает ошибки тайм -аута сервера, обеспечивая при этом пользователи получать ответы без перерывов.
Чатбот развернут на 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Этот чат-бот электронной коммерции обеспечивает интеллектуальное, интерактивное впечатление за покупками с помощью тряпительного подхода, который сочетает в себе поиск и генерацию, предлагая соответствующие рекомендации по продукту, основанные на фактических отзывах клиентов.
Большая языковая модель Llama 3.1 и встраивание Huggingface обеспечивают нюансированные ответы, улучшая взаимодействие с пользователями с контекстными разговорами.
Эффективная обработка ответов с Redis и сельдереем предпринимает требования высокопроизводительного приложения, обеспечивая стабильный, отзывчивый пользовательский опыт даже с большими LLMS .
Полностью масштабируемое развертывание AWS EC2 обеспечивает бесшовную интеграцию в платформы электронной коммерции, предлагая надежную инфраструктуру для среда с высоким трафиком.
Этот проект демонстрирует мощное применение крупных языковых моделей , раздвигая границы возможностей чат-бота в домене электронной коммерции.