В Алексе Скилле я собираюсь заказать мороженое.Я знаю, что могу проверить некоторую информацию в API или любой другой функции, встроенной в мой код Python, но только если эта функция буквально атомарна.
Если у меня есть слоты, запрашивающие дополнительную информацию, я не могу проверить информацию API и другие личные функции, потому что наличие слотов в Alexa не похоже на наличие слотов в чат-боте, например. Нет "диалогового дерева" или чего-либо подобного.
Пример с мороженым прост, но я сначала попробовал сделать это, прежде чем перейти к чему-то более сложному.
Это был бы самый базовый формат намерения:
Но то, что я хочу во время этого выполнения, получить некоторую информациювнутри намерения!
Я искал везде, и я не нашел ничего полезного.Я попросил поддержки у разработчика Alexa, и они сказали мне проверить Dialog
.Это также было частью ответа:
Модель взаимодействия навыков полностью зависит от слотов, определенных в вашем умении.Но вы даже можете сделать его более динамичным в зависимости от того, какое значение слота не предоставлено пользователем, но это всегда будет зависеть от модели взаимодействия, уже определенной в вашем умении.
Вы не можете создать динамический ответ на основе данных, которые вы получаете от API или от навыка.
Но, учитывая другие развернутые навыки Alexa, я думаю, это должно быть возможно!
Я подумал о том, чтобы сделать несколько функций, таких как:
- получить мороженое: только это, получая вкус мороженого.Выявление аромата в Python и вызов API.Сохранение аромата в слоте / динамод.
- Добавление чего-либо: каждый раз, когда пользователь хочет что-то добавить (например, взбитые сливки), вызывайте эту функцию.Проверка API в зависимости от того, что пользователь хочет добавить.
Это делает его немного грязным, на мой взгляд, и делает пользователя немного теряющим поток с Alexa, но может сделать эту работу.Но есть ли способ сделать это напрямую только в одной функции (даже если она атомарна)?