Dieses Projekt ist ein E-Commerce-Chatbot, das mit RAG-Ansatz (Abruf-Augmented Generation) erstellt wurde. RAG kombiniert die Kraft von Informationsabruf- und generativen Sprachmodellen und ermöglicht dem Chatbot, genaue und kontextbezogene Antworten auf der Grundlage umfangreicher produktbezogener Informationen zu liefern, die in einer Vektordatenbank gespeichert sind. Wir haben Langchain als Framework verwendet, um die Komponenten des Chatbots zu verwalten und den Durchfluss der Abruf der Generation effizient zu orchestrieren.
Der Chatbot verwendet LLAMA3.1-8B , ein großes Sprachmodell, das für seine Fähigkeit bekannt ist, nuancierten Kontext zu verstehen und kohärente Antworten zu generieren. Um die Abrufleistung zu verbessern, nutzt das Projekt Einbettungen, die durch den Satztransformer/All-MPNET-Base-V2-Modell von Huggingface erzeugt werden. Diese Einbettungen codieren semantische Bedeutung und ermöglichen es dem Chatbot, relevante Produktdaten schnell auf Basis von Benutzerabfragen abzurufen. Die Einbettungen werden in Astradb gespeichert und verwaltet, was als Hochleistungs-Vektor-Datenbank dient.
Um kohärente, kontextbewusste Antworten zu liefern, verwendet der Chatbot einen historischen Lag- Ansatz. Durch die Einbeziehung des Chat -Verlaufs in jede Interaktion kann das Modell Verweise auf frühere Nachrichten verstehen und die Kontinuität über mehrere Kurven hinweg aufrechterhalten. Die Funktionen des Langchain -Verlaufs machen diesen Prozess nahtlos, indem er für jede Benutzersitzung eine staatliche Verwaltung des Chat -Verlaufs ermöglicht.
Der in diesem Projekt verwendete Datensatz umfasst Produktbewertungen von Flipkart , einer E-Commerce-Plattform. Der Datensatz enthält Produkttitel, Bewertungen und detaillierte Bewertungen, die eine umfassende Sichtweise des Kundenfeedbacks in verschiedenen Produkten bieten. Der Hauptzweck dieses Datensatzes besteht darin, die Abruffunktionen des Chatbots mit Strom zu versorgen, sodass sie reale Produktgefühle, -funktionen und Kundenerlebnisse verweisen können. Jede Überprüfung wird als Dokumentobjekt in Langchain gespeichert, das die Überprüfung als Inhalt und den Produktnamen als Metadaten enthält. Der Datensatz wird als Vektorspeicher in Astradb aufgenommen, wodurch Ähnlichkeitssuche ermöglicht werden, die Benutzeranfragen mit relevanten Bewertungen entsprechen und die Empfehlungen und Antworten des Chatbot verbessern.
Das Frontend ist eine reaktionsschnelle Weboberfläche, die mit HTML , CSS und JavaScript erstellt wurde, um ein intuitives Chat -Erlebnis zu bieten. Benutzer können mit dem Chatbot interagieren, um sich nach Produktdetails zu erkundigen und personalisierte Empfehlungen zu erhalten. Die Benutzeroberfläche ist mit CSS mit einem modernen Gradientenhintergrund und einem strukturierten Chatbox ausgestattet, in dem Benutzernachrichten und Bot-Antworten in Echtzeit angezeigt werden.
Angesichts der großen Größe des Modells kann das Erzeugen von Antworten mit Lama 3.1-8B gelegentlich das Standard -Server-Zeitüberschreitungslimit von 1 Minute überschreiten. Um dies zu verwalten, haben wir Redis als Message Broker und Sellerie für das Hintergrundaufgabenmanagement implementiert. Wenn ein Benutzer eine Abfrage einreicht, löst der Chatbot eine Sellerieaufgabe aus, die die Antwort asynchron verarbeitet und es dem Frontend ermöglicht, den Antwortstatus regelmäßig zu befragen. Diese Methode verhindert effektiv Server -Zeitüberschreitungsfehler und sorgt dafür, dass Benutzer Antworten ohne Unterbrechungen empfangen.
Der Chatbot wird in AWS EC2 bereitgestellt und bietet eine skalierbare und robuste Umgebung für das Ausführen des Modells, die Bearbeitung von Benutzerinteraktionen und das Verwalten von Abrufen aus der Datenbank.
Der Datensatz für dieses Projekt stammt aus Kaggle. Hier ist der Datensatzlink. Der in diesem Projekt verwendete Datensatz enthält 450 Produktbewertungen zu verschiedenen Marken von Kopfhörern, Erabuds und anderen von Flipkart, einschließlich der folgenden Schlüsselfunktionen:
Datensatzname: flipkart_dataset Anzahl der Spalten: 5 Anzahl der Datensätze: 450
Der Code ist in Python 3.10.15 geschrieben. Wenn Sie Python nicht installiert haben, finden Sie es hier. Wenn Sie eine niedrigere Version von Python verwenden, können Sie mithilfe des PIP -Pakets ein Upgrade durchführen, um sicherzustellen, dass Sie über die neueste Version von PIP verfügen.
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.txtODER
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:8080Dieser E-Commerce-Chatbot bietet ein intelligentes, interaktives Einkaufserlebnis durch einen RAG- Ansatz, der Abruf und Generation kombiniert und relevante Produktempfehlungen basierend auf tatsächlichen Kundenbewertungen bietet.
Das große Sprachmodell und das Huggingface -Einbettungsdings von LLAMA 3.1 ermöglichen nuancierten Antworten und verbessern das Engagement der Benutzer mit kontextbezogenen Konversationen.
Die effiziente Reaktionsbearbeitung mit Redis und Sellerie befasst sich mit den Anforderungen einer leistungsstarken Anwendung und sorgt für stabile, reaktionsschnelle Benutzererfahrungen auch bei großen LLMs .
Eine vollständig skalierbare AWS-EC2-Bereitstellung ermöglicht eine nahtlose Integration in E-Commerce-Plattformen und bietet eine robuste Infrastruktur für hochverkehrsbedingte Umgebungen.
Dieses Projekt zeigt eine leistungsstarke Anwendung von Großsprachenmodellen , die die Grenzen von Chatbot-Funktionen in der E-Commerce-Domäne überschreitet.