【问题标题】:Correct approach with follow-up questions in a LUIS app在 LUIS 应用中处理后续问题的正确方法
【发布时间】:2017-12-12 16:40:58
【问题描述】:

我正在使用机器人框架和 NLP 服务 LUIS 开发一个聊天机器人。

如果您希望应用/聊天机器人根据前一个问题的上下文回答后续问题,谁能在这里解释一下正确的方法是什么?

让我举个例子:

[me]: I want to buy a Ford car
[bot]: Here are the list of different cars we have....
[me]: what about a red one?
[bot]: sure! I added the red color to your car
[me]: I also want bluetooth
.....

如您所见,如果您不了解对话的上下文,那么有关颜色和蓝牙或汽车可能具有的任何其他品质的问题都是没有意义的。

这应该通过机器人框架上的瀑布方法来完成,还是应该通过 LUIS 话语来完成?我们如何才能做到这一点?我认为必须通过 LUIS 完成,但我不确定正确的方法。

编辑澄清:

我知道这可以通过实现 bindingActions 来实现,如 here 所述,但这意味着我必须编写每个不同的用例(在这种情况下,我必须编写一个用于颜色的 bindAction,一个用于#doors,一个用于电机类型等),而我想要的是回答自发问题的机器人。

下面的答案让我开始考虑实施瀑布对话,并在对话的第二步将问题路由到具有不同答案的 QnAmaker 服务。

【问题讨论】:

标签: nlp botframework microsoft-cognitive azure-language-understanding


【解决方案1】:

您使用瀑布是正确的 - 我假设您正在使用 Node.js SDK 进行开发,在这种情况下,请查看文档 here 以了解如何实施瀑布来管理您的对话框。

如果您使用的是 .NET SDK,则应使用 form flow

您的 LUIS 服务应该只返回用户希望为您的用例购买汽车的“意图”,之后,您需要通过机器人中的对话框引导对话流。对于“后续”问题,您当前的对话需要解决,或者您可以实现全局消息处理程序。

article 展示了 .NET 的示例,但您可以将相同的逻辑应用于 node.js 机器人。在那篇文章中,LUIS 用于根据返回的意图将用户引导到不同的对话框。

希望这有帮助,祝你好运!

【讨论】:

  • 谢谢马修!我对如何在不编码每个用例的情况下解决后续问题表示怀疑。为此,我可以尝试使用问题和答案调用 QnAMaker 服务,并将问题路由到该服务,否则我不知道如何解决可以提出的每个不同问题。
猜你喜欢
  • 2014-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-09
  • 1970-01-01
  • 2012-09-30
  • 2012-04-19
  • 1970-01-01
相关资源
最近更新 更多