Získání odpovědi z znalostní báze služby QNA Maker

Poznámka

Služba QnA Maker je vyřazena 31. března 2025. Novější verze funkce pro otázky a odpovědi je teď dostupná jako součást služby Azure Cognitive Service pro jazyk. Možnosti odpovědi na otázky v rámci služby Language Service najdete v tématu odpovědi na otázky. Od 1. října 2022 nebudete moct vytvářet nové prostředky služby QnA Maker. Informace o migraci stávajících znalostních bází služby QnA Maker na zodpovězení otázek najdete v průvodci migrací.

Poznámka

Tato dokumentace se nevztahuje na nejnovější verzi. Informace o používání nejnovějších rozhraní API pro odpovědi na otázky najdete v průvodci vytvářením odpovědí na otázky.

Tento rychlý start založený na cURL vás provede získáním odpovědi z vaší znalostní báze.

Požadavky

  • Prostředek služby QnA Maker vytvořený na webu Azure Portal Nezapomeňte, že jste při vytváření prostředku vybrali id služby Azure Active Directory, předplatné, název prostředku QnA, který jste vybrali.
  • Natrénovaná a publikovaná znalostní báze s dotazy a odpověďmi z předchozího rychlého startu nakonfigurovaná s metadaty a chatem Chit.

Poznámka

Až budete připraveni vygenerovat odpověď na otázku ze znalostní báze, musíte vytrénovat a publikovat znalostní bázi. Po publikování znalostní báze se na stránce Publikovat zobrazí nastavení požadavku HTTP pro vygenerování odpovědi. Na kartě cURL se zobrazí nastavení potřebná k vygenerování odpovědi z nástroje příkazového řádku.

Filtrování odpovědí pomocí metadat

Pomocí znalostní báze z předchozího rychlého rychlého dotazu na odpověď na základě metadat.

  1. Na stránce Nastavení znalostní báze vyberte kartu CURL a zobrazte příklad příkazu cURL, který se používá k vygenerování odpovědi ze znalostní báze.

  2. Zkopírujte příkaz do upravitelného prostředí (například textového souboru), abyste mohli příkaz upravit. Upravte hodnotu otázky následujícím způsobem, aby se metadata pro páry QnA používala service:qna_maker jako filtr.

    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'}]}"
    

    Otázkou je jen jedno slovo, sizekteré může vrátit některou ze dvou dvojic QnA. Pole strictFilters informuje odpověď, aby se snížila jenom na qna_maker odpovědi.

  3. Odpověď obsahuje pouze odpověď, která splňuje kritéria filtru. Následující odpověď cURL je formátovaná pro čitelnost:

    {
        "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](../concepts/azure-resources.md) 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
    }
    

    Pokud existuje dvojice otázek a odpovědí, která nesplňovala hledaný termín, ale splnila filtr, nevrátila by se. Místo toho se vrátí obecná odpověď No good match found in KB. .

Použití vlastnosti ladicího dotazu

Poznámka

Pro žádnou závislost nedoporučujeme používat vlastnost Debug. Tato vlastnost byla přidána, aby pomohla produktovému týmu při řešení potíží.

Informace o ladění vám pomůžou pochopit, jak byla vrácená odpověď určena. I když je to užitečné, není to nutné. Pokud chcete vygenerovat odpověď s informacemi o ladění, přidejte debug vlastnost:

Debug: {Enable:true}
  1. Upravte příkaz cURL tak, aby zahrnoval vlastnost ladění, aby se zobrazily další informace.

    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. Odpověď obsahuje relevantní informace o odpovědi. V následujícím výstupu JSON byly některé podrobnosti ladění nahrazeny třemi tečkami pro stručnost.

    {
        "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.",
                "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
    }
    

Použití testovací znalostní báze

Pokud chcete získat odpověď z testovací znalostní báze, použijte isTest vlastnost těla.

Vlastnost je logická hodnota.

isTest:true

Příkaz cURL vypadá takto:

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}"

Odpověď JSON používá stejné schéma jako publikovaný dotaz znalostní báze.

Poznámka

Pokud jsou testy a publikované znalostní báze úplně stejné, může se stále mírně lišit, protože testovací index se sdílí mezi všemi znalostními bázemi v prostředku.

