Перехват ответа AWS Lambda на запрос AWS Lex

Я часть команды, которая пытается интегрировать AWS Lex в одно из наших веб-приложений. В настоящее время мы используем подход, при котором пользователь просит Лекса выполнить SQL-запрос. Затем Lex определит подходящее намерение на основе вопроса пользователя (IE, если пользователь хочет искать, используя значение A, Lex выберет намерение A) и отправит эту информацию обратно в наше веб-приложение, которое затем запустит соответствующий метод для выполнения SQL-запроса. (где имя метода совпадает с именем намерения).

Напомним, что мы хотим сделать следующее:
1) Пользователь сообщает Lex, что они хотят искать данные, используя значение A
2) Lex определяет правильное намерение (намерение A)
3) Lex отправляет эту информацию в Lambda, которая затем возвращает имя намерения веб-клиенту.
4) Наше веб-приложение перехватывает этот ответ от Lambda и выполняет правильный метод
5) Результаты, показываемые пользователю через Lex.

У меня вопрос, возможно ли это, особенно перехват лямбда-ответа. Если да, может ли кто-нибудь указать мне соответствующую информацию о том, где я могу прочитать, как это реализовать? Я искал последние пару дней и не нашел подходящих материалов для этого конкретного варианта использования.

Большое спасибо!


person Arun Balasubramaniam    schedule 04.01.2018    source источник
comment
Вы уже реализовали что-нибудь из этого? Вы не можете точно перехватить ответ Lambda, но вы должны иметь возможность написать функцию Lambda, чтобы она отправляла HTTP-запрос на ваш веб-сервер, а функция Lambda затем возвращала соответствующий фрагмент из этого данные в Lex в правильном формате.   -  person Michael - sqlbot    schedule 04.01.2018
comment
Привет, Майкл, у меня действительно есть работающая лямбда-функция и рабочий lex-бот. Это интегрирующая часть, которую я еще не сделал.   -  person Arun Balasubramaniam    schedule 04.01.2018


Ответы (1)


  1. Пользователь сообщает Lex, что они хотят искать данные, используя значение A
  2. Лекс определяет правильное намерение (намерение А)

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

  1. Lex отправляет эту информацию в Lambda, которая затем возвращает имя намерения веб-клиенту.
  2. Наше веб-приложение перехватывает этот ответ от Lambda и выполняет правильный метод.

Вы должны написать Rest API на своем веб-сервере, который будет получать данные и возвращать результат. В своей функции Lambda вы можете написать простой метод HTTP-запроса / публикации, запросить api и получить ответ.

  1. Результаты, показанные пользователю через Lex

После получения ответа вы можете просто вернуть ответ боту, используя Close.

Надеюсь, это поможет.

person sid8491    schedule 04.01.2018
comment
Большое спасибо, Сид! Знаете ли вы какой-либо справочный код для HTTP-запроса / публикации? Я все еще новичок в Lambda. - person Arun Balasubramaniam; 04.01.2018
comment
это зависит от языка программирования, который вы используете, для C # прочтите это о том, как сделать HTTP-запрос POST, если вы используете Python, вы можете использовать запросы библиотека. - person sid8491; 04.01.2018
comment
Спасибо большое за вашу помощь! - person Arun Balasubramaniam; 04.01.2018