ナレッジ ボットを設計する

この記事の対象: SDK v4

ほぼすべてのトピックに対応するナレッジ ボットを設計できます。 ナレッジ ボットの設計のユース ケースに関係なく、基本的な目的は常に同じです。データの本体を検索し、ユーザーが要求した情報を探して返すことです。

たとえば、ナレッジ ボットは、「この会議にはどのようなボット イベントがありますか」「次のレゲエ ショーはいつですか」「テーム・インパラとは誰ですか」 といったイベントに関する質問に答えることができます。また、「オペレーティング システムはどのように更新するのですか」「パスワードはどこでリセットできますか」など、IT 関連の質問に回答する場合もあります。 また、「ジョン・ドゥとは誰ですか」「ジョン・ドゥのメール アドレスは何ですか」といった、連絡先に関する質問に答えるナレッジ ボットもあるでしょう。

この記事では、ユーザーが情報を検索したり、質問したり、情報を操作したりするなど、ボットに追加できる AI 機能の一部について説明します。 Bot Framework SDK がサポートする Azure AI サービスの機能については、「自然言語の理解」を参照してください。

ヒント

Azure AI サービスには、進化するテクノロジが組み込まれています。 この記事では、新しい機能と古い機能の両方について説明します。

信頼度スコアについて

一部の機能により、ボットはユーザーの質問や疑問に一致するようにナレッジ ベースまたは言語モデルから情報を返すことができます。

たとえば、ユーザーが音楽ナレッジ ボットに (バンドの正式名称である "テーム インパラ" ではなく) "インパラ" についての情報をたずねた場合、ボットはその入力に最も関連性が高いと思われる情報を応答できます。 同様に、言語理解機能では、言語モデルを使用して、ユーザー入力から意図を抽出できます。 たとえば、ユーザーが旅行エージェント ボットに "3 日間部屋を予約する" よう要求した場合、ボットは "部屋を予約する" 意図を抽出し、詳細を収集してフォローアップする可能性があります。

検索と意図認識の両方で信頼度スコアが返されます。これは、エンジンが導き出した特定の結果の正しさの信頼度を示します。 信頼度スコアを使用して、結果を並べ替えたり、回答の全体的な信頼度に基づいて異なる応答を行ったりします。

Note

異なるサービスまたは機能の種類を組み合わせて使用する場合は、各ツールで入力をテストして、各モデルのしきい値スコアを決定します。 サービスと機能では異なるスコア付け基準が使用されるため、これらのツール全体で生成されるスコアは直接比較できません。 たとえば、QnA Maker サービスでは 0 から 100 の信頼範囲が使用され、質問応答機能では 0.0 から 1.0 の範囲が使用されます。

  • 信頼度が高い場合、ボットは "検索に最も一致するイベントです" または "部屋の予約をお手伝いします" と応答し、上位の回答を提示するか、フォローアップの質問を開始します。
  • 信頼度が低い場合は、ボットが "お探しのイベントはこの中にありますか?" または "これらにおいてあなたをお手伝いできます" と応答し、考えられる回答または選択肢の一覧を提示します。

トピックをフィルター処理するには

ユーザーが検索を絞り込んで絞り込むのに役立つナレッジ ボットを設計できます。 会話内では、ボットは通常の検索ではできない方法で、明確な質問をしたり、選択肢を提示したり、結果を検証したりできます。

たとえば、イベント ボットでは、一連の質問をすることで、ユーザーが関心を持っているイベントの種類を確認できます。 以下はやり取りの例です。

  1. ユーザー「イベント」。
  2. ボット「何に興味がありますか? 音楽、コメディ、映画....」。
  3. ユーザー「音楽」。
  4. ボット「どのような種類の音楽に関心がありますか? 何でもいいです。ロック/POP、ヒップホップ/ラップ、..."。
  5. ユーザー「ロック/POP」。
  6. ボット「ロック/POP を見に行きたい曜日はありますか? 金曜日、土曜日、日曜日、いつでもいいです」。
  7. ユーザー「土曜日」。
  8. ボットは「こちらが土曜日に開催されるロック/POP のショーです」と答え、見つかったショーの一覧を提示します。

各手順でユーザーの入力を処理して関連するオプションを示すことで、ボットはユーザーが探している情報までユーザーを案内します。 ボットは、その情報を提供した後、今後同様の情報を探すときのより効率的な方法を示すこともできます。