Použití cURL k dotazování na odpověď chit-chat

  1. V terminálu s podporou cURL použijte příkaz konverzační konverzace robota od uživatele, například Thank you otázku. Nejsou k dispozici žádné další vlastnosti, které je potřeba nastavit.

    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. Spusťte příkaz cURL a získejte odpověď JSON, včetně skóre a odpovědi.

    {
      "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
    }
    

    Vzhledem k tomu, že otázka Thank you (Děkuji) přesně odpovídá konverzační otázce, služba QnA Maker udává naprostou jistotu se skóre 100. Služba QnA Maker také vrátila všechny související otázky a vlastnost metadat obsahující informace značek Metadata chatu.

Použití prahové hodnoty a výchozí odpovědi

Pro odpověď můžete požádat o minimální prahovou hodnotu. Pokud prahová hodnota není splněná, vrátí se výchozí odpověď.

  1. Přidejte vlastnost, threshold na size které chcete požádat o odpověď s prahovou hodnotou 80 % nebo lépe. Znalostní báze by neměla najít tuto odpověď, protože skóre otázky je 71 %. Výsledek vrátí výchozí odpověď, kterou jste zadali při vytváření znalostní báze.

    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. Spusťte příkaz cURL a přijměte odpověď JSON.

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

    Služba QnA Maker vrátila 0skóre , což znamená bez spolehlivosti. Vrátil také výchozí odpověď.

  3. Změňte prahovou hodnotu na 60 % a požádejte dotaz znovu:

    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}"
    

    Vrácený kód JSON našel odpověď.

    {
        "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](../Concepts/azure-resources.md) 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
    }
    

Použití nestrukturovaných zdrojů dat

Teď podporujeme možnost přidávat nestrukturované dokumenty, které se nedají použít k extrakci QnA. Uživatel se může rozhodnout zahrnout nebo vyloučit nestrukturované datové sady v rozhraní GenerateAnswer API při načítání odpovědi na dotaz. Ve službě GA nepodporujeme nestrukturované datové sady, které jsou součástí vlastního zodpovězení otázek.

Tento rychlý start založený na Postmanu vás provede získáním odpovědi ze znalostní báze.

Požadavky

  • Prostředek služby QnA Maker vytvořený na webu Azure Portal Nezapomeňte, že jste při vytváření prostředku vybrali id služby Azure Active Directory, předplatné, název prostředku QnA, který jste vybrali.
  • Natrénovaná a publikovaná znalostní báze s dotazy a odpověďmi z předchozího rychlého startu nakonfigurovaná s metadaty a chatem Chit.

Poznámka

Až budete připraveni vygenerovat odpověď na otázku ze znalostní báze, musíte vytrénovat a publikovat znalostní bázi. Po publikování znalostní báze se na stránce Publikovat zobrazí nastavení požadavku HTTP pro vygenerování odpovědi. Na kartě Postman se zobrazí nastavení potřebná k vygenerování odpovědi.

Nastavení nástroje Postman pro požadavky

V tomto rychlém startu se použije stejné nastavení pro požadavek Postman POST a pak nakonfiguruje text POST JSON odeslaný do služby na základě toho, co se pokoušíte dotazovat.

Pomocí tohoto postupu nakonfigurujte Nástroj Postman a pak si přečtěte každou další část a nakonfigurujte základní kód JSON POST.

  1. Na stránce Nastavení znalostní báze vyberte kartu Postman a zobrazte konfiguraci použitou k vygenerování odpovědi ze znalostní báze. Zkopírujte následující informace, které chcete použít v Nástroji Postman.

    Name Nastavení Účel a hodnota
    POST /knowledgebases/replace-with-your-knowledge-base-id/generateAnswer Toto je metoda HTTP a trasa pro adresu URL.
    Host https://YOUR-RESOURCE_NAME.azurewebsites.net/qnamaker Toto je hostitel adresy URL. Zřetězením hodnot Host a Post získejte úplnou adresu URL generateAnswer.
    Authorization EndpointKey xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Hodnota hlavičky pro autorizaci požadavku do Azure.
    Content-type application/json Hodnota záhlaví obsahu.
    {"question":"<Your question>"} Text požadavku POST jako objekt JSON. Tato hodnota se změní v každé následující části v závislosti na tom, co má dotaz udělat.
  2. Otevřete Nástroj Postman a vytvořte nový základní požadavek POST s publikovanými nastaveními znalostní báze. V následujících částech změňte základní kód JSON POST tak, aby se dotaz změnil na znalostní bázi.

Filtrování odpovědí pomocí metadat

