Este projeto é um chatbot de comércio eletrônico criado usando uma abordagem de geração de recuperação (RAG) . O RAG combina o poder dos modelos de recuperação de informações e de linguagem generativa, permitindo que o chatbot forneça respostas precisas e com consciência de contexto com base em extensas informações relacionadas ao produto armazenadas em um banco de dados vetorial. Usamos o Langchain como estrutura para gerenciar os componentes do chatbot e orquestrar o fluxo de geração de recuperação com eficiência.
O chatbot emprega a LLAMA3.1-8B , um grande modelo de idioma conhecido por sua capacidade de entender o contexto diferenciado e gerar respostas coerentes. Para melhorar o desempenho da recuperação, o projeto aproveita as incorporações geradas pelo modelo de transformadores de sentença do Huggingface/All-MPNET-BASE-V2 . Essas incorporações codificam significado semântico, permitindo que o chatbot recupere os dados relevantes do produto rapidamente com base nas consultas do usuário. As incorporações são armazenadas e gerenciadas no AstRADB , que serve como um banco de dados vetorial de alto desempenho.
Para fornecer respostas coerentes e com reconhecimento de contexto, o chatbot usa uma abordagem de pano consciente da história. Ao incorporar o histórico de bate -papo em cada interação, o modelo pode entender as referências a mensagens anteriores e manter a continuidade em várias voltas. Os recursos de gerenciamento de histórico de Langchain tornam esse processo perfeito, permitindo o gerenciamento estabelecido do histórico de bate -papo para cada sessão do usuário.
O conjunto de dados usado neste projeto compreende revisões de produtos provenientes da Flipkart , uma plataforma de comércio eletrônico. O conjunto de dados inclui títulos de produtos, classificações e críticas detalhadas, oferecendo uma visão abrangente do feedback do cliente em vários produtos. O objetivo principal desse conjunto de dados é alimentar os recursos de recuperação do chatbot, permitindo que ele faça referência a sentimentos, recursos e experiências de clientes do mundo real. Cada revisão é armazenada como um objeto de documento em Langchain , contendo a revisão como conteúdo e o nome do produto como metadados. O conjunto de dados é ingerido no AstRADB como um loja de vetores, permitindo pesquisas de similaridade que correspondam às consultas do usuário com revisões relevantes, aprimorando as recomendações e respostas do chatbot.
O front -end é uma interface da Web responsiva criada usando HTML , CSS e JavaScript , projetado para fornecer uma experiência intuitiva de bate -papo. Os usuários podem interagir com o chatbot para perguntar sobre os detalhes do produto e receber recomendações personalizadas. A interface é estilizada com o CSS , com um fundo de gradiente moderno e uma caixa de bate-papo estruturada, onde as mensagens do usuário e as respostas de bot são exibidas em tempo real.
Dado o tamanho grande do modelo, gerar respostas com o LLAMA 3.1-8B pode ocasionalmente exceder o limite de tempo limite do servidor de 1 minuto padrão. Para gerenciar isso, implementamos o Redis como corretor de mensagens e aipo para gerenciamento de tarefas em segundo plano. Quando um usuário envia uma consulta, o chatbot desencadeia uma tarefa de aipo que processa a resposta de forma assíncrona , permitindo que a frontend pesquise periodicamente para o status de resposta. Esse método evita efetivamente os erros de tempo limite do servidor, garantindo que os usuários recebam respostas sem interrupções.
O chatbot é implantado no AWS EC2 , fornecendo um ambiente escalável e robusto para executar o modelo, lidar com interações do usuário e gerenciar recuperações do banco de dados.
O conjunto de dados para este projeto é retirado de Kaggle. Aqui está o link do conjunto de dados. O conjunto de dados usado neste projeto contém 450 análises de produtos sobre diferentes marcas de fones de ouvido, Erabuds e outros coletados da Flipkart, incluindo os seguintes recursos principais:
Nome do conjunto de dados: flipkart_dataset Número de colunas: 5 Número de registros: 450
O código é escrito no Python 3.10.15. Se você não tem o Python instalado, pode encontrá -lo aqui. Se você estiver usando uma versão inferior do Python, poderá atualizar usando o pacote PIP, garantindo que você tenha a versão mais recente do 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.txtOU
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:8080Este chatbot de comércio eletrônico fornece uma experiência de compra inteligente e interativa por meio de uma abordagem de RAG que combina recuperação e geração, oferecendo recomendações relevantes de produtos com base em análises reais de clientes.
O modelo de grande idioma do LLAMA 3.1 e as incorporações HuggingFace permitem respostas diferenciadas, aprimorando o envolvimento do usuário com conversas contextualmente conscientes.
O manuseio eficiente de respostas com Redis e aipo atende às demandas de um aplicativo de alto desempenho, garantindo experiências estáveis e responsivas ao usuário, mesmo com grandes LLMs .
Uma implantação totalmente escalável do AWS EC2 permite integração perfeita em plataformas de comércio eletrônico, oferecendo infraestrutura robusta para ambientes de alto tráfego.
Este projeto mostra uma aplicação poderosa de grandes modelos de linguagem , ultrapassando os limites dos recursos de chatbot no domínio do comércio eletrônico.