ちなみに、「ロック、金曜日」と入力したり、イベント名で検索したりすることもできます。

関連する Azure サービスの詳細については、自然言語理解に関する記事の「検索」を参照してください。

質問に回答する

ナレッジ ボットを設計して、よくある質問に答えることができます。 多くの場合、質問と回答の機能をサポートするサービスでは、ユーザーまたはボットは次のことが可能です。

  • ナレッジ ベースを管理およびトレーニングする
  • データ ファイルや Web ページなど、ナレッジ ベースに情報をインポートします。
  • ユーザーの質問に最も適した回答を推測します。
  • ユーザーにフォローアップの質問をします。ユーザーが探している回答を見つけるのに役立ちます。

関連する Azure サービスの詳細については、自然言語理解に関する記事の質問と回答を参照してください。

意図を解釈するには

ナレッジ ボットによっては、ユーザーのメッセージを分析してユーザーの意図やその他の重要な情報を特定できるように、自然言語処理 (NLP) 機能が必要になります。

たとえば、音楽再生ボットでは、ユーザーが "Play Reggae" (レゲエを再生)、"Play Bob Marley" (ボブ マーリーを再生)、"Play One Love" (ワン ラブを再生) のようなメッセージを入力することがあります。 言語モデルをトレーニングすれば、すべてのアーティスト、ジャンル、曲名でトレーニングを行うことなく、これらの各メッセージを "playMusic" という意図にマップできます。

言語モデルでは、再生するもの、エンティティが、ジャンルなのか、アーティストなのか、歌なのかを理解できない場合があります。 ただし、ボットはこの情報を使用してそのエンティティを検索し、そこから続行できます。

関連する Azure サービスの詳細については、自然言語理解に関する記事の「言語理解」を参照してください。

複数の機能を統合するには

各 NLP 機能は、独自の強力なツールです。 ただし、ボットはこれらの機能と他の機能を組み合わせて、より流動的で自然なエクスペリエンスをユーザーに提供できます。 信頼度スコアを使用して、ユーザーのメッセージと最もマップする機能を特定し、最も一致するものがあいまいな場合はフォローアップの質問をします。

たとえば、このようなボットを使用すると、ユーザーは次のことができます。

  • 参加したいという関心のあるショーを見つける。
  • アーティスト、会場、イベントに関する情報を取得する。
  • チケットを購入する、または将来のイベントのお知らせにサインアップする。

関連する Azure サービスの詳細については、自然言語理解に関する記事の「複数の機能を一緒に使用する」を参照してください。

サンプルを探す

Bot Framework サンプル リポジトリには、言語理解機能を示すサンプル ボットがいくつかあります。

サンプル サンプル名 説明
11 QnA Maker (シンプル) QnA Maker を使用して、一連の シングルターン 会話として質問に回答します。
13 コア ボット LUIS を使用してユーザーの意図を解釈します。
14 ディスパッチを使用した NLP Orchestrator を使用して LUIS または QnA Maker にユーザー メッセージをディスパッチします。
49 QnA Maker (上級) QnA Maker のマルチターン機能とアクティブ ラーニング機能を使用して質問に回答します。

Note

Azure AI QnA Maker は 2025 年 3 月 31 日に廃止されます。 2022 年 10 月 1 日以降、新しい QnA Maker リソースまたはナレッジ ベースを作成できなくなります。 Azure AI Language の一部として、質問応答機能の新しいバージョンが提供されました。

Azure AI Language の機能であるカスタム質問応答は、QnA Maker サービスの更新バージョンです。 Bot Framework SDK での質問と回答のサポートの詳細については、「自然言語の理解」を参照してください。

Note

Language Understanding (LUIS) は、2025 年 10 月 1 日に廃止されます。 2023 年 4 月 1 日以降は、新しい LUIS リソースを作成することはできません。 より新しいバージョンの言語理解が、現在、Azure AI Language の一部として提供されています。

Azure AI Language の機能である会話言語理解 (CLU) は、LUIS の更新バージョンです。 Bot Framework SDK での言語理解のサポートの詳細については、「自然言語の理解」を参照してください。

Azure SDK for .NET および Azure SDK for Python リポジトリには、いくつかのサンプルもあります。

機能 README のサンプル
質問と回答 C#, Python
会話言語理解、オーケストレーション ワークフロー C#, Python