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保存

This site uses Just the Docs, a documentation theme for Jekyll.