次の方法で共有


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

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

QnA Maker サービスは、2025 年 10 月 31 日に廃止されます (2025 年 3 月 31 日から延長)。 Azure AI Language の一部として、質問応答機能の新しいバージョンが提供されました。 言語サービス内の質問応答機能については、質問応答に関する記事を参照してください。 2022 年 10 月 1 日の時点で、新しい QnA Maker リソースを作成できなくなります。 2025 年 3 月 31 日以降、QnA Maker ポータルは使用できなくなります。 既存の 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"
                }
            ]
        }
    ]
}

次のステップ