我正在使用botframework和NLP服务LUIS开发一个聊天机器人。
如果您希望app / chatbot根据前一个问题的上下文回答后续问题,那么有人可以在这里解释一下这可能是正确的方法吗?
让我举一个例子:
[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完成,但我不确定正确的方法。
编辑澄清:
我理解这可以完成如here所述的实现bindingActions,但这意味着我必须编写每个不同的用例代码(在这种情况下,我必须编写一个bindAction用于颜色,一个用于#doors,一个用于电机类型等,而我想要的是机器人来回答自发的问题。
下面的答案让我想到了实现瀑布对话框,并在对话框的第二步中将问题路由到具有不同答案的QnAmaker服务。
答案 0 :(得分:1)
您使用瀑布是正确的 - 我假设您正在使用Node.js SDK进行开发,在这种情况下,请查看文档here以了解如何实施瀑布来管理你的对话。
如果您使用的是.NET SDK,则可以使用form flow。
您的LUIS服务应该只返回一个'意图'用户希望为您的用例购买汽车,之后,您需要通过机器人中的对话框指导对话流程。对于'跟进'问题,您当前的对话框需要解决,或者您可以实现全局消息处理程序。
此article展示了.NET的示例,但您可以为node.js bot应用相同的逻辑。在该文章中,LUIS用于根据返回的意图将用户定向到不同的对话框。
希望这有帮助,祝你好运!