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:
Logga in på https://www.qnamaker.ai.
I Mina kunskapsbaser väljer du Visa kod för din kunskapsbas.
Hämta information om Din GenerateAnswer-slutpunkt.
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:
- 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 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=false
eller 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.