Поток контактов Amazon Connect. Циклы выполняются до тех пор, пока пользователь не завершит работу. - PullRequest
0 голосов
/ 06 июня 2018

Я создал бот BookTrip от Amazon Lex. Подробно здесь .

В чате с ботом пользователь может продолжать бронировать гостиничные номера или арендовать автомобили, пока не завершит разговор.Вот пример успешного резервирования, за которым последовала еще одна попытка резервирования через интерфейс чата:

Book a second hotel chat screenshot

Когда я использую этого чата в потоке контактов Amazon Connect, пользователь не можетпродолжить бронирование после первого бронирования.Логически, поток контактов будет продолжать выполнять намерения BookHotel или BookCar до тех пор, пока не будут выполнены намерения ConnectToAgent или EndConversation.

Contact flow screenshot

Я попытался зациклить BookHotel и BookCar назад к началу блока ввода "Получить клиента", но это с ошибками.

Ответы [ 2 ]

0 голосов
/ 06 октября 2018

Я нашел способ обойти это, когда у вас есть несколько намерений, хотя есть несколько недостатков.

По сути, создает фиктивный блок в Amazon Connect .Я использую Set Contact Attributes с фиктивным атрибутом, который я назвал «continue» со значением «continue».Это никогда не используется.Затем в случае успеха зациклите его, чтобы перезапустить блок Lex!

enter image description here

Нет ошибок при сохранении и публикации, и это хорошо работает для моего варианта использования.

Вот как работает вышеприведенное изображение:
A. Приглашение к воспроизведению (раньше это был запрос при инициализации блока Lex)
B. "Получить информацию от клиента" - это блок Lex.
C. Лекс завершает любое намерение и перемещается в фиктивный блок (Установить атрибуты контакта)
D. При успешной установке фиктивного атрибута вернитесь назад, чтобы перезапустить B. Блок Лекса.

Вот недостатки:
1. Блок Lex требует некоторого приглашения при его запуске, поэтому вам придется создать его в своем боте, так как оно будет выдавать приглашение при закрытии вашего намерения, а затем другое приглашение при перезапуске.блока Lex.
2. Это создает бесконечный цикл, по крайней мере, пока пользователь не завершит вызов или не истечет время сеанса.Один из способов обойти это - создать намерение специально для прощания и не указывать выполнение этого намерения на фиктивный блок.

0 голосов
/ 06 июня 2018

Лучший способ сделать это - держать пользователя в боте до тех пор, пока он не сделает все свои заказы, а затем выйти обратно в Amazon Connect.Это можно сделать следующим образом:

  1. Получить значения слотов для первоначального бронирования
  2. Использовать лямбду для полного заполнения цели (запись в базу данных и т. Д.) И очистки значений слотов
  3. Используйте ConfrimIntent, чтобы спросить «хотели бы вы добавить другое бронирование»

Если пользователь ответит «да», подтвердив намерение, вы получите значения слотов (начиная сшаг 1)

Если пользователь ответит «нет», вы вернетесь обратно в Amazon Connect

Вы можете просмотреть лямбда-запрос и подробности ответа здесь

На форуме разработчиков AWS также хорошо обсуждается этот шаблон здесь .


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...