Dialogflow не может обрабатывать короткие формы для @sys.date

#dialogflow-es

# #dialogflow-ы

Вопрос:

Итак, я создаю бота, который сообщает пользователю часы работы моего магазина. Код работает, но проблема в том, что Dialogflow, похоже, не может распознать короткие формы, такие как ‘next sat’, ‘on mon’, ‘ltr’, ‘tmr’. Я пытался использовать пользовательские объекты, но я не могу сказать Dialogflow распознавать пользовательский объект как системный параметр, например @sys.date, и у меня возникают проблемы с извлечением дат из подобных фраз. Я мог бы жестко запрограммировать это, например

 var date  = new Date();
var short = agent.parameters.shortform;
var day   = date.getDay();
if (short == 'tmr'){
  if(day==6){day=0;}else{day =1;}
}
 

но если я это сделаю, мне придется учитывать все возможные короткие формы, которые может написать мой пользователь, и писать для него код, включая каждый день недели, любую другую короткую форму, такую как nxt, ltr, hrs, mins. Есть ли более простой способ?

Комментарии:

1. Вы пытались создать отдельное намерение, соответствующее значениям коротких форм, предлагая пользователю быть более конкретным при вводе параметра date @sys.date ? это многое упростило бы здесь.

2. Я думаю, вы могли бы избавить себя от многих проблем, просто позволив этому перейти на запасной вариант и сообщить пользователю использовать более длинные форматы. Таким образом, вам не нужно кодировать для каждого параметра и сопоставлять каждый параметр обратно с более длинным значением, когда вы хотите иметь дело с ним в коде.

3. Да, я сделаю это сейчас. Спасибо.

4. @ilnspirev, есть ли у вас какие-либо успехи в реализации предложенных решений?

5. Да, я просто переместил все в резервный вариант. Это не идеальный результат, но, думаю, я им доволен.