Несколько операторов возврата из одной функции lamda в lex - PullRequest
0 голосов
/ 30 октября 2018

Я пытаюсь перевести бота с Microsoft Azure на AWS Lex. В Azure мы можем использовать несколько операторов session.send () для отправки нескольких ответов на один пользовательский ввод. Но в aws lex мы не можем использовать несколько операторов return в лямбда-функции.

В моем лазурном боте я отправляю ответ каждые 5 минут пользователю. например:-

var myVar = setInterval(myTimer, 300000);

function myTimer() {
    session.send(message);
}

Как добиться этого в aws lex с помощью лямбда-функции.?

1 Ответ

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

Вы не сможете вызвать второй ответ от лямбда-пост-Lex, то есть лямбда-функция, которая идет после Lex. Вам потребуется лямбда-функция «pre-Lex», которая передает пользовательский ввод в Lex и возвращает ответы Lex обратно пользователю.


Это базовая настройка бота Lex: enter image description here


Но вам нужно настроить его так: enter image description here


На самом деле это не обязательно должна быть лямбда-функция между пользователем и Lex, но в любом случае ему нужно будет использовать Lex Runtime Service API с PostContent или PostText для передачи userInput в Lex.

Вот блог Amazon, посвященный тому, как они использовали Lambda таким образом, в так называемом «слое предварительной обработки» между каналом и Lex: Интеграция вашего Amazon Lex Bot с любой службой обмена сообщениями

Вы увидите, что они также используют AWS API Gateway для создания конечной точки HTTPS для подключения канала пользователя к этой лямбде "предварительной обработки".


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

Дружественное предупреждение: Я полагаю, что Amazon установил эти ограничения в Lex, чтобы отговорить разработчиков чат-ботов от рассылок спама, и когда вы говорите "я отправляю ответ через каждые 5 минут пользователю ", это определенно звучит как спам. Так что будьте осторожны с этим.

...