在找到 'before' 或 'after' 或任何同义词时返回布尔值

Returning a boolean upon finding 'before' or 'after' or any synonyms

我正在构建一个日历聊天机器人应用程序,我正在使用 DialogFlow ES 来检测他们在说什么。我想要实现的一件事是用户能够说“在星期二之前预订会议”,“下周在之前预订会议”, “在下个月 之后预定会议”,等等

我已经拥有预订会议以及检测日期和日期范围(星期二、下个月、明天等)的功能,但是我希望 DialogFlow 在检测到 return 一个布尔值时句子中的 'before' 或 'after' 或任一词的任何同义词(例如之前:'prior to',等等)。

一些例子:

'Book a meeting before Tuesday' 会 return 典型参数还有 beforeAfterFlag: true('before' 会设置为 true)

'Book a meeting after Tuesday' 会 return 典型参数,还有 beforeAfterFlag: false('after' 会将其设置为 false)

'Book a meeting on Tuesday' 会 return 典型参数,还有 beforeAfterFlag:-(无 returned)

我该如何实现?

您不能为后端设置 Dialogflow return 布尔值。 Dialogflow 旨在理解和检测人类语言的单词。它不理解布尔值或其他编程值。

因此,如果您想使用 Dialogflow 创建一个类似的机制来检测用户是否使用了诸如“之前”或“之后”之类的词,您将不得不使用实体,这与检测日期的方式相同.

您可以创建一个 moment 实体并为其提供所需的值和同义词:

  1. 之前、之前等
  2. 之后

然后在您的意图中,添加一些包含此意图的示例短语。取消选中所需的复选框,因为您仍然希望您的用户能够在不使用诸如 before 之类的词的情况下进行预约。

当您的用户触发您的意图时,您可以检查请求中的 moment 参数。如果它有一个 before 值,你在你的 webhook 中将 before 变量设置为 true,after 也是如此,如果没有 moment 参数,你知道你的用户没有' t 使用一个,所以你可以将两个参数都设置为 false。