Параметр DialogFlow перекомпонован после проверки - PullRequest
0 голосов
/ 30 сентября 2018

У меня есть намерение, когда бот запрашивает дату у пользователя.Пользователи могут сказать today, last week, last monday и т. Д.
Если пользователь говорит такие вещи, как last week или last month (в основном вещи, которые нельзя преобразовать в точную дату), тогда бот долженподскажите еще раз please enter exact date to proceed.

Случай 1: принятие @ sys.date

Я пометил эту сущность как обязательную и установил приглашение please enter the date, теперь каждый раз, когда пользователь говорит на прошлой неделе, это@sys.date не обнаруживается, и пользователь снова и снова получает одно и то же приглашение.

Случай 2: получение @ sys.date-time

Если я возьму @sys.date-time я могу получить все виды входных данных.
Если пользователь сказал на прошлой неделе, в прошлом месяце и т. Д., Тогда я получу startDate в значении параметра, если пользователь сказал сегодня, в параметре будет прямое значение.
Это также может быть обработано в webhook for slotfilling, мы можем установить значение параметра в null и снова вызвать то же самое намерение, поскольку я не могу выяснить , как установить другое приглашение

params = req['queryResult']['parameters']
date = params['date']
if 'startDate' in date:
    print('inside startDate')
    res = json.dumps({
        'followupEventInput' : {
            'name' : 'e_date',
            "parameters": {
                "date": '',                 
                }
            }
        })

По приведенному выше коду, намерение снова запускается, но подсказка снова такая же, как мы установили в консоли DialogFlow.

Мне пришлось взять @sys.date как сущность, потому что она предлагает опцию date.recent, которая подходит для моего случая использования, взяв @sys.date-time или @sys.date-period дату, когда DialogFlow перехватывает неверно.Например, если сегодня вторник и пользователь сказал последний понедельник, тогда Dialogflow поймает понедельник прошлой недели, а не самый последний понедельник.И таких случаев много, если мы не принимаем date.recent

1 Ответ

0 голосов
/ 21 мая 2019

Я рекомендую создать другое намерение, используя такие фразы, как: на прошлой неделе или в прошлом месяцеЗатем попросите этот ответ побудить пользователя более точно указать дату.

...