我正在使用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
时,才会工作,但想知道是否有内置/更优雅的方法来执行此操作。
感谢您的意见。
答案 0 :(得分:0)
我认为在readProfile对话框的第一步中使用逻辑语句是执行此操作的最佳方法。如果找不到任何配置文件实体,请在对话框中显示一条消息,例如“看起来您正在尝试阅读配置文件,但我无法弄清楚您尝试阅读的配置文件。”这样做的好处是可以为用户提供有关其操作的一些反馈,并帮助他们找出需要修复的内容。
您可以尝试训练Luis模型,使其具有Profile实体和Read intent之间的强相关性。输入几个非常接近“读取”意图的话语但不包含“个人档案”并使用“无”意图标记它们。但是,这并不能保证它不会在没有配置文件的情况下匹配读取意图,所以我仍然建议采用上述步骤。