Рубрики
Без рубрики

Как создать навыки Алекса в Python? Простой обзор для начинающих

[Простой обзор] Alexa находится на пути, чтобы привести следующую волну технологического разрушения. Каковы точные шаги для создания навыка Alexa? Читать дальше.

Автор оригинала: Chris.

Алекса на пути привести следующую волну технологического разрушения. Вы когда-нибудь спрашивали себя о точных шагах, необходимых для создания навыка Alexa? И как эти шаги Интерфейс друг с другом?

Чтобы ответить на эти вопросы, я даю вам быстрый Обзор развития умения Алекса в Python Отказ Эта статья служит первой отправной точкой с лучшими ссылками на более глубокие ресурсы.

Какой навык Alexa с технической точки зрения?

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

Alexa – это новое домашнее удостоверение домашнего дома Amazon, которое служит речевой распознаванием интерфейса между вами и Интернетом. Идея состоит в том, чтобы преодолеть разрыв между вами (поисками информации) и различными веб-сервисами (поставщиками информации).

Допустим, вы разговариваете с устройством Alexa. Устройство Alexa автоматически переводит вашу речь в текстовые данные, такие как “Какие новости?” или “Позвоните Алису!” . В качестве кодера Python вы знаете эти типы данных как строки.

Все идет нормально. Но что должна делать Алекса с этими строковыми данными? Есть миллионы скорейших строк (эксперты называют это длинным хвостом натурального языка). Хранение ответов на каждый из этих запросов в базе данных будет невероятно дорогостоящим для одной компании, такой как Amazon. Еще хуже, некоторые строки (например “Позвоните Алису!” ) – это запросы на услуги, а не для информации.

Вот где навыки Алекса вступили в игру. Каждый навык Alexa предлагает один определенный набор функциональных возможностей для пользователя Alexa. Навык Alexa соединяет информацию о намерении от пользователя с миллиардами возможных бэкэндских услуг.

Вот определение навыка Amazon (в речменной речке, богатой выгодой):

«Вы можете создавать возможности или навыки, которые делают Alexa Smarter и сделать повседневные задачи быстрее, проще и более восхитительными для клиентов».

Зачем строить умение Алекса?

Многие люди считают, что навыки Алекса создадут следующую партию Tech Millionaires – очень похожего на разработку приложений в последнее десятилетие. Подумайте об этом, поговорите с компьютерами – самый естественный способ связи для людей. И это массово недоразвито в современном мире. Миллиарды людей сидят перед своими экранами, день за днем. Конечно, речь не может заменить каждое приложение под солнцем. Тем не менее, есть вселенная возникающих приложений, которые будут сильно полагаться на речь. Эти заявки будут доступны миллиардами людей по всему миру.

Alexa упрощает «развитие навыков», как яблоко, как Apple упростил «Разработка приложений».

«Магазин приложений был открыт 10 июля 2008 года, при этом имеются первоначальные 500 приложений. По состоянию на 2017 год в магазине есть более 2,1 миллиона приложений. “

Поэтому, если вы обновите свое приложение для iPhone сейчас, вы конкурируете с более чем 2 миллионами приложений. У многих из них годы головы начались в разработке, тестировании пользователей и маркетинга.

Сколько навыков для Алекса? В 2018 году сообщается, что уже 40 000 навыков при быстро растущей ставке ( Источник ). Пока это звучит как тяжелые соревнования тоже Детский сад по сравнению с конкурсом Ваше приложение для iPhone столкнутся на App Store.

Вам все еще можно стать одним из тех ранних создателей, которые делают миллионы простыми навыками, такие как голосовые эквиваленты приложений для iPhone, такие как «фонарик» или «компас». Не теряй больше времени!

Простой обзор того, как построить навыки Алекса с Python

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

Все начинается с пользователей, который разговаривает с устройством Alexa. С помощью Alexa Voice Service (AVS), размещенных Amazon в облаке, Alexa преобразует речь в текст. Затем он упаковывает этот текст как файл json ( JSON – это формат файла для эффективного отправки пары атрибутов-значений через Интернет) и отправляет этот файл в облачную службу, которая принимает ваше приложение.

