Я хочу получить следующие данные от пользователя и использую следующие объекты:
- Имя и фамилия: используйте sys-person (я извлекаю имя и фамилию позже, используя облачное действие) .
- Адрес электронной почты: используйте шаблон сущности, имя @contactEmail и значение шаблона "email" \ b [A-Za-z0-9 ._% + -] + @ ([A-Za-z0-9 -] +.) + [A-Za-z] {2,} \ b
- Номер мобильного телефона: использовать шаблон сущности, имя @contactPhone и значение шаблона «mobileNumber» ^ [1-9] [0- 9] {7} [0-9] + $
Слоты
Я создал узел со слотами:
Настройка выглядит следующим образом:
Проверить:
- Проверить: @ sys-person.literal Сохранить как $ person Если нет: введите свое имя
- Проверьте: @ contactEmail.literal. Сохраните как $ email. Если нет: введите свой адрес электронной почты
- Проверьте: @ contactPhone.literal. Сохраните как $ contactPhone. Если нет: введите свой мобильный.
Это все работает отлично, и я получаю имя , адрес электронной почты и номер телефона.
Задача Но я хочу, чтобы пользователь мог подтвердить, что данные верны. Итак, у меня есть намерение под названием #response_yes, которое активируется такими вещами, как «yes», «yep» и т. Д. c.
. И у меня есть четвертый слот, который проверяет # response_yes.
- Проверьте наличие #response_yes, сохраните значение в $ подтверждается, если его нет, спросите "Got $ person, $ contactEmail, $ contactPhone, это правильно?"
Если #response_yes не найдено, то он отображает уже введенные значения и спрашивает, верны ли они, и ожидает ввода данных пользователем.
После ответа пользователя, если #reponse_yes намерение все еще не найдено, тогда:
Ответьте "Давайте начнем снова". Кроме того, нам нужно очистить уже введенные значения:
Здесь все идет не так Когда я пытаюсь запустить чат-бота, узел правильно собирает входные данные, правильно отображает значения и спрашивает, верны ли они. Я набираю «нет», намерение #response_no предсказывается правильно, и я ожидаю, что приглашение для первого слота снова появится, но это не так.
Независимо от того, что я печатаю в этот момент, помощник обходит три верхних слота и снова падает на четвертый. Как будто мне нужно очистить сущности, а не переменные.
Что я делаю не так? Как мне снова заставить работать верхний слот?!