Голосовой сервис Amazon хорошо известен на рынке. Они предлагают это через аппаратные устройства, такие как Amazon Echo. Это готовый к рынку продукт с множеством доступных навыков.

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

Ресурсы

  • Портал Amazon для разработчиков
    Amazon действительно хорошо поработала над обучающими руководствами по началу работы, они обновлены, хорошо иллюстрированы и понятны. Первая демонстрация показывает пошаговое руководство с настройкой учетной записи, настройкой и разработкой Lambda, настройкой приложения Alexa, а также некоторыми основами Intent Schema.
  • Alexa Github
    Аккаунт Amazon Github полон ресурсов, готовых примеров и лучших практик. Кроме того, они часто предоставляют очень подробный README с пошаговым руководством по настройке. Единственная часть, которую можно было бы улучшить, — это качество кода. В настоящее время они редко предоставляют комментарии в коде примеров.
  • Amazon Store
    Там вы найдете все одобренные приложения. Это хорошее место, если вы ищете вдохновение. Также полезно узнать, каковы возможности API.

Давайте построим что-нибудь!

В этой статье я буду использовать функции Node.js AWS Lambda. JavaScript становится все более популярным и удобным в использовании благодаря набору функций ECMAScript 2016 (ES7).

Что касается модели взаимодействия Alexa Skill, я рекомендую Skill Builder BETA. Они позволяют вам создать, а затем сохранить список намерений в виде файла JSON. Это предпочтительный способ хранения, используемый в проектах Alexa Github.

Это все, что вам нужно для развития базовых навыков. Давайте погрузимся глубже и познаем его красоту! Чтобы проверить это, вам нужно спросить «Алекса спросит Кевина, как дела?».

Давайте немного усложним!

Наше исходное приложение не может получить никакой информации от пользователя. Он просто там, чтобы обработать ответ. Давайте углубимся в переменные, известные как «споты» и HTTP-запросы. Я использую Yahoo Weather API для получения текущей температуры для выбранного города.

Мы также должны расширить список намерений. Каким-то образом мы должны получить город в качестве входных данных. Я упоминал об этом ранее, слоты — это способ сделать это. Каждый раз, когда вы хотите получать пользовательский ввод, вам необходимо определить тип (полный список типов слотов Alexa доступен на Портале разработчика). Для пользовательских ответов вы должны указать образцы в качестве возможных вариантов. Давайте погрузимся в файл JSON, чтобы увидеть, как он работает.

Вы также можете расширить намерение для обработки названия страны, так как названия городов могут конфликтовать. Также, как я уже упоминал, вы можете создать свой собственный тип, просто укажите уникальное имя «типа» и перечислите возможные варианты в «типах».

Резюме

С Alexa очень весело играть, меня продолжает удивлять быстрота отклика.
Это хорошо продуманная платформа с API, написанным на Python и JavaScript.