我正在搜索有关在Azure BOT Framework中将QnA Maker API与LUIS集成的文档。但经过大量研究,我找不到任何这样的文件。
如果有人遇到相同的情况,请发表您的努力。
我在这里使用 C# 作为脚本。
我正在搜索有关在Azure BOT Framework中将QnA Maker API与LUIS集成的文档。但经过大量研究,我找不到任何这样的文件。
如果有人遇到相同的情况,请发表您的努力。
我在这里使用 C# 作为脚本。
有几种通用方法可以做到这一点,但最终由您作为 Bot 开发人员来决定如何构建它。
此处的文档中提供了一般概述,但如果您想要更多面向代码的示例,这篇博文应该可以帮助您 -
使用 QnA、Luis 和 Scorables 进行对话管理
在示例中,LuisDialog充当一种消息控制器,根据意图引导用户进入某种对话。这也可用于将用户引导至 QnA 对话框 ->
[Serializable]
[LuisModel("YourLuisAppID", "YourLuisSubscriptionKey")]
public class LuisDialog : LuisDialog<object>
{
// methods to handle LUIS intents
[LuisIntent("")]
[LuisIntent("None")]
public async Task None(IDialogContext context, LuisResult result)
{
// You can forward to QnA Dialog, and let Qna Maker handle the user's
query if no intent is found
await context.Forward(new QnaDialog(), ResumeAfterQnaDialog,
context.Activity, CancellationToken.None);
}
[LuisIntent("Some-Intent-Like-Get-Weather")]
public async Task GetWeather(IDialogContext context, LuisResult result)
{
....
// some tasks, forward to other dialog, etc
}
}
这是一种方法,也是一种流行的方法。在此设置中,如果 LUIS 无法检测到任何意图,它会将用户的查询路由到 QnA 对话框,供 Qna 服务(您训练的)回答。
或者,如果用户的意图是提出问题,您可以专门创建一个“问题意图”并尝试以这种方式将其转发给 QnA。然而,这更棘手,因为这种方法需要您手动创建自定义代码来管理响应的“分数”。
希望这足以帮助您获得所需的东西!
编辑- 抱歉,修复了第一个链接。
此外,我将粘贴文档中列出的 3 个常见场景作为使用 LUIS + QnA 的方式:
1) 同时调用 QnA Maker 和 LUIS,并使用第一个返回特定阈值分数的信息来响应用户。
2)先调用LUIS,如果没有intent满足特定阈值分数,即触发“None”intent,则调用QnA Maker。或者,为 QnA Maker 创建一个 LUIS 意图,为您的 LUIS 模型提供映射到“QnAIntent”的示例 QnA 问题。
3)首先调用 QnA Maker,如果没有答案达到特定阈值分数,则调用 LUIS。