Få ett svar med GenerateAnswer-API:et

Använd GENERATEAnswer-API:et för att få det förutsagda svaret på en användares fråga. 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 kunskapsbasen från slutpunkten med testfrågesträngparametern.

Anteckning

En nyare version av funktionen för frågor och svar är nu tillgänglig som en del av Azure Cognitive Service for Language. Mer information finns i Azure Cognitive Service för språkdokumentation. Om du vill ha funktioner för frågesvar i Language Service kan du se frågesvar . Information om hur du migrerar befintliga kunskapsbaser 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 köra frågor mot kunskapsbasen med en användarfråga för att få bästa möjliga matchning från fråge- och svarsparen.

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ågor och svar.

Publicera för att hämta GenerateAnswer-slutpunkten

När du har publicerat kunskapsbasen, antingen från QnA Maker portaleneller med hjälp av API:et, kan du hämta information om generateAnswer-slutpunkten.

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 GenerateAnswer-slutpunkten.

    Skärmbild av slutpunktsinformation

Du kan också hämta information om din slutpunkt Inställningar fliken i kunskapsbasen.

Konfiguration av GenerateAnswer-begäran

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 GenerateAnswer har följande format:

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

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

Ett exempel på 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 är vid 30 % eller över tröskelvärdet.

Svarsegenskaper för GenerateAnswer

Svaret är ett JSON-objekt som innehåller 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 ett resultat på 38,5 %.

Matcha endast frågor, per text

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

Du kan söka igenom den publicerade kunskapsbasen med isTest=false hjälp av 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

Bot Framework ger åtkomst till QnA Maker egenskaper med 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);

Föregående JSON begärde endast svar som är vid 30 % eller över tröskelvärdet.

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

Bot Framework ger åtkomst till QnA Maker egenskaper med 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);

Föregående JSON begärde endast svar som är vid 30 % eller över tröskelvärdet.

Få exakta svar med GenerateAnswer API

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

Vanliga HTTP-fel

Kod Förklaring
2xx Klart
400 Begärans parametrar är felaktiga, vilket innebär att de obligatoriska parametrarna saknas, är felaktiga eller är för stora
400 Begärandetexten är felaktig vilket innebär att JSON saknas, är felaktigt eller är 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.