В Яндекс.Диалогах появились новые возможности в формате Dev Preview
Команда Яндекс.Диалогов представила большой пакет обновлений в формате Dev Preview для разработчиков голосовых приложений. Среди новых функций — статистика пользователей навыка, технические метрики качества навыка, инструмент для работы с интентами, сохранение контекста сессии и контекста пользователя в Алисе и изменения в протоколе.
Статистика пользователей навыка
Сегодня измерять метрики мобильных приложений — стандартная практика, поэтому первоочередной задачей было создать похожие инструменты и для навыков. Ведь навыки — это такие же приложения, только голосовые.
У Яндекса есть инструмент для аналитики мобильных приложений — AppMetrica. Команда Диалогов развила это решение, благодаря чему теперь можно смотреть подробную статистику навыков. Для этого нужно зарегистрировать навык в AppMetrica и указать ключ в консоли разработчика.
Это позволит узнать, как пользователи взаимодействуют с навыком. Можно увидеть количество сессий и агрегированные данные о пользователях (пол, возраст и город), а также применить retention-анализ и когортный анализ без сложных дополнительных настроек.
Кроме того, указав уникальный ключ для каждого навыка, можно отслеживать их эффективность отдельно.
Технические метрики качества навыка
Навыки — особенно у начинающих разработчиков — порой нестабильны. Поэтому в Диалогах создали раздел, посвященный техническим метрикам. В нем можно найти информацию о количестве запросов к навыку, скорости ответа сервера, ошибках и других показателях.
Подключать ничего дополнительно не нужно: все уже работает в настройках навыка.
Инструмент для работы с интентами
Интент — это намерение пользователя. Инструмент для работы с интентами в Диалогах позволяет быстро и просто собрать воедино все маркеры, позволяющие понять интент. Например, описать множество фраз с похожим смыслом или сущности, важные для понимания запроса.
Чтобы сделать инструмент максимально удобным, команда Диалогов разработала механизм, похожий на язык регулярных выражений. Фразы-составляющие таких регулярных выражений можно переиспользовать и комбинировать. Кроме того, настройки грамматики нечувствительны к морфологии, а значит, достаточно ввести только один вариант слова — и все формы будут учтены автоматически. Например, при вводе слова «кухня» будут учитываться «кухни», «кухню», «кухне» и т.д. Инструмент позволяет обрабатывать интенты, гибко учитывая последовательность слов в запросе пользователя, или не учитывая ее вовсе.
А чтобы механизм работал еще лучше, при разборе интента применяется анализ на основе машинного обучения. Он сам определяет и исключает из фразы незначимые слова, не охваченные грамматикой, что повышает полноту срабатывания команд.
Сохранение контекста сессии в Алисе
Иногда контекст необходим. Например, если вы играете в города, вам обязательно нужно помнить ответы игроков (чтобы не повторяться) и последнюю букву названия последнего города (ответ должен начинаться на нее).
Чтобы повторить такой сценарий в формате голосового сообщения, навыку понадобится помнить контекст: слово для перевода, последнее название города — или даже все названия. Теперь, чтобы сохранить контекст диалога, нужно просто вернуть его вместе с ответом навыка – и Алиса пришлет его вместе со следующим запросом пользователя.
Сохранение контекста пользователя в Алисе
Команда Яндекс.Диалогов также добавила в Алису пользовательский контекст, или состояние пользователя. Это хранилище взаимодействий пользователей с навыком, которое станет приходить в запросе. Контекст будет общим для всех устройств, где человек авторизовался в Яндексе. Это обеспечит единый и полный опыт вне зависимости от устройства.
Теперь можно сделать так, чтобы пользователь обратился к навыку через приложение Яндекса на телефоне (например, по пути с работы) и бесшовно продолжил взаимодействие через Яндекс.Станцию (приехав домой).
Изменения в протоколе
Эти изменения запускаются с сегодняшнего дня сразу, уже не в рамках Dev Preview.
В протокол добавляется новое поле — session.application. Оно содержит поле application_id с тем же самым значением, что и в использовавшемся ранее поле session.user_id— идентификатор приложения, из которого сделан запрос. Идентификатор разный для разных устройств и приложений пользователя.
Если пользователь авторизован в Яндексе, то в запросе также придет поле session.user, в нем содержится поле user_id— идентификатор, постоянный для всех приложений и устройств пользователя. Благодаря ему можно предложить пользователям сквозной опыт при переходе от поверхности к поверхности.
Если для навыка настроена авторизация OAuth и пользователь связал аккаунты, то, помимо стандартного заголовка Authorization, авторизационный токен придет в поле session.user.access_token. Это нововведение позволяет хостить навыки с авторизацией в сервисах лямбда-функций, которые не поддерживают проброс заголовков запроса.
Статус Dev Preview означает, что эти возможности уже доступны в Яндекс.Диалогах для всех. Команда сервиса учтет обратную связь разработчиков, чтобы доработать новые инструменты и подготовить их к полномасштабному релизу.
Напомним ним, в конце марта Яндекс.Диалоги существенно сократили время на публикацию навыков, теперь она занимает 5-10 минут вместо нескольких часов.