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

art*_*tie 5 botframework azure-language-understanding

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

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

Eze*_*dib 6

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

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

AzureBot也有类似的情况,他们用它解决DialogFactory遵循的战略格局.每个"域"对话框都知道传入消息是否可以处理(是虚拟机操作的消息).在这里你可以看到他们的RootDialog中他们也有LUIS以及如何在None/Empty意图中将消息重定向到相应的对话框.

在这个领域探索的另一种选择是使用一个IScorable接口,长话短说,基本上允许你拦截所有消息并决定做什么.该ContosoFlowers样品具有IScorable 实现为您看一看.C#BotBuilder库还有DeleteProfileScorable,它基本上处理/ deleteprofile消息.

  • 我已经学习和使用Bot Framework近一个月了,我完全不知道BotBuilder-Samples存储库.我只是在研究BotBuilder存储库中的示例.这些示例包含实现多个对话框所需的内容以及更多内容.非常感谢你. (2认同)