У меня проблема, когда Dialogflow разрешает параметры @sys.date-time для моего намерения с текстом вроде «5 утра», они возвращаются как завтра, хотя должны быть сегодня.
(Сегодня на данный момент 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 утра сегодня.
это правильный часовой пояс, в котором я нахожусь, да
Когда вы это спросили, 5 утра уже прошли? Можете ли вы обновить вопрос показать снимок экрана с намерением, показывающий все используемые вами обучающие фразы?
Спасибо @Prisoner, я не могу сейчас поделиться намерениями, но да, 5 утра уже прошли. Фактически, вы ведете меня по проницательному пути, поскольку я хочу иметь дело только с прошлыми временами, я мог бы просто подтвердить себя в реализации, исправляя любые будущие дни на сегодня.
Следуя рассуждениям @Prisoner в комментариях, я думаю, что предположение Dialogflow справедливо. Что когда время слышно без даты, кажется, что оно в будущем?
Чтобы решить эту проблему в моем приложении, поскольку я знаю, что даты всегда в прошлом, я просто фиксирую время будущей даты на сегодняшнюю дату с этим временем в моем исполнении на стороне сервера.
ваш часовой пояс правильный? то есть
02:00 europe
?