Botbuilder路由操作消息以纠正对话框

时间:2017-05-31 11:21:03

标签: node.js botframework

我正在使用node建立一个使用botbuilder框架的机器人,我现在正在尝试使用CardAction.dialogAction:

builder.CardAction.dialogAction(session, 'help', 'topic:mytopic', 'Click me')

它会生成如下所示的消息:

action?help=topic:mytopic

现在我需要将该操作路由到正确的对话框来处理它,但我无法弄清楚在哪里以及如何做到这一点。看到这是一个内置功能,我认为应该有简单的方法来做到这一点?

感谢帮助。

1 个答案:

答案 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类型可用)。