Sdílet prostřednictvím


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

Pokud chcete získat predikovanou odpověď na otázku uživatele, použijte rozhraní API GenerateAnswer. Když publikujete znalostní báze, uvidíte informace o tom, jak používat toto rozhraní API 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 testu dotazu.

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í.

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

K dotazování znalostní báze pomocí rozhraní GenerateAnswer API ve vašem robotovi nebo aplikaci získáte 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 průvodci rychlým zprovozněním otázek.

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

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

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

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

  2. V znalostní báze vyberte Zobrazit kód pro váš znalostní báze. Snímek obrazovky s mými znalostní báze

  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. Ukázkový 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 s hodnotou řetězce EndpointKey s koncovou mezerou a pak klíč koncového bodu nalezený 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í JSON požadoval pouze odpovědi, které mají 30 % nebo vyšší skóre prahové hodnoty.

Vlastnosti odpovědi GenerateAnswer

Odpověď je objekt JSON, včetně všech informací, 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 %.

Shoda pouze s otázkami podle textu

Ve výchozím nastavení služba QnA Maker vyhledává otázky a odpovědi. Pokud chcete hledat jenom otázky, vygenerujte odpověď pomocí RankerType=QuestionOnly textu POST požadavku GenerateAnswer.

Publikovanou znalostní bázi můžete prohledávat pomocí nebo isTest=falsev testovací kb pomocí isTest=true.

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

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

Rozhraní bot Framework 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í JSON požadoval pouze odpovědi, které mají 30 % nebo vyšší skóre prahové hodnoty.

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

Rozhraní bot Framework 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í JSON požadoval pouze odpovědi, které mají 30 % nebo vyšší skóre prahové hodnoty.

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

Funkci přesných odpovědí nabízíme pouze se spravovanou verzí 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 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í k dispozici.

Další kroky

Stránka Publikovat také poskytuje informace o vygenerování odpovědi pomocí rozšíření REST Client editoru Visual Studio Code nebo cURL.