如何从沃森对话中排除星期日

How exclude sunday from watson conversation

我是编码和 Watson Conversation 方面的新手,我正在尝试制作一个聊天机器人,它可以安排周一至周六的约会。我使用了@sys-date 实体并且它工作正常,但我不知道如何排除 sunday.For 示例:

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)。我知道一切都错了,但我真的试过了……有人能帮帮我吗?如果你能把代码帮助我,我将不胜感激..

在这种情况下,是的...您可以使用参数 data 向 Watson 和用户发送消息。而且,您不能从系统实体中排除 "Sunday"。此实体仅用于帮助我们解决特殊情况。

在你的情况下,使用:

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

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

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

例如,创建一个实体@days,其值为星期日、星期一等

  • 创建一个 intent 并举例说明如何提问 "schedule appointments"
  • 创建一个 Entitie @days 值星期日、星期一等
  • 使用 Intent 和 Entitie 条件(#bestDay 和 @days)在您的对话框中创建一个流程。

并且在您的 Advance JSON 中,添加一个具有日期值的上下文变量,如下所示:

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

查看流量:

检查流程是否正常:

如果不是星期天:

下载工作区,为您提供更多帮助here