создание навыка для алисы
Создание навыка
Прежде чем начинать разработку навыка, ознакомьтесь с концепцией управления умным домом.
Основные настройки
Название навыка, которое будет отображаться в каталоге.
Параметры обработчика навыка, который будет принимать запросы пользователя через Яндекс.Диалоги и отвечать на них.
Время ожидания ответа от навыка — 3 секунды. Если Диалоги не получат ответ в течение этого времени, сессия навыка завершится. Алиса сообщит пользователю, что навык не отвечает.
Время ответа — это время от начала отправки запроса в навык сервером Алисы до полного получения ответа от навыка. В 3 секунды входят:
Функция Yandex.Cloud — идентификатор Функции в Yandex.Cloud. Функция должна быть создана из-под аккаунта автора навыка. О том, как создать и подключить функцию для навыка Алисы, читайте в документации Yandex.Cloud.
Ограничение доступа к опубликованному навыку:
Публичный — после публикации навык попадет в каталог навыков и будет доступен всем пользователям Алисы.
Приватный — после публикации навык доступен только вам (на всех поверхностях, где вы авторизованы под аккаунтом, которому принадлежит навык).
Приватный навык не отправляется на модерацию, а сразу публикуется. После этого вы можете выдавать индивидуальный доступ к нему определенным пользователям Яндекса. Подробнее о приватном доступе читайте в разделе Доступ к навыку.
Публикация в каталоге
Указание на то, что навык является официальным навыком бренда, а разработчиком навыка является производитель соответствующих устройств или его официальный представитель.
Сайт для верификации прав использования бренда
Навык, для которого вы заполнили это поле, пройдет модерацию только если вы подтвердили права на указанный сайт в Яндекс.Вебмастере.
Права на сайт проверяются с помощью Вебмастера, чтобы навык с вашим брендом могли опубликовать только вы. Если бы этой проверки не было, кто угодно мог бы использовать ваш бренд и официальный сайт для своего навыка — Яндекс.Диалоги не могли бы автоматически убедиться в том, что права на бренд принадлежат вам, а не кому-то еще.
Описание функциональности навыка на русском языке, которое будет отображаться в каталоге. В описании должны быть перечислены типы устройств, с которыми умеет работать навык, а также инструкции по их подключению. Пример описания можно посмотреть у навыка Xiaomi.
Чтобы оформить описание, можно использовать некоторые возможности языка разметки Markdown:
О навыках Алисы
Что такое навык, какие типы навыков существуют и как с ними работать
Специальные навыки для голосового управления домашними устройствами
Как получить доход с разработки навыков
Что такое навык, какие типы навыков существуют и как с ними работать
Специальные навыки для голосового управления домашними устройствами
Как получить доход с разработки навыков
С чего начать
Узнайте, как работают навыки Алисы и начните разрабатывать собственный навык.
Как создать первый навык без программирования, на Node.js или Python
Инструменты для разработки, библиотеки для тестирования, примеры навыков и обучающие материалы
Как создать первый навык без программирования, на Node.js или Python
Инструменты для разработки, библиотеки для тестирования, примеры навыков и обучающие материалы
Что надо знать
О чем надо знать перед тем, как начать разрабатывать навык
Чем отличается разработка навыков для разных интерфейсов
Что нужно учитывать при создании навыка
Как начать разговор с навыком и вернуться к обычному разговору с Алисой
Чем отличается разработка навыков для разных интерфейсов
Что нужно учитывать при создании навыка
Как начать разговор с навыком и вернуться к обычному разговору с Алисой
Создание навыка
Как спроектировать, разработать и опубликовать навык.
Как написать сценарий вашего навыка
Что нужно подготовить для вашего навыка
Из каких этапов состоит разработка навыка и как решать конкретные задачи при создании нового диалога
Как разместить навык в каталоге Алисы
Как выглядит запрос Диалогов
Как должен выглядеть ответ обработчика навыка на запрос Диалогов
Как написать сценарий вашего навыка
Что нужно подготовить для вашего навыка
Из каких этапов состоит разработка навыка и как решать конкретные задачи при создании нового диалога
Как разместить навык в каталоге Алисы
Как выглядит запрос Диалогов
Как должен выглядеть ответ обработчика навыка на запрос Диалогов
Продвижение
Рассказать о своем навыке другим людям.
Как добавить картинку с ссылкой на навык на сайт или в приложение
Создание Навыков Для Яндекс Алиса
Помогу стать частью экосистемы Яндекс.Диалогов, разработав качественный и полезный навык для голосового помощника Яндекс Алиса! Высокое качество, приемлемые цены и качественную поддержку гарантирую!
Готов помочь с поддержкой и обновлением уже созданного навыка.
Помните: «Качественные навыки украшают Алису»
Обо мне
Меня зовут Максим, я работаю программистом более 7 лет.
Создаю навыки с того момента, как только они появились на свет.
Могу создать сайт, или разработать приложение. А также, я разрабатываю чат ботов и навыки для голосового помощника Яндекс Алисы. Многие из моих навыков побеждали в «Премия Яндекс Алисы», помимо этого, я стал победителем Хакатона Яндекс «Игры вслух», и вёл видео-уроки в Школе Алисы.
Я делаю хорошие и качественные навыки, которые нравятся людям, в качестве навыков Вы всегда можете лично убедиться. Не зря же они побеждали в премии!
Список разработанных навыков, доступен в моём портфолио.
Чтобы узнать больше обо мне, переходите по ссылке: Кто я такой?
Я предлагаю услуги по созданию навыков для Алисы, а также готов разработать различных чат ботов или сайт. Высокое качество, оперативность и качественную поддержку гарантирую. Несу полную ответственность за конечный продукт, готов его дорабатывать до тех пор, пока результат не удовлетворит всех.
Другими словами, вы получите тот навык, который хотели!
На что я способен?
Если вы не нашли нужную услугу, просто напишите мне. Я справлюсь с любой задачей!
Создание различных чат-ботов
Стоимость:
от 3500 ₽
Разработка чат ботов для ВКонтакте и Telegram. Автоматизируйте процесс. Пусть на стандартные вопросы отвечает бот, а не человек.
Разработка навыков для Алисы
Стоимость:
от 4000 ₽
Разработка качественных, полезных, эффективных и не очень дорогих навыков для голосового ассистента Алиса. Пусть ваши пользователи общаются с Вами через навык, ведь это куда проще и удобнее!
Поддержка и обновление навыков
Стоимость:
от 2000 ₽
Поддержка и обновление уже созданных навыков для Алисы. Технологии не стоят на месте, и приходится постоянно совершенствоваться и что-то улучшать.
Помощь в разработке
Стоимость:
от 2000 ₽
Помощь и консультация в создании чат ботов или навыков для Алисы. Подробно расскажу обо всех нюансах при разработке и поделюсь своими знаниями и секретами.
Создание и продвижение сайтов
Стоимость:
от 5000 ₽
Разработка сайтов любой сложности, а также их настройка и продвижение. К созданию сайта относится SEO, подключение Яндекс.Диалогов и Яндекс-турбо. Закажите разработку у профессионала!
Создание красивой иконки для навыков Алисы
Стоимость:
от 500 ₽
Создание качественной, опрятной и красивой иконки для навыка для голосового помощника Яндекс.Алиса. Сделайте лицо вашего навыка красивым!
Узнайте, как использовать навыки Алисы в своих целях, а также получите бесплатную консультацию и советы от победителя премии Алиса
Оставьте заявку, и получите БЕСПЛАТНУЮ консультацию и рекомендацию о том, как применить навыки в бизнесе или любой другой сфере. А если у вас есть идея для создания своего навыка, смело обращайтесь ко мне! Всё будет сделано быстро и, самое главное, качественно и по низкой цене!
Пусть все идеи и желания воплотятся в жизнь!
Мои преимущества
Существует множество студий или разработчиков, которые также как и я разрабатывают навыки для Алисы.
Но почему выгодно обращаться именно ко мне?
Профессионализм
Я неоднократно побеждал в премии Яндекс Алиса, стал победителем хакатона Яндекс “Игры вслух”, а также вёл видео-уроки в школе Алисы.
Скорость
У меня достаточно опыта в разработке. Я быстро создаю навыки, но при этом не страдает их качество! Даю гарантии на высокое качество услуг и долгую поддержку!
Качество
Высокое качество навыка.
Идет постоянная связь с пользователями, и на основе тех или иных предпочтений, повышается функционал и возможности Вашего навыка.
Надежность
Поддержка
Все навыки постоянно обновляются и улучшаются.
Если была найдена ошибка, то она быстро и оперативно исправляется.
Уникальность
Нельзя просто так взять, и не заказать разработку навыка у победителя премии Алиса. Я всегда стараюсь сделать максимально уникальный и полезный для аудитории навык.
Стоимость моих услуг значительно ниже, потому что я работаю удаленно и не трачусь на штат сотрудников и на офис.
Если вы найдете компанию, студию или человека, которые предложит сделать дешевле чем я, то я сделаю дешевле чем вам предложили!
Я не компания и не студия
Я ценю каждого своего клиента, несу полную ответственность за конечный продукт.
Если вы ищите того, кто сделает и забудет, то это не про меня!
К тому же у меня дешевле!
Основные преимущества Алисы
Давайте рассмотрим основные преимущества голосового ассистента Яндекс Алиса
Выгодная площадка для бизнеса
Голосовой помощник становится неотъемлемой частью жизни человека. Алису скачали уже более 50 миллионов раз.
Помимо этого, Алисой ежедневно пользуется больше 8 млн. человек.
Удобство
Алисой крайне удобно пользоваться, ведь куда проще спросить и сразу узнать ответ чем заходить на сайт и что-то искать.
Современность
За голосовыми помощниками будущее, и многие это понимают и развиваются в данном направлении. Согласитесь, компания со своим навыком в Алисе, выглядит выигрышнее, чем компания без него
Удобный и простой способ взаимодействия
Голосовой помощник поддерживает общение на естественном для человека языке, распознает смысл сказанного и переводит его в запросы.
Не обязательно уметь писать, можно просто спросить. В связи с этим, с Алисой спокойно дружат маленькие дети.
Примеры моих навыков
Несколько навыков, которые я разработал.
Можно проверить как они работает, нажав на кнопку «Перейти в навык». А если Вас заинтересует какой-либо из них, или появится желание создать что-то подобное для себя, тогда оставляйте заявку и получите свой навык как можно скорее!
Отзывы людей на мои навыки
Узнайте, что говорят люди, которые используют навыки Алисы, которые я разработал.
Как создать навык для Алисы с нуля
От написания сценария до публикации
С помощью голосового помощника Яндекса уже можно узнавать погоду, строить маршруты и управлять умным домом. Но возможности Алисы можно еще расширить: например, создать навык для заказа еды или игру-квест по управлению государством. Навык может создать и опубликовать любой пользователь с помощью платформы Яндекс.Диалоги. Чтобы это сделать, нужно придумать идею, написать сценарий и код (если вы не умеете программировать, то можно воспользоваться визуальным конструктором). Академия Яндекса разобралась, как пройти путь от задумки до публикации навыка.
Как понять, какой навык делать
«Преимущество голосовых интерфейсов в простоте взаимодействия с ними», — рассказывает консультант Алисы Мика Голубовский. К тому же у пользователей часто появляется эмоциональная связь с голосовым ассистентом: они то пробуют подколоть Алису, то интересуются, как прошёл её день. Но для того, чтобы пользователи могли естественно использовать навыки, разработчикам навыков нужно приложить специальные усилия.
Навык — это новый способ оказания услуги: он не должен совпадать с тем, что и так уже есть на сайте или в приложении. Во-первых, визуальный интерфейс плохо переводится в голосовой, а во-вторых, такой навык не будет интересен пользователям. Например, для авиакомпании будет уместным заменить привычный инструмент для покупки билетов игрой. Так, можно внедрить в навык игру в города и иногда добавлять к репликам Алисы цены на билет в названный город. Или сделать отдельный навык для покупки горящих билетов, который будет выдавать пользователю случайные направления.
Плохой пример переноса функции в голосовой интерфейс, пользователю сложно воспринимать объёмные сообщения на слух:
Хороший пример переноса функции в голосовой интерфейс:
В голосовой интерфейс просто перевести любую систему ответов на часто задаваемые вопросы (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 минут.
Разработка навыков для Алисы. Опыт работы с голосовыми интерфейсами, советы начинающим
Всего месяц назад мы захотели попробовать себя в создании расширения для функционала Алисы — навыков. По опыту общения в чате поддержки Яндекс Диалогов сложилось впечатление что уже есть, чем поделиться с начинающими особенностями работы над голосовыми интерфейсами.
В заметке хочу рассказать свои впечатления от трех недель работы нашего детского новогоднего навыка Снегурочки и о вопросах и ответах в чате разработчиков диалогов.
Для профессионала в VUI в заметке не будет ничего нового, но дельные советы и комментарии от опытных приветствуются. Пишу впервые, прошу не судить строго.
Почему стоит обратить внимание на Алису?
Если за рубежом голосовые помощники уже стали обыденностью, многочасовые разговоры с роботом уже утекают в сеть, то у нас это пока остается на уровне взаимодействия с навигатором, болтовни детей с Алисой, баловством гиков с умными домами. Мало кто из моих знакомых заносит заметки и напоминания с помощью Siri, хотя, на мой взгляд — это один из самых удобных вариантов ее использования. С большой вероятностью в наступающем году эта ситуация изменится в лучшую сторону, ведь фундамент уже заложен:
Зачем все это: голос, навыки?
Думаю, многим уже понятно преимущество голосовых интерфейсов в некоторых случаях, но не лишним будет напомнить: иногда это самый подходящий вариант. Например, в автомобиле или на кухне занимаясь приготовлением еды, при любой другой деятельности, где руки заняты, удобнее отдавать команды голосом. Например, уже давно есть роботы-медсестры, управляемые голосом, помогающие при хирургических операциях.
Голос — привычный людям интерфейс взаимодействия. Пожилые люди и дети без особых проблем осваивают этот метод для получения информации и управления гаджетами.
Для людей с нарушением зрения голос и слух — являются еще более важным каналом взаимодействия с окружающей средой. Судя по чату Яндекс.Станции такая категория людей очень оценила появление такого устройства, облегчающего их жизнь.
Продолжать перечислять кейсы не буду, если интересно, то можно детальнее узнать обо всем этом из специальной литературы.
Навык — это программа реализующая некий диалог, который запускается заданной командой активации в Алисе и расширяющий возможности голосового помощника от Яндекса.
Как создать навык?
Есть уже некоторое количество хороших сторонних навыков, но еще много ниш, которые можно занять и сделать по-настоящему интересный и полезный навык.
По созданию их есть несколько статей, в том числе и на Хабре. Есть документация, есть краткие общие рекомендации. Не стану сильно углубляться в технические детали реализации, т.к. хотелось бы поделиться общими подходами для начинающих.
Технически навык очень похож на бота, с тем отличием, что он не может сам отправить сообщение, а только ответить на запрос пользователя.
Вот небольшой список ресурсов которые помогут начать:Библиотеки и ресурсы для Яндекс Диалогов
Неофициальный FAQ по работе с Яндекс Диалогами.
В документе собраны актуальные и не очень ссылки и вопросы-ответы.
Вышеупомянутый чат Яндекс Диалогов.
Для начала разработки нужен аккаунт на Яндексе, сервер, на котором будет находиться и выполняться код нашей программы, вебсервер и само приложение, написанное на любом удобном вам языке, который сможет обеспечить работу по https протоколу.
Детали реализации своих навыков я тут приводить не буду, если будет запрос от сообщества, то уделю этому внимание в отдельной статье. Тем более что подобные материалы уже есть.
Оставлю только пример простого навыка на PHP с комментариями который, думаю, позволит сделать быстрый старт новичку.
В репозитории находится скрипт для создания простой среды для разработки, который запускает встроенный в PHP вебсервер и используя сервис serveo.net делает локальный порт доступным из интернет:
Сохраняем урл https://******.serveo.net — это будет урл вашего вебхука. В отличие от ngrok этот урл не изменяется со временем, не надо менять его в настройках диалога. Можете проверить доступность вебхука введя в браузере этот урл — должен вернуться json с ошибкой. Это нормально, мы не передали скрипту необходимых параметров.
Далее регистрируем сам навык по ссылке:
Выбираем пункт «Навык в Алисе»
Заполняем все поля согласно подсказкам и документации диалогов:
В поле webhook url вводим полученный ранее урл.
Пробуем сохранить, если следовали приведенным инструкциям все должно отработать с первого раза.
В данной статье по реализации только посоветую обратить особое внимание системе логирования действий пользователя. Я все проблемные участки взаимодействия пользователя, например, ожидаю «да | нет» а получаю иное, записываю в лог и тут же транслирую (отдельным процессом для скорости работы вебхука) в телеграм-канал для оперативного отслеживания и реагирования.
Общий подход и типичные ошибки.
Как я и предполагал, подходы привычные в обычной веб-разработке или разработке телеграм ботов тут мало подходят. Основное отличие — частая непредсказуемость ответов. Платформа диалогов позволяет добавлять кнопки с четкими ответами на вопрос, но пользователь часто отвечает совсем не то, что ожидает программист, привыкший следовать четкой логике.
Вы хотите выучить еще одно стихотворения?
[да] [нет]
Ожидаем что человек ответит да или нет, но нам приходило много других вариантов:
Если мы просто повторим тот же вопрос, не распознав правильный ответ, то это может раздражать пользователя и приводить к разочарованию в вашем навыке и в голосовых интерфейсах в целом. Потому следует уделять сообщениям об ошибках отдельное внимание, иногда лучше переформулировать вопрос, уточнить его, а не задавать его снова. На тот же самый вопрос пользователь скорее всего ответит то же самое, просто громче.
Так же следует стараться предусмотреть различные варианты ответов пользователя, выделять смысловую часть. В зависимости от ситуации иногда лучше один раз ошибиться в пользу неверного распознавания ответа, а не заставлять пользователя ответить четко. Если в ожидаемые ответы добавить что-то с паттерном (да *), то чаще будет срабатывать так как надо, а случаи, когда нам ответили «да отстань ты уже» будут уже как исключение и ничего критичного в логике программы не произойдет. Если, конечно, нам нужен точный ответ, из-за неверного распознания которого, в системе будут необратимые последствия, то тогда следует добиться от пользователя внятного ответа. Либо в случае если мы не уверены в ответе, то можем спросить дополнительно недостающую информацию.
Каждый из случаев взаимодействия следует рассматривать отдельно.
В приведенном выше примере мы столкнулись с тем, что пользователи просят стихотворение покороче или про какого-то персонажа («а есть покороче?», «давай про снегурочку»).
Тут у нас появляются варианты — либо добавлять новые уровни меню, но не забывать о «человечности» диалога или реагировать на такие запросы в соответствии с ожиданиями пользователя, но явно их не предлагая.
Как мы в начале ни продумывали эту диалоговую часть, мы поняли, что реальное использование лучше покажет желания пользователя, потому свой первый навык начали с минимальным функционалом, постепенно добавляя возможности нашей Снегурочки, а также реакции на востребованные, но непредусмотренные нами заранее запросы.
Использование сторонних API
Обратили внимание, что для предоставления в своих навыках каких-то полезных функций, разработчики прибегают порой к чрезмерному использованию сторонних API. Однако не стоит забывать, что время ответа вашего webhook не должно превышать 1,5 секунды. Иногда это может стать причиной отрицательного опыта пользователя с навыком, который то отвечает корректно, то пишет: «что-то пошло не так».
Особенности распознавания именованных сущностей: не все имена, города распознаются корректно, и потому желательно предусмотреть это в своем навыке. Мы пока, чтобы не лишать возможности ребенка с нераспознанным Яндексом именем общаться со Снегурочкой пришлось прибегать к некоторым «костылям». Сразу учитывайте это при разработке, чтобы потом не огорчать пользователей с именами Слава или Надежда, например. Надеемся, Яндекс вскоре это поправит.
Существующий инструмент тестирования синтеза речи не всегда соответсвует тому, что будет у вас в навыке на самом деле. Не ленитесь предусмотреть механизмы добавления tts к любым вашим ответам. Мы понадеялись на движок Яндекса, и часть фраз в нашем навыке теперь уже сложно разметить для более качественного произношения (без больших изменений в коде). Учтем на будущее.
Очень помогли простые, но достаточно эффективные PHP функции для нечеткого сравнения слов:
similar_text(), levenshtein(), в других языках тоже есть подобные инструменты. Ну, и, конечно, регулярные выражения, куда без них.
Эти функции позволили, например, принять корректно ответ на загадку с частично верным ответом — не точно распознанный, в разных склонениях.
Это, конечно, для специалистов по NLP (Обработке естественного языка) будет выглядеть несерьезно, но, повторюсь, заметка — для начинающих.
Текущие недостатки платформы
Кратко обозначу основные претензии разработчиков к Яндекс Диалогам, которые заметил в чате.
Долгая, часто кажущаяся нелогичной, модерация. Бывает, что ваш навык не проходит модерацию по причине того, что у вас, скажем, слишком общее имя навыка, например, «погода в Крыму» при том, что уже есть навык с подобным именем — «Погода в Северодвинске». Так понимаю, что связано это с тем, что раньше требования к именам и активационным словам были проще и сыну маминой подруге тому вот парню повезло, а у вас так уже не получится. Ищите другую фразу или попробуйте использовать бренд.
Не всегда документация соответсвует действительности. Сама платформа развивается быстро, документация не поспевает, трактуется пользователями и представителями яндекса иногда по-разному.
Платформа пока предоставляет лишь базовые средства для дебага навыков.
При добавлении навыка в панель разработчика ваш вебхук уже должен отвечать правильно, или просто произойдет ошибка валидации. Что за ошибка, какой JSON был отправлен и какой пришел — мы не увидим. Если же вам удалось добавить навык, то у вас будет минимальная панель с содержимым лишь последнего запроса-ответа и все! Никаких средств проверить как это будет в реальности работать и звучать на устройстве до модерации нет. Есть сторонний эмулятор, который достаточно нестабильно работает, не во всех браузерах, да и не соответсвует текущему протоколу.
Есть и другие пожелания и запросы от разработчиков, такие как: интеграция с умным домом, определение собеседника по его голосу, возможность выбирать голоса для навыков с более качественной генерацией, интеграция платежных систем, интеграция с Яндекс аккаунтом, в том числе для работы с навыком с разных устройств под одним пользователем, продуманная система приватных навыков. Но это — функции требующие тщательной проработки и, с точки зрения безопасности, удобства. Думаю, Яндекс сможет предоставить эти возможности, когда реализует это на должном уровне. Однако, проблемы с модерацией, дебагом и местами неактуальной документацией могут сильно мешать начинающим освоится в платформе.
Помогает то, что в чате поддержка стабильно отвечает, так же организовалось уже более менее опытное и отзывчивое сообщество, которое очень помогло мне, поможет и вам. На многие претензии поддержка достаточно оперативно реагирует сообщениями «приняли к сведению», «про документацию знаем, исправим», «насчет модерации решаем». Ок, мы ждем с нетерпением.
Для быстрого старта советую опубликовать приватный навык, они сейчас проверяются с минимальными требованиями:
Однажды опубликованный навык можно использовать для тестирования своих других диалогов в ожиданиях модерации путем проксирования запросов с опубликованного вебхука на разрабатываемый, фильтруя по user_id.
Вывод
В целом сами голосовые интерфейсы показались очень интересной темой, все более востребованной в будущем, планирую больше погружаться в нее, читая специальную литературу, инструкции и советы зарубежных аналогичных сервисов (Google, Amazon, Siri, etc.).
Еще раз напомню о яндексовской школе Алисы, если кого-то как и меня заинтересовала эта тематика.