Abrufen einer Antwort mit der GenerateAnswer-API
Um die vorhergesagte Antwort auf die Frage eines Benutzers zu erhalten, verwenden Sie die GenerateAnswer-API. Wenn Sie eine Wissensdatenbank veröffentlichen, werden Informationen zur Verwendung dieser API auf der Seite Veröffentlichen angezeigt. Sie können die API auch so konfigurieren, dass sie Antworten anhand von Metadatentags filtert, und Sie können die Wissensdatenbank vom Endpunkt aus mit dem Testabfrage-Zeichenfolgenparameter testen.
Hinweis
Der QnA Maker-Dienst wird am 31. März 2025 außer Betrieb gesetzt. Eine neuere Version der Funktionalität „Fragen und Antworten“ ist jetzt als Teil von Azure KI Language verfügbar. Antworten auf Fragen innerhalb des Sprachdiensts finden Sie unter Fragen und Antworten. Ab dem 1. Oktober 2022 können Sie keine neuen QnA Maker-Ressourcen mehr erstellen. Informationen zum Migrieren vorhandener QnA Maker-Wissensdatenbanken für Fragen und Antworten finden Sie im Migrationsleitfaden.
Abrufen von Antwortvorhersagen mit der GenerateAnswer-API
Sie verwenden die GenerateAnswer-API in Ihrem Bot oder Ihrer Anwendung, um Ihre Wissensdatenbank mit einer Benutzerfrage abzufragen und die beste Übereinstimmung aus den Frage-Antwort-Paaren zu erhalten.
Hinweis
Diese Dokumentation gilt nicht für das neueste Release. Informationen zur Verwendung der neuesten Fragen-und-Antworten-API finden Sie im Schnellstartleitfaden für Fragen und Antworten.
Veröffentlichen am GenerateAnswer-Endpunkt
Nachdem Sie Ihre Wissensdatenbank im QnA Maker-Portal oder mithilfe der API veröffentlicht haben, können Sie die Details von Ihrem GenerateAnswer-Endpunkt abrufen.
So rufen Sie Endpunktdetails ab
Melden Sie sich bei https://www.qnamaker.ai an.
Klicken Sie in Meine Wissensdatenbanken für Ihre Wissensdatenbank auf Code anzeigen.
Rufen Sie Ihre GenerateAnswer-Endpunktdetails ab.
Sie können Ihre Endpunktdetails auch auf der Registerkarte Einstellungen Ihrer Knowledge Base abrufen.
GenerateAnswer-Anforderungskonfiguration
Sie rufen GenerateAnswer über eine HTTP POST-Anforderung auf. Beispielcode, der zeigt, wie GenerateAnswer aufgerufen wird, finden Sie unter Schnellstarts.
Die POST-Anforderung verwendet:
- Erforderliche URI-Parameter
- Erforderliche Headereigenschaft
Authorization
für die Sicherheit - Erforderliche Texteigenschaften.
Die GenerateAnswer-URL weist das folgende Format auf:
https://{QnA-Maker-endpoint}/knowledgebases/{knowledge-base-ID}/generateAnswer
Denken Sie daran, die HTTP-Header-Eigenschaft von Authorization
auf folgenden Wert festzulegen: die Zeichenfolge EndpointKey
mit einem nachgestellten Leerzeichen, gefolgt von dem Endpunktschlüssel, der sich auf der Seite Einstellungen befindet.
Ein JSON-Beispieltext sieht folgendermaßen aus:
{
"question": "qna maker and luis",
"top": 6,
"isTest": true,
"scoreThreshold": 30,
"rankerType": "" // values: QuestionOnly
"strictFilters": [
{
"name": "category",
"value": "api"
}],
"userId": "sd53lsY="
}
Weitere Informationen zu „rankerType“ finden Sie hier.
Der vorherige JSON-Code forderte nur Antworten an, die 30 % oder mehr über dem Schwellenwert liegen.
GenerateAnswer-Antworteigenschaften
Die Antwort ist ein JSON-Objekt, das alle Informationen enthält, die Sie benötigen, um die Antwort sowie die nächste Reaktion in der Unterhaltung, falls verfügbar, anzuzeigen.
{
"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"
}
]
}
]
}
Der vorherige JSON-Code gab eine Antwort mit dem Punktestand 38,5 % zurück.
Nur Fragen nach Textübereinstimmungen durchsuchen
Standardmäßig durchsucht QnA Maker Fragen und Antworten. Wenn Sie nur Fragen durchsuchen möchten, um eine Antwort zu generieren, verwenden Sie RankerType=QuestionOnly
im POST-Text der GenerateAnswer-Anforderung.
Sie können mit isTest=false
die veröffentlichte Wissensdatenbank oder mit isTest=true
die Testwissensdatenbank durchsuchen.
{
"question": "Hi",
"top": 30,
"isTest": true,
"RankerType":"QuestionOnly"
}
Verwenden von QnA Maker mit einem Bot in C#
Das Bot-Framework bietet mit der getAnswer-API Zugriff auf die Eigenschaften von QnA Maker:
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);
Der vorherige JSON-Code forderte nur Antworten an, die 30 % oder mehr über dem Schwellenwert liegen.
Verwenden von QnA Maker mit einem Bot in Node.js
Das Bot-Framework bietet mit der getAnswer-API Zugriff auf die Eigenschaften von QnA Maker:
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);
Der vorherige JSON-Code forderte nur Antworten an, die 30 % oder mehr über dem Schwellenwert liegen.
Abrufen präziser Antworten mit der GenerateAnswer-API
Ein Feature für präzise Antworten ist nur in der verwalteten QnA Maker-Version enthalten.
Häufige HTTP-Fehler
Code | Erklärung |
---|---|
2xx | Erfolg |
400 | Die Parameter der Anforderung sind fehlerhaft, da die erforderlichen Parameter nicht vorhanden, falsch formatiert oder zu groß sind |
400 | Der Text der Anforderung ist fehlerhaft, da der JSON-Code nicht vorhanden, falsch formatiert oder zu groß ist |
401 | Ungültiger Schlüssel |
403 | Verboten – Sie verfügen nicht über die richtigen Berechtigungen |
404 | KB nicht vorhanden |
410 | Diese API ist veraltet und nicht mehr verfügbar. |
Nächste Schritte
Die Seite Veröffentlichen enthält auch Informationen zum Generieren einer Antwort mit der REST-Clienterweiterung von Visual Studio Code oder cURL.