#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. Да, я просто переместил все в резервный вариант. Это не идеальный результат, но, думаю, я им доволен.