MS BotBuilder:如何设置intent和实体的组合来触发对话?

时间:2017-03-16 10:04:37

标签: botframework luis

我正在使用MS BotBuilder创建一个机器人语言理解机器人。我有一个对话readProfile,它是在Read意图上触发的,是在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时,才会工作,但想知道是否有内置/更优雅的方法来执行此操作。

感谢您的意见。

1 个答案:

答案 0 :(得分:0)

我认为在readProfile对话框的第一步中使用逻辑语句是执行此操作的最佳方法。如果找不到任何配置文件实体,请在对话框中显示一条消息,例如“看起来您正在尝试阅读配置文件,但我无法弄清楚您尝试阅读的配置文件。”这样做的好处是可以为用户提供有关其操作的一些反馈,并帮助他们找出需要修复的内容。

您可以尝试训练Luis模型,使其具有Profile实体和Read intent之间的强相关性。输入几个非常接近“读取”意图的话语但不包含“个人档案”并使用“无”意图标记它们。但是,这并不能保证它不会在没有配置文件的情况下匹配读取意图,所以我仍然建议采用上述步骤。