AWS Lex и Lambda: запрос к API с переменной, которой нет в слоте

У меня есть бэкэнд, написанный на Python, который предоставляет API для «получения всех задач проекта», если вы укажете идентификатор проекта.

Я хочу выполнить этот запрос, используя Lex и Lambda из онлайн-инструментов AWS, поэтому я подумал о чем-то простом, например: «Дайте мне задачи для проекта 145», затем лямбда вызывает API с переменной «145» и показывает задачи. пользователю.

Я сделал учебник по pizzaOrder, и все было ясно, но теперь, когда я хочу проделать эту базовую вещь со своим проектом, у меня возникла проблема: мои проекты не в слотах, потому что, очевидно, пользователи могут создавать и удалять проекты. Значит, «145» нет в слоте.

Так как же поступить в таком случае? Может ли Лекс распознать слово, которого нет в слоте, а затем использовать его как переменную?


person Destal    schedule 10.05.2017    source источник
comment
Какую роль, связанную с сервисом, вы использовали? Есть ли у AWSServiceRoleForLexBots разрешение на вызов лямбда-выражения aws?   -  person ManirajSS    schedule 18.05.2017
comment
@ManirajSS Не уверен, что понимаю ваш вопрос. Моя роль для лямбда-выражений - lambda-exec-role-for-lex-get-start (я даже не знаю, откуда оно взялось, возможно, это один из туториалов, за которыми я следил).   -  person Destal    schedule 18.05.2017


Ответы (1)


Краткий ответ: да. Lex / Alexa может распознавать слова из значений, определенных для пользовательского типа слота.

Это взято из документация (применимо как к Alexa, так и к Lex):

Пользовательский тип слота не эквивалент перечисления. Значения вне списка по-прежнему возвращаются, если распознаются системой понимания разговорного языка. Хотя ввод в пользовательский тип слота взвешивается по значениям в списке, он не ограничивается только элементами в списке. Ваш код по-прежнему должен включать проверку и проверку ошибок при использовании значений слотов.

person imTachu    schedule 16.05.2017