Ваше облачное обслуживание делает четыре вещи:

  • Обработка запросов
  • Реакция здания
  • Управление атрибутом
  • Alexa API звонит

Что такое обращение с запросом?

Вы реализуете свою облачную службу, используя Amazon Web Service (AWS) Lambda.

«AWS Lambda – это вычисляющая платформа, управляемая событиями, неверна, предоставленная Amazon в составе Услуги Amazon Web. Это вычислительная служба, которая запускает код в ответ на события, и автоматически управляет вычислительными ресурсами, необходимыми этим кодом ».

Другими словами, ваше умение Alexa сидит в облаке и ждет, чтобы пользователи могли получить доступ к нему. Это как собака ждет, когда ты бросишь палку. В ожидании, ваш веб-сервис находится в режиме спящего режима: не выполняя никаких работ и потребляющих любых ресурсов на вычислительных серверах Amazon.

В какой-то момент он (надеюсь) получает запрос (в терминологии Amazon Lambda: событие). Amazon Lambda теперь гарантирует, что в Milliseconds ваш навык Alexa выполняется процессом, который запускает ваши указанные функциональные возможности.

Часть вашей функциональности Skill Alexa является обработкой запросов, который принимает файл JSON, отправленный Alexa Framework и обработку ее. Файл запроса JSON содержит соответствующую информацию для вашего навыка Alexa, таких как следующее:

  • Версия (Мета информация)
  • Сессия : Если пользователь приводит разговор с устройством Alexa, информация о сеансе очень важна, чтобы убедиться, что в разговоре может быть любой прогресс. Например:

    • Пользователь: “Алекса, скажи мне шутку!”
    • Алекса: “Стук, стук”
    • Пользователь: “Кто там?”
    • Алекса: “Никто”
  • Контекст : информация о состоянии устройства (например, время и т. Д.)
  • Запрос Сам: может быть запрос запуска, целесообразным запросом или запрос аудиопроигрывателя.

Вот как ваш файл JSON запроса может выглядеть ( Источник ):

{
  "version": "string",
  "sessionAttributes": {
    "key": "value"
  },
  "response": {
    "outputSpeech": {
      "type": "PlainText",
      "text": "Plain text string to speak",
      "ssml": "SSML text string to speak",
      "playBehavior": "REPLACE_ENQUEUED"      
    },
    "card": {
      "type": "Standard",
      "title": "Title of the card",
      "content": "Content of a simple card",
      "text": "Text content for a standard card",
      "image": {
        "smallImageUrl": "https://url-to-small-card-image...",
        "largeImageUrl": "https://url-to-large-card-image..."
      }
    },
    "reprompt": {
      "outputSpeech": {
        "type": "PlainText",
        "text": "Plain text string to speak",
        "ssml": "SSML text string to speak",
        "playBehavior": "REPLACE_ENQUEUED"             
      }
    },
    "directives": [
      {
        "type": "InterfaceName.Directive"
        (...properties depend on the directive type)
      }
    ],
    "shouldEndSession": true
  }
}

Что такое здание в ответ?

ОК, поэтому ваш пользователь теперь может отправлять запросы на ваш веб-сервис. Если есть запросы, также должны быть ответы.

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

Ответ также является файлом json. Содержит соответствующую информацию, такую как следующие:

  • Выходная речь : Вы хотите, чтобы Алекса поговорить с пользователем, верно? Выходная речь – это текст, который переводится в речь в рамках Alexa. Это самая важная информация в файле ответа.
  • Image URL : Вы также можете вернуть обратные изображения (например, Alexa, как я выгляжу через 20 лет? ». О, мужчина, я хотел бы знать это …).
  • Мета информация такие как размер или параметры версии.

Вот как будет выглядеть ответ JSON ( Источник ):

