クイック スタート:ナレッジ ベースから回答を取得するQuickstart: Get an answer from knowledge base

この cURL ベースのクイック スタートでは、ナレッジ ベースから回答を取得する手順を紹介しています。This cURL-based quickstart walks you through getting an answer from your knowledge base.

前提条件Prerequisites

  • 最新の cURLLatest cURL.
  • 以下が必要です。You must have

注意

ナレッジ ベースからの質問への回答を生成する準備ができたら、ナレッジ ベースをトレーニングして発行する必要があります。When you are ready to generate an answer to a question from your knowledge base, you must train and publish your knowledge base. ナレッジ ベースが発行されると、 [発行] ページに、回答を生成するための HTTP 要求の設定が表示されます。When your knowledge base is published, the Publish page displays the HTTP request settings to generate an answer. [cURL] タブに、コマンドライン ツールから回答を生成するために必要な設定が表示されます。The cURL tab shows the settings required to generate an answer from the command-line tool.

メタデータを使用して回答をフィルター処理するUse metadata to filter answer

前のクイックスタートのナレッジ ベースを使用して、メタデータに基づいて回答を照会します。Use the knowledge base from the previous quick to query for an answer based on metadata.

  1. ナレッジ ベースの [Settings](設定) ページで [CURL] タブを選択し、ナレッジ ベースからの回答を生成するために使用される cURL の例を表示します。From the knowledge base's Settings page, select the CURL tab to see an example cURL command used to generate an answer from the knowledge base.

  2. このコマンドを編集できるように、編集可能な環境 (テキスト ファイルなど) にコピーします。Copy the command to an editable environment (such as a text file) so you can edit the command. 次のように質問の値を編集して、service:qna_maker のメタデータが QnA ペアのフィルターとして使用されるようにします。Edit the question value as follows so that the metadata of service:qna_maker is used as a filter for the QnA pairs.

    curl -X POST https://replace-with-your-resource-name.azurewebsites.net/qnamaker/knowledgebases/replace-with-your-knowledge-base-id/generateAnswer -H "Authorization: EndpointKey replace-with-your-endpoint-key" -H "Content-type: application/json" -d "{'top':30, 'question':'size','strictFilters': [{'name':'service','value':'qna_maker'}]}"
    

    質問はたったの 1 単語 (size) です。これにより、2 つの QnA ペアのいずれかを返すことができます。The question is just a single word, size, which can return either of the two QnA pairs. strictFilters 配列の指定により、qna_maker の回答のみに応答が限定されます。The strictFilters array tells the response to reduce to just the qna_maker answers.

  3. この応答には、フィルター条件を満たした回答のみが含まれます。The response includes only the answer that meets the filter criteria. 次の cURL 応答は、読みやすくするために書式設定されています。The following cURL response has been formatted for readability:

    {
        "answers": [
            {
                "questions": [
                    "How large a knowledge base can I create?",
                    "What is the max size of a knowledge base?",
                    "How many GB of data can a knowledge base hold?"
                ],
                "answer": "The size of the knowledge base depends on the SKU of Azure search you choose when creating the QnA Maker service. Read [here](https://docs.microsoft.com/azure/cognitive-services/qnamaker/tutorials/choosing-capacity-qnamaker-deployment) for more details.",
                "score": 68.76,
                "id": 3,
                "source": "https://docs.microsoft.com/azure/cognitive-services/qnamaker/troubleshooting",
                "metadata": [
                    {
                        "name": "link_in_answer",
                        "value": "true"
                    },
                    {
                        "name": "service",
                        "value": "qna_maker"
                    }
                ],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": null
    }
    

    検索語句は満たしていないもののフィルターの条件は満たしているような質問と回答のペアがあったとしても、それは返されません。If there is a question and answer pair that didn't meet the search term but did meet the filter, it would not be returned. 代わりに一般的な回答 No good match found in KB. が返されます。Instead, the general answer No good match found in KB. is returned.

デバッグ クエリ プロパティを使用するUse debug query property

注意

すべての依存関係に Debug プロパティの使用をお勧めするわけではありません。We don't recommend to use Debug property for any dependency. このプロパティは、トラブルシューティングで製品チームを支援するために追加されました。This property has been added to help the product team in troubleshooting.

デバッグ情報により、返された回答がどのように決定されたかを理解できます。Debug information helps you understand how the returned answer was determined. これは役に立ちますが、必須ではありません。While it is helpful, it is not necessary. デバッグ情報を含む回答を生成するには、debug プロパティを追加します。To generate an answer with debug information, add the debug property:

Debug: {Enable:true}
  1. cURL コマンドを編集して debug プロパティを含め、詳細を表示します。Edit the cURL command to include the debug property to see more information.

    curl -X POST https://replace-with-your-resource-name.azurewebsites.net/qnamaker/knowledgebases/replace-with-your-knowledge-base-id/generateAnswer -H "Authorization: EndpointKey replace-with-your-endpoint-key" -H "Content-type: application/json" -d "{'question':'size', 'Debug':{'Enable':true}}"
    
  2. 応答には、回答に関する関連情報が含まれます。The response includes the relevant information about the answer. 簡潔にするために、次の JSON 出力では、一部のデバッグの詳細が省略記号に置き換えられています。In the following JSON output, some debug details have been replaced with ellipsis for brevity.

    {
        "answers": [
            {
                "questions": [
                    "How do I share a knowledge base with others?"
                ],
                "answer": "Sharing works at the level of a QnA Maker service, that is, all knowledge bases in the service will be shared. Read [here](https://docs.microsoft.com/azure/cognitive-services/qnamaker/how-to/collaborate-knowledge-base) to learn how to collaborate on a knowledge base.",
                "score": 56.07,
                "id": 5,
                "source": "https://docs.microsoft.com/azure/cognitive-services/qnamaker/troubleshooting",
                "metadata": [],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": {
            "userQuery": {
                "question": "How do I programmatically update my Knowledge Base?",
                "top": 1,
                "userId": null,
                "strictFilters": [],
                "isTest": false,
                "debug": {
                    "enable": true,
                    "recordL1SearchLatency": false,
                    "mockQnaL1Content": null
                },
                "rankerType": 0,
                "context": null,
                "qnaId": 0,
                "scoreThreshold": 0.0
            },
            "rankerInfo": {
                "specialFuzzyQuery": "how do i programmatically~6 update my knowledge base",
                "synonyms": "what s...",
                "rankerLanguage": "English",
                "rankerFileName": "https://qnamakerstore.blob.core.windows.net/qnamakerdata/rankers/ranker-English.ini",
                "rankersDirectory": "D:\\home\\site\\wwwroot\\Data\\QnAMaker\\rd0003ffa60fc45.24.0\\RankerData\\Rankers",
                "allQnAsfeatureValues": {
                    "WordnetSimilarity": {
                        "5": 0.54706300120043716,...
                    },
                    ...
                },
                "rankerVersion": "V2",
                "rankerModelType": "TreeEnsemble",
                "rankerType": 0,
                "indexResultsCount": 25,
                "reRankerResultsCount": 1
            },
            "runtimeVersion": "5.24.0",
            "indexDebugInfo": {
                "indexDefinition": {
                    "name": "064a4112-bd65-42e8-b01d-141c4c9cd09e",
                    "fields": [...
                    ],
                    "scoringProfiles": [],
                    "defaultScoringProfile": null,
                    "corsOptions": null,
                    "suggesters": [],
                    "analyzers": [],
                    "tokenizers": [],
                    "tokenFilters": [],
                    "charFilters": [],
                    "@odata.etag": "\"0x8D7A920EA5EE6FE\""
                },
                "qnaCount": 117,
                "parameters": {},
                "azureSearchResult": {
                    "continuationToken": null,
                    "@odata.count": null,
                    "@search.coverage": null,
                    "@search.facets": null,
                    "@search.nextPageParameters": null,
                    "value": [...],
                    "@odata.nextLink": null
                }
            },
            "l1SearchLatencyInMs": 0,
            "qnaL1Results": {...}
        },
        "activeLearningEnabled": true
    }
    

テスト ナレッジ ベースを使用するUse test knowledge base

テスト ナレッジ ベースから回答を取得するには、本文のプロパティ isTest を使用します。If you want to get an answer from the test knowledge base, use the isTest body property.

このプロパティはブール値です。The property is a boolean value.

isTest:true

cURL コマンドは次のようになります。The cURL command looks like:

curl -X POST https://replace-with-your-resource-name.azurewebsites.net/qnamaker/knowledgebases/replace-with-your-knowledge-base-id/generateAnswer -H "Authorization: EndpointKey replace-with-your-endpoint-key" -H "Content-type: application/json" -d "{'question':'size', 'IsTest':true}"

JSON 応答では、発行されたナレッジ ベース クエリと同じスキーマが使用されます。The JSON response uses the same schema as the published knowledge base query.

注意

テスト ナレッジ ベースと発行されたナレッジ ベースがまったく同じ場合でも、テスト インデックスはリソース内のすべてのナレッジ ベース間で共有されるため、少し異なるバリエーションが存在する可能性があります。If the test and published knowledge bases are exactly the same, there may still be some slight variation because the test index is shared among all knowledge bases in the resource.

cURL を使用しておしゃべりの回答を照会するUse cURL to query for a Chit-chat answer

  1. cURL 対応のターミナルで、ユーザーからのボットの会話を終了する文言 (Thank you など) を質問として使用します。In the cURL-enabled terminal, use a bot conversation-ending statement from the user, such as Thank you as the question. 他に設定するプロパティはありません。There aren't any other properties to set.

    curl -X POST https://replace-with-your-resource-name.azurewebsites.net/qnamaker/knowledgebases/replace-with-your-knowledge-base-id/generateAnswer -H "Authorization: EndpointKey replace-with-your-endpoint-key" -H "Content-type: application/json" -d "{'question':'thank you'}"
    
  2. cURL コマンドを実行し、スコアと回答を含む JSON 応答を受け取ります。Run the cURL command and receive the JSON response, including the score and answer.

    {
      "answers": [
          {
              "questions": [
                  "I thank you",
                  "Oh, thank you",
                  "My sincere thanks",
                  "My humblest thanks to you",
                  "Marvelous, thanks",
                  "Marvelous, thank you kindly",
                  "Marvelous, thank you",
                  "Many thanks to you",
                  "Many thanks",
                  "Kthx",
                  "I'm grateful, thanks",
                  "Ahh, thanks",
                  "I'm grateful for that, thank you",
                  "Perfecto, thanks",
                  "I appreciate you",
                  "I appreciate that",
                  "I appreciate it",
                  "I am very thankful for that",
                  "How kind, thank you",
                  "Great, thanks",
                  "Great, thank you",
                  "Gracias",
                  "Gotcha, thanks",
                  "Gotcha, thank you",
                  "Awesome thanks!",
                  "I'm grateful for that, thank you kindly",
                  "thank you pal",
                  "Wonderful, thank you!",
                  "Wonderful, thank you very much",
                  "Why thank you",
                  "Thx",
                  "Thnx",
                  "That's very kind",
                  "That's great, thanks",
                  "That is lovely, thanks",
                  "That is awesome, thanks!",
                  "Thanks bot",
                  "Thanks a lot",
                  "Okay, thanks!",
                  "Thank you so much",
                  "Perfect, thanks",
                  "Thank you my friend",
                  "Thank you kindly",
                  "Thank you for that",
                  "Thank you bot",
                  "Thank you",
                  "Right on, thanks very much",
                  "Right on, thanks a lot",
                  "Radical, thanks",
                  "Rad, thanks",
                  "Rad thank you",
                  "Wonderful, thanks!",
                  "Thanks"
              ],
              "answer": "You're welcome.",
              "score": 100.0,
              "id": 75,
              "source": "qna_chitchat_Professional.tsv",
              "metadata": [
                  {
                      "name": "editorial",
                      "value": "chitchat"
                  }
              ],
              "context": {
                  "isContextOnly": false,
                  "prompts": []
              }
          }
      ],
      "debugInfo": null,
      "activeLearningEnabled": true
    }
    

    Thank you という質問はおしゃべりの質問に完全に一致したため、QnA Maker は 100 というスコアにより完全に信頼できます。Because the question of Thank you exactly matched a Chit-chat question, QnA Maker is completely confident with the score of 100. また、QnA Maker からは、関連するすべての質問のほか、おしゃべりのメタデータ タグ情報を含むメタデータ プロパティも返されました。QnA Maker also returned all the related questions, as well as the metadata property containing the Chit-chat metadata tag information.

しきい値と既定の回答を使用するUse threshold and default answer

回答の最小しきい値を要求できます。You can request a minimum threshold for the answer. しきい値が満たされない場合は、既定の回答が返されます。If the threshold is not met, the default answer is returned.

  1. threshold プロパティを追加し、しきい値 80% 以上を指定して size に対する回答を要求します。Add the threshold property to ask for an answer to size with a threshold of 80% or better. ナレッジ ベースでは、質問のスコアが 71% であるためその回答が見つかりません。The knowledge base should not find that answer because the question's score is 71%. 結果では、ナレッジ ベースの作成時に指定した既定の回答が返されます。The result returns the default answer you provided when you created the knowledge base.

    curl -X POST https://replace-with-your-resource-name.azurewebsites.net/qnamaker/knowledgebases/replace-with-your-knowledge-base-id/generateAnswer -H "Authorization: EndpointKey replace-with-your-endpoint-key" -H "Content-type: application/json" -d "{'question':'size', 'scoreThreshold':80.00}"
    
  2. cURL コマンドを実行し、JSON 応答を受け取ります。Run the cURL command and receive the JSON response.

    {
        "answers": [
            {
                "questions": [],
                "answer": "No good match found in KB.",
                "score": 0.0,
                "id": -1,
                "source": null,
                "metadata": []
            }
        ],
        "debugInfo": null,
        "activeLearningEnabled": true
    }
    

    QnA Maker からは、信頼できないことを意味するスコア 0 が返されました。QnA Maker returned a score of 0, which means no confidence. 既定の回答も返されました。It also returned the default answer.

  3. しきい値を60% に変更し、クエリを再度要求します。Change the threshold value to 60% and request the query again:

    curl -X POST https://replace-with-your-resource-name.azurewebsites.net/qnamaker/knowledgebases/replace-with-your-knowledge-base-id/generateAnswer -H "Authorization: EndpointKey replace-with-your-endpoint-key" -H "Content-type: application/json" -d "{'question':'size', 'scoreThreshold':60.00}"
    

    返された JSON で回答が見つかりました。The returned JSON found the answer.

    {
        "answers": [
            {
                "questions": [
                    "How large a knowledge base can I create?",
                    "What is the max size of a knowledge base?",
                    "How many GB of data can a knowledge base hold?"
                ],
                "answer": "The size of the knowledge base depends on the SKU of Azure search you choose when creating the QnA Maker service. Read [here](https://docs.microsoft.com/azure/cognitive-services/qnamaker/tutorials/choosing-capacity-qnamaker-deployment) for more details.",
                "score": 71.1,
                "id": 3,
                "source": "https://docs.microsoft.com/azure/cognitive-services/qnamaker/troubleshooting",
                "metadata": [
                    {
                        "name": "link_in_answer",
                        "value": "true"
                    },
                    {
                        "name": "server",
                        "value": "qna_maker"
                    }
                ],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": null,
        "activeLearningEnabled": true
    }
    

この Postman ベースのクイック スタートでは、ナレッジ ベースから回答を取得する手順を紹介しています。This Postman-based quickstart walks you through getting an answer from your knowledge base.

前提条件Prerequisites

注意

ナレッジ ベースからの質問への回答を生成する準備ができたら、ナレッジ ベースをトレーニングして発行する必要があります。When you are ready to generate an answer to a question from your knowledge base, you must train and publish your knowledge base. ナレッジ ベースが発行されると、 [発行] ページに、回答を生成するための HTTP 要求の設定が表示されます。When your knowledge base is published, the Publish page displays the HTTP request settings to generate an answer. [Postman] タブには、回答の生成に必要な設定が表示されます。The Postman tab shows the settings required to generate an answer.

要求に対して Postman を設定するSet up Postman for requests

このクイックスタートでは、Postman の POST 要求と同じ設定を使用し、照会する内容に基づいて、サービスに送信される本文の JSON を POST するように構成します。This quickstart uses the same settings for the Postman POST request then configures to POST body JSON sent to the service based on what you are trying to query for.

この手順を使用して Postman を構成し、次に、後続の各セクションを読んで POST 本文の JSON を構成します。Use this procedure to configure Postman, then read each subsequent section to configure the POST body JSON.

  1. ナレッジ ベースの [Settings](設定) ページで [Postman] タブを選択し、ナレッジ ベースからの回答を生成するために使用される構成を表示します。From the knowledge base's Settings page, select the Postman tab to see the configuration used to generate an answer from the knowledge base. Postman で使用する次の情報をコピーします。Copy the following information to use in Postman.

    名前Name 設定Setting 目的と値Purpose and value
    POST /knowledgebases/replace-with-your-knowledge-base-id/generateAnswer これは、URL の HTTP メソッドとルートです。This is the HTTP method and route for the URL.
    Host https://YOUR-RESOURCE_NAME.azurewebsites.net/qnamaker これは URL のホストです。This is the host of the URL. Host と Post の値を連結して、完全な generateAnswer URL を取得します。Concatenate the Host and Post values to get the complete generateAnswer URL.
    Authorization EndpointKey xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Azure に対する要求を承認するためのヘッダー値。The header value for to authorize your request to Azure.
    Content-type application/json コンテンツのヘッダー値。The header value for your content.
    {"question":"<Your question>"} JSON オブジェクトとしての POST 要求の本文。The body of the POST request as a JSON object. この値は、クエリ実行の目的に応じて、次の各セクションで異なります。This value will change in each following section depending on what the query is meant to do.
  2. Postman を開き、発行済みのナレッジ ベース設定を使用して、新しい基本的な POST 要求を作成します。Open Postman and create a new basic POST request with your published knowledge base settings. 以降のセクションでは、POST 本文の JSON を変更して、ナレッジ ベースに対するクエリを変更します。In the following sections, alter the POST body JSON to change the query to your knowledge base.

メタデータを使用して回答をフィルター処理するUse metadata to filter answer

前のクイックスタートでは、2 つの異なる質問を区別するために、メタデータが 2 つの QnA ペアに追加されました。In a previous quickstart, metadata was added to two QnA pairs to distinguish between two different questions. このメタデータをクエリに追加して、関連する QnA ペアのみにフィルターを制限します。Add the metadata to the query to restrict the filter to just the relevant QnA pair.

  1. Postman で、service:qna_maker の名前と値のペアを使用して strictFilters プロパティを追加することによって、クエリの JSON のみを変更します。In Postman, change only the query JSON by adding the strictFilters property with the name/value pair of service:qna_maker. 本文の JSON は次のようになります。The body JSON should be:

    {
        'question':'size',
        'strictFilters': [
            {
                'name':'service','value':'qna_maker'
            }
        ]
    }
    

    質問はたったの 1 単語 (size) です。これにより、2 つの質問と回答のペアのいずれかを返すことができます。The question is just a single word, size, which can return either of the two question and answer pairs. strictFilters 配列の指定により、qna_maker の回答のみに応答が限定されます。The strictFilters array tells the response to reduce to just the qna_maker answers.

  2. この応答には、フィルター条件を満たした回答のみが含まれます。The response includes only the answer that meets the filter criteria.

    次の応答は、読みやすくするために書式設定されています。The following response has been formatted for readability:

    {
        "answers": [
            {
                "questions": [
                    "How large a knowledge base can I create?",
                    "What is the max size of a knowledge base?",
                    "How many GB of data can a knowledge base hold?"
                ],
                "answer": "The size of the knowledge base depends on the SKU of Azure search you choose when creating the QnA Maker service. Read [here](https://docs.microsoft.com/azure/cognitive-services/qnamaker/tutorials/choosing-capacity-qnamaker-deployment) for more details.",
                "score": 68.76,
                "id": 3,
                "source": "https://docs.microsoft.com/azure/cognitive-services/qnamaker/troubleshooting",
                "metadata": [
                    {
                        "name": "link_in_answer",
                        "value": "true"
                    },
                    {
                        "name": "service",
                        "value": "qna_maker"
                    }
                ],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": null
    }
    

    検索語句は満たしていないもののフィルターの条件は満たしているような質問と回答のペアがあったとしても、それは返されません。If there is a question and answer pair that didn't meet the search term but did meet the filter, it would not be returned. 代わりに一般的な回答 No good match found in KB. が返されます。Instead, the general answer No good match found in KB. is returned.

デバッグ クエリ プロパティを使用するUse debug query property

注意

すべての依存関係に Debug プロパティの使用をお勧めするわけではありません。We don't recommend to use Debug property for any dependency. このプロパティは、トラブルシューティングで製品チームを支援するために追加されました。This property has been added to help the product team in troubleshooting.

デバッグ情報により、返された回答がどのように決定されたかを理解できます。Debug information helps you understand how the returned answer was determined. これは役に立ちますが、必須ではありません。While it is helpful, it is not necessary. デバッグ情報を含む回答を生成するには、debug プロパティを追加します。To generate an answer with debug information, add the debug property:

  1. Postman で、debug プロパティを追加することによって、本文の JSON のみを変更します。In Postman, change only the body JSON by adding the debug property. JSON は次のようになります。The JSON should be:

    {
        'question':'size',
        'Debug': {
            'Enable':true
        }
    
    }
    
  2. 応答には、回答に関する関連情報が含まれます。The response includes the relevant information about the answer. 次の JSON 出力では、一部のデバッグの詳細が省略記号に置き換えられています。In the following JSON output, some debug details have been replaced with ellipsis.

    {
        "answers": [
            {
                "questions": [
                    "How do I share a knowledge base with others?"
                ],
                "answer": "Sharing works at the level of a QnA Maker service, that is, all knowledge bases in the service will be shared. Read [here](https://docs.microsoft.com/azure/cognitive-services/qnamaker/how-to/collaborate-knowledge-base) how to collaborate on a knowledge base.",
                "score": 56.07,
                "id": 5,
                "source": "https://docs.microsoft.com/azure/cognitive-services/qnamaker/troubleshooting",
                "metadata": [],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": {
            "userQuery": {
                "question": "How do I programmatically update my Knowledge Base?",
                "top": 1,
                "userId": null,
                "strictFilters": [],
                "isTest": false,
                "debug": {
                    "enable": true,
                    "recordL1SearchLatency": false,
                    "mockQnaL1Content": null
                },
                "rankerType": 0,
                "context": null,
                "qnaId": 0,
                "scoreThreshold": 0.0
            },
            "rankerInfo": {
                "specialFuzzyQuery": "how do i programmatically~6 update my knowledge base",
                "synonyms": "what s...",
                "rankerLanguage": "English",
                "rankerFileName": "https://qnamakerstore.blob.core.windows.net/qnamakerdata/rankers/ranker-English.ini",
                "rankersDirectory": "D:\\home\\site\\wwwroot\\Data\\QnAMaker\\rd0003ffa60fc45.24.0\\RankerData\\Rankers",
                "allQnAsfeatureValues": {
                    "WordnetSimilarity": {
                        "5": 0.54706300120043716,...
                    },
                    ...
                },
                "rankerVersion": "V2",
                "rankerModelType": "TreeEnsemble",
                "rankerType": 0,
                "indexResultsCount": 25,
                "reRankerResultsCount": 1
            },
            "runtimeVersion": "5.24.0",
            "indexDebugInfo": {
                "indexDefinition": {
                    "name": "064a4112-bd65-42e8-b01d-141c4c9cd09e",
                    "fields": [...
                    ],
                    "scoringProfiles": [],
                    "defaultScoringProfile": null,
                    "corsOptions": null,
                    "suggesters": [],
                    "analyzers": [],
                    "tokenizers": [],
                    "tokenFilters": [],
                    "charFilters": [],
                    "@odata.etag": "\"0x8D7A920EA5EE6FE\""
                },
                "qnaCount": 117,
                "parameters": {},
                "azureSearchResult": {
                    "continuationToken": null,
                    "@odata.count": null,
                    "@search.coverage": null,
                    "@search.facets": null,
                    "@search.nextPageParameters": null,
                    "value": [...],
                    "@odata.nextLink": null
                }
            },
            "l1SearchLatencyInMs": 0,
            "qnaL1Results": {...}
        },
        "activeLearningEnabled": true
    }
    

テスト ナレッジ ベースを使用するUse test knowledge base

テスト ナレッジ ベースから回答を取得するには、本文のプロパティ isTest を使用します。If you want to get an answer from the test knowledge base, use the isTest body property.

Postman で、isTest プロパティを追加することによって、本文の JSON のみを変更します。In Postman, change only the body JSON by adding the isTest property. JSON は次のようになります。The JSON should be:

{
    'question':'size',
    'isTest': true
}

JSON 応答では、発行されたナレッジ ベース クエリと同じスキーマが使用されます。The JSON response uses the same schema as the published knowledge base query.

注意

テスト ナレッジ ベースと発行されたナレッジ ベースがまったく同じ場合でも、テスト インデックスはリソース内のすべてのナレッジ ベース間で共有されるため、少し異なるバリエーションが存在する可能性があります。If the test and published knowledge bases are exactly the same, there may still be some slight variation because the test index is shared among all knowledge bases in the resource.

おしゃべりの回答を照会するQuery for a Chit-chat answer

  1. Postman で、ユーザーからの会話を終了する文言に対する本文の JSON のみを変更します。In Postman, change only the body JSON to a conversation-ending statement from the user. JSON は次のようになります。The JSON should be:

    {
        'question':'thank you'
    }
    
  2. 応答には、スコアと回答が含まれます。The response includes the score and answer.

    {
      "answers": [
          {
              "questions": [
                  "I thank you",
                  "Oh, thank you",
                  "My sincere thanks",
                  "My humblest thanks to you",
                  "Marvelous, thanks",
                  "Marvelous, thank you kindly",
                  "Marvelous, thank you",
                  "Many thanks to you",
                  "Many thanks",
                  "Kthx",
                  "I'm grateful, thanks",
                  "Ahh, thanks",
                  "I'm grateful for that, thank you",
                  "Perfecto, thanks",
                  "I appreciate you",
                  "I appreciate that",
                  "I appreciate it",
                  "I am very thankful for that",
                  "How kind, thank you",
                  "Great, thanks",
                  "Great, thank you",
                  "Gracias",
                  "Gotcha, thanks",
                  "Gotcha, thank you",
                  "Awesome thanks!",
                  "I'm grateful for that, thank you kindly",
                  "thank you pal",
                  "Wonderful, thank you!",
                  "Wonderful, thank you very much",
                  "Why thank you",
                  "Thx",
                  "Thnx",
                  "That's very kind",
                  "That's great, thanks",
                  "That is lovely, thanks",
                  "That is awesome, thanks!",
                  "Thanks bot",
                  "Thanks a lot",
                  "Okay, thanks!",
                  "Thank you so much",
                  "Perfect, thanks",
                  "Thank you my friend",
                  "Thank you kindly",
                  "Thank you for that",
                  "Thank you bot",
                  "Thank you",
                  "Right on, thanks very much",
                  "Right on, thanks a lot",
                  "Radical, thanks",
                  "Rad, thanks",
                  "Rad thank you",
                  "Wonderful, thanks!",
                  "Thanks"
              ],
              "answer": "You're welcome.",
              "score": 100.0,
              "id": 75,
              "source": "qna_chitchat_Professional.tsv",
              "metadata": [
                  {
                      "name": "editorial",
                      "value": "chitchat"
                  }
              ],
              "context": {
                  "isContextOnly": false,
                  "prompts": []
              }
          }
      ],
      "debugInfo": null,
      "activeLearningEnabled": true
    }
    

    Thank you という質問はおしゃべりの質問に完全に一致したため、QnA Maker は 100 というスコアにより完全に信頼できます。Because the question of Thank you exactly matched a Chit-chat question, QnA Maker is completely confident with the score of 100. また、QnA Maker からは、関連するすべての質問のほか、おしゃべりのメタデータ タグ情報を含むメタデータ プロパティも返されました。QnA Maker also returned all the related questions, as well as the metadata property containing the Chit-chat metadata tag information.

しきい値と既定の回答を使用するUse threshold and default answer

回答の最小しきい値を要求できます。You can request a minimum threshold for the answer. しきい値が満たされない場合は、既定の回答が返されます。If the threshold is not met, the default answer is returned.

  1. Postman で、ユーザーからの会話を終了する文言に対する本文の JSON のみを変更します。In Postman, change only the body JSON to a conversation-ending statement from the user. JSON は次のようになります。The JSON should be:

    {
        'question':'size',
        'scoreThreshold':80.00
    }
    

    ナレッジ ベースでは、質問のスコアが 71% であるためその回答が見つからず、ナレッジ ベース作成時に指定した既定の回答が代わりに返されます。The knowledge base should not find that answer because the question's score is 71%, and instead return the default answer you provided when you created the knowledge base.

    スコアと回答を含む、返される JSON 応答は次のとおりです。The returned JSON response, including the score and answer is:

    {
        "answers": [
            {
                "questions": [],
                "answer": "No good match found in KB.",
                "score": 0.0,
                "id": -1,
                "source": null,
                "metadata": []
            }
        ],
        "debugInfo": null,
        "activeLearningEnabled": true
    }
    

    QnA Maker からは、信頼できないことを意味するスコア 0 が返されました。QnA Maker returned a score of 0, which means no confidence. 既定の回答も返されました。It also returned the default answer.

  2. しきい値を60% に変更し、クエリを再度要求します。Change the threshold value to 60% and request the query again:

    {
        'question':'size',
        'scoreThreshold':60.00
    }
    

    返された JSON で回答が見つかりました。The returned JSON found the answer.

    {
        "answers": [
            {
                "questions": [
                    "How large a knowledge base can I create?",
                    "What is the max size of a knowledge base?",
                    "How many GB of data can a knowledge base hold?"
                ],
                "answer": "The size of the knowledge base depends on the SKU of Azure search you choose when creating the QnA Maker service. Read [here](https://docs.microsoft.com/azure/cognitive-services/qnamaker/tutorials/choosing-capacity-qnamaker-deployment) for more details.",
                "score": 71.1,
                "id": 3,
                "source": "https://docs.microsoft.com/azure/cognitive-services/qnamaker/troubleshooting",
                "metadata": [
                    {
                        "name": "link_in_answer",
                        "value": "true"
                    },
                    {
                        "name": "server",
                        "value": "qna_maker"
                    }
                ],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": null,
        "activeLearningEnabled": true
    }
    

次のステップNext steps

メタデータの詳細:Learn more about metadata: