Få ett svar med GenerateAnswer-API: et

Använd GenerateAnswer-API: et för att få det förväntade svaret till en användares fråga. När du publicerar en kunskaps bas 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å metadata-Taggar och testa kunskaps basen från slut punkten med parametern testa frågesträngen.

Få svars prognoser med GenerateAnswer-API: et

Du kan använda GenerateAnswer-API: et i din robot eller ditt program för att fråga din kunskaps bas med en användar fråga, för att få den bästa matchningen från frågan och svars paren.

Publicera för att hämta GenerateAnswer-slutpunkt

När du har publicerat din kunskaps bas, antingen från QNA Maker-portaleneller med hjälp av API: et, kan du hämta information om din GenerateAnswer-slutpunkt.

Så här hämtar du information om slut punkten:

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

  2. I Mina kunskaps baser väljer du Visa kod för din kunskaps bas. Skärm bild av mina kunskaps baser

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

Du kan också hämta information om slut punkt från fliken Inställningar i din kunskaps bas.

Konfiguration av GenerateAnswer-begäran

Du anropar GenerateAnswer med en HTTP POST-begäran. Exempel kod som visar hur du anropar GenerateAnswer finns i snabb starterna.

POST-begäran använder:

  • Obligatoriska URI-parametrar
  • Nödvändig huvud egenskap, Authorization , för säkerhet
  • Egenskaper för nödvändig brödtext.

GenerateAnswer-URL: en har följande format:

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

Kom ihåg att ange egenskapen HTTP-huvud för Authorization med ett värde i strängen EndpointKey med ett avslutande blank steg och sedan den slut punkts nyckel som finns på sidan Inställningar .

Ett exempel på en JSON-text 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 bara svar som är 30% eller högre än tröskel poängen.

Egenskaper för GenerateAnswer-svar

Svaret är ett JSON-objekt, inklusive all information som du behöver för att Visa svaret och nästa gång 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 en poäng på 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 inläggs texten i GenerateAnswer-begäran.

Du kan söka igenom den publicerade KB, använda isTest=false eller i test-KB med isTest=true .

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

Använda QnA Maker med en robot i C

Bot Framework ger till gång till QnA Makerens egenskaper 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 bara svar som är 30% eller högre än tröskel poängen.

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

Bot Framework ger till gång till QnA Makerens egenskaper 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 bara svar som är 30% eller högre än tröskel poängen.

Få exakta svar med GenerateAnswer-API

Vi erbjuder exakt svars funktion med den QnA Maker hanterade versionen.

Vanliga HTTP-fel

Kod Förklaring
2xx Klart
400 Parametrarna för begäran är felaktiga eftersom nödvändiga parametrar saknas, är felaktiga eller för stora
400 Frågans brödtext är felaktig, vilket innebär att JSON saknas, är felaktig eller för stor
401 Ogiltig nyckel
403 Förbjuden – du har inte rätt behörigheter
404 KB finns inte
410 Detta API är föråldrat och är inte längre tillgängligt

Nästa steg

På sidan publicera finns också information om hur du genererar ett svar med Postman eller sväng.