回答を求めてナレッジ ベースに対してクエリを実行する

ナレッジ ベースは公開する必要があります。 公開されると、ナレッジ ベースに対するクエリは、generateAnswer API を使用してランタイム予測エンドポイントで実行されます。 このクエリには、QnA Maker で回答に最適な一致候補を選択できるように、質問のテキストとその他の設定が含まれています。

Note

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

QnA Maker がユーザー クエリを処理して最適な回答を選択する方法

トレーニングされ、公開された QnA Maker ナレッジ ベースは、GenerateAnswer API で、ボットまたはその他のクライアント アプリケーションからユーザー クエリを受け取ります。 次の図は、ユーザー クエリを受け取ったときのプロセスを示しています。

ユーザー クエリのランク付けモデル プロセス

ランカー プロセス

このプロセスについて次の表で説明します。

手順 目的
1 クライアント アプリケーションがユーザー クエリを GenerateAnswer API に送信します。
2 QnA Maker が、言語検出、スペル チェック プログラム、およびワード ブレーカーを使用してユーザー クエリを前処理します。
3 この前処理は、最適な検索結果が得られるようユーザー クエリを変更するために行われます。
4 この変更されたクエリが Azure AI Search インデックスに送信され、top の数の結果を受け取ります。 正しい回答がこれらの結果にない場合、top の値をわずかに増やします。 一般的に、top の値が 10 の場合は、90% のクエリで役立ちます。 Azure Search は、この手順でストップ ワードをフィルター処理します。
5 QnA Maker が、構文とセマンティック ベースの特性付けを使用して、ユーザー クエリとフェッチされた QnA の結果の間の類似性を判断します。
6 機械学習されたランカー モデルによって、手順 5 のさまざまな機能が使用され、信頼スコアと新しいランク付け順序が決定されます。
7 新しい結果が、ランク順にクライアント アプリケーションに返されます。

使用される特徴は、単語レベルのセマンティクス、コーパスの用語レベルの重要性、2 つのテキスト文字列間の類似性と関連性を判別するディープ ラーニング済みのセマンティック モデルなどですが、これらに限定されません。

エンドポイントの HTTP 要求/応答

ナレッジ ベースを公開すると、アプリケーション (通常はチャット ボット) に統合できる REST ベースの HTTP エンドポイントがサービスによって作成されます。

回答を生成するユーザー クエリ要求

ユーザー クエリは、How do I add a collaborator to my app? など、エンド ユーザーがナレッジ ベースにたずねる質問です。 クエリは多くの場合、自然言語形式か、質問を表すいくつかのキーワードで行われます。たとえば、help with collaborators のようになります。 クエリはクライアント アプリケーションの HTTP 要求からナレッジ ベースに送信されます。

{
    "question": "How do I add a collaborator to my app?",
    "top": 6,
    "isTest": true,
    "scoreThreshold": 20,
    "strictFilters": [
    {
        "name": "QuestionType",
        "value": "Support"
    }],
    "userId": "sd53lsY="
}

scoreThresholdtopstrictFilters などのプロパティを設定することで応答を制御します。

会話コンテキストマルチターン機能と共に使用し、正しい最終的な回答が見つかるよう、会話を続けて質問と回答を練り上げます。

回答を生成する呼び出しからの応答

HTTP 応答は、特定のユーザー クエリの最適な一致に基づいて、ナレッジ ベースから取得された回答です。 応答には回答と予測スコアが含まれます。 top プロパティを使用して複数の上位回答を求めた場合、複数の上位回答が得られ、それぞれにスコアが付きます。

{
    "answers": [
        {
            "questions": [
                "How do I add a collaborator to my app?",
                "What access control is provided for the app?",
                "How do I find user management and security?"
            ],
            "answer": "Use the Azure portal to add a collaborator using Access Control (IAM)",
            "score": 100,
            "id": 1,
            "source": "Editorial",
            "metadata": [
                {
                    "name": "QuestionType",
                    "value": "Support"
                },
                {
                    "name": "ToolDependency",
                    "value": "Azure Portal"
                }
            ]
        }
    ]
}

次の手順