Разделы

Цифровизация Бизнес-приложения

В «Яндекс.Диалогах» появились новые возможности в формате Dev Preview

Команда «Яндекс.Диалогов» представила большой пакет обновлений в формате Dev Preview для разработчиков голосовых приложений. Среди новых функций — статистика пользователей навыка, технические метрики качества навыка, инструмент для работы с интентами, сохранение контекста сессии и контекста пользователя в «Алисе» и изменения в протоколе.

Сегодня измерять метрики мобильных приложений — стандартная практика, поэтому первоочередной задачей было создать похожие инструменты и для навыков. Ведь навыки — это такие же приложения, только голосовые. У «Яндекса» есть инструмент для аналитики мобильных приложений — AppMetrica.

Команда Диалогов развила это решение, благодаря чему теперь можно смотреть подробную статистику навыков. Для этого нужно зарегистрировать навык в AppMetrica и указать ключ в консоли разработчика. Это позволит узнать, как пользователи взаимодействуют с навыком. Можно увидеть количество сессий и агрегированные данные о пользователях (пол, возраст и город), а также применить retention-анализ и когортный анализ без сложных дополнительных настроек. Кроме того, указав уникальный ключ для каждого навыка, можно отслеживать их эффективность отдельно.

Навыки — особенно у начинающих разработчиков, порой нестабильны. Поэтому в «Диалогах» создали раздел, посвящённый техническим метрикам. В нём можно найти информацию о количестве запросов к навыку, скорости ответа сервера, ошибках и других показателях. Подключать ничего дополнительно не нужно: всё уже работает в настройках навыка.

Интент — это намерение пользователя. Инструмент для работы с интентами в Диалогах позволяет быстро и просто собрать воедино все маркеры, позволяющие понять интент. Например, описать множество фраз с похожим смыслом или сущности, важные для понимания запроса.

Чтобы сделать инструмент максимально удобным, команда «Диалогов» разработала механизм, похожий на язык регулярных выражений. Фразы-составляющие таких регулярных выражений можно переиспользовать и комбинировать. Кроме того, настройки грамматики нечувствительны к морфологии, а значит, достаточно ввести только один вариант слова — и все формы будут учтены автоматически. Например, при вводе слова «кухня» будут учитываться «кухни», «кухню», «кухне» и т.д. Инструмент позволяет обрабатывать интенты, гибко учитывая последовательность слов в запросе пользователя, или не учитывая ее вовсе.

А чтобы механизм работал еще лучше, при разборе интента применяется анализ на основе машинного обучения. Он сам определяет и исключает из фразы незначимые слова, не охваченные грамматикой, что повышает полноту срабатывания команд.

Иногда контекст необходим. Например, при игре в города обязательно нужно помнить ответы игроков (чтобы не повторяться) и последнюю букву названия последнего города (ответ должен начинаться на неё). Чтобы повторить такой сценарий в формате голосового сообщения, навыку понадобится помнить контекст: слово для перевода, последнее название города — или даже все названия. Теперь, чтобы сохранить контекст диалога, нужно просто вернуть его вместе с ответом навыка – и «Алиса» пришлёт его вместе со следующим запросом пользователя.

Фарид Нигматуллин, «ВидеоМатрикс»: У видеоаналитики в промышленности большие возможности
Цифровизация

Команда «Яндекс.Диалогов» также добавила в «Алису» пользовательский контекст, или состояние пользователя. Это хранилище взаимодействий пользователей с навыком, которое станет приходить в запросе. Контекст будет общим для всех устройств, где человек авторизовался в «Яндексе». Это обеспечит единый и полный опыт вне зависимости от устройства. Теперь можно сделать так, чтобы пользователь обратился к навыку через приложение «Яндекса» на телефоне (например, по пути с работы) и бесшовно продолжил взаимодействие через «Яндекс.Станцию» (приехав домой).

Эти изменения запускаются с сегодняшнего дня сразу, уже не в рамках Dev Preview. Теперь при ответе навыка поле session больше не требуется. В протокол добавляется новое поле — session.application. Оно содержит поле application_id с тем же самым значением, что и в использовавшемся ранее поле session.user_id— идентификатор приложения, из которого сделан запрос. Идентификатор разный для разных устройств и приложений пользователя.

Если пользователь авторизован в «Яндексе», то в запросе также придёт поле session.user, в нём содержится поле user_id— идентификатор, постоянный для всех приложений и устройств пользователя. Благодаря ему можно предложить пользователям сквозной опыт при переходе от поверхности к поверхности.

Дмитрий Балдин, «РусГидро»: Вынужденный переход на open source приводит к увеличению поверхности кибератак
безопасность

Если для навыка настроена авторизация OAuth и пользователь связал аккаунты, то, помимо стандартного заголовка Authorization, авторизационный токен придёт в поле session.user.access_token. Это нововведение позволяет хостить навыки с авторизацией в сервисах лямбда-функций, которые не поддерживают проброс заголовков запроса.

Статус Dev Preview означает, что эти возможности уже доступны в «Яндекс.Диалогах» для всех. Команда сервиса учтет обратную связь разработчиков, чтобы доработать новые инструменты и подготовить их к полномасштабному релизу.

Владимир Бахур