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 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-kunskapsbas 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 kunskapsbas 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 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 slutpunktsinformation:
Logga in på https://www.qnamaker.ai.
I Mina kunskapsbas väljer du Visa kod för din kunskapsbas.
Hämta information om Din GenerateAnswer-slutpunkt.
Du kan också hämta slutpunktsinformationen på 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:
- Obligatoriska URI-parametrar
- Nödvändig rubrikegenskap,
Authorization
, för säkerhet - Obligatoriska brödtextegenskaper.
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.