Проверка информации в API в навыке Alexa - PullRequest
1 голос
/ 29 апреля 2019

В Алексе Скилле я собираюсь заказать мороженое.Я знаю, что могу проверить некоторую информацию в API или любой другой функции, встроенной в мой код Python, но только если эта функция буквально атомарна.

Если у меня есть слоты, запрашивающие дополнительную информацию, я не могу проверить информацию API и другие личные функции, потому что наличие слотов в Alexa не похоже на наличие слотов в чат-боте, например. Нет "диалогового дерева" или чего-либо подобного.

Пример с мороженым прост, но я сначала попробовал сделать это, прежде чем перейти к чему-то более сложному.

Это был бы самый базовый формат намерения:

enter image description here

Но то, что я хочу во время этого выполнения, получить некоторую информациювнутри намерения!

enter image description here

Я искал везде, и я не нашел ничего полезного.Я попросил поддержки у разработчика Alexa, и они сказали мне проверить Dialog.Это также было частью ответа:

Модель взаимодействия навыков полностью зависит от слотов, определенных в вашем умении.Но вы даже можете сделать его более динамичным в зависимости от того, какое значение слота не предоставлено пользователем, но это всегда будет зависеть от модели взаимодействия, уже определенной в вашем умении.

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

Но, учитывая другие развернутые навыки Alexa, я думаю, это должно быть возможно!

Я подумал о том, чтобы сделать несколько функций, таких как:

  • получить мороженое: только это, получая вкус мороженого.Выявление аромата в Python и вызов API.Сохранение аромата в слоте / динамод.
  • Добавление чего-либо: каждый раз, когда пользователь хочет что-то добавить (например, взбитые сливки), вызывайте эту функцию.Проверка API в зависимости от того, что пользователь хочет добавить.

Это делает его немного грязным, на мой взгляд, и делает пользователя немного теряющим поток с Alexa, но может сделать эту работу.Но есть ли способ сделать это напрямую только в одной функции (даже если она атомарна)?

...