【问题标题】:Azure BOT Framework, Integrate QnA Maker with LUISAzure BOT 框架,将 QnA Maker 与 LUIS 集成
【发布时间】:2017-12-14 12:04:05
【问题描述】:

我正在搜索有关在 Azure BOT 框架 中将 QnA Maker APILUIS 集成的文档。但经过大量研究,我找不到任何这样的文件。

如果有人遇到同样的情况,请发表你的努力。

我在这里使用 C# 作为脚本。

【问题讨论】:

  • 我认为这取决于您要做什么。我刚刚为 QnA 创建了一个单独的对话框,并从我的 LUIS 对话框的 None 意图转发到该对话框。
  • 我觉得你的问题不够清楚。如果您想在机器人项目中使用 QnAMaker 和 LUIS,网络上有几个示例。有几种方法:首先调用 LUIS,然后在 None 意图上调用 QnAMaker,或者在没有回复时调用 QnAMaker 然后 LUIS... 选择将取决于您的业务案例
  • 让我解释一下我的场景,每当用户使用 BOT 并发送问候消息时,BOT 应该调用 LUIS 并从意图(在 LUIS 端)找到该问候并发送随机回复(会有一组问候响应)。之后,它将对 QnA maker API 进行下一次调用并抛出相关响应。我尝试了多个博客,但我无法同时使用这两个 API。如果你有相关的博客,请把链接发给我。

标签: botframework azure-language-understanding azure-bot-service qnamaker


【解决方案1】:

有几种通用的方法可以做到这一点,但最终由您作为 Bot 开发人员来决定如何构建它。

文档here 中提供了一般概述,但如果您想要更多面向代码的示例,这篇博文应该对您有所帮助 -

Dialog management with QnA, Luis, and 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,如果没有意图满足特定阈值分数,即触发“无”意图,则调用 QnA Maker。或者,为 QnA Maker 创建一个 LUIS 意图,为您的 LUIS 模型提供映射到“QnAIntent”的示例 QnA 问题。

3) 首先致电 QnA Maker,如果没有答案达到特定阈值分数,则致电 LUIS。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-28
    • 1970-01-01
    • 2019-12-13
    相关资源
    最近更新 更多