Главная » Игры » Яндекс открывает Алису для всех разработчиков. Платформа Яндекс.Диалоги (бета)

Яндекс открывает Алису для всех разработчиков. Платформа Яндекс.Диалоги (бета)

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

Голосовой помощник Алиса, о котором мы впервые рассказывали на Хабре осенью прошлого года, уже работает в приложении Яндекс, Яндекс.Браузере, а также в бета-версии для Windows. Каждый день миллионы пользователей этих продуктов решают с помощью голосового помощника определённые задачи – например, узнают прогноз погоды. Мы регулярно добавляем новые возможности, но охватить все интересы пользователей самостоятельно невозможно. Заполнить этот пробел призваны навыки Алисы, об особенностях создания которых мы и расскажем под катом.

Если вы разрабатываете текстовую игру, информационного бота или даже сервис доставки еды на дом, то теперь вы можете добавить их в Алису. На техническом уровне это значит, что вы можете подключить сервис, работающий на вашем сервере, к платформе Алисы. Когда пользователь активирует такой навык, Алиса транслирует реплики пользователя на ваш сервер, и отвечает переданным вами текстом. Распознавание речи в текст и обратно платформа берёт на себя. Для пользователя разговор с использованием навыка выглядит как обычный диалог с голосовым помощником.

Чтобы не превращать этот пост в пересказ и так достаточно подробной документации, мы расскажем об особенностях создания навыков на примере игры в города.

Алиса, давай сыграем в города

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

Игра, как и любой другой навык, начинается с распознавания фразы вида «Алиса, включи игру в города». Слово «включи» – это сигнал Алисе о том, что нужно запустить навык, а не искать ответ с помощью сервисов Яндекса. Таких сигнальных слов несколько. А часть «игру в города» в произнесенной фразе – это одно из активационных имён, которые задаются разработчиком при публикации навыка в платформе Диалоги. Голосовой помощник умеет понимать различные морфологические формы одного и того же активационного имени, чтобы срабатывать даже при неточных совпадениях.

Алиса, открой игра в города
Алиса, сыграем в города
Алиса, запусти игру в города

В обычной ситуации Алиса ищет ответы с использованием сервисов Яндекса, но если речь идёт о навыке, то после распознавания активационного имени она отправляет POST-запрос на сервер, указанный разработчиком. Запрос представляет из себя привычный JSON и содержит текст от пользователя, а также служебную информацию (идентификаторы пользователя и сессии).

Пример запроса

{ "meta": { "locale": "ru-RU", "timezone": "Europe/Moscow", "client_id": "ru.yandex.searchplugin/5.80 (Samsung Galaxy; Android 4.4)"
}, "request": { "type": "SimpleUtterance", "markup": { "dangerous_context": true
}, "command": "архангельск", "original_utterance": "Алиса вызови игру в города. Архангельск.", "payload": {}
}, "session": { "new": true, "session_id": "2eac4854-fce721f3-b845abba-20d60", "message_id": 4, "skill_id": "3ad36498-f5rd-4079-a14b-788652932056", "user_id": "AC9WC3DF6FCE052E45A4566A48E6B7193774B84814CE49A922E163B8B29881DC"
}, "version": "1.0"
}

Бэкенд навыка может быть написан на любом удобном для разработчиков языке. В нашем случае мы обошлись привычным C++, но для документации подготовили примеры на Node.js и Python. Фактически требование к серверу лишь одно – он должен отвечать на запрос в течение 1,5 секунд.

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

Пример ответа

{ "response" : { "tts" : "Калач-на-Дон+у. Это в Волгоградской области. Не путайте с обычным Калачом. Он в Воронежской области. Ходите. Вам город на «у».", "end_session" : false, "text" : "Калач-на-Дону. Это в Волгоградской области. Не путайте с обычным Калачом. Он в Воронежской области. Ходите. Вам город на «у».", "buttons" : [
{ "url" : "https://www.yandex.ru/search/?text=город Калач-на-Дону", "title" : "Найти в Яндексе"
},
{ "hide" : 1, "title" : "Подсказка"
}
]
}, "version" : "1.0", "session" : { "message_id" : 35, "user_id" : "9F2D0DFC3E56611A1428DBD1ED22E8C7028BD06416F0A9B4F245D2896BA93C7B", "session_id" : "6f586354-45bbe1e6-647f5637-e008", "new" : null, "skill_id" : "672f7477-d3f0-443d-9bd5-2487ab0b6a4c"
}
}

