Získání odpovědi pomocí rozhraní GenerateAnswer API
Pokud chcete získat předpokládanou odpověď na otázku uživatele, použijte rozhraní GenerateAnswer API. Když publikujete znalostní bázi, uvidíte informace o tom, jak toto rozhraní API používat na stránce publikovat . Můžete také nakonfigurovat rozhraní API pro filtrování odpovědí na základě značek metadat a otestovat znalostní bázi z koncového bodu s parametrem řetězce dotazu test.
Poznámka
K dispozici je nová verze otázky a funkce pro příjem jako součást služby Azure pro rozpoznávání jazyka. Další informace najdete v tématu dokumentace k jazykovým službám Azure pro rozpoznávání. Možnosti pro zodpovězení otázek v rámci jazykové služby najdete v tématu s odpovědí na otázky. Informace o migraci stávajících základů znalostní báze najdete v Průvodci migrací.
Získání odpovědi předpovědi pomocí rozhraní GenerateAnswer API
Rozhraní GenerateAnswer API ve své robotě nebo aplikaci můžete použít k dotazování znalostní báze s uživatelskou otázkou, abyste získali nejlepší shodu s páry otázka a odpověď.
Poznámka
Tato dokumentace se nevztahuje na nejnovější verzi. Další informace o použití nejnovějších rozhraní API pro zodpovězení otázek najdete v úvodní příručce k rychlémustartu dotazů.
Publikování pro získání koncového bodu GenerateAnswer
Po publikování znalostní báze z QnA Makerového portálunebo pomocí rozhraní APImůžete získat podrobnosti o koncovém bodu GenerateAnswer.
Jak získat podrobnosti o koncovém bodu:
Přihlaste se k webu https://www.qnamaker.ai.
V seznamu Moje znalostní báze vyberte možnost Zobrazit kód pro znalostní bázi.

Získejte podrobnosti o GenerateAnswer koncového bodu.

podrobnosti o koncových bodech můžete také získat z karty Nastavení znalostní báze.
Konfigurace žádosti GenerateAnswer
GenerateAnswer zavoláte s požadavkem HTTP POST. Vzorový kód, který ukazuje, jak volat GenerateAnswer, naleznete v tématu rychlé starty.
Požadavek POST používá:
- Požadované parametry identifikátoru URI
- Požadovaná vlastnost hlavičky,
Authorizationpro zabezpečení - Požadované vlastnosti těla.
Adresa URL GenerateAnswer má následující formát:
https://{QnA-Maker-endpoint}/knowledgebases/{knowledge-base-ID}/generateAnswer
nezapomeňte nastavit vlastnost hlavičky protokolu HTTP Authorization s hodnotou řetězce EndpointKey s koncovým místem, na které se nachází klíč koncového bodu na stránce Nastavení .
Ukázkový text JSON vypadá takto:
{
"question": "qna maker and luis",
"top": 6,
"isTest": true,
"scoreThreshold": 30,
"rankerType": "" // values: QuestionOnly
"strictFilters": [
{
"name": "category",
"value": "api"
}],
"userId": "sd53lsY="
}
Přečtěte si další informace o rankerType.
Předchozí kód JSON požádal pouze o odpovědi, které jsou na 30% nebo vyšší než prahové skóre.
Vlastnosti odpovědi GenerateAnswer
Odpověď je objekt JSON, včetně všech informací, které potřebujete k zobrazení odpovědi, a další Zapnutí konverzace, pokud je k dispozici.
{
"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"
}
]
}
]
}
Předchozí znak JSON odpověděl s odpovědí s skóre 38,5%.
Odpovídá jenom na otázky, podle textu
Ve výchozím nastavení QnA Maker vyhledává dotazy a odpovědi. Pokud chcete vygenerovat odpověď pouze v rámci otázek, použijte RankerType=QuestionOnly v těle žádosti GenerateAnswer v části post.
Můžete prohledat publikované znalostní báze KB, pomocí isTest=false nebo v testu kB pomocí isTest=true .
{
"question": "Hi",
"top": 30,
"isTest": true,
"RankerType":"QuestionOnly"
}
Použití QnA Maker s robotem v jazyce C
Rozhraní bot Framework poskytuje přístup k vlastnostem QnA Maker pomocí rozhraní 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);
Předchozí kód JSON požádal pouze o odpovědi, které jsou na 30% nebo vyšší než prahové skóre.
Použití QnA Maker s robotem v Node.js
Rozhraní bot Framework poskytuje přístup k vlastnostem QnA Maker pomocí rozhraní 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);
Předchozí kód JSON požádal pouze o odpovědi, které jsou na 30% nebo vyšší než prahové skóre.
Získat přesné odpovědi pomocí rozhraní GenerateAnswer API
Nabízíme přesnou funkci odpovědi jenom s QnA Maker spravované verze.
Běžné chyby protokolu HTTP
| Kód | Vysvětlení |
|---|---|
| 2xx | Success |
| 400 | Parametry požadavku jsou nesprávné, což znamená, že požadované parametry chybí, jsou poškozené nebo jsou moc velké. |
| 400 | Tělo žádosti není správné, což znamená, že JSON chybí, má špatný nebo je moc velký. |
| 401 | Neplatný klíč |
| 403 | Zakázáno – nemáte správná oprávnění. |
| 404 | KB neexistuje |
| 410 | Toto rozhraní API je zastaralé a už není dostupné. |
Další kroky
Stránka publikování také poskytuje informace pro vygenerování odpovědi pomocí metody post nebo kudrlinkou.