如何使用ibm watson在chatbot中检测纯文本或自由格式

时间:2017-08-16 09:27:22

标签: ibm-watson watson watson-conversation

当用户说"获取ID为KMN849SDA"的机票时,我如何使用IBM Watson检测聊天机器人中的纯文本或自由格式文本,机器人将识别" KMN849SDA&#34 ;是票证ID,如果有可能的方法,如果没有,我怎么能用编码处理它

1 个答案:

答案 0 :(得分:0)

在这种情况下,如果您的ID有一些默认值,例如:每个ID都以KMN开头,您可以使用一些REGEX获取ID并保存在Watson内的context变量中会话服务。

例如,我的正则表达式现在尝试找到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?"