Dev Preview Яндекс.Диалогов: новые возможности и новый формат
Команда Диалогов подготовила большой пакет обновлений и сегодня представляет его сообществу разработчиков голосовых приложений в формате Dev Preview.
— Статистика пользователей навыка на основе данных AppMetrica
— Технические метрики, позволяющие отслеживать стабильность работы навыка
— Инструмент для работы с интентами
— Сохранение контекста сессии в Алисе
— Сохранение контекста пользователя в Алисе
— Изменения в протоколе
Статистика пользователей навыка
Сегодня измерять метрики мобильных приложений — стандартная практика, поэтому нашей первоочередной задачей было создать похожие инструменты и для навыков. Ведь навыки — это такие же приложения, только голосовые.
У Яндекса есть инструмент для аналитики мобильных приложений — AppMetrica. Команда Диалогов развила это решение. Теперь вы можете смотреть подробную статистику навыков. Зарегистрируйте навык в AppMetrica и укажите ключ в консоли разработчика. После этого вы узнаете, как пользователи взаимодействуют с навыком. Можно увидеть количество сессий и агрегированные данные о пользователях (пол, возраст и город), а также применить retention-анализ и когортный анализ без сложных дополнительных настроек.
Технические метрики качества навыка
Навыки — особенно у начинающих разработчиков — порой нестабильны. Поэтому мы создали в Диалогах раздел, посвящённый техническим метрикам. В нём вы найдёте информацию о количестве запросов к навыку, скорости ответа сервера, ошибках и других показателях.
Подключать тут ничего дополнительно не нужно: всё уже работает в настройках навыка. Напомним лишь, что из-за частых или долгих неответов мы можем снять навык с публикации. Поэтому рекомендуем вам подписаться на сервисные уведомления. А если хотите узнавать об обновлениях сервиса, подпишитесь на новости сервиса или на наш блог.
Инструмент для работы с интентами
Интент — это намерение пользователя. Инструмент для работы с интентами в Диалогах позволяет быстро и просто собрать воедино все маркеры, позволяющие понять интент. Например, описать множество фраз с похожим смыслом или сущности, важные для понимания запроса.
Мы постарались сделать инструмент максимально удобным и разработали механизм, похожий на язык регулярных выражений. Фразы-составляющие таких регулярных выражений можно переиспользовать и комбинировать. Кроме того, настройки грамматики нечувствительны к морфологии, а значит, вам достаточно ввести только один вариант слова — а все формы будут учтены автоматически. Например, при вводе слова «кухня» будут учитываться «кухни», «кухню», «кухне» и т. д. Инструмент позволяет обрабатывать интенты, гибко учитывая последовательность слов в запросе пользователя, или не учитывая ее вовсе.
А чтобы всё вышеописанное работало ещё лучше, при разборе интента мы применяем анализ на основе машинного обучения. Он сам определяет и исключает из фразы незначимые слова, не охваченные грамматикой, что повышает полноту срабатывания команд.
Подробнее о том, как работать с интентами, читайте в нашей документации.
Сохранение контекста сессии в Алисе
Когда люди общаются друг с другом, они запоминают контекст. Посмотрите на диалог:
— Переведи на английский слово «отель».
— Hotel.
— А на испанский?
— El hotel.
Собеседник не уточняет, какое слово перевести на испанский: он помнит, что это «отель».
Иногда контекст необходим. Например, если вы играете в города, вам обязательно нужно помнить ответы игроков (чтобы не повторяться) и последнюю букву названия последнего города (ваш ответ должен начинаться на неё).
Если мы захотим повторить такой сценарий в формате голосового сообщения, навыку понадобится помнить контекст: слово для перевода, последнее название города — или даже все названия. Чтобы сохранить контекст диалога, просто верните его вместе с ответом навыка, а Алиса пришлёт его вместе со следующим запросом пользователя.
Подробнее о том, как настраивать ответы о состоянии сессии, читайте в нашей документации.
Сохранение контекста пользователя в Алисе
Мы добавили в Алисе пользовательский контекст, или состояние пользователя. Это хранилище о взаимодействий пользователе с навыком, которое станет приходить в запросе. Контекст будет общим для всех устройств, где человек авторизовался в Яндексе. Это обеспечит единый и полный опыт вне зависимости от устройства. Теперь вы можете сделать так, чтобы пользователь обратился к навыку через приложение Яндекса на телефоне (например, по пути с работы) и бесшовно продолжил взаимодействие через Яндекс.Станцию (приехав домой).
Изменения в протоколе
Эти изменения запускаются с сегодняшнего дня сразу, уже не в рамках Dev Preview. Мы продолжаем поддерживать старую версию протокола для обратной совместимости, однако просим не использовать её в новых разработках.
Теперь при ответе навыка поле session больше не требуется, минимальный валидный ответ выглядит так:
{ "response": { "text": "Привет", "end_session": false }, "version": "1.0" }
В протокол добавляется новое поле — «session.application». Оно содержит поле «application_id» с тем же самым значением, что и в использовавшемся ранее поле «session.user_id » — идентификатор приложения, из которого сделан запрос. Идентификатор разный для разных устройств и приложений пользователя.
Если пользователь авторизован в Яндексе, то в запросе также придёт поле «session.user », в нём содержится поле «user_id » — идентификатор, постоянный для всех приложений и устройств пользователя. Благодаря ему можно предложить пользователям сквозной опыт при переходе от поверхности к поверхности.
Если для навыка настроена авторизация OAuth и пользователь связал аккаунты, то, помимо стандартного заголовка Authorization, авторизационный токен придёт в поле «session.user.access_token». Это нововведение позволяет хостить навыки с авторизацией в сервисах лямбда-функций, которые не поддерживают проброс заголовков запроса.
Статус Dev Preview означает, что эти возможности уже доступны в Яндекс.Диалогах для всех, но мы приглашаем вас делиться с нами отзывами и пожеланиями. Мы доработаем новые инструменты, чтобы подготовить их к полномасштабному релизу и снять статус Dev Preview.
Мы будем рады получить обратную связь в комментариях блога, в чате разработчиков или через поддержку.
Надеемся, вам понравились обновления.
Ждём комментариев и пожеланий!
P. S. Подписывайтесь на наши каналы:
Блог Яндекс.Диалогов
YouTube-канал Яндекс.Диалогов
Чат разработчиков навыков в Telegram
Канал в Telegram