如何停止dialogflow总是返回应该解析为今天作为明天的日期

时间:2019-04-08 11:02:35

标签: dialogflow dialogflow-fulfillment

我遇到一个问题,当Dialogflow用诸如 5am 之类的文本为自己的意图解析@ sys.date-time参数时,它们以明天的形式返回什么时候应该是今天

(今天是2019-04-08,而不是已解决的2019-04-09)

{
"responseId":"48bcf62d-dc2d-4f3c-befb-af8565fe01cb",
"queryResult":
   {
      "queryText":"today at 5a.m.",
      "speechRecognitionConfidence":0.97964007,
      "parameters": {
           "duration":"",
           "date":"2019-04-09T05:00:00+02:00" 
       },
...

"outputContexts":[
{
 ...
 "name":"projects/xxxxx/agent/sessions/xxxxxx/contexts/xxxx",
 "parameters":{
   "duration":"",
   "date":"2019-04-09T05:00:00+02:00",
   "date.original":"5 a.m.",
   "duration.original":""
   ...
}},

我在此请求中也有一个@sys.any,我怀疑这可能会引起问题。 (我希望它是一个用户定义的实体,但是在模棱两可的上下文中匹配不够可靠,所以我必须自己做。)

有人有经验,知道我可能会遇到的任何陷阱吗?我本以为没有任何其他修改的“ 凌晨5点”应该今天解析为凌晨5点

1 个答案:

答案 0 :(得分:2)

按照@Prisoner在评论中的推理,我认为Dialogflow的假设是公平的。当听到没有日期的时间时,它似乎是在将来吗?

要在我的应用程序中解决此问题,因为我知道日期始终是过去的日期,所以我只是将将来的日期时间固定为今天的日期,并在服务器端实现中将该日期设置为该时间。