我是编码和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)。我知道一切都错了,但我真的尝试过......有人可以帮帮我吗?如果你能把代码用来帮助我,我会很感激。
答案 0 :(得分:1)
在这种情况下,是的...您可以使用参数data
向Watson和用户发送消息。并且,您不能从系统实体中排除“星期日”。此权利仅用于帮助我们处理特殊条件。
在您的情况下,请使用:
data.output.text[0] = "On this day the establishment is closed";
因为data.output.text
将Watson消息发送给Conversation。
但是,一个好的聊天机器人的最佳实践是创建Intents
和Entities
来为您的机器人传递智能并保留尽可能多的智能尽可能在聊天机器人中。而且您的应用只会检查。
例如,使用星期日,星期一等创建一个Entitie @days 。
intent
如何询问“安排约会”Entitie
@days
在您的高级JSON中,添加一个带有日期值的上下文变量,如下所示:
{
"context": {
"day": "<? @days ?>"
},
"output": {
"text": {
"values": [
"Sorry. On $day the establishment is closed"
],
"selection_policy": "sequential"
}
}
}
检查流程:
检查流程是否正常:
如果不是星期日:
下载工作区以帮助您更多here。