【问题标题】:MS BotBuilder : How can I set a combination of an intent and an entity to trigger a dialog?MS BotBuilder:如何设置意图和实体的组合来触发对话?
【发布时间】:2017-08-07 10:27:36
【问题描述】:

我正在使用 MS BotBuilder 创建一个机器人语言理解机器人。我有一个对话readProfile,它是在Read Intent 上触发的,该 Intent 是在 LUIS 上训练的。

 bot.dialog('readProfile', [
        function (session, args) {
            var entities = args.intent.entities;
            console.log("entities : ", entities)

    ]).triggerAction({
        matches: 'Read'
    }).cancelAction('cancelReadProfile', "Ok.", {
        matches: /^(cancel|nevermind)/i
    });

LUIS 模型经过训练可以识别 Profile 等实体,因此我确实在控制台中获取了实体。

但是,我希望仅当识别的实体是Profile 时才触发对话框。我可以设置一些逻辑仅在 args 中的实体为 Profile 时才起作用,但想知道是否有内置/更优雅的方式来执行此操作。

感谢您的意见。

【问题讨论】:

    标签: botframework azure-language-understanding


    【解决方案1】:

    我认为在 readProfile 对话框的第一步中使用逻辑语句是最好的方法。如果未找到 Profile 实体,则以“看起来您正在尝试阅读个人资料,但我无法弄清楚您正在尝试阅读的个人资料”之类的消息结束对话。这样做的好处是可以为用户提供一些有关其操作的反馈,并帮助他们找出需要解决的问题。

    您可以尝试训练 Luis 模型,使其拥有 Profile 实体和 Read 意图之间具有很强的相关性。输入一些非常接近 Read 意图但不包含 Profile 的话语,并将它们标记为 None 意图。但是,这并不能保证它永远不会匹配没有配置文件的读取意图,所以我仍然推荐上述步骤。

    【讨论】:

    • 实际上,如果我允许自己进行逻辑陈述,我可以简单地在配置文件上使用 switch case,这就是我现在正在做的事情,但不想这样做。
    猜你喜欢
    • 2020-09-12
    • 1970-01-01
    • 1970-01-01
    • 2017-03-31
    • 1970-01-01
    • 2021-03-21
    • 1970-01-01
    • 2016-11-11
    • 1970-01-01
    相关资源
    最近更新 更多