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

Poznámka:

Azure Open AI On Your Data využívá velké jazykové modely (LLM) k vytvoření podobných výsledků jako QnA Maker. Pokud chcete migrovat projekt služby QnA Maker do Azure Open AI On Your Data, projděte si naši příručku.

Poznámka:

Služba QnA Maker se vyřadí z provozu 31. března 2025. Novější verze funkce pro otázky a odpovědi je teď dostupná jako součást jazyka Azure AI. Možnosti odpovídání 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í báze 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šeho znalostní báze.

Požadavky

  • Musíte mít
  • Prostředek služby QnA Maker vytvořený na webu Azure Portal. Zapamatujte si název prostředku QnA, které jste vybrali při vytváření prostředku, id Microsoft Entra, předplatného, který jste vybrali.
  • Vytré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 z znalostní báze, musíte vytrénovat a publikovat znalostní báze. Po publikování znalostní báze se na stránce Publikovat zobrazí nastavení požadavku HTTP pro vygenerování odpovědi. Karta cURL zobrazuje nastavení potřebná k vygenerování odpovědi z nástroje příkazového řádku.

Použití metadat k filtrování odpovědí

Pomocí znalostní báze z předchozí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 sloužícího k vygenerování odpovědi z 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 použila service:qna_maker jako filtr pro páry QnA.

    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ázka je jen jedno slovo, sizekteré může vrátit některý ze dvou párů 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 byla naformátována 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://learn.microsoft.com/azure/ai-services/qnamaker/troubleshooting",
                "metadata": [
                    {
                        "name": "link_in_answer",
                        "value": "true"
                    },
                    {
                        "name": "service",
                        "value": "qna_maker"
                    }
                ],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": null
    }
    

    Pokud existuje pár otázek a odpovědí, který nesplní hledaný termín, ale splnil filtr, nevrátil 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íží.

Ladicí informace 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. Pokud chcete zobrazit další informace, upravte příkaz cURL tak, aby zahrnoval vlastnost ladění.

    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://learn.microsoft.com/azure/ai-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ího znalostní báze

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

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 naprosto stejné, může se stále mírně lišit, protože testovací index se sdílí mezi všemi znalostní báze 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. Neexistují žá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 o značce metadat chit-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ěna, vrátí se výchozí odpověď.

  1. threshold Přidejte vlastnost, na které chcete požádat o odpověď size s prahovou hodnotou 80 % nebo lépe. Znalostní báze by neměla tuto odpověď najít, 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 získejte 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 skóre 0, což znamená, že není jistota. Vrátil také výchozí odpověď.

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

    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://learn.microsoft.com/azure/ai-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 otázek a odpovědí. 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í odpovědi na otázky.

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

Požadavky

  • Prostředek služby QnA Maker vytvořený na webu Azure Portal. Zapamatujte si název prostředku QnA, které jste vybrali při vytváření prostředku, id Microsoft Entra, předplatného, který jste vybrali.
  • Vytré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 z znalostní báze, musíte vytrénovat a publikovat znalostní báze. 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 JSON POST odeslaný do služby na základě toho, k čemu se pokoušíte dotazovat.

Pomocí tohoto postupu nakonfigurujte Nástroj Postman a pak si přečtěte jednotlivé další části, abyste nakonfigurovali 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 z znalostní báze. Zkopírujte následující informace, které chcete použít v nástroji Postman.

    Název 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.

    Důležité

    Nezapomeňte klíč z kódu odebrat, až to budete hotovi, a nikdy ho veřejně neposílejte. V produkčním prostředí použijte bezpečný způsob ukládání přihlašovacích údajů a přístupu k vašim přihlašovacím údajům, jako je Azure Key Vault. Další informace najdete v článku zabezpečení služeb Azure AI.

  2. Otevřete Postman a vytvořte nový základní požadavek POST s publikovaným nastavením znalostní báze. V následujících částech změňte základní kód JSON POST tak, aby změnil dotaz na váš znalostní báze.

Použití metadat k filtrování odpovědí

V předchozím rychlém startu byla metadata přidána do dvou párů QnA, aby bylo možné rozlišovat mezi dvěma různými otázkami. Přidejte do dotazu metadata, aby se filtr omezil jenom na odpovídající dvojici QnA.

  1. V Nástroji Postman změňte pouze json dotazu přidáním strictFilters vlastnosti s dvojicí name/value .service:qna_maker Text 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ěkterý 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ěď byla naformátována 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://learn.microsoft.com/azure/ai-services/qnamaker/troubleshooting",
                "metadata": [
                    {
                        "name": "link_in_answer",
                        "value": "true"
                    },
                    {
                        "name": "service",
                        "value": "qna_maker"
                    }
                ],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": null
    }
    

    Pokud existuje pár otázek a odpovědí, který nesplní hledaný termín, ale splnil filtr, nevrátil 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íží.

Ladicí informace 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:

    {
        '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://learn.microsoft.com/azure/ai-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ího znalostní báze

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

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

{
    '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 naprosto stejné, může se stále mírně lišit, protože testovací index se sdílí mezi všemi znalostní báze 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í konverzace od uživatele. Json by měl být:

    {
        '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 o značce metadat chit-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ěna, vrátí se výchozí odpověď.

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

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

    Znalostní báze by tuto odpověď neměla najít, protože skóre otázky je 71 %, a místo toho vrátit 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:

    {
        "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 skóre 0, což znamená, že není jistota. Vrátil také výchozí odpověď.

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

    {
        '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://learn.microsoft.com/azure/ai-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 otázek a odpovědí. 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: