MCP統合による銀行チャットボット
Azure OpenAI と Model Context Protocol (MCP) を使用して安全かつ効率的なメッセージ処理を実現する、洗練された銀行チャットボット アプリケーションです。
特徴
- AI 搭載の銀行アシスタント: Azure OpenAI を使用して銀行の問い合わせにインテリジェントな応答を提供します
- モデルコンテキストプロトコル(MCP) :安全なメッセージ通信プロトコルを実装します
- リアルタイムチャットインターフェース: シームレスなユーザーインタラクションを実現するモダンでレスポンシブなUI
- 包括的なログ記録: 監視とデバッグのための詳細なログ記録システム
- 銀行情報統合:銀行の詳細とサービスの動的な表示
- Markdown サポート: 回答のリッチテキスト形式
プロジェクト構造
.
├── app.py # Main Flask application
├── mcp_server.py # MCP server implementation
├── mcp_client.py # MCP client implementation
├── requirements.txt # Python dependencies
├── .env # Environment variables
├── templates/ # HTML templates
│ └── index.html # Chat interface
└── logs/ # Log files
├── client_messages.log
├── mcp_client.log
└── mcp_server.log
前提条件
- Python 3.8以上
- Azure OpenAI API アクセス
- 必要な Python パッケージ (requirements.txt を参照)
インストール
- リポジトリをクローンします。
git clone <repository-url>
cd banking-chatbot
- 仮想環境を作成してアクティブ化します。
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- 依存関係をインストールします:
pip install -r requirements.txt
- 資格情報を使用して
.env
ファイルを作成します。ENDPOINT_URL=your_azure_endpoint
AZURE_OPENAI_API_KEY=your_api_key
DEPLOYMENT_NAME=your_deployment_name
使用法
- MCP サーバーを起動します。
- 新しいターミナルで、Flask アプリケーションを起動します。
http://localhost:5000
でチャットボットインターフェースにアクセスします。
MCPプロトコル
モデルコンテキストプロトコル(MCP)は、チャットボットとサーバー間のメッセージ通信を処理するために実装されています。MCPは以下の機能を提供します。
- 安全なメッセージ送信
- メッセージキューイングと信頼性
- 詳細なログ記録
- リアルタイムメッセージ処理
メッセージの種類
- チャットメッセージ: ユーザーの質問とAIの応答
- システムメッセージ: 管理および制御メッセージ
ログ記録
アプリケーションはlogs
ディレクトリに詳細なログを保持します。
client_messages.log
: チャットメッセージの履歴mcp_client.log
: クライアントの接続と操作のログmcp_server.log
: サーバー操作ログ
銀行情報
チャットボットには、次のような包括的な銀行情報が設定されています。
- 営業時間
- 支店所在地
- 利用可能なサービス
- 連絡先
- サポートチャネル
発達
新機能の追加
- 新しい銀行情報のために
app.py
のBANK_INFO
辞書を更新します - 更新されたAIの動作のために
SYSTEM_MESSAGE
を変更する - 追加機能のために、
mcp_client.py
に新しいメッセージ ハンドラーを追加します。
テスト
テスト クライアントを実行して MCP の機能を検証します。
テスト用のログをクリアします。
安全
- APIキーと機密情報は
.env
に保存されます - MCPは安全なメッセージ伝送を提供します
- 入力検証とエラー処理が実装されています
貢献
- リポジトリをフォークする
- 機能ブランチを作成する
- 変更をコミットする
- ブランチにプッシュする
- プルリクエストを作成する
ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細については LICENSE ファイルを参照してください。