FullStackEngineer 2018年5月3日更新

チャットボット(chatbot)

Index

24時間働くデジタル担当者:チャットボット(Rule-based / AI)

1 はじめに

一言でいうと

「テキストや音声を介して人間と対話し、質問への回答や処理の代行を自動で行うプログラム」 です。

なぜ今、重要なのか

カスタマーサポートの人手不足解消や、ユーザーの待ち時間短縮(CX向上)のために不可欠となっています。 さらに、近年のLLM(大規模言語モデル)の登場により、従来の「決められたことしか話せないボット」から、「文脈を理解し、柔軟に回答を生成できる高度なAIアシスタント」へと劇的な進化を遂げており、ビジネス活用の幅が爆発的に広がっています。

2 ビギナー向け・ドキュメント

概要:自販機型とコンシェルジュ型

チャットボットには大きく分けて2つのタイプがあります。

  1. シナリオ型(ルールベース): 「Aボタンが押されたらBと答える」という自動販売機のような仕組み。正確ですが、想定外の質問には答えられません。
  2. AI型(自然言語処理/LLM): 相手の言葉の意図を理解して答えるホテルのコンシェルジュのような仕組み。柔軟ですが、たまに嘘をついたり(ハルシネーション)、学習が必要です。

公式情報・推奨リソース

開発プラットフォームやライブラリの情報源です。

導入:Pythonで単純な応答ボットを作る

最も原始的な「キーワード反応型」のボットのロジックは、辞書(連想配列)ルックアップで作れます。

def simple_chatbot(user_input):
    # ルール(辞書)の定義
    responses = {
        "こんにちは": "こんにちは!何かお手伝いしましょうか?",
        "料金": "料金プランは、無料版と有料版(月額980円)があります。",
        "退会": "退会手続きは設定画面から行えます。",
    }

    # 入力の中にキーワードが含まれているか探す
    for key in responses:
        if key in user_input:
            return responses[key]

    # マッチしなかった場合
    return "すみません、よく分かりませんでした。「料金」や「退会」について聞いてください。"

# 実行テスト
print(simple_chatbot("こんにちは"))  # -> こんにちは!何かお手伝いしましょうか?
print(simple_chatbot("料金について教えて")) # -> 料金プランは...

3 会話集

開発現場や導入検討時によくあるQ&Aです。

Q1. ChatGPTがあれば、シナリオ型ボットはもう不要ですか?

Aさん: 「全部AIに任せれば楽ですよね?」 Bさん: 「いいえ、そうとも限りません。銀行の振込手続きのように『絶対に間違ってはいけない手順』がある場合や、FAQが固定されている場合は、従来のシナリオ型の方が確実で安全です。最近は両者を組み合わせるハイブリッド型が主流ですね。」

Q2. 導入したけど誰も使ってくれません…。

Aさん: 「右下にアイコンを出してるんですが、クリック率が低くて。」 Bさん: 「ユーザーは『ボットなんてどうせ解決しない』と思っています。『配送状況を確認する』といった具体的なメリットを最初の挨拶で提示したり、有人オペレーターへの切り替え(エスカレーション)導線をわかりやすく配置することが重要です。」

Q3. 「RAG(ラグ)」って何ですか?

Aさん: 「社内ボットを作るときによく聞く単語ですが…」 Bさん: 「ChatGPTなどのAIに、『社内のマニュアル(検索結果)』をカンニングさせてから回答させる技術のことです。これにより、AIが学習していない社内固有の知識についても正確に答えられるようになります。」

4 より深く理解する為に

アーキテクチャの分類

  1. ルールベース(シナリオ型):
    • フローチャートに従って分岐する。
    • メリット:回答品質が保証できる、低コスト。
    • デメリット:表記揺れに弱い、シナリオ作成の手間が膨大。
  2. 機械学習型(NLU/Intent分類):
    • 入力文から「意図(Intent)」と「重要語句(Entity)」を抽出する(例:「東京の天気」→ Intent:天気確認, Entity:東京)。
    • Dialogflowなどがこれにあたります。
  3. 生成AI型(LLM):
    • 大量のテキストデータを学習したモデルが、確率的に次の言葉を生成する。
    • 圧倒的に自然な会話が可能だが、事実と異なる内容を生成する「ハルシネーション」のリスク管理が必要。

UXデザインのベストプラクティス

  • ペルソナ設定: ボットのキャラクター(口調、名前)を一貫させることで、ユーザーの愛着と許容度を高めます。
  • クイックリプライ: ユーザーに文字を打たせず、選択肢ボタンを提示することで、入力の手間と誤解を防ぎます。
  • 透明性: 「私はAIです」と最初に明示する。人間だと誤認させないことは倫理的にも重要です。

5 関連ワード

  1. NLP (Natural Language Processing)
    • 自然言語処理。人間が話す言葉をコンピュータに処理させる技術全般。
  2. ハルシネーション (Hallucination)
    • AIがもっともらしい嘘をつく現象。「幻覚」という意味。チャットボットの信頼性を損なう最大のリスク。
  3. CUI (Character User Interface)
    • 文字(Character)で操作するインターフェース。チャットボットは「対話型インターフェース(CUI)」の一種です。
  4. 有人チャット切り替え(エスカレーション)
    • ボットで解決できない場合に、人間のオペレーターにバトンタッチする機能。
  5. プロンプトエンジニアリング
    • AIボットに対して、適切な回答を引き出すための指示出し(命令文)の設計技術。「あなたはプロのサポーターです」といった役割付与など。

6 要点チェック

  • 適材適所: 「決まった手続き」はシナリオ型、「曖昧な相談」はAI型。使い分けが重要。
  • 導線設計: ボットは置いて終わりではない。ユーザーがいつ、何のために使うかのUX設計が必要。
  • 学習とメンテ: ユーザーのログを分析し、「答えられなかった質問」を減らす継続的なチューニングが必要。
  • リスク管理: 生成AIを使う場合は、嘘をつくリスクを前提に、RAGなどの技術で根拠を明確にする。

最新記事一覧

続きを見る

関連コンテンツ

カテゴリー一覧

TOP フルスタックエンジニアを目指すに方々へ チャットボット(chatbot)