DialogFlow日期意图始终触发另一个类似的日期意图

时间:2018-04-02 21:55:21

标签: dialogflow

美好的一天,

我的情况是在Dialogflow 中为航班预建代理构建履行服务。以下是应用程序中的示例交互。

  1. 我希望从伦敦返回纽约 - DialogFlow / Fulfillment后端接收用户Ticket-Type [return],To [New York]和From [London]实体。
  2. 履行服务回应 - 您打算去哪个日期旅行?例如,下周一或四月一日
  3. 用户进入明天 - Dialogflow捕获用户离开日期实体,我们将此意图称为出发意图。
  4. 履行服务现在继续问 - 您打算什么日期返回?例如,下周一周一或四月一日,我将其称为返回意图
  5. 用户下周星期一进入 - Dialogflow仍将与步骤3中的出发意图相匹配,这将导致回复用户返回相同的返回日期。但是如果用户输入i将在下周星期一返回,那么返回日期意图将匹配。
  6. 所以我的问题是如何在离境意图上进行Return Intent匹配,因为我已经捕获了Departure的数据,我不能指望用户也使用与日期一起使用的短语?

    更新了受影响的Intents的屏幕截图

    1. 日志网址 - https://jsbin.com/wofefivuqo/edit?js sample code

    2. 返回截图 - enter image description here

1 个答案:

答案 0 :(得分:0)

对此的一般解决方案是在出发日期后设置上下文。 (例如,您可以将其称为departure-set。)然后,您可以调整获取返回日期的Intent,使其在传入上下文中显示为departure-set。在这些情况下,它将支持具有与不匹配的Context(或具有不同Context的匹配)匹配的Intent。

在您的示例中,您有两个输入上下文,这很好,但这意味着必须存在两个上下文才能触发Intent。我不知道这两个上下文的生命周期是什么,但我注意到你的departure-set上下文的生命周期只有1,这意味着它只对用户的下一个响应有效。如果你为flight上下文做了同样的事情,那么在对话的这一点上它可能不再有效。