我正在使用node建立一个使用botbuilder框架的机器人,我现在正在尝试使用CardAction.dialogAction:
builder.CardAction.dialogAction(session, 'help', 'topic:mytopic', 'Click me')
它会生成如下所示的消息:
action?help=topic:mytopic
现在我需要将该操作路由到正确的对话框来处理它,但我无法弄清楚在哪里以及如何做到这一点。看到这是一个内置功能,我认为应该有简单的方法来做到这一点?
感谢帮助。
答案 0 :(得分:0)
由于此时缺少任何其他选项,我采用了编写自己的简单动作识别器。这不是美,但它可以解决问题。
function action_recognizer() {
return {
recognize: function (context, done) {
let intent = { score: 0.0 }
const text = context.message.text
if (text) {
const m = text.match(/action\?(\w+)=?(.+)/)
logger.debug(m)
if (m) {
switch (m[1]) {
case 'help':
intent = { score: 1.0, intent: 'help' }
if (m.length > 2) {
intent.entities = [{entity: m[2], type: 'custom_intent'}]
}
break
}
}
}
done(null, intent)
}
}
}
这基本上会指向我的help:/
对话框。这反过来将读取实体列表(如果custom_intent类型可用)。