如何在沃森对话中提取当前日期
How to extract current date in watson conversation
我需要在 Watson Conversation 对话模型中创建一个条件,如下所示:
if "today's date" < 2017 年 4 月 15 日做点什么。
否则做点别的。
我不想询问用户当前日期并保存它。
我试了很多方法都不行,我也试过输出日期(不行):
{
"context": {
"currdate": "@sys-date:today"
},
"output": {
"text": {
"values": [
"here it is $currdate"
],
"selection_policy": "sequential"
}
}
}
我不确定,但在我尝试过的所有测试中,如果用户今天没有输入或什么的,Watson 不会识别,但是,我相信通过代码我们可以做一些事情。可能使用 IBM Watson 的人会正确回答您。
但是,据我所知:
尝试在条件中使用 now() 并将日期保存在上下文变量中。
return是:
yyyy-MM-dd HH:mm:ss
使用您的代码获取上下文变量并仅获取日期...在您可以设定条件后...
JSON 示例:
{
"context": {
"dateHour": "<? now() ?>"
},
"output": {
"text": {
"values": [
"Now is $dateHour."
],
"selection_policy": "sequential"
}
}
}
我正在研究有关 Watson 中系统实体的所有文档,如果用户不请求,我看不到任何关于提取数据的信息,但是,我怎么说,可能有人在 IBM 工作会回答,我只是想帮忙你了解我的基本知识。
查看有关此实体的文档 @sys-date now()
here。
她是对的,您需要应用程序代码来获取当前日期和时间并将其作为上下文传递。到目前为止,我们所有的系统实体和努力都围绕着理解用户所说的内容,所以如果他们今天不说,我们就不会知道这很重要。
从理论上讲,我认为您可以让您的应用程序在用户的句子末尾通过 'today' 或其他内容,然后 运行 它通过处理管道并为您提供今天的日期,但可能是一个奇怪的用户经验。
如果您使用 now()
,那么您可以重新格式化它以使其正常工作。
我将要比较的日期存储在 $date 中,在你的情况下 "date": "04-15-2017"
,然后使用以下内容:
要查看日期是否在未来,请使用:
now().reformatDateTime('dd-MM-yyyy').before($date)
如果过去:
now().reformatDateTime('dd-MM-yyyy').after($date)
您可以阅读 reformatDateTime here. It uses standard JAVA date string formatting rules which you can find here。
我需要在 Watson Conversation 对话模型中创建一个条件,如下所示:
if "today's date" < 2017 年 4 月 15 日做点什么。 否则做点别的。
我不想询问用户当前日期并保存它。
我试了很多方法都不行,我也试过输出日期(不行):
{
"context": {
"currdate": "@sys-date:today"
},
"output": {
"text": {
"values": [
"here it is $currdate"
],
"selection_policy": "sequential"
}
}
}
我不确定,但在我尝试过的所有测试中,如果用户今天没有输入或什么的,Watson 不会识别,但是,我相信通过代码我们可以做一些事情。可能使用 IBM Watson 的人会正确回答您。
但是,据我所知:
尝试在条件中使用 now() 并将日期保存在上下文变量中。
return是:
yyyy-MM-dd HH:mm:ss
使用您的代码获取上下文变量并仅获取日期...在您可以设定条件后...
JSON 示例:
{
"context": {
"dateHour": "<? now() ?>"
},
"output": {
"text": {
"values": [
"Now is $dateHour."
],
"selection_policy": "sequential"
}
}
}
我正在研究有关 Watson 中系统实体的所有文档,如果用户不请求,我看不到任何关于提取数据的信息,但是,我怎么说,可能有人在 IBM 工作会回答,我只是想帮忙你了解我的基本知识。
查看有关此实体的文档 @sys-date now()
here。
她是对的,您需要应用程序代码来获取当前日期和时间并将其作为上下文传递。到目前为止,我们所有的系统实体和努力都围绕着理解用户所说的内容,所以如果他们今天不说,我们就不会知道这很重要。 从理论上讲,我认为您可以让您的应用程序在用户的句子末尾通过 'today' 或其他内容,然后 运行 它通过处理管道并为您提供今天的日期,但可能是一个奇怪的用户经验。
如果您使用 now()
,那么您可以重新格式化它以使其正常工作。
我将要比较的日期存储在 $date 中,在你的情况下 "date": "04-15-2017"
,然后使用以下内容:
要查看日期是否在未来,请使用:
now().reformatDateTime('dd-MM-yyyy').before($date)
如果过去:
now().reformatDateTime('dd-MM-yyyy').after($date)
您可以阅读 reformatDateTime here. It uses standard JAVA date string formatting rules which you can find here。