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:
Logga in på https://www.qnamaker.ai.
I Mina kunskapsbaser väljer du Visa kod för din kunskapsbas.

Hämta information om GenerateAnswer-slutpunkten.

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:
- Obligatoriska URI-parametrar
- Obligatorisk rubrikegenskap,
Authorization, för säkerhet - Obligatoriska brödtextegenskaper.
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 EndpointKey på Instä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.