このプロジェクトは、検索された世代(RAG)アプローチを使用して構築されたeコマースチャットボットです。 RAGは、情報検索と生成言語モデルの力を組み合わせて、ベクトルデータベースに保存されている広範な製品関連情報に基づいて、チャットボットが正確でコンテキスト認識される応答を提供できるようにします。 Langchainをフレームワークとして使用して、チャットボットのコンポーネントを管理し、検索生成フローを効率的に調整しました。
チャットボットは、微妙なコンテキストを理解し、コヒーレントな応答を生成する能力で知られている大規模な言語モデルであるllama3.1-8bを採用しています。検索のパフォーマンスを向上させるために、プロジェクトは、Huggingfaceの文の変換器/All-MPNet-Base-V2モデルによって生成された埋め込みを活用します。これらの埋め込みはセマンティックの意味をエンコードし、チャットボットがユーザークエリに基づいて関連する製品データを迅速に取得できるようにします。埋め込みは、高性能ベクトルデータベースとして機能するAstradBで保存および管理されています。
Chatbotは、一貫性のあるコンテキスト対応の応答を提供するために、履歴認識のRAGアプローチを使用します。各インタラクションにチャット履歴を組み込むことにより、モデルは以前のメッセージへの参照を理解し、複数回転にわたって連続性を維持できます。 Langchainの履歴管理機能は、各ユーザーセッションのチャット履歴のステートフルな管理を可能にすることにより、このプロセスをシームレスにします。
このプロジェクトで使用されているデータセットは、eコマースプラットフォームであるFlipkartから供給された製品レビューで構成されています。データセットには、製品タイトル、評価、詳細なレビューが含まれており、さまざまな製品にわたる顧客フィードバックの包括的なビューを提供します。このデータセットの主な目的は、チャットボットの検索機能を強化し、実際の製品感情、機能、および顧客体験を参照できるようにすることです。各レビューは、レビューをコンテンツとして、製品名をメタデータとして含むLangchain内のドキュメントオブジェクトとして保存されます。データセットはベクトルストアとしてAstradBに摂取され、ユーザークエリと関連するレビューと一致する類似性検索を可能にし、チャットボットの推奨事項と応答を強化します。
フロントエンドは、 HTML 、 CSS 、およびJavaScriptを使用して作成されたレスポンシブWebインターフェイスであり、直感的なチャットエクスペリエンスを提供するように設計されています。ユーザーはチャットボットと対話して、製品の詳細について問い合わせ、パーソナライズされた推奨事項を受け取ることができます。インターフェイスはCSSでスタイリングされており、最新のグラデーションの背景と、ユーザーメッセージとボット応答がリアルタイムで表示される構造化されたチャットボックスを備えています。
モデルの大きなサイズを考えると、 Llama 3.1-8Bで応答を生成すると、デフォルトの1分間のサーバータイムアウト制限を超えることがあります。これを管理するために、 Redisをメッセージブローカーとして実装し、背景タスク管理のためにセロリを実装しました。ユーザーがクエリを送信すると、チャットボットは応答を非同期に処理するセロリタスクをトリガーし、フロントエンドが応答ステータスを定期的に投票できるようにします。この方法は、ユーザーが中断せずに応答を受け取るようにしながら、サーバーのタイムアウトエラーを効果的に防止します。
チャットボットはAWS EC2に展開されており、モデルを実行し、ユーザーのインタラクションの処理、データベースからの検索の管理を促進できるスケーラブルで堅牢な環境を提供します。
このプロジェクトのデータセットはKaggleから取得されます。これがデータセットリンクです。このプロジェクトで使用されているデータセットには、次の重要な機能を含む、Flipkartから収集されたさまざまなブランドのヘッドフォン、Erabudsなどに関する450の製品レビューが含まれています。
データセット名: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このeコマースチャットボットは、検索と生成を組み合わせたぼろきれのアプローチを通じて、インテリジェントでインタラクティブなショッピングエクスペリエンスを提供し、実際の顧客レビューに基づいて関連する製品の推奨事項を提供します。
llama 3.1の大規模な言語モデルとハギングフェイスの埋め込みは、微妙な応答を可能にし、文脈的に認識した会話とのユーザーエンゲージメントを強化します。
Redis and Celryを使用した効率的な対応処理は、高性能アプリケーションの要求に対処し、大規模なLLMSでも安定した応答性の高いユーザーエクスペリエンスを確保します。
完全にスケーラブルなAWS EC2展開により、 eコマースプラットフォームへのシームレスな統合が可能になり、高トラフィック環境向けの堅牢なインフラストラクチャが提供されます。
このプロジェクトでは、大規模な言語モデルの強力なアプリケーションを紹介し、eコマースドメインのチャットボット機能の境界を押し広げます。