Få ett svar med GenerateAnswer-API:et

Om du vill få det förutsagda svaret på en användares fråga använder du GenerateAnswer-API:et. När du publicerar en kunskapsbas kan du se information om hur du använder det här API:et på sidan Publicera. Du kan också konfigurera API:et för att filtrera svar baserat på metadatataggar och testa kunskapsbas från slutpunkten med frågesträngsparametern test.

Anteckning

QnA Maker-tjänsten dras tillbaka den 31 mars 2025. En nyare version av funktionen för frågor och svar är nu tillgänglig som en del av Azure AI Language. Information om funktioner för frågesvar i språktjänsten finns i frågesvar. Från och med den 1 oktober 2022 kan du inte skapa nya QnA Maker-resurser. Information om hur du migrerar befintliga QnA Maker-kunskapsbaser till frågesvar finns i migreringsguiden.

Hämta svarsförutsägelser med GenerateAnswer-API:et

Du använder GenerateAnswer-API:et i din robot eller ditt program för att fråga kunskapsbas med en användarfråga för att få den bästa matchningen från paren med frågor och svar.

Anteckning

Den här dokumentationen gäller inte för den senaste versionen. Mer information om hur du använder de senaste API:erna för frågesvar finns i snabbstartsguiden för frågesvar.

Publicera för att hämta GenerateAnswer-slutpunkten

När du har publicerat din kunskapsbas, antingen från QnA Maker-portalen eller med hjälp av API:et, kan du få information om din GenerateAnswer-slutpunkt.

Så här hämtar du information om slutpunkten:

  1. Logga in på https://www.qnamaker.ai.

  2. I Mina kunskapsbaser väljer du Visa kod för din kunskapsbas. Skärmbild av Mina kunskapsbaser

  3. Hämta information om Din GenerateAnswer-slutpunkt.

    Skärmbild av slutpunktsinformation

Du kan också hämta slutpunktsinformationen från fliken Inställningar i kunskapsbas.

GenerateAnswer-begärandekonfiguration

Du anropar GenerateAnswer med en HTTP POST-begäran. Exempelkod som visar hur du anropar GenerateAnswer finns i snabbstarterna.

POST-begäran använder:

Url:en för GenerateAnswer har följande format:

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

Kom ihåg att ange EGENSKAPEN Authorization HTTP-huvud för med ett värde för strängen EndpointKey med ett avslutande blanksteg och sedan slutpunktsnyckeln som finns på sidan Inställningar .

Ett exempel på en JSON-brödtext ser ut så här:

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

Läs mer om rankerType.

Föregående JSON begärde endast svar som ligger på 30 % eller högre än tröskelvärdet.

GenerateAnswer-svarsegenskaper

Svaret är ett JSON-objekt med all information som du behöver för att visa svaret och nästa tur i konversationen, om tillgängligt.

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

Den tidigare JSON svarade med ett svar med en poäng på 38,5 %.

Matcha endast frågor, med text

Som standard söker QnA Maker igenom frågor och svar. Om du bara vill söka igenom frågor och generera ett svar använder RankerType=QuestionOnly du i POST-brödtexten i GenerateAnswer-begäran.

Du kan söka igenom den publicerade kunskapsbasen med hjälp av isTest=falseeller i test-kb med hjälp av isTest=true.

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

Använda QnA Maker med en robot i C#

Robotramverket ger åtkomst till QnA Maker-egenskaperna med api:et getAnswer:

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);

Föregående JSON begärde endast svar som ligger på 30 % eller högre än tröskelvärdet.

Använda QnA Maker med en robot i Node.js

Robotramverket ger åtkomst till QnA Maker-egenskaperna med api:et getAnswer:

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);

Föregående JSON begärde endast svar som ligger på 30 % eller högre än tröskelvärdet.

Få exakta svar med GenerateAnswer API

Vi erbjuder endast en exakt svarsfunktion med den hanterade QnA Maker-versionen.

Vanliga HTTP-fel

Kod Förklaring
2xx Klart
400 Parametrarna för begäran är felaktiga, vilket innebär att de obligatoriska parametrarna saknas, är felaktiga eller för stora
400 Begärandetexten är felaktig, vilket innebär att JSON saknas, är felaktigt eller för stor
401 Ogiltig nyckel
403 Förbjudet – du har inte rätt behörigheter
404 KB finns inte
410 Det här API:et är inaktuellt och är inte längre tillgängligt

Nästa steg

Sidan Publicera innehåller också information för att generera ett svar med Postman eller cURL.