【问题标题】:dialogflow sys.date-time parameter format questiondialogflow sys.date-time 参数格式问题
【发布时间】:2019-11-26 19:51:49
【问题描述】:

我正在 Dialogflow 上制作应用程序,需要从用户那里提取 date-time 信息。所以我在我的意图中使用@sys.date-time 实体指定了一个名为“date-time”的必需参数。但是,当我尝试在我的实现代码中提取这个参数时,我发现每次提取时这个参数结构都不相同。例如,当我在聊天机器人中输入12:30am 时,返回的 API json 响应包含以下内容:

"parameters": {
      "date-time": "2019-11-27T00:30:00-08:00",
      "log": "5"
    },

所以我可以通过parameters['date-time']直接读取date-time参数值

但是,如果我在聊天机器人中输入“昨天下午 2 点”,返回的参数结构是这样的:

"parameters": {
      "date-time": {
        "date_time": "2019-11-25T14:00:00-08:00"
      },
      "log": "log"
    },

看到“日期时间”参数被包裹在一个额外的“日期时间”对象中。这真的很烦人,因为现在我需要在我的实现代码中考虑这两种情况。有谁知道为什么会这样?这是我这边的错误吗?谢谢!

【问题讨论】:

    标签: dialogflow-es actions-on-google dialogflow-es-fulfillment


    【解决方案1】:

    您现在可能已经找到了答案,但是通过 Google 的文档 here 我发现您在使用 @sys.date-time 实体时必须考虑各种情况。所以你没有错。

    指定日期和时间时使用额外的“date_time”,而如果是一段时间,则您还必须在原始“date_time”对象中注意“startDate”和“endDate” .

    通过查看该文档中的示例,我概述了以下一些案例。

    特定时间(例如上午 12:30)或特定日期(例如 12 月 12 日)= 单个 date_time 对象

    时间段(日期或时间,例如四月或早上)= date_time 对象中的“startDate”和“endDate”条目

    特定日期 + 特定时间(例如昨天下午 2 点)= date_time 对象中的“date_time”条目

    日期 + 时间段(例如昨天下午)= date_time 对象中的“startDateTime”和“endDateTime”

    希望有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-23
      • 1970-01-01
      • 2020-04-14
      • 2020-03-10
      • 1970-01-01
      相关资源
      最近更新 更多