【发布时间】:2017-04-04 02:07:41
【问题描述】:
我目前正在开发一个机器人,它利用LuisRecognizer 来匹配我的模型中定义的意图。启动机器人的初始消息使用提及来识别后续操作的目标。
LUIS 模型正确识别意图的主题,但其实体显然仅引用已识别用户的原始字符串值。从文档中,我被告知原始消息应该有一个自己的实体数组,其中包括原始提及。我应该可以在我的 NodeJS 机器人实现中通过 session.message.entities 访问它。但是,session.message 不存在于任何与 LUIS 意图匹配的传入消息中。
如何检索原始邮件的实体列表?
这是我的机器人的初始化方式:
const recognizer = new builder.LuisRecognizer(config.get('bot.model'))
const intents = new builder.IntentDialog({ recognizers: [recognizer] })
intents.matches('reward', '/reward')
bot.dialog('/', intents)
bot.dialog('/reward', [(session, context, next) => {
// session.message does not exist here
}])
【问题讨论】:
-
这很奇怪。您能否将您的代码与github.com/Microsoft/BotBuilder-Samples/blob/master/Node/… 进行比较,看看您是否发现那里有任何重大差异?
-
@EzequielJadib 编辑了原件以包含我的机器人如何初始化的示例。这似乎是我们两个代码库之间唯一的实质性区别。我会试试你的风格。
-
顺便说一句,示例使用的是 botbuilder v3.7.0(以防万一),这就是我们使用新样式的原因。
-
太好了,也许我引用的例子已经过时了。只是出于好奇,什么品质将其识别为较新的版本?使用
.triggerAction()链等? IntentDialog 是否已弃用? -
成功了吗?我可以按照我们讨论的内容发布一些内容作为答案吗?我不记得在哪个版本中添加了新样式。肯定是在 v3.7 之前。我记得的事情是:不再在对话框中使用 /,使用 triggerAction,intentDialog 不被弃用,我认为 LuisDialog 就是它。
标签: botframework microsoft-teams