Как создать навык для Алисы с нуля
От написания сценария до публикации
С помощью голосового помощника Яндекса уже можно узнавать погоду, строить маршруты и управлять умным домом. Но возможности Алисы можно еще расширить: например, создать навык для заказа еды или игру-квест по управлению государством. Навык может создать и опубликовать любой пользователь с помощью платформы Яндекс.Диалоги. Чтобы это сделать, нужно придумать идею, написать сценарий и код (если вы не умеете программировать, то можно воспользоваться визуальным конструктором). Академия Яндекса разобралась, как пройти путь от задумки до публикации навыка.
Как понять, какой навык делать
«Преимущество голосовых интерфейсов в простоте взаимодействия с ними», — рассказывает консультант Алисы Мика Голубовский. К тому же у пользователей часто появляется эмоциональная связь с голосовым ассистентом: они то пробуют подколоть Алису, то интересуются, как прошёл её день. Но для того, чтобы пользователи могли естественно использовать навыки, разработчикам навыков нужно приложить специальные усилия.
Навык — это новый способ оказания услуги: он не должен совпадать с тем, что и так уже есть на сайте или в приложении. Во-первых, визуальный интерфейс плохо переводится в голосовой, а во-вторых, такой навык не будет интересен пользователям. Например, для авиакомпании будет уместным заменить привычный инструмент для покупки билетов игрой. Так, можно внедрить в навык игру в города и иногда добавлять к репликам Алисы цены на билет в названный город. Или сделать отдельный навык для покупки горящих билетов, который будет выдавать пользователю случайные направления.
Плохой пример переноса функции в голосовой интерфейс, пользователю сложно воспринимать объёмные сообщения на слух:
Хороший пример переноса функции в голосовой интерфейс:
В голосовой интерфейс просто перевести любую систему ответов на часто задаваемые вопросы (FAQ). Однако для того, чтобы таким навыком массово пользовались, нужен интересный большой аудитории предмет навыка. Но часто возвращаться в такой навык пользователи всё равно не будут.
Так, Яндекс выпустил два навыка для игры «Detroit: Стать человеком». К её выходу компания опубликовала навык «Игра Detroit», который отвечал на вопросы пользователей, показывал интервью с создателями и рассказывал необычные факты о игре. Следом за ним Яндекс выпустил голосовой квест по мотивам игры («Квест Detroit»): сейчас им пользуется втрое больше людей, чем FAQ. Помимо того, что квесты используют чаще, пользователи проводят в них больше времени, чем в неигровых навыках: в среднем 15–18 минут подряд.
Для того, чтобы улучшить функциональность, можно использовать не только свои идеи, но и отзывы пользователей или других разработчиков — у создателей навыков для Алисы есть специальный чат в Telegram.
Из чего состоят навыки
У навыков для Алисы есть три составляющих: сценарий, контент (данные, к которым обращается навык) и код. Сценарий описывает фразы, которые может произносить пользователь, и то, как навык будет на них реагировать. Для того, чтобы понять, как будет идти диалог, можно сначала нарисовать простую схему на листе бумаги. «Для создания сценария удобно использовать визуальные конструкторы: например, AImylogic. С помощью конструктора можно увидеть, как будут работать переходы в диалоге, и протестировать навык», — советует призёр Премии Алисы Дмитрий Чечёткин.
Как написать хороший сценарий
Правильно начать
Главные слова в навыке — это приветственная фраза. От того, насколько хорошо она составлена, зависит, будут ли пользователи пользоваться вашим навыком. Люди не привыкли к голосовым интерфейсам и ждут от них естественного общения. Поэтому важно с самого начала направить их в нужном направлении.
В первой реплике нужно объяснить, что навык умеет: например, если это игра, то описать её правила. Ещё в первом сообщении важно проговорить пользователю, что именно ему нужно делать. Закончить фразу лучше вопросом, который будет побуждать пользователя к действию. Например, так:
Однако не стоит добавлять в приветственную фразу слишком много подробностей: хорошая реплика должна произноситься на одном дыхании. Это правило действует и для других реплик Алисы: если перегрузить пользователя информацией, то он её сразу же забудет.
Выбрать тон
Ещё одна задача первой реплики — задать тон общения с пользователем. Навык — это персонаж, и у него может быть разный характер в зависимости от задачи. Так, навыку для пенсионного фонда следует обращаться к пользователям официально, а детской игре, наоборот, весело и неформально.
Любой стиль общения стоит выбирать осознанно: от «характера» навыка зависит то, какие команды ждать от пользователя. Например, если стиль общения свободный, то для утвердительных ответов пользователя нужно предусмотреть не только «да», но и «ага». А если у навыка военная тематика, то можно добавить и вариант «так точно».
Направлять пользователей
Пользователей навыка можно направлять при помощи вопросов. При этом важно предлагать пользователю конкретные варианты ответа, из которых он может выбрать, чтобы не запутывать его сильнее.
Добавить вариативности
Если какой-то тип ответа используется в вашем навыке часто, то стоит прописать для него несколько эквивалентных вариантов. Чем разнообразнее будут реплики, тем больше общение с Алисой будет похоже на настоящий разговор.
Как написать код
Технически навык очень похож на бота, но с тем отличием, что он не может сам отправлять сообщения — только отвечать на запросы пользователя. Для того, чтобы запустить навык, нужно подготовить исходный код (например, на Python или на Node.js) и развернуть веб-сервис.
Для развёртывания навыка можно использовать сервис Now: он позволяет быстро запустить нужное веб-приложение, но ограничивает удобство разработки и тестирования. А чтобы запустить сервис в условиях, приближенных к боевым, можно воспользоваться Microsoft Azure, Amazon Web Services или Яндекс.Облаком. Так, Облако выдаёт всем создателям навыков гранты на использование сервиса.
Если вы не умеете программировать, то вместо написания кода можно воспользоваться визуальными конструкторами, например: Aimylogic, Dialogflow, Verter, AlfaBot, AlicePro или PipeBot.
При выборе конструктора стоит обратить внимание на реализацию в нём обработки естественного языка. От неё зависит, будет ли навык реагировать на разные формулировки одного и того же запроса: например, «хочу пиццу», «закажи пиццу» и «сделай заказ».
Кроме того, важно качество интеграции навыка с Яндекс.Диалогами: возможность создания подсказок, адаптации навыка для разных устройств (смартфонов, Станции, Навигатора) и добавления картинок и звуков.
Работа в Яндекс.Диалогах
Для того, чтобы создать навык, нужно зарегистрироваться на сайте конструктора и на платформе Яндекс.Диалоги. В Яндекс.Диалогах необходимо добавить диалог с помощью кнопки и выбрать его тип — навык для Алисы.
На странице диалога будет его идентификатор: его нужно скопировать в конструктор, чтобы затем импортировать из него алгоритм.
Работа в конструкторе
С помощью визуальных конструкторов можно создавать деревья, которые соответствуют ходу диалога. А переход по ветвям зависит от того, как пользователь будет реагировать на действия навыка.
Пример реализации навыка на платформе Aimylogic
В навыки можно добавлять кнопки для того, чтобы пользователь мог задавать простые команды не голосом, а быстрым нажатием (например, в отдельную кнопку обычно выносят команду «помощь»).
Ещё в конструкторах используется метод «HTTP-запрос». С его помощью конструктор может получать данные из внешних источников: например, облачных хранилищ или таблиц. Контент для навыка можно хранить и внутри конструктора, но это усложнит архитектуру диалога и его редактирование — поэтому так делать не стоит.
Пример таблицы с информацией для навыка: вопросами, которые будет задавать Алиса, и вариантами ответов, которые может давать пользователь
В записях Школы Алисы можно посмотреть подробные инструкции по использованию конструкторов навыков: по работе с Aimylogic и DialogFlower.
Как опубликовать навык
Для того, чтобы навык можно было использовать любому пользователю, его нужно разместить в каталоге. Чтобы опубликовать диалог, его нужно зарегистрировать в консоли разработчика.
Сперва понадобится задать настройки навыка: название, URL, фразы, активирующие навык, и голос, который он может использовать.
Название навыка для каталога должно состоять не менее чем из двух слов, быть написанным на русском или английском языке и не ограничиваться общей категорией («пластиковые окна» или «путешествия» не подходят). Также имя должно быть уникальным и не содержать слов «Алиса», «Яндекс» или «Станция».
Активационное имя — это фраза, по которой навык можно вызвать в разговоре с Алисой. В этой фразе должна содержаться сокращённая или развёрнутая форма названия: так, для навыка «Верю — не верю» можно использовать имя «играть в верю — не верю».
Голос для озвучивания навыка можно выбрать из специального списка: в него включен как привычный голос Алисы, так и более необычные, например, Эркан Явас — голос, которым озвучиваются Яндекс.Новости.
Ещё перед проверкой нужно выбрать устройства, которые будут поддерживать работу навыка (чтобы модераторы проверили его на всех из них), и протестировать ответы навыка на его странице в личном кабинете.
После того, как вы отправите навык на проверку, результат модерации появится в личном кабинете в течение трех дней. Если навык одобрят, то его можно будет отправить на публикацию кнопкой «опубликовать». А в каталоге навыков Алисы он появится спустя 5–10 минут.
Создание навыка
Прежде чем начинать разработку навыка, ознакомьтесь с концепцией управления умным домом.
Основные настройки
Название навыка, которое будет отображаться в каталоге.
Параметры обработчика навыка, который будет принимать запросы пользователя через Яндекс.Диалоги и отвечать на них.
Время ожидания ответа от навыка — 3 секунды. Если Диалоги не получат ответ в течение этого времени, сессия навыка завершится. Алиса сообщит пользователю, что навык не отвечает.
Время ответа — это время от начала отправки запроса в навык сервером Алисы до полного получения ответа от навыка. В 3 секунды входят:
Функция Yandex.Cloud — идентификатор Функции в Yandex.Cloud. Функция должна быть создана из-под аккаунта автора навыка. О том, как создать и подключить функцию для навыка Алисы, читайте в документации Yandex.Cloud.
Ограничение доступа к опубликованному навыку:
Публичный — после публикации навык попадет в каталог навыков и будет доступен всем пользователям Алисы.
Приватный — после публикации навык доступен только вам (на всех поверхностях, где вы авторизованы под аккаунтом, которому принадлежит навык).
Приватный навык не отправляется на модерацию, а сразу публикуется. После этого вы можете выдавать индивидуальный доступ к нему определенным пользователям Яндекса. Подробнее о приватном доступе читайте в разделе Доступ к навыку.
Публикация в каталоге
Указание на то, что навык является официальным навыком бренда, а разработчиком навыка является производитель соответствующих устройств или его официальный представитель.
Сайт для верификации прав использования бренда
Навык, для которого вы заполнили это поле, пройдет модерацию только если вы подтвердили права на указанный сайт в Яндекс.Вебмастере.
Права на сайт проверяются с помощью Вебмастера, чтобы навык с вашим брендом могли опубликовать только вы. Если бы этой проверки не было, кто угодно мог бы использовать ваш бренд и официальный сайт для своего навыка — Яндекс.Диалоги не могли бы автоматически убедиться в том, что права на бренд принадлежат вам, а не кому-то еще.
Описание функциональности навыка на русском языке, которое будет отображаться в каталоге. В описании должны быть перечислены типы устройств, с которыми умеет работать навык, а также инструкции по их подключению. Пример описания можно посмотреть у навыка Xiaomi.
Чтобы оформить описание, можно использовать некоторые возможности языка разметки Markdown:
О навыках Алисы
Что такое навык, какие типы навыков существуют и как с ними работать
Специальные навыки для голосового управления домашними устройствами
Как получить доход с разработки навыков
Что такое навык, какие типы навыков существуют и как с ними работать
Специальные навыки для голосового управления домашними устройствами
Как получить доход с разработки навыков
С чего начать
Узнайте, как работают навыки Алисы и начните разрабатывать собственный навык.
Как создать первый навык без программирования, на Node.js или Python
Инструменты для разработки, библиотеки для тестирования, примеры навыков и обучающие материалы
Как создать первый навык без программирования, на Node.js или Python
Инструменты для разработки, библиотеки для тестирования, примеры навыков и обучающие материалы
Что надо знать
О чем надо знать перед тем, как начать разрабатывать навык
Чем отличается разработка навыков для разных интерфейсов
Что нужно учитывать при создании навыка
Как начать разговор с навыком и вернуться к обычному разговору с Алисой
Чем отличается разработка навыков для разных интерфейсов
Что нужно учитывать при создании навыка
Как начать разговор с навыком и вернуться к обычному разговору с Алисой
Создание навыка
Как спроектировать, разработать и опубликовать навык.
Как написать сценарий вашего навыка
Что нужно подготовить для вашего навыка
Из каких этапов состоит разработка навыка и как решать конкретные задачи при создании нового диалога
Как разместить навык в каталоге Алисы
Как выглядит запрос Диалогов
Как должен выглядеть ответ обработчика навыка на запрос Диалогов
Как написать сценарий вашего навыка
Что нужно подготовить для вашего навыка
Из каких этапов состоит разработка навыка и как решать конкретные задачи при создании нового диалога
Как разместить навык в каталоге Алисы
Как выглядит запрос Диалогов
Как должен выглядеть ответ обработчика навыка на запрос Диалогов
Продвижение
Рассказать о своем навыке другим людям.
Как добавить картинку с ссылкой на навык на сайт или в приложение
Обзор
Что такое навыки
Алиса уже умеет рассказывать о погоде, ставить музыку, строить маршруты и многое другое. Но вы можете расширить возможности Алисы еще сильнее:
Чтобы научить Алису чему-то новому, нужно создать навык на платформе Яндекс.Диалоги. Навык — это:
Со стороны пользователя — это режим Алисы, который включается по определенному имени. В этом режиме Алиса принимает команды пользователя, передает их в ваше приложение и отображает его ответ.
Со стороны разработчика — это веб-сервис, который ожидает реплик пользователя от Яндекс.Диалогов. Веб-сервис может быть написан на любом языке программирования или веб-фреймворке — он должен только корректно отвечать на запросы Диалогов.
Со стороны пользователя — это режим Алисы, который включается по определенному имени. В этом режиме Алиса принимает команды пользователя, передает их в ваше приложение и отображает его ответ.
Со стороны разработчика — это веб-сервис, который ожидает реплик пользователя от Яндекс.Диалогов. Веб-сервис может быть написан на любом языке программирования или веб-фреймворке — он должен только корректно отвечать на запросы Диалогов.
Разработка навыков может принести доход
Создайте навык и зарабатывайте — хорошие навыки, которыми пользуется много людей, могут приносить доход. Вы можете начать зарабатывать на показах рекламы или через продажу товаров в навыке. Подробнее о способах заработка читайте на странице Как заработать на навыках.
Создайте навык и зарабатывайте — хорошие навыки, которыми пользуется много людей, могут приносить доход. Вы можете начать зарабатывать на показах рекламы или через продажу товаров в навыке. Подробнее о способах заработка читайте на странице Как заработать на навыках.
Алиса уже умеет рассказывать о погоде, ставить музыку, строить маршруты и многое другое. Но вы можете расширить возможности Алисы еще сильнее:
Чтобы научить Алису чему-то новому, нужно создать навык на платформе Яндекс.Диалоги. Навык — это:
Со стороны пользователя — это режим Алисы, который включается по определенному имени. В этом режиме Алиса принимает команды пользователя, передает их в ваше приложение и отображает его ответ.
Со стороны разработчика — это веб-сервис, который ожидает реплик пользователя от Яндекс.Диалогов. Веб-сервис может быть написан на любом языке программирования или веб-фреймворке — он должен только корректно отвечать на запросы Диалогов.
Со стороны пользователя — это режим Алисы, который включается по определенному имени. В этом режиме Алиса принимает команды пользователя, передает их в ваше приложение и отображает его ответ.
Со стороны разработчика — это веб-сервис, который ожидает реплик пользователя от Яндекс.Диалогов. Веб-сервис может быть написан на любом языке программирования или веб-фреймворке — он должен только корректно отвечать на запросы Диалогов.
Разработка навыков может принести доход
Создайте навык и зарабатывайте — хорошие навыки, которыми пользуется много людей, могут приносить доход. Вы можете начать зарабатывать на показах рекламы или через продажу товаров в навыке. Подробнее о способах заработка читайте на странице Как заработать на навыках.
Создайте навык и зарабатывайте — хорошие навыки, которыми пользуется много людей, могут приносить доход. Вы можете начать зарабатывать на показах рекламы или через продажу товаров в навыке. Подробнее о способах заработка читайте на странице Как заработать на навыках.
Типы навыков
Определите, что должен уметь ваш навык. У разных типов навыка есть разные возможности. Какие бывают типы навыков:
Навыки, которые обрабатывают самые разные запросы пользователей. Примеры задач, которые могут решать навыки общего типа:
С навыками общего типа можно работать через приложения и устройства с Алисой.
Навыки умного дома можно использовать в приложениях и устройствах с Алисой.
Навыки, позволяющие проигрывать загруженные вами мелодии с помощью жестов.
Навык «Синтезатор» работает только с колонкой Яндекс.Станция Мини.
Навыки, которые обрабатывают самые разные запросы пользователей. Примеры задач, которые могут решать навыки общего типа:
С навыками общего типа можно работать через приложения и устройства с Алисой.
Навыки умного дома можно использовать в приложениях и устройствах с Алисой.
Навыки, позволяющие проигрывать загруженные вами мелодии с помощью жестов.
Навык «Синтезатор» работает только с колонкой Яндекс.Станция Мини.
Этапы создания навыка
После того, как вы определились с типом навыка, вы можете начать его размещение. Оно разделено на несколько разделов, которые описаны ниже.
Перед началом
Перед разработкой необходимо решить, где будет размещен навык и как его создать.
О размещении навыка читайте в разделе Размещение навыка. О том, как создать навык в консоли Яндекс.Диалогов читайте в разделе Создание навыка в консоли.
Проектирование
Подробнее о проектировании навыка читайте в разделе Проектирование навыка.
Разработка
Разверните веб-сервис, который может принимать запросы от Алисы и отправлять подходящие ответы в зависимости от типа навыка.
О том, как разработать навык, читайте в разделе Разработка навыка.
Тестирование
Перед тем, как отправить навык на модерацию, его необходимо протестировать. Проверьте ответы навыка и убедитесь, что все работает правильно.
Подробнее о тестировании читайте в разделе Тестирование навыка.
Публикация
Отправьте навык на модерацию и затем опубликуйте его. Навык будет доступен для скачивания из каталога.
Подробнее о публикации можно посмотреть в разделе Публикация навыка.
Аналитика
Чтобы своевременно выявить проблемы работы навыка после его публикации, собирайте статистику и читайте отчеты об ошибках.
Собрать информацию о работе навыка можно в интерфейсе AppMetrica или в консоли разработчика Диалогов.
Полезные ссылки
Обзор
Что такое навыки
Алиса уже умеет рассказывать о погоде, ставить музыку, строить маршруты и многое другое. Но вы можете расширить возможности Алисы еще сильнее:
Чтобы научить Алису чему-то новому, нужно создать навык на платформе Яндекс.Диалоги. Навык — это:
| | ||||
| |
| | ||
| |
| |
| |