DialogFlow 日期意图总是在另一个类似的日期意图上触发
DialogFlow date intent always triggered over another similar date intent
大家好,
我遇到的情况是在 Dialogflow 中为 Flights 预建代理构建履行服务。下面是应用程序中的示例交互。
- 我想要从伦敦飞往纽约的 return 航班 - DialogFlow/Fulfilment 后端接用户机票类型[return],至[纽约]和来自[伦敦]实体。
- 履行服务响应 - 您计划什么日期旅行?例如下周星期一或 4 月 1 日
- 用户输入明天 - Dialogflow 捕获用户出发日期实体,我们将此 Intent 称为出发意图。
- 履行服务现在继续询问 -
你打算什么时候return?例如,下周星期一或 4 月 1 日,我将其称为 Return Intent
- 用户进入下周星期一 - Dialogflow 仍将匹配第 3 步中的出发意图,这将导致对同一 Return 日期的用户返回响应。但是,如果用户输入 i will return next week monday 那么 return 日期意图匹配。
所以我的问题是如何使 Return Intent 与 Departure Intent 匹配,因为我已经捕获了 Departure 的数据并且我不能期望用户也使用与日期一起使用的短语?
已更新受影响 Intent 的屏幕截图
URL 到日志 - https://jsbin.com/wofefivuqo/edit?js
sample code
Return 截图 -
一般的解决方案是在确定出发日期后设置上下文。 (例如,您可以将其称为 departure-set
。)然后,您将获得 return 日期的 Intent 设定为在传入上下文中表示它期望 departure-set
。在这些情况下,它会优先考虑具有匹配上下文的 Intent,而不是不匹配(或具有不同上下文)的 Intent。
在您的示例中,您有两个输入上下文,这很好,但这意味着 两个 上下文必须存在才能触发 Intent。我不知道这两个 Context 的生命周期是多少,但是我注意到你的 departure-set
Context 的生命周期只有 1,这意味着它只会在用户的下一次响应时有效。如果您对 flight
语境做了同样的事情,那么它在对话中可能不再有效。
大家好,
我遇到的情况是在 Dialogflow 中为 Flights 预建代理构建履行服务。下面是应用程序中的示例交互。
- 我想要从伦敦飞往纽约的 return 航班 - DialogFlow/Fulfilment 后端接用户机票类型[return],至[纽约]和来自[伦敦]实体。
- 履行服务响应 - 您计划什么日期旅行?例如下周星期一或 4 月 1 日
- 用户输入明天 - Dialogflow 捕获用户出发日期实体,我们将此 Intent 称为出发意图。
- 履行服务现在继续询问 - 你打算什么时候return?例如,下周星期一或 4 月 1 日,我将其称为 Return Intent
- 用户进入下周星期一 - Dialogflow 仍将匹配第 3 步中的出发意图,这将导致对同一 Return 日期的用户返回响应。但是,如果用户输入 i will return next week monday 那么 return 日期意图匹配。
所以我的问题是如何使 Return Intent 与 Departure Intent 匹配,因为我已经捕获了 Departure 的数据并且我不能期望用户也使用与日期一起使用的短语?
已更新受影响 Intent 的屏幕截图
URL 到日志 - https://jsbin.com/wofefivuqo/edit?js
sample code
Return 截图 -
一般的解决方案是在确定出发日期后设置上下文。 (例如,您可以将其称为 departure-set
。)然后,您将获得 return 日期的 Intent 设定为在传入上下文中表示它期望 departure-set
。在这些情况下,它会优先考虑具有匹配上下文的 Intent,而不是不匹配(或具有不同上下文)的 Intent。
在您的示例中,您有两个输入上下文,这很好,但这意味着 两个 上下文必须存在才能触发 Intent。我不知道这两个 Context 的生命周期是多少,但是我注意到你的 departure-set
Context 的生命周期只有 1,这意味着它只会在用户的下一次响应时有效。如果您对 flight
语境做了同样的事情,那么它在对话中可能不再有效。