Бот AWS Lex: позволяет пользователю продолжить разговор после обновления страницы

В настоящее время я создаю бота, используя AWS Lex. Одна проблема, с которой я сталкиваюсь, заключается в том, как сохранить сеанс пользователя и получить его, чтобы бот мог продолжить разговор (и показать предыдущий разговор), если пользователь переходит на новую страницу, обновляет страницу или возвращается например через неделю?

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

например 2 Другим примером может быть случай, когда пользователь повторно посещает веб-сайт через неделю, и бот распознает пользователя, показывает предыдущую историю разговоров и отправляет индивидуальное сообщение?


person tabrza    schedule 16.04.2020    source источник


Ответы (1)


AWS предоставляет LexRuntime API javascript для веб-интеграции. Этот API предоставляет NLP, но не сохраняет/извлекает историю разговоров. Вы должны создать свой собственный сервер приложений и хранить разговоры в БД. Вам также необходимо управлять базой данных пользователей, заходящих на ваш сайт.

Когда пользователь посещает веб-сайт, получите историю разговоров пользователя из БД и заполните ее в пользовательском интерфейсе. Таким образом, даже если пользователь обновит страницу, он сможет увидеть историю чата, поскольку она загружается из БД.

Теперь возникает вопрос: Как Lex запоминает пользователя и как долго?

Lex создает сеанс пользователя, используя следующие параметры:

  • Имя бота
  • Псевдоним бота
  • Логин пользователя

Эти параметры отправляются в Lex вместе с пользовательскими запросами. Здесь идентификатор пользователя может быть любым уникальным идентификатором, который представляет пользователя вашего сайта. Lex использует эти параметры для определения сеанса для текущего пользовательского запроса. Если какое-либо из этих значений будет изменено, Lex создаст новый сеанс или повторно использует существующий, если он доступен для того же набора значений. По умолчанию продолжительность сеанса составляет 5 минут, но вы можете указать любую продолжительность от 0 до 1440 минут (24 часа).

С помощью API-интерфейсов Lex Runtime вы можете использовать следующие два метода для отправки пользовательских запросов вашему боту:

Оба метода требуют параметров botName, aliasName и userId. Надеюсь, это ответ на ваш второй вопрос.

Теперь перейдем к вашему первому варианту использования, где

Бот помогает пользователю принять решение о покупке, пока пользователь просматривает разные страницы на сайте электронной коммерции.

Чтобы достичь этого, во-первых, вы должны реализовать описанный выше подход. Как только это будет сделано, вы можете отправить URL страницы (на которой сидит бот) Лексу. Вы можете отправить эту информацию в виде запроса. атрибут. В консоли Lex используйте лямбда-функцию, чтобы определить ответ в соответствии с URL-адресом страницы.

Все это требует усилий и времени разработки. Существует множество сторонних инструментов, обеспечивающих интеграцию с lex без использования кода. Я рекомендую Communicate. Также загляните в этот блог.

person Suraj    schedule 01.06.2020