Как сохранить чат-разговор чат-бота (в aws lex) в DynamoDB

Я создаю чат-бот для веб-сайта с большим трафиком.

Я решил создать чат-бота в AWS lex

Я хочу сохранить все разговоры в чате в одном атрибуте в Dynamo DB, для которого я выбрал тип данных списка для этого атрибута.

и я могу получить все данные слота в разные переменные, но как сохранить введенное пользователем высказывание и подсказки, которые мы определили в консоли lex, и как упорядочить их как разговор.

Есть ли альтернатива для хранения чата?


person Akhil Gudimetla    schedule 07.09.2017    source источник


Ответы (1)


Поскольку это ваш бот, вы знаете значение времени ожидания сеанса. В вашей лямбда-функции вы можете сгенерировать идентификатор сеанса (случайный UUID) и поместить его в атрибут сеанса (подробнее здесь). Вы можете создать таблицу DDB в своей учетной записи и оформить ее следующим образом:

  • Хэш-ключ: идентификатор пользователя
  • Ключ диапазона: sessionId#timeStamp
  • Запрос (атрибут String): формат JSON структуры запроса, который отправляется в функцию Lambda.

Теперь, пока сеанс действителен, вы всегда можете получить идентификатор сеанса, который вы поместили в карту атрибутов сеанса. Используя это, вы всегда сможете создать ключ диапазона (sessionId + "#" + currentTimeStamp). При каждом вызове, который вы получаете в своей лямбде, вы также получаете идентификатор пользователя для своего бота. Вы можете хранить всю эту информацию так, как вам нравится.

person Saurabh    schedule 12.09.2017
comment
таким образом, для каждого высказывания в таблицу DynamoDB будет вставлена ​​новая запись. это эффективный способ? - person sid8491; 04.01.2018