QnA Maker とは

Note

QnA Maker サービスは、2025 年 3 月 31 日に廃止される予定です。 現在、この質問応答機能の新しいバージョンは、Azure Cognitive Service for Language の一部として提供されています。 言語サービス内の質問応答機能については、質問応答に関する記事を参照してください。 QnA Maker の新しいリソースは、2022 年 10 月 1 日以降作成できません。 既存の QnA Maker のナレッジ ベースを質問応答に移行する方法については、移行ガイドを参照してください。

QnA Maker は、データに自然な会話レイヤーを作成できるクラウドベースの自然言語処理 (NLP) サービスです。 任意の入力に対して、カスタム ナレッジ ベース (KB) の情報から最も適切な回答を見つける目的で使用されます。

通常 QnA Maker は、ソーシャル メディア アプリケーション、チャット ボット、音声対応デスクトップ アプリケーションなど、会話型クライアント アプリケーションの作成に使用されます。

QnA Maker には顧客データは格納されません。 すべての顧客データ (質問への回答とチャット ログ) は、顧客が依存関係のあるサービス インスタンスをデプロイしているリージョンに格納されます。 依存関係のあるサービスの詳細については、こちらをご覧ください。

このドキュメントには、次の種類の記事が含まれています。

  • クイックスタートは、サービスの呼び出しと結果の取得を短時間で行えるようにする、ステップバイステップの手順です。
  • 攻略ガイドには、より具体的またはカスタマイズした方法でサービスを使用するための手順が記載されています。
  • 概念の記事では、サービスの機能と特長について詳しく説明します。
  • チュートリアルはより長文のガイドであり、より広範なビジネス ソリューションの 1 コンポーネントとしてこのサービスを使用する方法を示すものです。

QnA Maker を使用する場合

  • 静的な情報がある場合 - 回答のナレッジ ベースに静的な情報がある場合に、QnA Maker を使用します。 このナレッジ ベースは、PDF や URL などのドキュメントで作成したニーズに合わせてカスタマイズされています。
  • 要求、質問、またはコマンドに同じ回答を提供する場合 - 異なるユーザーが同じ質問を送信すると、同じ回答が返されます。
  • メタ情報に基づいて静的情報をフィルター処理する場合 - メタデータ タグを追加して、クライアント アプリケーションのユーザーと情報に関連する追加のフィルター オプションを提供します。 一般的なメタデータ情報には、chit-chat、コンテンツの種類または形式、コンテンツの目的、コンテンツの鮮度が含まれます。
  • 静的な情報を含むボットの会話を管理する場合 - ご利用のナレッジ ベースは、ユーザーの会話テキストまたはコマンドを取得して、それに応答します。 回答が、ナレッジ ベースで複数ターンのコンテキストで表される、事前に決定された会話フローの一部である場合、ボットはこのフローを簡単に提供できます。

ナレッジ ベースとは

QnA Maker では、質問と回答がペアになったナレッジ ベースにコンテンツをインポートします。 インポート プロセスでは、質問と回答のペア間のリレーションシップを意味する、構造化コンテンツと半構造化コンテンツのパーツ間のリレーションシップに関する情報を抽出します。 これらの質問と回答のペアを編集したり、新しいペアを追加したりできます。

質問と回答のペアのコンテンツには、次のものが含まれます。

  • 質問のすべての代替形式
  • 検索時に回答の選択肢をフィルター処理するために使用されるメタデータ タグ
  • 検索の絞り込みを続行するためのフォローアップ プロンプト

Example question and answer with metadata

ナレッジ ベースを公開すると、クライアント アプリケーションによってユーザーの質問がエンドポイントに送信されます。 QnA Maker サービスは、質問を処理して、最適な回答で応答します。

チャット ボットをプログラムから作成する

QnA Maker のナレッジ ベースが公開されると、クライアント アプリケーションは、ナレッジ ベースのエンドポイントに質問を送信し、結果を JSON 応答として受信します。 QnA Maker の一般的なクライアント アプリケーションはチャット ボットです。

Ask a bot a question and get answer from knowledge base content

手順 アクション
1 クライアント アプリケーションは、ユーザーの質問 (自分の言葉で表現されたテキスト) "プログラムによってナレッジ ベースを更新するにはどうすればよいですか?" を、ご利用のナレッジ ベース エンドポイントに送信します。
2 QnA Maker は、トレーニング済みのナレッジ ベースを使用して、正しい回答と、最適な回答の検索を絞り込むために使用できる任意のフォローアップ プロンプトを提供します。 QnA Maker では、JSON 形式で応答を返します。
3 クライアント アプリケーションは、JSON 応答を使用して、会話を継続する方法を判断します。 この判断には、上位の回答を表示することや、最適な回答を得るためにより多くの選択肢を提示することが挙げられます。

少量のコードでチャット ボットを作成する

QnA Maker ポータルでは、完全なナレッジ ベースの作成エクスペリエンスが提供されます。 ドキュメントをそのままの形式でナレッジ ベースにインポートできます。 これらのドキュメント (FAQ、製品マニュアル、スプレッドシート、Web ページなど) は、質問と回答のペアに変換されます。 各ペアは、フォローアップ プロンプト用に分析され、他のペアに接続されます。 最終的な "マークダウン" 形式は、画像やリンクを含む豊富なプレゼンテーションをサポートします。

ナレッジ ベースを編集したら、作業中の Azure Web アプリ ボットにそのナレッジ ベースを公開します。コードを記述する必要はありません。 Azure portal でボットをテストするか、ダウンロードして開発を続行します。

階層化されたランク付けによる質の高い回答

QnA Maker のシステムは、階層化されたランク付けアプローチです。 データは Azure Search に格納されます。これは、第 1 のランク付けレイヤーとしても機能します。 次に、Azure Search からの上位の結果が QnA Maker の NLP 再順位付けモデルを通じて渡され、最終的な結果と信頼度スコアが生成されます。

複数ターン会話

QnA Maker では、基本的な質問と回答のペアを改善するために、複数ターンのプロンプトとアクティブ ラーニングが提供されています。

複数ターンのプロンプトにより、質問と回答のペアを結び付ける機会が与えられます。 この結び付けにより、クライアント アプリケーションは上位の回答を提供し、最終的な回答の検索を絞り込むためにより多くの質問を提供することができます。

ナレッジ ベースが公開されたエンドポイントでユーザーからの質問を受け取ると、QnA Maker はこれらの実際の質問にアクティブ ラーニングを適用して、品質向上のためにナレッジ ベースへの変更を提案します。

開発ライフサイクル

QnA Maker では、完全な開発ライフサイクルに統合するために、コラボレーションと共に、作成、トレーニング、および発行のアクセス許可を提供します。

Conceptual image of development cycle

クイックスタートに取り組む

ほとんどの一般的なプログラミング言語向けのクイックスタートが提供されています。それぞれ基本的な設計パターンを学び、いずれも 10 分もかからずにコードを実行できるように作られています。 それぞれの機能のクイックスタートについては、次の各記事を参照してください。

次のステップ

QnA Maker には、カスタム ナレッジ ベースのビルド、管理、および展開に必要なすべてのものが用意されています。