【问题标题】:How can I Integrate QnA maker to gather user info?如何集成 QnA maker 以收集用户信息?
【发布时间】:2020-08-09 23:12:42
【问题描述】:

我目前已将 LUIS 与我的聊天机器人集成。 场景是:-

  1. 用户在 bot 中输入内容。
  2. 机器人逻辑调用 LUIS 来确定 Intent 并基于 INTENT 相应的对话框被调用。
  3. 在对话框中,我通过使用瀑布对话框收集用户信息 提示。

我现在想要的是, 在上述场景的第 2 步之后,根据从 LUIS 返回的 INTENT,我希望从 QnA 而不是 BOT 提出后续问题。 基本上,我想用 QnA maker 替换瀑布步骤。 这样做可以吗?是否可行?

流程如下所述:- USER:-创建任务

-->>>>从 LUIS 返回的意图

-->>>>根据返回的 INTENT 调用 QnA

QnA:-您想在哪个项目中创建任务?

USER:-(提供项目名称)

QnA:- 任务描述是什么?

用户:-(提供描述)

【问题讨论】:

  • 使用提示可能是可行的,但在我看来,这不是 QnA Maker 的好用处。您能帮我理解为什么您不想将其作为瀑布对话框执行吗?
  • 我想要的不是在代码中硬编码问题,而是应该从 QnA 制造商那里询问,这样以后如果我需要对问题进行任何更改,我就不需要回到我的代码改变它。-@billoverton

标签: botframework azure-language-understanding qnamaker


【解决方案1】:

解决这部分问题 - 我想用 QnA maker 替换瀑布步骤。这样做可以吗?是否可行?

答案是否定的。 QnA 是您的知识库与搜索引擎服务的组合。它会根据您提出的问题动态选择答案。

现在,继续为您的主要问题提出解决方案的建议。 (这是我已经在我的代码中做的事情)

您甚至可以在用户信息收集到代码中的 qna 制造商之前捕获它。您可以专门为用户信息创建提示,如果您的流程确定它是用户信息,则您可以扩展到现在的用户信息收集系统(从而防止触发 qna)。

当它不是用户信息(或您不想捕获的东西)时,您让 qna maker 的默认流程接管。

        var tempInputText = activity.Text;
        if(tempInputText.Contains("batman") == true)
        {
            var tempActivityBatman = new Activity();
            tempActivityBatman.Text = "did you just ask about batman, " + userProfile.Name + "?";
            tempActivityBatman.Type = "message";
            //await stepContext.Context.SendActivityAsync(_templateEngine.GenerateActivityForLocale("UnsupportedMessage", userProfile));
            await stepContext.Context.SendActivityAsync(tempActivityBatman,cancellationToken);
            return await stepContext.NextAsync();
        }

上面的代码示例是一个快速的脏代码,我用来浏览我希望聊天从常规代码转移的特定单词。

【讨论】:

  • 抱歉回复晚了。我没有得到您所说的“在用户信息发送给 QnA 制造商之前获取用户信息”的部分。我如何确定它是否是用户信息? @Jay
  • 我已经用我使用的示例代码更新了我的答案。注意:这不是最优雅的解决方案,但对我的项目来说已经足够了。
【解决方案2】:

QnA Maker 与 LUIS

何时使用 QnA Maker 与 LUIS。从根本上说,QnA Maker 是一种搜索服务,而 LUIS 是一种查询理解服务。

· 使用 QnA Maker:如果您有大量数据,则需要从其中使用静态内容进行响应。

· 使用 LUIS:如果您希望能够根据查询的意图触发任务或工作流。

QnA Maker 和 LUIS 可以相互补充,但使用顶级 dispatch 在两个服务之间进行仲裁。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-17
    • 1970-01-01
    • 1970-01-01
    • 2019-12-13
    相关资源
    最近更新 更多