Dela via


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 baza znanja 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 baza znanja från slutpunkten med testfrågesträngsparametern.

Kommentar

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

Få svarsförutsägelser med GenerateAnswer-API:et

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

Kommentar

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

Publicera för att hämta GenerateAnswer-slutpunkten

När du har publicerat din baza znanja, 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 slutpunktsinformation:

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

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

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

    Skärmbild av slutpunktsinformation

Du kan också hämta slutpunktsinformationen på fliken Inställningar i baza znanja.

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 HTTP-huvudegenskapen Authorization 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 du behöver för att visa svaret och nästa tur i konversationen, om det är 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"
                }
            ]
        }
    ]
}

Föregående JSON svarade med ett svar med poängen 38,5 %.

Matcha endast frågor, efter text

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

Du kan söka igenom den publicerade kb:en med hjälp av isTest=false, eller i testkb 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 getAnswer-API:et:

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 getAnswer-API:et:

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 exakt svarsfunktion med den hanterade QnA Maker-versionen.

Vanliga HTTP-fel

Kod Förklaring
2xx Klart
400 Begärandeparametrarna ä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 Rest-klienttillägget för Visual Studio Code eller cURL.