Обратите внимание, что кроме обычного текста вы можете передавать и текст в формате TTS (text-to-speech). С помощью этой разметки вы можете управлять произношением Алисы. Это полезно, когда нужно расставить акценты в тексте или выдержать паузу.

Кроме того, в приведённом выше JSON-ответе вы можете заметить упоминания кнопок. У пользователей не всегда есть возможность ответить голосом. Заставлять писать ответы с помощью клавиатуры слишком жестоко (хотя такая возможность тоже всегда была в Алисе), поэтому разработчики навыков могут использовать кнопки. Кстати, они удобны ещё и тем, что подсказывают пользователю доступные голосовые команды.

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

Игра в города: особенности удержания аудитории

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

Проиграть в игру очень просто. Особенно, когда против вас играет справочник городов мира 🙂 Но этого нельзя допускать, потому что после поражения к вам могут и не вернуться. Не стремитесь к победе над игроком – процесс важнее результата. Поэтому в нашей игре нельзя проиграть окончательно: Алиса всегда готова поделиться подсказкой.

Игра в города достаточно однообразна. Но если игра не приносит новые знания или впечатления при каждом запуске, то её быстро забросят. В нашем случае Алиса не просто отвечает названием города, но и старается рассказать интересный факт о нём. Пользователи это ценят. Кстати, по этой же причине Алиса принимает в качестве ответа города из художественных произведений (например, Минас Тирит из вселенной Толкина).

Игры с Алисой – не единственные примеры уже существующих навыков. Например, прямо сейчас в нашем каталоге можно найти навык от Flowwow.com, который позволяет заказать и даже сразу оплатить доставку цветов. В ближайшее время мы расскажем и о других разработках от сторонних компаний, например от McDonald’s и «Папа Джонс».

Как создать свой навык?

1. Познакомьтесь с документацией Яндекс.Диалогов, где подробно описаны особенности платформы. Там же мы подготовили для вас описание быстрого старта с использованием бесплатного сервиса Now, который поможет разобраться в основах платформы без использования собственного сервера.

2. Зарегистрируйте созданный навык в Яндекс.Диалогах. Там же можно протестировать навык до его публикации, имитируя запросы от пользователей (скриншот).

3. Опубликуйте навык. Он будет размещён в каталоге Алисы, предварительный доступ к которому уже открыт в бета-версии приложения Яндекс (пункт «Что умеет Алиса» в меню Алисы). В будущем пользователи смогут узнавать о лучших навыках не только из каталога, но с помощью прямых рекомендаций голосового помощника.

Бета-версия платформы Диалоги ещё далека от финальной версии. Сейчас у каждого разработчика есть шанс повлиять на развитие навыков Алисы и поделиться с нами своими идеями и пожеланиями, которые мы постараемся учесть к моменту полноценного запуска. Оставить свой отзыв можно в комментариях, через Обратную связь, а также в нашем чате в Телеграме. Спасибо!


x

Ещё Hi-Tech Интересное!

Google оштрафован на рекордные $5 млрд за нарушение антимонопольного законодательства в Европе

Это самый большой штраф в истории компании. Еврокомиссия закончила многолетнее расследование против Google и потребовала рекордный штраф в 5 миллиардов долларов (4,3 млрд евро). Товары из каталога Google Shop, согласно обвинению, намеренно ставились выше, чем остальные. Прошлый рекордный штраф, кстати, ...

«Яндекс» начал работу над созданием собственной системы «умный дом»

Сегодня стало известно о том, что компания «Яндекс» осенью может представить собственную систему «умный дом». Во всяком случае, она зарегистрировала в странах Евразийского экономического союза устройство «Яндекс.Модуль», о чем сообщает «Коммерсант». Этот девайс был создан американской компанией NotAnotherOne, у истоков ...