Как стать автором
Обновить

Комментарии 17

о, наконец-то интеграция с пользовательскими скиллами.
помню, как читал доки амазона про алексу — там годный пример был как сделать свой скилл «заказать пиццу» или «рассказать гороскоп».
мало подробностей про интеграцию с данными самой Алисы (т.е. что знает яндекс про пользователя) и мало подробностей про DSL разбора фраз (откуда берутся всякие $name и $vacation_date) — особенно в разрезе, как это сделать, когда там хочется регулярные выражения или эластичность вариантов (и не копипастить простыни)…
Спасибо за комментарий! Кейс заказа пиццы хрестоматийный для разговорных интерфейсов. Мы в Just AI как раз недавно решили его на нашей платформе, результаты можно видеть в известном голосовом помощнике. Полностью этот кейс решается довольно сложно, учитывая большое количество возможных параметров заказа и глубокую интеграцию, и о нём хочется рассказать отдельно. Aimylogic — пример инструмента для более простых сценариев.

Сейчас Яндекс передаёт разработчикам Яндекс Диалогов только некий идентификатор пользователя, благодаря которому вы внутри навыка технически можете вести историю общения с конкретным пользователем, задавая ему вопросы и запонимая контекст: имена, адреса, телефоны и т.п., — чтобы упростить повторное использование навыка.

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

В примере из статьи переменные $name и $vacation_date сохраняют себе весь текст пользовательского запроса на определённом шаге диалога. Т.е. на уровне проектирования диалога вы, задавая вопрос про имя, определяете «сохрани следующий ответ в переменную $name». В будущем в инструменте появятся блоки для разных типов данных, так как многие «регулярки», умеющие извлекать нужные данные из запросов (числа, даты, единицы измерения, адреса и т.п.) уже написаны внутри нашей платформы.
о, спасибо за ответ!
1) ясно
2)
Яндекс передаёт разработчикам Яндекс Диалогов только некий идентификатор пользователя
а он может потом использоваться для других яндекс сервисов? (ну например связать его с яндекс такси) Или он просто уникальный и все?
3) понятно. надеюсь в вашем «решении заказа пиццы» это можно увидеть.
4) хорошо. ограничения на переменные и внутренняя структура (а также пользовательские типы — например перечисления) — это было бы замечательно.
Тоже вчера после яка пробовал найти эту информацию, но похоже что нет.

Вообще, сразу в голову пришли некоторые кейсы, которые невозможны сейчас, но были бы интересны. Для этого нужна пара фич:
1. Активация навыка по расписанию.
2. Кроссплатформенная персонификация пользователя

П. 2 можно обойти если в диалоге пользователь сам будет себя как то идентифицировать.

А 1 нужен для кейса типа «учу слова». Загружаем список слов в навык (в обход алисы) и даем задание алиса проверяй меня 2 раза в день. И алиса 2 раза начинает диалог сама просит дать перевод для каждого слова по списка в случайном порядке.

Ну или аналогичные по сути кейсы.
Активация навыка по расписанию.

1) стремная фича.
2) можно сделать запись своего голоса с фразой и дать ее прослушать алисе в нужное время (неслышимо для пользователя), а потом соединить алису с пользователем и пускай болтают дальше сами.

даем задание алиса проверяй меня 2 раза в день

это задание можно засунуть в обычный планировщик, по которому вы будете вызывать скилл «алиса, проверь, как я выучил слова»
Почему стремная?

Как алисе передать этот голос? Разве в апи есть такое?

Понятно что можно в календарь, но тогда магия алисы как то тускнеет, вау
эффекта не возникает.

А хочется чтобы прямо как в фантастических фильмах. Если говорить о суровой реальности то консоль то и поудобнее может будет.
1) потому что ее нужно будет отдельно строго контролировать.
2) мдааа… mea culpa, клиентского апи у него я не вижу, только для скиллов. А жаль. У той же Алексы можно было передавать звук не из микрофона, а из файла…
В чем суть контроля? интерфейс должен быть такой чтобы его легко было контролировать, иначе он нафиг не нужен конечно.

Я потерял как то Суть диалога уже если честно.
суть контроля в том, что если у вас навыки пассивные (т.е. не работают, когда вы их не зовете), то их у вас может быть 100500. А вот если активные, то уже нужно делать «не по выходным», «не посреди совещания», «не чаще раза в минуту», «звать по одному», «группировать однотипные» и т.д.

мое второе замечание — это про наличине серверной части АПИ (там где скиллы), и отсутствие клиентской (чтобы например можно было сделать свое приложение для вызова алисы изнутри).
Понятно про что вы. Я согласен, что в этой фиче есть подводные камни. Но это не отменяет наличия кейса, когда эта фича нужна.

По поводу user_id, передаваемого навыкам, из официальной доки Яндекс Диалогов:

Идентификатор экземпляра приложения, в котором пользователь общается с Алисой, максимум 64 символа.

Даже если пользователь авторизован с одним и тем же аккаунтом в приложении Яндекс для Android и iOS, Яндекс.Диалоги присвоят отдельный user_id каждому из этих приложений.
Идентификатор экземпляра приложения, в котором пользователь общается с Алисой, максимум 64 символа.
ээээ… прямо просится посмотреть — «чо там с перебором» и «нет ли зависимостей от ОС и времени» :)

вообще, не так сильно волнует как они выглядят, волнует практический вопрос — можно ли его потом использовать для сервисов _самого_ яндекса? То есть амазон выдавал токен пользователя (НЯП размером в 3кб или даже больше), через который в сценарии скилла «покупка пиццы» (или билетов), можно было сразу после заказа его оплатить в амазоне же. Или сделать другой заказ, и т.д.
Насколько я понимаю, сейчас нельзя. В чате для разработчиков Яндекс Диалогов можно попробовать уточнить.
Нет, нельзя
даже не знаю что сказать… «интеграция? бесшовные апи? — нее, не слышали»
Скажите, а имея ввиду свою платформу, в частности для голосовых ассистентов, вы имеете ввиду, что она написана с нуля, или все же на базе каких то SDK Алисы или Гугла или Алексы...?
Да, с нуля. Наша платформа — это полностью решение Just AI.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий