-1

当用户说“获取 ID 为 KMN849SDA 的票证”时,如何使用 IBM Watson 在聊天机器人中检测纯文本或自由格式文本,如果有可能的话,机器人将识别出“KMN849SDA”是票证 ID这样做,如果不是,我怎么能用编码来处理它

4

1 回答 1

1

在这种情况下,如果您的 id 有一些默认值,例如:每个 ID 都以 KMN 开头,您可以使用一些REGEX来获取 ID 并保存在contextWatson Conversation Service 内的变量中。

例如,我的正则表达式现在尝试查找 11 个数字:

input.text.find('^[^\d]*[\d]{11}[^\d]*$')

为了将此值保存在一个context变量中,您可以使用:

"context": {
    "ticketID": "<?input.text.extract('^[^\\d]*[\\d]{11}[^\\d]*$',0)?>"
}

为了在您的应用程序中使用,您需要访问对话消息调用方法的返回,例如:

//add inside your call, like:
conversation.message(payload, function (err, data) {
    console.log(data.context.ticketID); //your ticketID here
    if (err) {
      return res.status(err.code || 500).json(err);
    }
    updateMessage(payload, data, req, res);

  });
}); 

并且为了在您的应用程序中使用该协议与用户验证此协议是否正确,您可以使用:

if bot recognizes input.text.find('^[^\d]*[\d]{11}[^\d]*$') response "Your ticket is is $tickedID?"
于 2017-08-16T12:14:05.857 回答