Как ограничить Amazon Connect определенным набором намерений Lex из нескольких намерений?

Я новичок в AWS и столкнулся с проблемой Amazon Connect и Lex. У меня в боте Lex 11 намерений. В потоке контактов Amazon Connect в разделе «Получение информации о клиентах» я включил только 5 из 11 намерений. Получите снимок экрана с отзывами клиентов. Моя проблема в том, что я хочу ограничить Lex этими определенными намерениями, то есть, когда пользователь говорит, Get Customer Input должен запускать только одно из этих 5 намерений вместо запуска одного из всех 11 намерений, имеющихся в боте.

Намерения, которые у меня есть внутри "Получить отзывы клиентов":

  1. newRes: когда клиент говорит Новое бронирование
  2. removePreviousRes: когда клиент говорит "Удалить мое резервирование" или "Отменить мое резервирование"
  3. updatePreviousRes: когда клиент говорит "Изменить мое бронирование" или "Обновить мое бронирование"
  4. checkRideStatus: когда пользователь говорит, каков статус моей поездки
  5. getAnOperator: когда пользователь говорит «Поговорите с оператором»

У меня также есть намерение newUser в боте Lex, которое можно вызвать, сказав Новый пользователь или Новая учетная запись или что-то подобное. Теперь, если пользователь говорит «Новый пользователь» или «Новая учетная запись» в блоке «Получить ввод данных от клиента», намерение newUser будет срабатывать, даже если я не добавил его в блок «Получить ввод данных от клиента» в качестве параметра. Есть ли способ ограничить Lex только этими 5 намерениями? Потому что мне нужно намерение newUser позже в потоке контактов, и я не хочу, чтобы пользователь запускал его в начале потока контактов. Любые идеи? Могу ли я ограничить его с помощью лямбда-функции?


person Muhammad Furqan Muzammil    schedule 22.09.2020    source источник


Ответы (1)


Вы определенно можете контролировать это самостоятельно, используя sessionAttributes и вашу лямбда-функцию.

Вы не можете помешать Lex попытаться сопоставить вводимые пользователем данные с некоторыми из ваших намерений, однако вы можете проверить, запускаются ли эти намерения, когда вы не хотите, чтобы они были, на основе переменной, которую вы можете создать, чтобы отслеживать, где Пользователь участвует в беседе с несколькими намерениями.

Для этого используйте sessionAttributes Лекса. Их также можно внутри подключения. Вы также можете получить атрибуты сеанса Lex в Connect как внешний контакт Атрибут: $.Lex.SessionAttributes.attributeKey

Например:
Настройте атрибут с именем convo_point и установите значение в начале разговора Connect как начало или начало. Затем рассмотрите ход вашего разговора и различные необходимые вам контрольные точки, где вы можете разрешить или запретить определенные намерения.

Затем внутри Lambda вашего Lex, прежде чем обрабатывать каждое намерение, проверьте этот convo_point атрибут sessionAttribute и сравните с инициированным намерением. Если точка конвоирования слишком ранняя для намерения нового пользователя, создайте правильный ответ с типом ответа ElicitIntent и попросите пользователя попробовать другое намерение. По мере того, как пользователь выполняет другие намерения, вы можете обновить convo_point, чтобы отразить это, и разрешить выполнение намерения нового пользователя только после того, как это произошло.

person Jay A. Little    schedule 22.09.2020