如何从watson对话中排除星期日

时间:2017-04-19 13:15:19

标签: javascript node.js ibm-watson watson-conversation

我是编码和Watson Conversation的新手,我正在尝试做一个安排星期一到星期六约会的聊天机器人。我使用@sys-date实体并且工作正常,但我不知道如何排除星期日。例如:

watson :你最好的约会对象是什么? 用户:星期日
watson :这一天关闭了

我在工作区尝试过:(条件)if: action ==' sunday' 是这样的:workspace

在nodejs

中编码如下
    // Send the input to the conversation service

conversation.message(payload, function (err, data) {
  if (err) {
    return res.status(err.code || 500).json(err)
  }else if(data.output.action==='sunday'){
    var date = new Date();
  if(!(date.getDay() % 6)){
    return res.json(payload,data.output.text["On this day the establishment is closed"]);
  }}else{
  return res.json(updateMessage(payload, data));
}});});

它仍然给我星期日(约23/04/2017)。我知道一切都错了,但我真的尝试过......有人可以帮帮我吗?如果你能把代码用来帮助我,我会很感激。

1 个答案:

答案 0 :(得分:1)

在这种情况下,是的...您可以使用参数data向Watson和用户发送消息。并且,您不能从系统实体中排除“星期日”。此权利仅用于帮助我们处理特殊条件。

在您的情况下,请使用:

data.output.text[0] = "On this day the establishment is closed";

因为data.output.text将Watson消息发送给Conversation。

但是,一个好的聊天机器人的最佳实践是创建IntentsEntities来为您的机器人传递智能并保留尽可能多的智能尽可能在聊天机器人中。而且您的应用只会检查。

例如,使用星期日,星期一等创建一个Entitie @days

  • 使用示例创建一个intent如何询问“安排约会”
  • 使用星期日,星期一等值创建一个Entitie @days
  • 使用Intent和Entitie条件(#bestDay和@days)在Dialog中创建一个流。

在您的高级JSON中,添加一个带有日期值的上下文变量,如下所示:

  {
  "context": {
    "day": "<? @days ?>"
  },
  "output": {
    "text": {
      "values": [
        "Sorry. On $day the establishment is closed"
      ],
      "selection_policy": "sequential"
    }
  }
}

检查流程:

enter image description here

检查流程是否正常:

enter image description here

如果不是星期日:

enter image description here

下载工作区以帮助您更多here