{
  "version": "string",
  "sessionAttributes": {
    "key": "value"
  },
  "response": {
    "outputSpeech": {
      "type": "PlainText",
      "text": "Plain text string to speak",
      "ssml": "SSML text string to speak",
      "playBehavior": "REPLACE_ENQUEUED"      
    },
    "card": {
      "type": "Standard",
      "title": "Title of the card",
      "content": "Content of a simple card",
      "text": "Text content for a standard card",
      "image": {
        "smallImageUrl": "https://url-to-small-card-image...",
        "largeImageUrl": "https://url-to-large-card-image..."
      }
    },
    "reprompt": {
      "outputSpeech": {
        "type": "PlainText",
        "text": "Plain text string to speak",
        "ssml": "SSML text string to speak",
        "playBehavior": "REPLACE_ENQUEUED"             
      }
    },
    "directives": [
      {
        "type": "InterfaceName.Directive"
        (...properties depend on the directive type)
      }
    ],
    "shouldEndSession": true
  }
}

Что такое управление атрибутом?

В приведенном выше примере запроса мы уже коснулись необходимости в сессиях. Если вы хотите позволить пользователю вести разговор с вашим навыком Alexa, управление атрибутом является обязательным.

Вот пример из ( источник )

  • Клиент : Алекса, спросите космические факты, чтобы сказать мне, что <начало сеанса>
  • Алекса : Солнце содержит 99,86% массы в солнечной системе. Хотите еще один факт?
  • Клиент : да
  • Алекса : У Юпитера есть самый короткий день всех планет. Хотите еще один факт?
  • Клиент : Нет (Amazon.stopintent)
  • Алекса : До свидания <сеанс заканчивается>