V předchozím rychlém startu byla metadata přidána do dvou dvojic QnA, aby se odlišily mezi dvěma různými otázkami. Přidejte do dotazu metadata, abyste filtr omezili jenom na příslušný pár QnA.

  1. V Nástroji Postman změňte pouze json dotazu přidáním strictFilters vlastnosti s dvojicí service:qna_makername/value . Základní KÓD JSON by měl být:

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

    Otázka je jen jedno slovo, sizekteré může vrátit některou ze dvou dvojic otázek a odpovědí. Pole strictFilters informuje odpověď, aby se snížila jenom na qna_maker odpovědi.

  2. Odpověď obsahuje pouze odpověď, která splňuje kritéria filtru.

    Následující odpověď je formátovaná pro čitelnost:

    {
        "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](../Concepts/azure-resources.md) 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
    }
    

    Pokud existuje dvojice otázek a odpovědí, která nesplňovala hledaný termín, ale splnila filtr, nevrátila by se. Místo toho se vrátí obecná odpověď No good match found in KB. .

Použití vlastnosti ladicího dotazu

Poznámka

Pro žádnou závislost nedoporučujeme používat vlastnost Debug. Tato vlastnost byla přidána, aby pomohla produktovému týmu při řešení potíží.

Informace o ladění vám pomůžou pochopit, jak byla vrácená odpověď určena. I když je to užitečné, není to nutné. Pokud chcete vygenerovat odpověď s informacemi o ladění, přidejte debug vlastnost:

  1. V Nástroji Postman změňte pouze základní json přidáním debug vlastnosti. Json by měl být následující:

    {
        'question':'size',
        'Debug': {
            'Enable':true
        }
    
    }
    
  2. Odpověď obsahuje relevantní informace o odpovědi. V následujícím výstupu JSON byly některé podrobnosti ladění nahrazeny třemi tečkami.

    {
        "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.",
                "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
    }
    

Použití testovací znalostní báze

Pokud chcete získat odpověď z testovací znalostní báze, použijte isTest vlastnost těla.

V Nástroji Postman změňte pouze základní json přidáním isTest vlastnosti. Json by měl být následující:

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

Odpověď JSON používá stejné schéma jako publikovaný dotaz znalostní báze.

Poznámka

Pokud jsou testy a publikované znalostní báze úplně stejné, může se stále mírně lišit, protože testovací index se sdílí mezi všemi znalostními bázemi v prostředku.

Dotaz na odpověď na chat

  1. V Nástroji Postman změňte pouze základní kód JSON na příkaz konverzační konverzační od uživatele. Json by měl být následující:

    {
        'question':'thank you'
    }
    
  2. Odpověď zahrnuje skóre a odpověď.

    {
      "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
    }
    

    Vzhledem k tomu, že otázka Thank you (Děkuji) přesně odpovídá konverzační otázce, služba QnA Maker udává naprostou jistotu se skóre 100. Služba QnA Maker také vrátila všechny související otázky a vlastnost metadat obsahující informace značek Metadata chatu.

Použití prahové hodnoty a výchozí odpovědi

Pro odpověď můžete požádat o minimální prahovou hodnotu. Pokud prahová hodnota není splněná, vrátí se výchozí odpověď.

  1. V Nástroji Postman změňte pouze základní kód JSON na příkaz konverzační konverzační od uživatele. Json by měl být následující:

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

    Znalostní báze by neměla najít tuto odpověď, protože skóre otázky je 71 %, a místo toho vrátí výchozí odpověď, kterou jste zadali při vytváření znalostní báze.

    Vrácená odpověď JSON, včetně skóre a odpovědi, je následující:

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

    Služba QnA Maker vrátila 0skóre , což znamená bez spolehlivosti. Vrátil také výchozí odpověď.

  2. Změňte prahovou hodnotu na 60 % a požádejte dotaz znovu:

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

    Vrácený kód JSON našel odpověď.

    {
        "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](../Concepts/azure-resources.md) 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
    }
    

Používejte nestrukturované zdroje dat.

Teď podporujeme možnost přidávat nestrukturované dokumenty, které se nedají použít k extrakci QnA. Uživatel se může rozhodnout zahrnout nebo vyloučit nestrukturované datové sady v rozhraní GenerateAnswer API při načítání odpovědi na dotaz. Ve službě GA nepodporujeme nestrukturované datové sady. Podporuje se pouze ve vlastním zodpovězení otázek.

Další kroky

Další informace o metadatech: