AIチャットボット
概要
顧客からの問い合わせにAIが自動対応。FAQテンプレートマッチ → AI回答生成 → エスカレーション判定の3段階で適切な回答を提供します。
回答フロー
顧客問い合わせ受信
│
▼
① FAQテンプレートマッチング
├── マッチ → テンプレート回答を返信
│
└── マッチなし
│
▼
② AI回答生成(OpenAI / Gemini)
├── 信頼度高 → AI回答を返信
│
└── 信頼度低
│
▼
③ エスカレーション(人間対応へ)
各段階の詳細
① FAQテンプレートマッチング
- キーワードベースで事前登録済みのFAQテンプレートを検索
- よくある質問(配送目安・返品ポリシー等)には即座に定型文で回答
- マッチ率が80%以上で自動応答
② AI回答生成
- FAQマッチがない問い合わせをLLMに送信
- 過去の対応履歴をコンテキストとして渡し、一貫性のある回答を生成
- 回答の信頼度スコアを算出
③ エスカレーション
- AIが「自信がない」と判定した場合、Slackでオペレーターに通知
- 人間が対応した回答をFAQテンプレートに追加し、次回以降は自動対応
LLMルーティング
ai_llm_controller.py が複数プロバイダーを統一的に管理:
| プロバイダー | 用途 | 特徴 |
|---|---|---|
| OpenAI | 高精度回答 | GPT-4/3.5で自然な応答 |
| Gemini | コスト削減 | 低コストで高品質な回答 |
| Local LLM | 完全プライベート | llama.cppでローカル推論 |
ルーティングの機能
- ディスクキャッシュ: 500MB(diskcache)で同一プロンプトの再呼び出しを高速化
- フォールバック: プロバイダー障害時に自動的に別プロバイダーに切り替え
- レートリミット: API呼び出し制限を管理し、429エラーを回避
- OpenTelemetry計装: トレーシングでAPI呼び出しを監視・分析
技術的詳細
- チャットボットエンジン:
chatbot_service.pyが3段階分類を実装 - FAQモデル:
faq_template.pyでキーワードとテンプレート回答を管理 - 問い合わせ管理:
customer_inquiry.pyで対応履歴をDB保存