【问题标题】:How do I implement multiple LUIS dialogs on a single bot using the Bot Framework?如何使用 Bot Framework 在单个机器人上实现多个 LUIS 对话框?
【发布时间】:2017-03-16 22:44:30
【问题描述】:

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

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

【问题讨论】:

    标签: botframework azure-language-understanding


    【解决方案1】:

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

    我猜您的问题更多的是“如何将消息重定向到相应的 LUIS 机器人”。这是一个有效的问题。

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

    在这个领域探索的另一种选择是使用 IScorable 界面,长话短说,基本上可以让您拦截所有消息并决定做什么。 ContosoFlowers 样本有一个 IScorable implementation 供您查看。 C# BotBuilder 库也有 DeleteProfileScorable,它基本上处理 /deleteprofile 消息。

    【讨论】:

    • 我已经学习和使用 Bot Framework 将近一个月了,我完全不知道 BotBuilder-Samples 存储库。我只是在研究 BotBuilder 存储库中的示例。这些示例包含实现多个对话框所需的内容等等。非常感谢。
    • 您帖子中的某些链接不再有效,并给出 404。
    • @LeonCullens 我刚刚修复了它们
    • @EzequielJadib 我正在实施 DialogFactory 策略,但是当对话框调用 LUIS 时出现错误:429 (Too Many Requests)...不明白为什么...
    • @EzequielJadib:请参考此文档:docs.microsoft.com/en-us/bot-framework/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-19
    • 2018-03-25
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多