Как вызвать лямбду, когда lex не обрабатывает намерение автоматически? - PullRequest
1 голос
/ 30 мая 2019

Мой бот Lex имеет четыре цели. Предположим, что пользователь задает вопрос в самом начале разговора, и этот вопрос не назначен ни одному из четырех намерений. Следовательно, намерение не будет установлено. Когда это происходит, я хочу вызвать лямбду, чтобы запустить «модель предложения намерения» (построенную с использованием тематического моделирования), чтобы подсказать пользователю, какова цель вопроса. Кроме того, лямбда должен будет хранить такие запросы в базе данных (s3 или RDB), чтобы, если такие запросы были повторяющимися, то это намерение в конечном итоге могло быть добавлено к боту и для других аналитических решений.

1 Ответ

1 голос
/ 31 мая 2019

Вам нужно резервное намерение, но Lex не поддерживает резервные намерения на данный момент.
Этого можно достичь, если вы используете мост между клиентом чата и Lex.

Настройка APIШлюз и лямбда функционируют между вашим чат-клиентом и Lex.

enter image description here

Ваш чат-клиент отправит запрос в API Gateway, API Gateway перенаправит его в функцию Lambda, которая будет использоваться для вызова Lex и полученияответ от него.У Lex будет еще одна лямбда-функция в качестве webhook.
В лямбда-функции, которую вы использовали для вызова Lex, мы можем проверить, соответствует ли какое-либо намерение, или мы получили сообщение об ошибке, если это сообщение об ошибке, и вызвать какое-либо действие, подобное intent suggestion model.

Вам нужно использовать библиотеку boto для вызова Lex и использовать метод post_text().

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

...