Я уже сказал вам, что вы будете использовать функции лямбда Amazon для размещения вашего веб-сервиса. Проблема заключается в том, что функции Amazon Lambda создаются по требованию к расписанию, ориентированным на события. Переменные в вашем коде, который вы создали в одном вызове, не известен в следующем вызове вашего обслуживания. Другими словами, ваш навык Alexa начнет делать странные вещи в своих разговорах: он забывает все, что вы это говорите.

  • Клиент : Алекса, спросите космические факты, чтобы сказать мне, что <начало сеанса>
  • Алекса : Солнце содержит 99,86% массы в солнечной системе. Хотите еще один факт?
  • Клиент : да
  • Алекса : Солнце содержит 99,86% массы в солнечной системе. Хотите еще один факт?
  • Клиент : Вы тупые $ & (/z !! ( выбрасывает устройство из окна ) (Amazon.stopintent) <Сессия заканчивается>

Итак, как вы можете сохранить информацию по разным вызовам функции Amazon Lambda?

Используйте сеансы в вашу реализацию навыка Алекса. Вы можете хранить атрибуты сеанса в модуле управления атрибутом, предоставленным Amazon.

В последующих выполнениях вы можете получить доступ к значениям, хранящимся в своих атрибутах сеанса (например, шутки или факты, которые вы уже вернулись на этом сеансе).

Какие вызовы Alexa API (и почему они нуждаются в них)?

Alexa предлагает не один, кроме многих API ( Интерфейсы программирования приложений ).

Короткое резюме для новичков, прочитав эту статью: интерфейс программирования приложений (API) – это набор заданных функций. API показывает вам, как поговорить с услугой. Будучи программистом, вы хотите включить сложные функциональные возможности в вашей программе, не внедряя его самостоятельно. Например, вы можете встроить скрипт Google Maps, чтобы показать интерактивную карту улицы на вашем сайте. API поможет вам использовать существующие базы кода, чтобы «стоять на плечах гигантов».

Есть два важных класса API для Alexa:

  • Комплект навыков Алекса (спрашивает) для развития собственных навыков Алекса. Читать дальше здесь Отказ
  • Голосовая служба Alexa (AVS) поможет вам включить Alexa в свои собственные приложения. Читать дальше здесь Отказ

Alexa навыки навыки (спросите) : Если вы хотите разработать свои собственные навыки Alexa, вы будете использовать запрос часто. Пример вызова API для Ask – это перевод текста. Alexa API предоставит вам формат файла JSON, как объяснено ранее. Чтобы разработать свой собственный навык, вы создадите автономное приложение, работающее на независимом сервере. Вы должны использовать вызовы API, предоставленные набором навыков Alexa для подключения вашего сервера с устройством Alexa. Другого пути нет.

Alexa Voice Service (AVS) : Если вы хотите интегрировать службу Alexa в своем собственном устройстве или приложении, вы будете использовать AVS. Я думаю об этом таким образом. Вы, скорее всего, уже уже интегрировали карты Google на вашем сайте. Точно так же вы будете интегрировать Alexa в своем умного домашнем устройстве для повышения его выразительной мощности.

Неофициальные кодировки додзё Алекса навыки (6 видео)

Далее вы погрузитесь в глубже в кроличьей дыре и следуйте за видеоуронением, рекомендованным в Официальная документация :

Кодирование bootcamp: Обучение умения Alexa на кодировании Dojo (часть 1 из 6)

Это вводное видео показывает вам разницу между набором навыков Amazon Echo и Alexa. Вы также узнаете, как настроить AWS Lambda для обслуживания ваших навыков и как использовать Python 2.7, чтобы создать свой навык.

Кодирование bootcamp: Amazon Echo, Alexa и AWS Lambda (часть 2 из 6)

Это видео обеспечивает обзор трех технологий, необходимых для создания функций или навыков: комплект навыков Alexa, Amazon Echo и AWS Lambda.

Видео также показывает, как построить навыки в минутах. Он представляет Skill Service и интерфейс навыков, борьбу на имя вызовов, схему намерения, тип слота и высказывания.

AWS Lambda Free Wier заботится о утомительных процессах, таких как масштабирование и предоставление и размер. Вы узнаете, как быстрые и мощные эти технологии.

Кодирование bootcamp: настройка службы навыков на aws lambda (часть 3 из 6)

В этом видео вы узнаете, как создать службу навыков для набора навыков Alexa, используя AWS Lambda.

  • Подпишитесь на учетную запись AWS и настройте функцию лямбда.
  • Создать роль под названием Управление идентификационным доступом (IAM) Сервис для настройки функции лямбда.

Видео направляет вас поэтапным путем этого процесса и предоставляет вам Python 2. 7 Код вам нужно размещать внутри функции лямбда.

Кодирование BootCamp: настройка вашего интерфейса навыка Alexa (часть 4 из 6)

В этом видео вы создадите интерфейс навыков.

Прежде чем смотреть это, войдите в Консоль разработчиков Amazon Отказ

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

Кодирование BootCamp: Как информация передается из интерфейса навыков к службе навыков (часть 5 из 6)

Это видео объясняет, как передавать информацию из интерфейса навыков (комплект навыков Alexa) к службе навыков (AWS Lambda) и наоборот.

Кодирование BootCamp: Flask-Ask и Ngrok (часть 6 из 6)

  • Флэк-спросить – это Колбу расширение. Вы можете разместить его на любом сервере, используя простые команды Python. Это цель – обрабатывать запросы на комплект навыков Alexa.
  • NGROK позволяет вам надежно проверить свои навыки Alexa без необходимости создавать и настроить сервер HTTPS.

Куда пойти отсюда?

  1. Учить Python: Для вашего успеха важно создавать свои собственные навыки Alexa, которые у вас есть собственный фонд Python. С этой целью я создал новую систему обучения, где вы потребляете воспитательные электронные письма Python в вашем перерыве на кофе. Это учится на автопилоте. Присоединяйтесь к моему Курс питона электронной почты и получите книгу Python Отказ Это на 100% бесплатно! (И вы можете отписаться в любое время.)
  2. Создайте свой собственный навык Alexa в следующем шагам Amazon Учебники Отказ

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

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

Оригинал: “https://blog.finxter.com/how-to-create-alexa-skills-in-python/”