이 프로젝트는 RAG (Resprieval-Augmented Generation) 접근법을 사용하여 구축 된 전자 상거래 챗봇 입니다. RAG는 정보 검색 및 생성 언어 모델의 힘을 결합하여 챗봇이 벡터 데이터베이스에 저장된 광범위한 제품 관련 정보를 기반으로 정확하고 컨텍스트 인식 응답을 제공 할 수 있습니다. 우리는 Langchain을 챗봇의 구성 요소를 관리하고 검색 생성 흐름을 효율적으로 조정하기위한 프레임 워크로 사용했습니다.
챗봇은 미묘한 맥락을 이해하고 일관된 응답을 생성 할 수있는 능력으로 알려진 큰 언어 모델 인 LLAMA3.1-8B를 사용합니다. 검색 성능 을 향상시키기 위해 프로젝트는 Huggingf 이러한 임베딩은 시맨틱 의미를 인코딩하여 챗봇이 사용자 쿼리를 기반으로 관련 제품 데이터를 빠르게 검색 할 수 있습니다. 임베딩은 ASTRADB 에 저장 및 관리되며 고성능 벡터 데이터베이스 역할을합니다.
일관된 맥락 인식 응답을 제공하기 위해 챗봇은 역사 인식 래그 접근법을 사용합니다. 채팅 기록을 각 상호 작용에 통합함으로써 모델은 이전 메시지에 대한 참조를 이해하고 여러 회전에서 연속성을 유지할 수 있습니다. Langchain의 히스토리 관리 기능은 각 사용자 세션에 대한 채팅 기록의 상태를 유지 함으로써이 프로세스를 원활하게 만듭니다.
이 프로젝트에 사용 된 데이터 세트는 전자 상거래 플랫폼 인 Flipkart 에서 제공하는 제품 리뷰로 구성됩니다. 데이터 세트에는 제품 제목, 등급 및 세부 리뷰가 포함되어 있으며 다양한 제품의 고객 피드백에 대한 포괄적 인 견해를 제공합니다. 이 데이터 세트의 주요 목적은 챗봇의 검색 기능에 전원을 공급하여 실제 제품 감정, 기능 및 고객 경험을 참조 할 수 있도록하는 것입니다. 각 검토는 Langchain 내의 문서 개체로 저장되며, 컨텐츠로서의 리뷰 및 제품 이름을 메타 데이터로 포함합니다. 데이터 세트는 벡터 저장소로 AstrADB 에 섭취되어 사용자 쿼리와 관련 리뷰와 일치하는 유사성 검색을 가능하게하여 챗봇의 권장 사항 및 응답을 향상시킵니다.
Frontend는 직관적 인 채팅 경험을 제공하도록 설계된 HTML , CSS 및 JavaScript를 사용하여 작성된 반응 형 웹 인터페이스입니다. 사용자는 챗봇 과 상호 작용하여 제품 세부 사항에 대해 문의하고 개인화 된 권장 사항을받을 수 있습니다. 인터페이스는 CSS 와 스타일로 사용되며, 최신 그라데이션 배경과 사용자 메시지 및 봇 응답이 실시간으로 표시되는 구조화 된 채팅 상자가 특징입니다.
모델의 큰 크기를 고려할 때 LLAMA 3.1-8B 로 응답을 생성하면 때때로 기본 1 분 서버 시간 초과 제한을 초과 할 수 있습니다. 이를 관리하기 위해 우리는 Redis를 백그라운드 작업 관리를위한 메시지 중개인 및 Celery 로 구현했습니다. 사용자가 쿼리를 제출하면 챗봇은 응답을 비동기 적으로 처리하는 셀러리 작업을 트리거하여 프론트 엔드가 주기적으로 응답 상태에 대해 투표 할 수 있습니다. 이 메소드는 서버 시간 초과 오류를 효과적으로 방지하면서 사용자가 중단없이 응답을받을 수 있도록합니다.
챗봇은 AWS EC2 에 배포되어 모델 실행, 사용자 상호 작용 처리 및 데이터베이스에서 검색 관리를위한 확장 가능하고 강력한 환경을 제공합니다.
이 프로젝트의 데이터 세트는 Kaggle에서 가져옵니다. 다음은 데이터 세트 링크입니다. 이 프로젝트에 사용 된 데이터 세트에는 다음의 주요 기능을 포함하여 Flipkart에서 수집 한 다양한 브랜드의 헤드폰, Erabud 및 기타 브랜드에 대한 450 개의 제품 리뷰가 포함되어 있습니다.
데이터 세트 이름 : flipkart_dataset 열 수 : 5 기록 수 : 450
코드는 Python 3.10.15로 작성되었습니다. 파이썬이 설치되어 있지 않으면 여기에서 찾을 수 있습니다. 하위 버전의 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이 전자 상거래 챗봇은 검색 및 생성을 결합한 Rag 접근 방식을 통해 지능적이고 대화식 쇼핑 경험을 제공하여 실제 고객 리뷰를 기반으로 관련 제품 권장 사항을 제공합니다.
Llama 3.1의 대형 언어 모델 과 Huggingface 임베딩은 미묘한 응답을 가능하게하여 상황에 맞는 대화와의 사용자 참여를 향상시킵니다.
Redis 및 Celery를 사용한 효율적인 응답 처리는 고성능 응용 프로그램의 요구를 해결하여 대규모 LLM 에서도 안정적이고 반응이 좋은 사용자 경험을 보장합니다.
확장 가능한 AWS EC2 배포를 통해 전자 상거래 플랫폼에 완벽하게 통합되어 교통 환경에 대한 강력한 인프라를 제공합니다.
이 프로젝트는 대형 언어 모델 의 강력한 응용 프로그램을 보여 주어 전자 상거래 도메인에서 챗봇 기능의 경계를 넓 힙니다.