Získání odpovědi pomocí rozhraní GenerateAnswer API

Pokud chcete získat předpovězenou odpověď na otázku uživatele, použijte rozhraní API GenerateAnswer. Když publikujete znalostní báze, zobrazí se informace o tom, jak toto rozhraní API používat, na stránce Publikovat. Můžete také nakonfigurovat rozhraní API pro filtrování odpovědí na základě značek metadat a otestovat znalostní báze z koncového bodu pomocí parametru řetězce testovacího dotazu.

Poznámka

Služba QnA Maker se k 31. březnu 2025 vyřadí z provozu. V rámci jazyka Azure AI je teď k dispozici novější verze funkce otázek a odpovědí. Informace o možnostech odpovídání na otázky v rámci služby jazyka najdete v článku o odpovídání 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í.

Získání predikcí odpovědí pomocí rozhraní GenerateAnswer API

Rozhraní GENERATEAnswer API v robotovi nebo aplikaci použijete k dotazování znalostní báze s otázkou uživatele, abyste získali nejlepší shodu z párů otázek a odpovědí.

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 úvodní příručce pro odpovědi na otázky.

Publikování pro získání koncového bodu GenerateAnswer

Po publikování znalostní báze můžete z portálu QnA Maker nebo pomocí rozhraní API získat podrobnosti o koncovém bodu GenerateAnswer.

Získání podrobností o koncovém bodu:

  1. Přihlaste se k webu https://www.qnamaker.ai.

  2. V části Moje znalostní báze vyberte Zobrazit kód pro znalostní báze. Snímek obrazovky s mými znalostními bázemi

  3. Získejte podrobnosti o koncovém bodu GenerateAnswer.

    Snímek obrazovky s podrobnostmi o koncovém bodu

Podrobnosti o koncovém bodu můžete získat také na kartě Nastavení znalostní báze.

Konfigurace požadavku GenerateAnswer

Zavoláte GenerateAnswer s požadavkem HTTP POST. Vzorový kód, který ukazuje, jak volat GenerateAnswer, najdete v rychlých startech.

Požadavek POST používá:

Adresa URL GenerateAnswer má následující formát:

https://{QnA-Maker-endpoint}/knowledgebases/{knowledge-base-ID}/generateAnswer

Nezapomeňte nastavit vlastnost Authorization hlavičky HTTP na hodnotu řetězce EndpointKey s koncovou mezerou a pak klíč koncového bodu, který najdete na stránce Nastavení .

Příklad textu JSON vypadá takto:

{
    "question": "qna maker and luis",
    "top": 6,
    "isTest": true,
    "scoreThreshold": 30,
    "rankerType": "" // values: QuestionOnly
    "strictFilters": [
    {
        "name": "category",
        "value": "api"
    }],
    "userId": "sd53lsY="
}

Přečtěte si další informace o rankerType.

Předchozí kód JSON požadoval pouze odpovědi, které jsou na hodnotě 30 % nebo nad prahovou hodnotou.

GenerateAnswer – vlastnosti odpovědi

Odpověď je objekt JSON obsahující všechny informace, které potřebujete k zobrazení odpovědi a dalšího odevzdání konverzace, pokud je k dispozici.

{
    "answers": [
        {
            "score": 38.54820341616869,
            "Id": 20,
            "answer": "There is no direct integration of LUIS with QnA Maker. But, in your bot code, you can use LUIS and QnA Maker together. [View a sample bot](https://github.com/Microsoft/BotBuilder-CognitiveServices/tree/master/Node/samples/QnAMaker/QnAWithLUIS)",
            "source": "Custom Editorial",
            "questions": [
                "How can I integrate LUIS with QnA Maker?"
            ],
            "metadata": [
                {
                    "name": "category",
                    "value": "api"
                }
            ]
        }
    ]
}

Předchozí kód JSON odpověděl odpovědí se skóre 38,5 %.

Porovnávání pouze otázek podle textu

Služba QnA Maker ve výchozím nastavení prohledává otázky a odpovědi. Pokud chcete hledat pouze otázky a chcete vygenerovat odpověď, použijte RankerType=QuestionOnly v textu POST požadavku GenerateAnswer.

Můžete vyhledávat prostřednictvím publikované znalostní báze, pomocí příkazu isTest=falsenebo v testovací znalostní bázi pomocí .isTest=true

{
  "question": "Hi",
  "top": 30,
  "isTest": true,
  "RankerType":"QuestionOnly"
}

Použití služby QnA Maker s robotem v jazyce C#

Architektura robota poskytuje přístup k vlastnostem služby QnA Maker pomocí rozhraní GETAnswer API:

using Microsoft.Bot.Builder.AI.QnA;
var metadata = new Microsoft.Bot.Builder.AI.QnA.Metadata();
var qnaOptions = new QnAMakerOptions();

metadata.Name = Constants.MetadataName.Intent;
metadata.Value = topIntent;
qnaOptions.StrictFilters = new Microsoft.Bot.Builder.AI.QnA.Metadata[] { metadata };
qnaOptions.Top = Constants.DefaultTop;
qnaOptions.ScoreThreshold = 0.3F;
var response = await _services.QnAServices[QnAMakerKey].GetAnswersAsync(turnContext, qnaOptions);

Předchozí kód JSON požadoval pouze odpovědi, které jsou na hodnotě 30 % nebo nad prahovou hodnotou.

Použití služby QnA Maker s robotem v Node.js

Architektura robota poskytuje přístup k vlastnostem služby QnA Maker pomocí rozhraní GETAnswer API:

const { QnAMaker } = require('botbuilder-ai');
this.qnaMaker = new QnAMaker(endpoint);

// Default QnAMakerOptions
var qnaMakerOptions = {
    ScoreThreshold: 0.30,
    Top: 3
};
var qnaResults = await this.qnaMaker.getAnswers(stepContext.context, qnaMakerOptions);

Předchozí kód JSON požadoval pouze odpovědi, které jsou na hodnotě 30 % nebo nad prahovou hodnotou.

Získání přesných odpovědí pomocí rozhraní GenerateAnswer API

Funkci přesné odpovědi nabízíme pouze ve spravované verzi služby QnA Maker.

Běžné chyby HTTP

Kód Vysvětlení
2xx Success
400 Parametry požadavku jsou nesprávné, což znamená, že požadované parametry chybí, jsou poškozené nebo jsou příliš velké.
400 Text požadavku je nesprávný, což znamená, že json chybí, je poškozený nebo je příliš velký.
401 Neplatný klíč
403 Zakázáno – nemáte správná oprávnění
404 Znalostní báze neexistuje.
410 Toto rozhraní API je zastaralé a už není dostupné.

Další kroky

Stránka Publikovat také obsahuje informace pro vygenerování odpovědi pomocí nástroje Postman nebo cURL.