我遇到一个问题,当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点。
答案 0 :(得分:2)
按照@Prisoner在评论中的推理,我认为Dialogflow的假设是公平的。当听到没有日期的时间时,它似乎是在将来吗?
要在我的应用程序中解决此问题,因为我知道日期始终是过去的日期,所以我只是将将来的日期时间固定为今天的日期,并在服务器端实现中将该日期设置为该时间。