如何使用Bot框架在单个机器人上实现多个LUIS对话框?

时间:2016-11-03 11:08:18

标签: botframework luis

由于每个LUIS模型限制为20个意图和10个实体,并且每个模型必须具有明确定义的范围/域,因此我想知道在单个实现多个对话框的最佳方式是什么机器人应用程序,如果我希望我的机器人能够覆盖多个域,请说出获取财务信息和天气信息。

我知道理想情况下我会有两个不同的机器人,但在这种情况下,我需要用一个机器人做这个。我阅读了关于Dialogs(以及其他几个部分)和LUIS帮助页面的Bot Framework文档,但我无法找到有关如何实现这一目标的任何信息。我也看了一下这些例子,什么都没找到,有没有办法做到这一点?

1 个答案:

答案 0 :(得分:6)

因此,从技术角度来看,没有任何重大问题。您只需注册两个LUIS应用程序,并在您的应用程序中使用您创建的特定应用程序的LUIS键创建两个对话框。

我想你的问题更多的是“如何将消息重定向到相应的LUIS bot”。这是有效的问题。

AzureBot有类似的情况,他们使用遵循策略模式的DialogFactory来解决它。每个“域”对话框都知道传入消息是否是他们可以处理的消息(this是虚拟机操作的消息)。 Here你可以看到他们的RootDialog中他们也有LUIS以及如何在None / Empty意图中将消息重定向到相应的对话框。

在这个领域探索的另一个选择是使用一个IScorable接口,长话短说,基本上允许你截取所有消息并决定做什么。 ContosoFlowers示例有一个IScorable implementation供您查看。 C#BotBuilder库还有DeleteProfileScorable,它基本上处理/ deleteprofile消息。