Блог Яндекс Диалогов

Весеннее обновление платформы Диалогов

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

 

17 комментариев
Хорошие изменения, спасибо!
Елена Першина
Сотрудник Яндекса1 мая 2020, 13:08
and-7ey,
спасибо, старались! 
Только зачем у чатов сменили иконку. Прошлая намного сильнее привлекала внимание.
старая иконка была стильная и оригинальная своей простым рисунком - новая под многие дизайны не подходит цветом даже. Просьба верните стаоую.
Елена Першина
Сотрудник Яндекса1 мая 2020, 13:10
delansambli,
это вы про самолетик говорите или про что-то другое?
Сделайте возможность выбора старого дизайна кнопки
присоединяюсь. новая иконка ужасна
Елена Першина
Сотрудник Яндекса1 мая 2020, 13:09
s611500,
это вы про какую? Про самолетик?
Руслан Аксёнов
1 мая 2020, 23:54
Елена Першина,
Да
Елена Першина
Сотрудник Яндекса5 мая 2020, 13:28
Руслан Аксёнов,
тут просто по тестам увидели, что пользователям более понятен новый знак. Но мы продолжаем с ним эксперементировать!
Геннадий
17 мая 2020, 10:28
Елена Першина,
 ё-маё! искал час на андроид установить яндекс бизнес чатб а он оказывается значёк сменил ....ё-маё.. чем старый то не устроил????????
у меня что то Алиса не изменилась и иконка прежняя
правда появился над значком Алисы ещё один значок,белый самолётик
Елена Першина
Сотрудник Яндекса1 мая 2020, 13:09
супербот,
это мессенджер. 
она как не помнила,так и не помнит
Спасибо! Хорошие изменения
service@cryptoy.ru
8 мая 2020, 08:49
Спасибо! Хорошие изменения