よくある質問 チャットボット
自動的に答えが得られるのは魔法です!!本物の AI (チューリング テストを覚えていますか?)
このプロジェクトは、単純な質問と回答 (アトミック クエリ) ベースのチャットボット フレームワークです。さまざまなベクトル化に基づく類似性を使用して一致する質問を見つけ、対応する回答を返します。
適用範囲:
- 日常的なクエリを処理するという膨大な需要
- スケール(レバレッジ、自動化、パッシブ)
- 現地語のチャットボットではあまり機能しません (人類に奉仕する)
注:
- このチャットボットは、最初にカテゴリ分類に基づいて、次に選択したカテゴリ内の類似性に基づいています。
- 人気のオープンソース チャットボット フレームワークである Rasa とは異なります。Rasa では、NLU が意図とエンティティに基づいているのに対し、ダイアログ管理はシーケンス/LSTM 予測に基づいています。
- 概念的には、Microsoft の QnA Maker に似ています。しかし、大きな違いは、この github コードベース全体を取得した場合、モデルはローカルになるということです。サーバー上には何もありません。そのため、特に人事や財務などの機密データのチャットボットのセキュリティが向上します。
著作権 (C) 2019 Yogesh H Kulkarni
やるべきこと
- HuggingFace または Spacy による文章埋め込みの実装
- 切り替え可能な埋め込みを使用して完全な FAQ チャットボット プラットフォームを構築する
- [新規] GPT-Index や Pinecone (クラウド) のような LangChain + Vector Db を使用して FAQ を実行できる
仕組み:
- 各行に質問、回答、クラスが含まれる CSV (カンマ区切りファイル) の形式で FAQ を入力します (例: 「歯磨き粉の GST レートは何ですか?,12,rate」)。
- 質問はベクトル化され、分類子モデル [X=vector(question), y=class] とともにマッチングの準備が整います。
- ユーザー クエリが到着すると、分類子モデルを使用してその「クラス」が予測され、クラス内でベクトル化されたクエリが既存のベクトル化された質問と照合されます。
- 最も類似しているものがどれでも、その答えがユーザーに表示されます。
スクリプト:
- app.py: Flask を使用して構築されたチャットボット UI、templates/*.html を使用
- Bankfaqs.py: チャットボットのコア ロジックとナレッジ ベース。
その他のデータ:
- FAQ: 質問と回答を含む CSV ファイル
- 静的およびテンプレート: Flask UI 関連ファイル
実行するには:
- app.pyを実行する
- ブラウザで http://127.0.0.1:8080/ を開きます
- チャットを開始する
依存関係:
- Python 3.6、numpy、scipy、sklearnが必要
参考文献
- Bhavani Ravi のイベントボット コード、Youtube ビデオ
- 銀行に関する FAQ ボット コード
免責事項:
- 作者 ([email protected]) はプログラムの結果を保証しません。ただただ楽しい脚本です。まだまだ多くの改善が必要です。ですから、絶対に依存しないでください。