如何让Watson在用户输入时识别两个不同的日期?

时间:2019-08-24 09:43:08

标签: ibm-watson watson-assistant

如果用户问以下句子:

Intent

由于某种原因,Watson即使检测到第二个日期,也将$ checkin和$ checkout变量都使用第一个日期。

您可以参考“对话框节点”屏幕截图,以了解如何设置节点。

node

我如何让Watson识别第一个日期为登记日期,第二个日期为结帐日期。如果检测到第二个日期,我有办法告诉第一个日期后使用Watson吗?

我发现了有关@ sys-date range_link实体的信息。但是文档不详细。

1 个答案:

答案 0 :(得分:2)

这很容易做到,但是存在您需要注意的问题。

插槽允许您在读取变量时定义变量。例如。

Slots UI showing two variables to be checked, both sys date.

将生成以下内容:

Output of settings


问题在于,您假设人们会以您需要信息的相同顺序询问。如果这没有发生,那么它将失败。

您可以通过调整用户提出问题的方式来缓解这种情况。例如:

"Please let me know where you are leaving and going to"

此人更有可能首先对退出日期做出回应。


BETA

这可能会发生变化,并且无法按您预期的那样完全起作用。您可以在选项中启用beta @ sys-date。因此,我不建议您依赖它直到最终版本。

您首先需要检查range_link。这将告诉您是否检测到两个日期相互关联。

然后您可以执行以下操作:

From Date: <? entities['sys-date'].filter("d", "d.role.type == 'date_from'")[0]?.value ?>
To Date: <? entities['sys-date'].filter("d", "d.role.type == 'date_to'")[0]?.value ?>

这是查找具有date_from作用的确切记录并返回值。 date_to也是如此。

您最终得到的是这样的东西。

enter image description here

enter image description here