Как передать требуемые данные из приложения в Amazon Lex Bot? - PullRequest
1 голос
/ 26 мая 2020

Я создал бота с Amazon lex, а его проверку и выполнение с помощью Python и MongoDb. Бот работает должным образом.

Сейчас я работаю над интеграцией моего бота с приложением ipad.

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

Теперь после интеграции вместо запроса идентификатора учетной записи у пользователя этот идентификатор должен быть передан из приложения ipad боту, а затем бот должен ответить соответственно.

Мой вопрос именно об этом. Как мы можем передать идентификатор учетной записи из приложения ipad боту, а затем как мой бот или лямбда-функция может получить это?

Пожалуйста, подскажите, выполнял ли кто-нибудь аналогичные функции.

1 Ответ

1 голос
/ 27 мая 2020

Вы захотите использовать requestAttributes или sessionAttributes для передачи информации, такой как идентификатор учетной записи, вашему боту с начальным вводом.

Затем ваш бот может получить их из event.requestAttributes или event.sessionAttributes

Ссылки: Lex-Lambda Input Event and Response Format

sessionAttributes - Специфичные для приложения c атрибуты сеанса, которые клиент отправляет в запросе. Если вы хотите, чтобы Amazon Lex включил их в ответ клиенту, ваша функция Lambda должна отправить их обратно в Amazon Lex в ответе. Для получения дополнительной информации см. Настройка атрибутов сеанса

requestAttributes - атрибуты c, определяемые запросом, которые клиент отправляет в запросе. Используйте атрибуты запроса для передачи информации, которая не должна сохраняться в течение всего сеанса. Если атрибутов запроса нет, значение будет нулевым. Для получения дополнительной информации см. Настройка атрибутов запроса

Дополнительная информация

Вы захотите самостоятельно обработать передачу userInput вашему боту Lex, чтобы включить данные requestAttributes. Для этого вам нужно будет использовать PostContent (ввод текста или звука) или PostText (только ввод текста) для отправки данных вашему боту Lex.

Ваш Бот Lex интерпретирует ввод и передает requestAttributes в вашу лямбда-функцию, где вы можете обрабатывать logi c на основе идентификатора учетной записи.

Отправка данных ввода пользователя как объекта JSON через PostText :

POST /bot/botName/alias/botAlias/user/userId/text HTTP/1.1
Content-type: application/json

{
   "inputText": "Hello Bot",
   "requestAttributes": { 
      "accountID" : "xxxxxxxx" 
   },
   "sessionAttributes": { 
      "name" : "John Smith" 
   }
}

Чтобы узнать, что Lex передаст вашей лямбда-функции и как получить оттуда requestAttributes, см. Этот вопрос, где я ответил более подробно: AWS Lex Python Ссылки на Codehook

...