Získání odpovědi pomocí rozhraní GenerateAnswer API
Pokud chcete získat predikovanou odpověď na otázku uživatele, použijte rozhraní API GenerateAnswer. Když publikujete znalostní báze, uvidíte informace o tom, jak používat toto rozhraní API 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 testu dotazu.
Poznámka:
Služba QnA Maker se vyřadí z provozu 31. března 2025. Novější verze funkce pro otázky a odpovědi je teď dostupná jako součást jazyka Azure AI. Možnosti odpovídání na otázky v rámci služby Language Service najdete v tématu odpovědi 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í báze služby QnA Maker na zodpovězení otázek najdete v průvodci migrací.
Získání predikcí odpovědí pomocí rozhraní GenerateAnswer API
K dotazování znalostní báze pomocí rozhraní GenerateAnswer API ve vašem robotovi nebo aplikaci získáte 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 průvodci rychlým zprovozněním otázek.
Publikování pro získání koncového bodu GenerateAnswer
Po publikování znalostní báze z portálu služby QnA Maker nebo pomocí rozhraní API můžete získat podrobnosti o koncovém bodu GenerateAnswer.
Získání podrobností o koncovém bodu:
Přihlaste se na https://www.qnamaker.ai.
V znalostní báze vyberte Zobrazit kód pro váš 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. Ukázkový 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 s hodnotou řetězce EndpointKey
s koncovou mezerou a pak klíč koncového bodu nalezený 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í JSON požadoval pouze odpovědi, které mají 30 % nebo vyšší skóre prahové hodnoty.
Vlastnosti odpovědi GenerateAnswer
Odpověď je objekt JSON, včetně všech informací, 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 %.
Shoda pouze s otázkami podle textu
Ve výchozím nastavení služba QnA Maker vyhledává otázky a odpovědi. Pokud chcete hledat jenom otázky, vygenerujte odpověď pomocí RankerType=QuestionOnly
textu POST požadavku GenerateAnswer.
Publikovanou znalostní bázi můžete prohledávat pomocí nebo isTest=false
v testovací kb pomocí isTest=true
.
{
"question": "Hi",
"top": 30,
"isTest": true,
"RankerType":"QuestionOnly"
}
Použití služby QnA Maker s robotem v jazyce C#
Rozhraní bot Framework 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í JSON požadoval pouze odpovědi, které mají 30 % nebo vyšší skóre prahové hodnoty.
Použití služby QnA Maker s robotem v Node.js
Rozhraní bot Framework 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í JSON požadoval pouze odpovědi, které mají 30 % nebo vyšší skóre prahové hodnoty.
Získání přesných odpovědí pomocí rozhraní GenerateAnswer API
Funkci přesných odpovědí nabízíme pouze se spravovanou verzí 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 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í k dispozici. |
Další kroky
Stránka Publikovat také poskytuje informace o vygenerování odpovědi pomocí rozšíření REST Client editoru Visual Studio Code nebo cURL.