Dev Preview Яндекс.Диалогов: новые возможности и новый формат

Привет! Меня зовут Павел Капля, я руковожу сервисом Яндекс.Диалоги, это платформа для создания голосовых приложений для Алисы. Мы подготовили большой пакет обновлений в формате Dev Preview для разработчиков голосовых приложений. А именно:

  • Добавили статистику пользователей навыка на основе данных AppMetrica;
  • Интегрировали технические метрики, позволяющие отслеживать стабильность работы навыка;
  • Внедрили инструмент для работы с интентами;Добавили сохранение контекста сессии в Алисе;
  • Также добавили контекст пользователя в Алисе;Внесли изменения в протоколе.

Статистика пользователей навыка

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

Dev Preview Яндекс.Диалогов: новые возможности и новый формат

Технические метрики качества навыка

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

Dev Preview Яндекс.Диалогов: новые возможности и новый формат

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

Инструмент для работы с интентами

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

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

Сохранение контекста сессии в Алисе

Когда люди общаются друг с другом, они запоминают контекст. Посмотрите на диалог: — Переведи на английский слово «отель». — Hotel. — А на испанский? — El hotel. Собеседник не уточняет, какое слово перевести на испанский: он помнит, что это «отель». Иногда контекст необходим. Например, если вы играете в города, вам обязательно нужно помнить ответы игроков (чтобы не повторяться) и последнюю букву названия последнего города (ваш ответ должен начинаться на неё). Если мы захотим повторить такой сценарий в формате голосового приложения, навыку понадобится помнить контекст: слово для перевода, последнее название города — или даже все названия. Чтобы сохранить контекст диалога, просто верните его вместе с ответом навыка, а Алиса пришлёт его вместе со следующим запросом пользователя.

Подробнее о том, как настраивать ответы о состоянии сессии, читайте в нашей документации.

Сохранение контекста пользователя в Алисе

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

Изменения в протоколе

Эти изменения запускаются уже не в рамках Dev Preview. Мы продолжаем поддерживать старую версию протокола для обратной совместимости, однако просим не использовать её в новых разработках. Теперь при ответе навыка поле session больше не требуется, минимальный валидный ответ выглядит так:

Dev Preview Яндекс.Диалогов: новые возможности и новый формат

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

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

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

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

#алиса #яндексдиалоги #яндекс #голосовые_приложения #разработка

33
Начать дискуссию