Пропущенные входы в слоты могут быть перехвачены и зарегистрированы в вашей лямбде.
Я предлагаю использовать sessionAttributes
, чтобы отслеживать что-то вроде last_elicit
, и вы можете определить, не был ли заполнен этот слот,затем регистрируйте пропущенный ввод с inputTranscript
любым удобным для вас способом.
Я часто заставляю слот заполняться тем, что когда-либо находилось в inputTranscript
, а затем обрабатываю его сам, потому что я обнаружил, что Лекс иногда игнорирует законныйслотные входы.
Пропущенные намеренные входы обрабатываются Lex и отвечают автоматически.
Единственный элемент управления, который у вас есть в Lex для обработки пропущенных входов Intent, - это настройка ответов.Перейдите на консоль Lex, на вкладке «Редактор», посмотрите внизу слева «Обработка ошибок»,
Откройте это меню и выувидит:
Лекс готовит одну из этих «подсказок разъяснения» и возвращает ее, ничего не передавая вашей лямбда-функции.
Именно поэтому вы не можете войтилюбая информация о пропущенных намерениях с базовыми настройками Lex.Итак, вот более сложная настройка с использованием двух лямбда-функций:
Эта «Pre-Lex Lambda» действует как прокси между вашими пользователями и вашим Lexбот.Это означает, что вы не используете встроенные настройки каналов в Lex, и вам необходимо создавать свои собственные интеграции между вашими каналами и «Pre-Lex Lambda».
Тогда вам также необходимо использовать либо PostContent или PostText для передачи ввода вашего пользователя вашему боту Lex.
После настройки вы, наконец, сможете перехватить ответ Lex для одной из подсказок разъяснения, а затем войти в систему.Ваши собственные данные о вводе пропущенного намерения.
Полезные ссылки:
AWS SDK для .NET
SDK .NETДокументы API для Lex
SDK Документы API для Lambda
Пример настройки Lambda с использованием SDK (.NET)