Watson 助手根据@sys-date 的用户输入将星期几放入变量中

Watson assistant putting the day of the week in a variable based on user input of @sys-date

我正在制作一个可以预订晚餐的机器人。当它询问用户预订时间时,我希望机器人根据用户输入的日期用星期几填充我的变量 $dayoftheweek。我怎样才能做到这一点?

这是我的位置 "If Found"。

基本上我想知道我可以输入什么 "value" 来填充星期几。

最简单的方法是使用 new system entities (currently in beta)。在您的技能选项中启用测试版。然后,在您的对话节点中,分配以下内容:

Check for: @sys-data.day_of_week
save as: mydayofweek

请注意日期名称是小写的。

您可以使用方法 reformatDateTime of the expession language 从 @sys-date 中获取日期。

例如设置$dayofweek

<? @sys-date.reformatDateTime('u') ?> 

会将 $dayofweek 设置为“1”(星期一)和“7”(星期日)之间的值

或将 $dayofweek 设置为

<? @sys-date.reformatDateTime('E') ?> 

会将 $dayofweek 设置为 "Mo" 和 "Su"

之间的值

@sys-date 的值存储为字符串格式“yyyy-MM-dd”,例如"2016-11-21".

如果你想知道那个日期是星期几,你可以使用方法reformatDateTime:

"<? @sys-date.reformatDateTime('EEEE') ?>"

Here all the posibles values of the method

因此您的节点看起来像 this。

或JSON格式:

{
  "context": {
    "dayoftheweek": "<? @sys-date.reformatDateTime('EEEE') ?>"
  }
}

这里是将存储在 $dayoftheweek 中的一小部分 test:

Watson: Hello. How can I help you?

User: Day of the week test

Watson: Tell me a date

User: September 13, 2019

Watson: Friday

Here是测试的JSON技能。