Získání odpovědi pomocí rozhraní GenerateAnswer API
Pokud chcete získat předpovězenou odpověď na otázku uživatele, použijte rozhraní API GenerateAnswer. Když publikujete znalostní báze, zobrazí se 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áze z koncového bodu pomocí parametru řetězce testovacího dotazu.
Poznámka
Služba QnA Maker se k 31. březnu 2025 vyřadí z provozu. V rámci jazyka Azure AI je teď k dispozici novější verze funkce otázek a odpovědí. Informace o možnostech odpovídání na otázky v rámci služby jazyka najdete v článku o odpovídání na otázky. Od 1. října 2022 nebudete moct vytvářet nové prostředky služby QnA Maker. Informace o migraci stávajících znalostních bází služby QnA Maker na zodpovězení otázek najdete v průvodci migrací.
Získání predikcí odpovědí pomocí rozhraní GenerateAnswer API
Rozhraní GENERATEAnswer API v robotovi nebo aplikaci použijete k dotazování znalostní báze s otázkou uživatele, abyste získali nejlepší shodu z párů otázek a odpovědí.
Poznámka
Tato dokumentace se nevztahuje na nejnovější verzi. Informace o používání nejnovějších rozhraní API pro odpovědi na otázky najdete v úvodní příručce pro odpovědi na otázky.
Publikování pro získání koncového bodu GenerateAnswer
Po publikování znalostní báze můžete z portálu QnA Maker nebo pomocí rozhraní API získat podrobnosti o koncovém bodu GenerateAnswer.
Získání podrobností o koncovém bodu:
Přihlaste se k webu https://www.qnamaker.ai.
V části Moje znalostní báze vyberte Zobrazit kód pro znalostní báze.
Získejte podrobnosti o koncovém bodu GenerateAnswer.
Podrobnosti o koncovém bodu můžete získat také na kartě Nastavení znalostní báze.
Konfigurace požadavku GenerateAnswer
Zavoláte GenerateAnswer s požadavkem HTTP POST. Vzorový kód, který ukazuje, jak volat GenerateAnswer, najdete v rychlých startech.
Požadavek POST používá:
- Požadované parametry identifikátoru URI
- Požadovaná vlastnost hlavičky ,
Authorization
pro zabezpečení - Požadované vlastnosti textu.
Adresa URL GenerateAnswer má následující formát:
https://{QnA-Maker-endpoint}/knowledgebases/{knowledge-base-ID}/generateAnswer
Nezapomeňte nastavit vlastnost Authorization
hlavičky HTTP na hodnotu řetězce EndpointKey
s koncovou mezerou a pak klíč koncového bodu, který najdete na stránce Nastavení .
Příklad textu 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žadoval pouze odpovědi, které jsou na hodnotě 30 % nebo nad prahovou hodnotou.
GenerateAnswer – vlastnosti odpovědi
Odpověď je objekt JSON obsahující všechny informace, které potřebujete k zobrazení odpovědi a dalšího odevzdání 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í kód JSON odpověděl odpovědí se skóre 38,5 %.
Porovnávání pouze otázek podle textu
Služba QnA Maker ve výchozím nastavení prohledává otázky a odpovědi. Pokud chcete hledat pouze otázky a chcete vygenerovat odpověď, použijte RankerType=QuestionOnly
v textu POST požadavku GenerateAnswer.
Můžete vyhledávat prostřednictvím publikované znalostní báze, pomocí příkazu isTest=false
nebo v testovací znalostní bázi pomocí .isTest=true
{
"question": "Hi",
"top": 30,
"isTest": true,
"RankerType":"QuestionOnly"
}
Použití služby QnA Maker s robotem v jazyce C#
Architektura robota poskytuje přístup k vlastnostem služby 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žadoval pouze odpovědi, které jsou na hodnotě 30 % nebo nad prahovou hodnotou.
Použití služby QnA Maker s robotem v Node.js
Architektura robota poskytuje přístup k vlastnostem služby 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žadoval pouze odpovědi, které jsou na hodnotě 30 % nebo nad prahovou hodnotou.
Získání přesných odpovědí pomocí rozhraní GenerateAnswer API
Funkci přesné odpovědi nabízíme pouze ve spravované verzi služby QnA Maker.
Běžné chyby 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 příliš velké. |
400 | Text požadavku je nesprávný, což znamená, že json chybí, je poškozený nebo je příliš velký. |
401 | Neplatný klíč |
403 | Zakázáno – nemáte správná oprávnění |
404 | Znalostní báze neexistuje. |
410 | Toto rozhraní API je zastaralé a už není dostupné. |
Další kroky
Stránka Publikovat také obsahuje informace pro vygenerování odpovědi pomocí nástroje Postman nebo cURL.