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

Pokud chcete získat předpokládanou odpověď na otázku uživatele, použijte rozhraní GenerateAnswer API. Když publikujete znalostní bázi, uvidíte 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ázi z koncového bodu s parametrem řetězce dotazu test.

Poznámka

K dispozici je nová verze otázky a funkce pro příjem jako součást služby Azure pro rozpoznávání jazyka. Další informace najdete v tématu dokumentace k jazykovým službám Azure pro rozpoznávání. Možnosti pro zodpovězení otázek v rámci jazykové služby najdete v tématu s odpovědí na otázky. Informace o migraci stávajících základů znalostní báze najdete v Průvodci migrací.

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

Rozhraní GenerateAnswer API ve své robotě nebo aplikaci můžete použít k dotazování znalostní báze s uživatelskou otázkou, abyste získali nejlepší shodu s páry otázka a odpověď.

Poznámka

Tato dokumentace se nevztahuje na nejnovější verzi. Další informace o použití nejnovějších rozhraní API pro zodpovězení otázek najdete v úvodní příručce k rychlémustartu dotazů.

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

Po publikování znalostní báze z QnA Makerového portálunebo pomocí rozhraní APImůžete získat podrobnosti o koncovém bodu GenerateAnswer.

Jak získat podrobnosti o koncovém bodu:

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

  2. V seznamu Moje znalostní báze vyberte možnost Zobrazit kód pro znalostní bázi. Snímek obrazovky se základy naší znalostní báze

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

    Snímek obrazovky s podrobnostmi koncového bodu

podrobnosti o koncových bodech můžete také získat z karty Nastavení znalostní báze.

Konfigurace žádosti GenerateAnswer

GenerateAnswer zavoláte s požadavkem HTTP POST. Vzorový kód, který ukazuje, jak volat GenerateAnswer, naleznete v tématu rychlé starty.

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 hlavičky protokolu HTTP Authorization s hodnotou řetězce EndpointKey s koncovým místem, na které se nachází klíč koncového bodu na stránce Nastavení .

Ukázkový text 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žádal pouze o odpovědi, které jsou na 30% nebo vyšší než prahové skóre.

Vlastnosti odpovědi GenerateAnswer

Odpověď je objekt JSON, včetně všech informací, které potřebujete k zobrazení odpovědi, a další Zapnutí 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í znak JSON odpověděl s odpovědí s skóre 38,5%.

Odpovídá jenom na otázky, podle textu

Ve výchozím nastavení QnA Maker vyhledává dotazy a odpovědi. Pokud chcete vygenerovat odpověď pouze v rámci otázek, použijte RankerType=QuestionOnly v těle žádosti GenerateAnswer v části post.

Můžete prohledat publikované znalostní báze KB, pomocí isTest=false nebo v testu kB pomocí isTest=true .

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

Použití QnA Maker s robotem v jazyce C

Rozhraní bot Framework poskytuje přístup k vlastnostem 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žádal pouze o odpovědi, které jsou na 30% nebo vyšší než prahové skóre.

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

Rozhraní bot Framework poskytuje přístup k vlastnostem 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žádal pouze o odpovědi, které jsou na 30% nebo vyšší než prahové skóre.

Získat přesné odpovědi pomocí rozhraní GenerateAnswer API

Nabízíme přesnou funkci odpovědi jenom s QnA Maker spravované verze.

Běžné chyby protokolu 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 moc velké.
400 Tělo žádosti není správné, což znamená, že JSON chybí, má špatný nebo je moc velký.
401 Neplatný klíč
403 Zakázáno – nemáte správná oprávnění.
404 KB neexistuje
410 Toto rozhraní API je zastaralé a už není dostupné.

Další kroky

Stránka publikování také poskytuje informace pro vygenerování odpovědi pomocí metody post nebo kudrlinkou.