NER в навыках Алисы или Алиса учится распознавать имена


Содержание материала:

Алиса научилась распознавать именованные сущности

Команда Яндекса поделилась технологией NER (name-entity recognition), которая позволяет Алисе распознавать именованные сущности, выделять значимые слова в потоке речи. Благодаря нововведению общение с пользователями через навыки станет более живым при существенно меньшем объеме разработки.

Дело в том, что одну и ту же информацию можно подать по-разному. Говоря о времени 19:00, пользователь может произнести: «в семь», «в семь вечера», «в девятнадцать ноль ноль», «через два часа». Благодаря технологии Алиса понимает, что речь идет об одном и том же времени, и не обращает внимание на фразы-заполнители пауз: «а, ну это», «в общем», «короче» и другие.

С помощью NER голосовой помощник научился выделять следующую значимую информацию:

Подробнее о работе NER можно узнать в Документации и в блоге Яндекса на Хабре.

Напомним, на прошлой неделе Яндекс обновил правила модерации чатов. Изменения коснулись названия чата, профильной категории, саджестов, иконки и поля «Рабочее время».

«Алису» научили распознавать владельца по голосу

Многие известные голосовые помощники, например Siri или Google Assistant, имеют функцию распознавания пользователя по голосу; теперь такую технологию получил и голосовой ассистент российской компании «Яндекс» — «Алиса». Как пишет компания, для настройки пользователь должен сказать устройству: «Алиса, запомни мой голос», а затем ассистент запросит имя человека и попросит повторить фраз, чтобы система могла построить модель голоса, которая будет использоваться для распознавания; после этого пользователь должен спросить: «Как меня зовут?» — а «Алиса» назовет имя.

Как указывает «Яндекс», технология распознавания по голосу доступна при работе с музыкой — она позволяет учитывать предпочтения только одного пользователя (чтобы музыкальные предпочтения других людей, просивших поставить ту или иную музыку, в дальнейшем не учитывались). При этом, как отмечается, «Алиса» способна запомнить голос лишь одного человека. Еще одно ограничение — если у пользователя колонки разных моделей, необходимо «познакомиться» с каждой из них, чтобы «Алиса» могла распознать человека независимо от того, к какой из колонок он обращается.

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

Учим разговаривать Алису Яндексовну.

Как научить Алису говорить ?

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

Что такое Алиса / Alice ?

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

Все созданные диалоги, после прохождения модерации, будут доступны для пользователей приложения Яндекс.Бета (Android) .

Самое главное : Алиса будет вести диалоги только по протоколу HTTPS, так что — как ни крути, а покупать SSL сертификат для сайта, видимо, придется .

Как создать диалог Алисы ?

Яндекс Диалоги
Под своим логином зайти на Яндекс Диалоги .
Требуется заполнить Основные настройки .
Название : Название диалога, которое будет отображаться на странице в каталоге Алисы .
Активационное имя : Уникальная часть фразы, с помощью которой пользователь сможет открыть диалог .
Проверьте, что Алиса правильно распознает придуманные вами активационные имена (в бете приложения Яндекс для Android) .
Приложение Яндекс / Andro >
Webhook URL : Адрес, на который будут отправляться запросы . Этот адрес вы узнаете позже в программе Now Desktop .

Примечание : пока не до конца ясно, где будут храниться диалоги Алисы — на сервере / сайте разработчика или на сайте Яндекса .

Как опубликовать диалоги Алисы ?

Требуется модерация для : Публикация в каталоге .
Добавьте описание навыка для каталога .
Имя разработчика .
Сайт для верификации прав использования бренда : Заполнение данного поля обязательно в случае, если вы создаете диалог от имени компании .
Категория : Новости, Радио и подкасты, Музыка, Игры и развлечения, Еда и напитки, Продуктивность, Образование, Спорт, Культура, Путешествие, Прочее, Поиск, Навигация, Быстрые ответы, Управление .
Описание .
Примеры запросов .
Иконка, Размер иконки: 192×192 пикселя. Иконки, не соответствующие этому размеру, будут отмасштабированы автоматически .

Как развернуть проект диалоги Алисы ?

Нужно подготовить исходный код и развернуть веб-сервис .
Например, развернуть навык на Node.js .

Что такое Node.js ?

Node.js должен быть установлен отдельно .

Node.js — это среда выполнения JavaScript, встроенная в механизм JavaScript V8 для Chrome. Node.js использует управляемую событиями, неблокирующую модель ввода-вывода, которая делает ее легкой и эффективной. Пакетная экосистема Node.js, npm, является самой большой экосистемой библиотек с открытым исходным кодом в мире.

Что такое платформа веб-разработки БЭМ ?

Этот проект может скрывать подводные камни, так как Yandex проповедует на Linux / Andro >

БЭМ-проекты на основе шаблонного репозитория project-stub требуют установки Node.js, npm и git, в которые клонируются директории project-stub .

GitHub является домом для более чем 20 миллионов разработчиков, работающих вместе для размещения и просмотра кода, управления проектами и создания программного обеспечения вместе.

Подготовка кода обработчика новых навыков Алисы.

Создайте папку навыка .
Создайте в папке файлы : index.js , package.json

Как развернуть веб-сервис Now ?

Развертывание веб-сервиса
Развернем приложение с помощью сервиса Now

Версия : Now Desktop
Приложение Now Desktop для рабочего стола — это самый простой способ начать работу с Now .
Установите приложение Now .

Примечание : Обратите внимание, что в бесплатном варианте Now ваш исходный код и логи приложений открыты для всех .
Выполните консольную команду now в папке навыка, где расположен код обработчика .
Консоль выведет адрес созданного приложения .

По умолчанию Now генерирует случайный адрес для ваших приложений .
Чтобы использовать постоянный поддомен, используйте команду now alias .

Теперь навык можно зарегистрировать, указав полученный URL в поле Webhook URL .
Сразу после этого работу навыка можно будет проверить на вкладке Тестирование .
Чтобы писать более сложные навыки, ознакомьтесь с протоколом работы Яндекс.Диалогов .

С тех пор, как Яндекс Диалоги — больше не Beta — у Алисы появились новые возможности :
— NER в навыках Алисы
Подробнее о NER . Подробнее о NLU / NLI . Благодаря этому внедрению навык сможет общаться с пользователями на более живом языке при существенно меньшем объеме разработки.
Теперь любой создатель опубликованного навыка может сгенерировать уникальный бейдж :
= Алиса это умеет = со ссылкой на навык в каталоге.

Обновление : С момента начала обучения Алисы интеллектуально говорить, используя новые навыки — прошло почти 2 года . И, вот — приятная новость : больше не нужно развертывать и администрировать свои приложения, когда можно легко и бесплатно создать функцию (для общих навыков) в Яндекс.Облаке (используя консоль управления), а функция Yandex Cloud Functions / облачные функции в Яндекс.Облаке — помогут связать облачные скрипты с личным кабинетом на платформе Яндекс Диалоги, где размещаются навыки . Новые возможности Яндекс.Облака облегчают вхождение в технологии голосового общения, экономят время вывода голосовых приложений на рынок и позволяют им функционировать в безопасном, отказоустойчивом и автоматически масштабируемом окружении — под контролем автоматики Яндекс.Облака .
Яндекс.Облако
Яндекс Диалоги

Создаём навык для голосового помощника «Алиса»

Голосовые помощники – стали новым трендом 21 века. Появившись не так давно, они плотно завоевывают доверие интернет-пользователей, значительно упрощая повседневную жизнь людей. Чтобы сделать запрос в поиске, узнать прогноз погоды или курс валют, проложить маршрут на карте, заказать такси, оформить покупку в интернет-магазине, забронировать отель, подобрать путевку в жаркие страны, достаточно воспользоваться всего лишь одной универсальной программой-помощником, установленной на персональном компьютере, планшете или смартфоне.

В данной статье речь пойдёт о таком голосовом помощнике, как «Алиса», разработанном компанией «Яндекс». Данная IT-разработка, использующая последние технологии машинного обучения, с каждым днём набирает всё большую популярность, как с точки зрения интернет-пользователей, так и веб-разработчиков, так как является совершенно новым коммуникационным направлением. Основное назначение – это решение повседневных задач.

Реализованная технология машинного обучения запустила процесс саморазвития, постоянно делая голосовой помощник полезнее и лучше. Иными словами, система учится на своих ошибках и постоянно вносит определенные поправки, опираясь на мнение пользователей. Кроме того, разработчиками предусмотрены две полезные опции: отправка сведений об ошибках при распознании речи и некорректности в выражениях, неправильном произношении слов. Отталкиваясь от данных сведений, разработчики обновляют синтезатор речи и кодеки.

На текущий момент аудитория пользователей «Алисы» составляет более 28 млн. человек. Установка голосового помощника осуществляется непосредственно в «Яндекс Браузер», в том числе и для мобильных устройств, работающих на «iOS» и «Android». На текущий момент «Алиса» способна распознавать только русский язык.

Далее мы рассмотрим такое понятие, как «навык», а также те новые возможности для бизнеса, которые они дают. Чтобы прояснить некоторые особенности процесса их создания, разбор произведем на наглядном примере.

Что такое навык у голосового помощника «Алиса»

Чтобы настроить голосового помощника под нужды интернет-пользователей, разработчики предусмотрели установку специальных дополнительных модулей, расширяющих стандартные возможности «Алисы». Данные модульные программы получили название «навыки» и играют ключевую роль при использовании продукта.

Вот некоторые из примеров навыков, которые уже активно используются в работе голосового помощника:

  • обучающие и логические игры, викторины;
  • персональный фитнес-тренер, помогающий активно заниматься спортом, составляющий программу тренировок и подбирающий наиболее оптимальный рацион питания;
  • авиаоператор, облегчающий процесс приобретения билета на самолёт по интересующему направлению;
  • подбор недвижимости для сдачи в аренду;
  • профессиональная консультация юриста;
  • доставка цветов;
  • вызов такси;
  • обозреватель спортивных матчей, в том числе и текущих/прошедших футбольных матчей;
  • запись на приём к стоматологу или какому-либо профильному лечащему врачу в частной клинике, техническое обслуживание машины в техцентре, сеанс в салоне красоты, лечебный массаж;
  • управление «умным домом», автополивом в теплице;
  • изучение иностранных языков;
  • покупка товаров в интернет-магазинах;
  • заказ суши, роллов, пиццы, пирогов и прочих вкусных кулинарных деликатесов;
  • бронирование отелей, туров, столиков в ресторане;
  • виртуальный помощник по электрике, сантехнике, теплотехнике и прочих направлениях, требующих оперативной консультации при возникновении какой-либо проблемы;
  • подбор свежих новостей по всем интересующими тематикам;
  • оформление кредита, открытие вклада в банке;
  • страхование имущества и жизни.

Список не является исчерпывающим и окончательным. Каждый день разработчиками создаются новые полезные навыки, делающие «Алису» многопрофильнее и всесторонне развитее.

Не сложно заметить, что все навыки можно условно разделить на три группы:

  • развлекательные;
  • информационные;
  • коммерческие.

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

С технической точки зрения, навык у «Алисы», — это перенаправление запроса пользователя к серверу с программой, формирующей определенные ответы, и возвращающей его обратно интернет-пользователю. Само по себе название «голосовой помощник» говорит о том, что всё общение преимущественно происходит голосом. Это реализовано за счёт использования синтезатора речи и подключенных кодеков со стороны «Алисы», позволяющих распознавать человеческую речь даже при слабом сигнале и наличию в ней дефектов. Выдача результатов работы навыков для большей наглядности и информативности сопровождается тексто-графическим визуальным оформлением. Фотографии, изображении, аудио, видео, карты, инструкции – всё это используется при работе виртуального помощника.

Топ-пост этого месяца:  Принципы создания мультиязычных сайтов

Итак, давайте рассмотрим примерный сценарий общения, входящий в навык по бронированию столика в кафе или ресторане. Для его запуска, необходимо произнести кодовое слово-активатор (подробнее о нём поговорим чуть позже).

Услышав призыв к запуску навыка, голосовой помощник следует заранее продуманным установкам. В случае с бронированием столика, вполне логичным шагом было бы поблагодарить за выбор данного заведения для времяпровождения и сразу приступить к процессу формирования заказа.

Алиса: «Правильный выбор. На текущий момент это одно из лучших заведений в вашем районе. В какой день и на какое время Вы хотели бы заказать столик?»

Интернет-пользователь: «На пятницу в 17.00».

Алиса: «Сколько с вами будет человек?».

Далее, с точки зрения маркетинга, неплохо было бы немного узнать о предпочтениях потенциального клиента. Вот тут и нужны будут обширные знания программирования, маркетинга и искусства продаж. Задаём логику.

Голосовой помощник: «Вы или кто-нибудь из вашей компании курите?».


Варианты ответа: «Да» или «Нет».

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

При противоположном развитии событий голосовой помощник вас похвалит, сказав, что это правильный выбор.

Задаём второй важный вопрос: «Вы уже ранее были в этом заведении?». В случае если «Да»: «Прекрасно. Тогда у вас не должно возникнуть сложностей с поиском местоположения».

Если «Алиса» услышит слово «Нет», её ответом может быть: «Тогда, позвольте, я проложу вам маршрут до кафе». Завершением текущего алгоритма будет карта с указанием всех возможных вариантов того, как добраться до заведения.

Далее уточняем прочие особенности заказа столика. Это могут быть: предпочтения по его расположению (возле окна, ближе к барной стойке, VIP-зона), освещенности (светло/темно/полумрак), а также небольшой распрос по любимым блюдам, интересующей кухне. Основываясь на данных сведениях, вы, с одной стороны, повысите лояльности клиентов, а с другой, заранее сможете приготовиться к приему посетителей.

При завершении взаимодействий с клиентом, «Алиса» передаст заказ администратору кафе. Тому лишь останется перезвонить при необходимости и уточнить прочие детали, зафиксировав сведения в своей системе учёта клиентов.

Аналогичным образом можно создать навыки и для других направлений: заказ пиццы, суши и роллов на дом, вызов такси, доставка цветов, покупки в интернет-магазине. Можно реализовать и более сложный коммерческий инструмент, работающий с «холодным» трафиком. Например, навык виртуального консультанта по юридической тематике, стоматологии, подбору недвижимости, строительству. Ответив на базовые наиболее распространённые вопросы интернет-пользователей, голосовой помощник предложит записаться на расширенную углубленную консультацию за чашечкой кофе. Как показывает практика, подобные программные решения хорошо генерируют новые заказы, расширяя границы рынка.

Впечатляет? Рассмотрим процесс создания навыка для голосового помощника подробнее.

Создание навыка для «Алисы»

Процесс создания связан с разворачиванием на своём сервере программы, которая и будет являться навыком голосового помощника. Написать её можно на любом языке программирования, но придерживаться всё же стоит ближе к «python», «node.js», «C++». К слову, на последнем из приведенных языков, написана и сама «Алиса».

Развертывать программный продукт рекомендуется на таких облачных решениях, как «Amazon» (AWS) и «Microsoft Azure». Имеется также возможность проверить навык во время бесплатного периода, чего вполне хватит для того, чтобы опробовать все «фишки» данного новшества.

Если вы далеки от программирования, то стоит подобную работу поручить профильному специалисту. Самому при этом стоит сосредоточиться на проработке сценария и логики, от чего будет зависеть успех всего направления в целом.

Чтобы пользователю помощника было проще ориентироваться, при разработке навыка стоит уделить пристальное внимание подсказкам и уточнениям, которые будут ему показываться при взаимодействии с навыком. Они должны быть краткими, но информативными.

Важно понимать, что любой навык – это, прежде всего, полноценный диалог с интернет-пользователями. Он должен быть с чёткой логикой, и математически продуман/согласован. В нём может присутствовать ветвистость, а в любой момент может произойти непредвиденная ситуация (незапланированный заранее ответ на вопрос пользователем).

Источник картинки: техническая документация «Яндекса».

Как было сказано ранее, «Алиса» может взаимодействовать практически с любым языком программирования. Наиболее оптимальный выбор — «python» или «node.js», так как для них можно найти и исходники (пример игры «Купи слона»), существенно ускоряющие процесс разработки. Публикация осуществлена на сервисе «GitHub».

Рассмотрим структуру файлов для создания навыка на примере «Пайтона» (согласно последним данным исследований, он занимает уверенное четвертое место в рейтинге популярности языков, значительно опережая «node.js»). К тому же его синтаксис проще для понимания с точки зрения новичка.

Мы видим следующие папки:

«Aws» — файлы для развертывания на веб-серверах «Amazon»;

«Azure» — аналогично предыдущему, но предназначенное для серверов «Microsoft».

«Now» — специальный оптимизатор изображений, использование которого позволяет ускорить работу навыка.

Рассмотрим файлы папки для «Азура».

Видим два документа:

Основной код будет находиться в первом файле. Условно в нём можно выделить основные конструктивные секции, которые будут присутствовать практически в любой программе:

импорт поддержки кодировки UTF-8, модулей для работы с JSON и логами, а также подмодуля «Flask» (веб-фреймворка);

инициализация хранилища данных о сессиях и параметров для «Flask»;

функция для обработки тела запроса от голосового помощника и возврата ответа;

функция обработки диалога;

функция для подсказок.

Как видим, основной фронт работ сводится к двум крайним функциям, которые обрабатывают диалоги и формируют ответы, отображающиеся пользователям голосового помощника.

Тело обработчика, как правило, должно содержать идентификацию пользователя (выдаёт ему приветствие в случае новой сессии), обработчик диалогов и ответов с указанием «фокусных» слов и фраз, ветвистость и заложенную бизнес-логику.

В случае с примером, можно выделить инициализацию приветствия, обработку ответов пользователя, действие при его согласии сделать целевое действие и отказе от него соответственно.

В случае с большей ветвистостью стоит уделить более интенсивное внимание бизнес-логике, а так же предусмотреть возможность вернуться назад. Важно и избежание «тупиков», что приведёт к принудительному прерыванию навыка со стороны голосового помощника.

В представленном официальном примере от «Яндекса» реализован процедурный подход для создания навыка, но вы вправе пойти другим путём, основываясь на принципе объектно-ориентированного программирования (ООП), создав методы и классы.

Написав код и разместив его на веб-сервере, переходим к регистрации навыка.

С помощью «Яндекс Диалогов» осуществляется связь между вашим навыком на веб-сервере и голосовым помощником «Алиса». Процесс создания начинается с авторизации. Нажимаем на кнопку «Создать диалог».

Появится окно выбора. Выбираем «Навык в Алисе». Другой вариант («Чат для бизнеса») тоже интересное направление и мы его также рассмотрим в следующем разделе.

Задаём базовые настройки, среди которых есть название, активационное имя (произнеся которое начнется процесс взаимодействия интернет-пользователя с навыком), ссылка на сервер, куда будут отправляться запросы.

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

Ссылка на сервер обработки запросов должна быть задана через защищенный протокол «https».

Переходим к настройке публикации в каталоге. Пункт «Приватность» определяет отображение навыка в общем каталоге, если установить галочку его будет не видно в списке.

«Имя разработчика» – то, что должно отображаться в каталоге. Идентифицирует вас, как создателя данного программного продукта.

«Сайт для верификации прав» — веб-ресурс, на котором расположен навык. В обязательном порядке у вас должны быть предварительно подтверждены права на веб-ресурсами в панели «Яндекс Вебмастер».

«Категория» — группа, к которой можно отнести данный продукт. Можно выбрать из таких, как:

  • «Авто»;
  • «Недвижимость»;
  • «Образование»;
  • «Общение»;
  • «Еда и напитки»;
  • «Игры»
  • «Бизнес и финансы»
  • «Спорт и здоровье»,
  • «Культура»
  • «Для детей»
  • «Аудио и подкасты»
  • «Новости»
  • «Покупки»
  • «Умный дом»
  • и многое другое.

Не забываем также указать краткое описание, возрастное ограничение и задать иконку.

После окончания настроек нажимаем кнопку «Сохранить».

Перейдя на вкладку «Тестирование», можно предварительно проверить свой навык и своевременно выявить обнаруженные ошибки. Как только вы убедитесь, что с навыком всё хорошо, отправляем его на модерацию, сразу после прохождения которой он станет доступен к использованию.

Создание чата для бизнеса через «Яндекс Диалоги»

Разработать специальный навык для «Алисы» — задача интересная и перспективная, но требует широких познаний во многих областях. К тому же имеется потребность в предварительном изучении целевой аудитории. Если вы хотите «подружиться» с голосовым помощником, но пока ещё не готовы к столь сложному шагу, начните с меньшего – чата. С помощью него вы сможете узнать все наиболее распространенные вопросы со стороны интернет-пользователей, что в последующем можно использовать при разработке специального навыка.

Логика выглядит следующим образом: вы подключаете, используемый для коммуникации с клиентами чат («JivoSite», «Talk-Me», «Verbox», «Bitrix») к сервису «Яндекс Диалоги», который отображает кнопку для быстрого начала общения непосредственно в поиске.

Чтобы создать чат, потребуется заполнить:

  • сайт для верификации прав использования (как и при создании навыка, потребуется предварительно пройти процедуру подтверждения через «Яндекс Вебмастер»);
  • провайдер, программное обеспечение которого работает на веб-ресурсами («JivoSite», «Talk-Me», «Verbox», «Bitrix»);
  • идентификатор канала, который должен транслироваться;
  • адрес веб-страницы, для которой будет отображаться чат в результатах поисковой выдачи «Яндекса»;
  • сведения для публикации в каталоге (название, категория, начальная фраза, с которой начинается диалог, рабочее время, иконка);
  • «сайджест» — распространенные вопросы от интернет-пользователей, на которые будут осуществляться автоматические ответы (например, «Как осуществляется доставка?»).

По завершении настроек, не забываем нажать на кнопку «Сохранить». Пообщавшись с аудиторией, вы накопите обширную базу всех распространенных вопросов, что в последующем станет фундаментом при разработке навыка.

Заключение

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

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

Все мы не в своем уме. Как сделать новый навык для «Алисы» на Python

Содержание статьи


Как вообще работают навыки? Если говорить простыми словами, то «Алиса» и твой сервер будут обмениваться файлами в формате JSON, где будет содержаться необходимая информация. Причем на сервер придет не просто распознанный текст, но уже подготовленный для обработки запрос. Ты можешь выбрать любой удобный язык программирования — нужна только возможность создавать на нем веб-сервер. Мы выберем Python как один из самых простых и популярных.

Чтобы все примеры исходного кода, приведенные в статье, успешно запускались, тебе понадобится установить:

  • Python 3.6 или новее;
  • Flask 1.0.2 или новее.

Первый навык — эхо-бот

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

Для начала основные термины:

  • request — запрос, который поступил от «Алисы»;
  • response — ответ нашего сервера, который отправляется «Алисе».

Как будет работать наш навык? На наш сервер поступает request, мы будем получать из него содержимое в виде текста, а затем отправлять response, где в качестве содержимого укажем текст запроса. Переходим к коду!

Как-то много кода. Давай разбираться по частям. Во-первых, важно сказать, что наш сервер написан на Flask, и если ты хочешь разобраться в этом фреймворке поглубже, на «Хабрахабре» есть отличный гайд. Здесь же отметим пару основных вещей.

  • Важно не забыть импортировать модули: Flask отвечает непосредственно за работу веб-приложения, request — за работу с запросами, а json необходим, потому что мы и получаем, и отправляем файлы JSON, а не объекты из Python.
  • Нужно создать экземпляр класса Flask, а затем его запустить. Это и есть непосредственно «ядро» сервера.
  • Декоратор app.route необходим, чтобы связать URL, тип запроса и функцию, которая будет обрабатывать этот запрос.

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

В main() мы сначала создаем шаблон для ответа. Обрати внимание, что мы передаем туда два параметра из запроса: session и version , а затем во вторую функцию передаем наш шаблон для ответа и запрос, сконвертированный в JSON.

Топ-пост этого месяца:  5 способов улучшить UX с помощью GIF и CSS

Основная функциональность нашего навыка содержится в функции handle_dialog(res,req) . Если нам пришло какое-то сообщение, то все просто: нужно получить содержимое запроса. Кстати, оригинальный текст запроса содержится внутри req[‘request’][‘original_utterance’] . Чтобы отправить его обратно пользователю, нужно скопировать содержимое в res[‘response’][‘text’] .

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

Вроде бы все? Теперь нужно проверить, работает наш пример или мы где-то ошиблись. Но как протестировать?

Тестирование навыков

Существует несколько способов тестирования навыков. Один из самых простых — с помощью утилиты alice-nearby, которую можно запускать локально на своем компьютере. О том, как ее установить, написано достаточно подробно, так что не буду заострять на этом внимание. Итак, начинаем тестирование.

Запускаем наше приложение.

Отображение в IDLE

Запускаем alice-nearby, указав в качестве значения webhook http://localhost:5000/post .

Запуск на MacOS

Открываем любой браузер и переходим по ссылке localhost:3456 , чтобы убедиться, что открылось приложение для тестирования.

Приложение для тестирования

Поздравляю, твой первый навык работает! Обрати внимание: справа отображаются запрос и ответ в JSON. Но на самом деле авторы этой утилиты не придумывали интерфейс самостоятельно. Они просто сделали локальную версию приложения для тестирования навыков на основе тестового стенда в личном кабинете «Яндекс.Диалоги».

Зарегистрируемся в «Диалогах», регистрируем свой навык и попробуем его протестировать. При создании нового диалога разработчику предлагается выбрать его тип. Выбираем «Навык в Алисе».

Откроется страница с настройками. Их много, сконцентрируемся на основных.

Для проверки работы нашего бота нам необходимо указать Webhook URL в «Яндекс.Диалогах». Но если мы попробуем добавить туда http://localhost:5000/post , то ничего не произойдет и на вкладке «Тестирование» будет лишь сообщение об ошибке сервера.

Чтобы протестировать навык, запущенный на компьютере, а не на сервере, можно использовать приложение ngrok. Эта программа создает публичный URL для сайта или сервера, запущенного на локальной машине.

Запустим ngrok, скопируем выданный нам URL-адрес в поле Webhook URL, сохраним настройки и перейдем на вкладку «Тестирование». Обрати внимание, что ngrok выдает два URL: HTTP и HTTPS, нам нужен HTTPS. И не забудь добавить к адресу /post , чтобы запросы обрабатывались корректно.

Тестирование на «Я.Диалогах»

Хотелось бы не только писать, но и проверить, как бы все это звучало, если бы наши ответы зачитывала «Алиса». Это можно будет сделать, если наш навык пройдет модерацию… Он вряд ли ее пройдет, но не надо отчаиваться! Существует целых два решения.

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

Воспользоваться симулятором. В настройках необходимо указать URL — и можно начинать.

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее

Алиса научилась распознавать сущности в запросах пользователей

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

Теперь Алиса может не просто передавать текст, продиктованный пользователем, а выделять из него конкретные сущности с помощью NER (named-entity recognition), такие как:

  • имена (фамилия, имя, отчество);
  • указания на местоположение;
  • даты и время;
  • целые и дробные числа.

Подробная инструкция по работе с этим инструментом уже находится в Документации, а подробный рассказ о технологии NER в блоге Яндекса на Хабре.

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

Голосовой ассистент Алиса научилась слышать, видеть и убаюкивать детей

Яндекс обещает, что это только начало.

Голосовая помощница Алиса научилась распознавать изображения на фото, разбираться в музыке, выбирать и включать детские сказки. Об этом рассказал Александр Крайнов, руководитель службы компьютерного зрения и технологий искусственного интеллекта Яндекса на YaC 2020.

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

Компьютерное зрение позволяет Алисе определять характеристики объектов на картинке. Например, модель и марку машины, породу домашнего животного, имя знаменитости или название произведения искусства. Если поверх изображения наложен текст, Алиса его прочитает и предложит перевести на любой язык с помощью Яндекс.Переводчика. Любой товар на фото голосовой помощник найдёт на Яндекс.Маркете.

По запросу «Алиса, что сейчас играет?», голосовой помощник определяет исполнителя и название песни. Эта функция стала возможной благодаря нейронным сетям в технологии Яндекс.Музыки. Для распознавания объектов на изображениях используется эта же технология ИИ. Аналогично работает поиск по картинкам в приложении Яндекс.

Ранее мы писали о том, что Яндекс планирует встроит голосовую помощницу Алису в бытовую технику.

Хотите поделиться новостью или экспертным мнением? Пишите: news@cossa.ru

ТОП-100 лучших SEO-агентств России 2020

Кто лучше всех в России умеет продвигать сайты в поисковых системах – и к кому лучше обратиться за продвижением сайта своей компании?

Ответ – в свежем рейтинге SEO-компаний за 2020 год по версии RUWARD.

Навык «Марк» для Алисы 24

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


13 марта в новостном канале в Телеграм вышло официальное объявление о запуске бета-тестирования Яндекс.Диалогов. Данная платформа открыла разработчикам необычную возможность самим обучать Алису чему-то новому через создание навыка, с помощью которого можно, например, заказать цветы или пиццу.

Кроме того, «Яндекс» запустил чат и канал в Telegram для разработчиков навыков. На тот момент в чате уже было более 500 участников и шло активное обсуждение возможностей платформы между разработчиками навыков и представителями Яндекса.

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

История разработки навыка Марк

Мы задались вопросом: как сделать Алису полезной и для нашей компании? Как использовать и развивать ее функционал? Было решено начать работу и стать первым в Ижевске провайдером, у которого будет свой навык в Алисе. Быстро, современно, прогрессивно! Тем самым мы предоставили бы ещё один канал коммуникации нашим абонентам для общения с любимым провайдером.

Первые идеи по использованию Алисы — заведение абонентами заявок двух видов:

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

Возможность оказания технической поддержки нашим абонентам по самым частым вопросам, виделась крайне актуальной и полезной.

Один из разработчиков нашей компании заинтересовался созданием навыка и начал изучение платформы Яндекс.Диалогов. Ниже приводим описание нашего навыка.

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

Изначальным активационным именем нашего навыка была фраза «марк тест». Спустя несколько дней, навык прошёл модерацию (на тот момент она занимала от 3 до 7 дней) и был опубликован. На все время бета-тестирования платформы, опубликованные навыки были доступны только в бета-версии Яндекса для Android.

Первые запуски навыка и тестирования проходили на личном сервере нашего разработчика. В марте-апреле была реализована простая схема, не требующая подключения к базе данных МАРКа. В навыке она использовалась для подключения новых абонентов. Алиса запрашивала у пользователя только контактный номер телефона.

Мы продолжили работу над проектом. Первым делом необходимо было перевести имеющиеся разработки на марковский сервер. Параллельно разрабатывались алгоритмы работы будущего навыка для заведения аварийных заявок.

22 мая марковский сервер для Алисы был полностью готов. Мы начали добавлять логику для заведения аварийной заявки по прописанному алгоритму, состоящему из различных условий, проверок, защиты от спама. Уже через неделю мы провели итоговые тесты. Умница Алиса прекрасно справлялась со всеми поставленными задачами. Мы запустили «нашу» Алису 29 мая — точно в день выхода официального объявления Яндекса о том, что навыки стали доступны всем и с десктоп-браузеров Яндекс, и с мобильных приложений.

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

Как начать общение с Марком через Алису:

  • скачайте приложение Яндекс на ваше устройство (смартфон/планшет или айфон);
  • для ПК и ноутбуков — установите Яндекс браузер с голосовым помощником Алиса;
  • откройте приложение;
  • напишите или скажите Алисе: «запусти навык Марк» или «запусти навык Марк ру»;
  • следуйте простым и понятным подсказкам меню.

Как работает навык Марк

После запуска навыка в Алисе с помощью активационных фраз «Запусти навык Марк» или «Запусти навык Марк ру», открывается главное приветственное меню. Кнопка «тарифы» ведет пользователя на сайт с актуальными тарифными планами. Здесь же можно выбрать пункт «подключиться» или завести аварийную заявку. Алиса передает реплики пользователя на наш сервер, и отвечает сформированным нами текстом. Распознавание речи в текст и обратно производит платформа Яндекса.

Чтобы подключить услуги МАРКа (в меню пункт «Подключиться), абоненту достаточно назвать или написать свой номер телефона.

Для заведения аварийной заявки абоненту нужно знать номер абонентского договора МАРК. Далее, предоставляем абоненту выбор: стандартная заявка или срочный вызов (с описанием условий заявок). На следующем шаге просим указать контактный номер телефона. Если номер телефона введен правильно, просим абонента выбрать из списка или озвучить голосом адрес при условии, что на договоре больше одной точки подключения. По ходу навыка также проверяются дополнительные условия, в зависимости от которых информация передается напрямую аварийной службе, либо в доработку технической поддержке.

Защита от спама

В навыке предусмотрены следующие проверки:

  • Номер договора проверяется на количество символов и на наличие в базе данных. Если введенный номер договора не соответствует этим условиям, пользователю предлагается ввести другой номер договора.
  • Введенный номер телефона проверяется на количество цифр. Если сказать любое слово (не цифры) и номер телефона, Алиса распознает только нужную информацию (№ телефона) и запишет в заявку.
  • Существует ограничение на количество заводимых заявок с одного устройства через Алису, для этого используется user_ >
    В нашей компании есть похожие способы заведения заявок: через сайт и с помощью IVR. В случае массовых аварий, это значительно облегчает работу нашей технической поддержки, а абоненту не нужно тратить длительное время на ожидание ответа от специалиста. Алиса – это ещё один дополнительный способ работы с абонентами, но в данном случае её возможности и функционал значительно шире. Общение с ней интересно, просто и увлекательно.

Планы и перспективы

Мы планируем дальше развивать и обучать «нашу» Алису. Начата разработка справочного раздела, где мы пропишем необходимые выкладки из регламента, помощь в навигации по навыку и другую полезную информацию. Идет работа по улучшению алгоритма заведения заявок на подключение и вызов сервис-менеджера.

В настоящее время мы активно работаем над созданием чата с оператором через Алису. Подробности пока не выдаем. 🙂

Благодарности

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

И, конечно, огромная благодарность нашим абонентам за то, что так активно общаются с новой подругой Марка — Алисой! Она всегда открыта для общения. 🙂

Текстовый виджет

Дуся — это виртуальный ассистент для вашего Android устройства. Здесь мы рассказываем о самых свежих новостях проекта.

Свежие записи

  • Aimylogic — визуальный конструктор скриптов для Дуси 17.02.2020
  • Dialogflower — создавать навыки для Алисы стало еще проще 21.05.2020
  • Простой и быстрый способ создать бота для Дуси 08.04.2020
  • Как научить Алису своим функциям 18.03.2020
  • Что нового в версии 2.2.1 11.11.2020

Ассистент Дуся

Блог голосового ассистента Дуся

Как научить Алису своим функциям

Совсем недавно Яндекс объявил о том, что теперь любой желающий может создать для голосового ассистента Алиса свои собственные функции. Пусть пока это и бета-версия платформы, но попробовать научить Алису чему-то интересному или полезному можно уже сейчас.

В этой статье мы расскажем и покажем, как уже сейчас можно создать голосовую функцию для Алисы, которая будет понимать команды на естественном языке без знаний в лингвистике, изучения API Алисы и аренды серверов.

Как вы наверное помните, мы пару лет назад запустили свою платформу для создания чат-ботов под названием Zenbot. Она позволяет легко создавать своих чат-ботов для любых мессенджеров и каналов типа Telegram, Facebook, или даже создать чат-бота или функцию для Дуси. И при этом вам не понадобится арендовать сервера и искать решения для процессинга естественного языка или диалогового движка. Все это уже есть в Zenbot.

С тех пор прошло довольно много времени. И хотя теперь у нас уже почти готова гораздо более продвинутая платформа с крутым интерфейсом, которую мы представим совсем скоро (в конце мая), но zenbot.org по-прежнему хорошо справляется со своими функциями и его вполне можно использовать уже сегодня для создания функций Алисы.

Яндекс Диалоги (бета)

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

Различие первое — дополнительные навыки Алисы запускаются только специальными командами «включи», «открой» или «запусти». Например если ваш навык называется «Мой новый навык», то пользователь сперва должен сказать Алисе «Запусти мой новый навык». Только после этого Алиса запустит ваш навык и передаст управление ему.

Различие второе — все навыки Алисы работают только на сервере, а не на устройстве. Поэтому не получится выполнить какую-либо операцию прямо на устройстве (например, открыть другое приложение, отправить СМС контакту или совершить звонок). Также навык Алисы не сможет отправить какой-либо запрос на локальный IP адрес в вашем доме или офисе (а это бывает нужно для функций типа умный дом).

Ну и наконец еще одно различие в том, что даже если навык нужен только вам, и вы не хотите, чтобы им пользовались другие люди, вам все равно придется его опубликовать, пройдя процедуру модерации в Яндексе. И его все равно увидят все пользователи Алисы.

Кстати каталог пользовательских навыков для Алисы сейчас доступен только в бета-версии приложения Яндекс. Нажимаем меню в правом верхнем углу и далее — Что умеет Алиса.

Как создать навык для Алисы

Сейчас чтобы создать навык для Алисы вам потребуется зарегистрировать навык на https://beta.dialogs.yandex.ru/ и предоставить webhook сервера, где собственно и работает вся логика вашего навыка. То есть Яндекс предлагает нам самим арендовать сервер, написать программу навыка на каком-нибудь языке программирования, которая реализует API Алисы и потом развернуть ее на этом сервере. Вдобавок к этому, нужно еще и научиться обрабатывать речь на естественном языке, ведь пользователи Алисы используют микрофон или клавиатуру, чтобы взаимодействовать с ассистентом…

Короче говоря, нужно проделать немало работы, прежде чем наш навык заработает. А Zenbot как раз освобождает нас от этой рутины, решая все вопросы с серверами, протоколами и естественным языком!

Создаем навык на Zenbot

Итак, с чего начать создание навыка для Алисы на Zenbot? Конечно же с логина на zenbot.org. Открываем страничку и нажимаем кнопку Sign in with Github.

Вам понадобится создать аккаунт на github.com где заодно и можно хранить исходный код навыка для Алисы

Откроется окно, где можно добавить нового бота (бот — это и есть наша голосовая функция для Алисы). После добавления откроется страница настроек бота. Тут же можно будет бота потестировать.


Если хотите поскорее потестировать зенбот с Алисой, то используйте наш тестовый проект как написано тут https://github.com/uzyovoys/zenbot/tree/master/alice

Код для Zenbot

Бот на Zenbot — это тоже код. Код для Zenbot — это XML и JS файлы, в которых описывается, как развивается диалог с пользователем. Собственно вокруг понятий «диалог», «контекст», «сущности» и крутится вся платформа Zenbot. Подробно об этом можно прочитать в документации к Zenbot. Тут же мы опишем основные моменты и приведем простой пример.

Итак, создадим на своем ПК обычный текстовый файл например skill.xml и напишем там

Все просто. У нас есть главный диалоговый контекст (тэг context), в нем пользователь говорит что-то типа «Ну привет Алиса», а Алиса отвечает «Ну привет». Тэг input описывает, какие фразы ожидаются от пользователя, а output — что нужно ответить, когда пользователь говорит что-то похожее.

Конечно же это простейший пример. Можно обрабатывать гораздо более сложные фразы, Zenbot умеет на лету вытаскивать их фраз данные, преобразовывать в нужный формат. Ответы тоже могут быть сложными (далее посмотрим как это сделать). Можно также переключать пользователя на другой контекст диалога и так далее. Все это описано в документации с примерами.

Как загрузить бота на Zenbot

Файл мы создали (кстати в реально больших проектах можно создать много файлов xml и js). Теперь нам нужно создать Git репозиторий например на github.com и загрузить код туда. Это нужно сделать один раз для проекта, потом можно просто заливать новый код на github и Zenbot будет автоматически или вручную обновлять вашего бота.

После этого зайдем в настройки нашего бота на Zenbot и нажмем Configure Git repository. Заполняем поля для нашего репозитория. Если вы используете github, то поля имя пользователя и пароль можно не указывать. Еще в каждом репозитории можно держать код для нескольких ботов. Поэтому в настройках есть поле Directory. Тут можно указать папку в ваших исходниках, где лежат XML и JS файлы для именно этого бота.

Нажимаем Save settings. После этого Zenbot попытается собрать вашего бота и расскажет о своем успехе или провале на странице Build reports. Кстати тут же можно нажать кнопку Rebuild now чтобы поскорее пересобрать бота, когда вы изменили его код в репозитории.

Если все прошло хорошо и ваш бот написан правильно, то увидим вот такое сообщение

Тестируем бота в Zenbot

Нажмем на кнопку Test this bot — и откроется страничка для тестов. ТУт можно написать «приветы» и увидеть ответ от сервера Zenbot. Это простой вывод в формате JSON, в котором можно увидеть все что получилось в итоге. Нам это понадобится только для отладки. И наконец теперь можно подключить бота к Алисе.

Подключаем бота к Алисе

Зайдите в настройки навыка Алисы в интерфейсе https://beta.dialogs.yandex.ru/developer/ и укажите в качестве Webhook URL адрес вида https://zenbot.org/api/alice/ключ

В качестве ключа впишите идентификатор вашего бота в Zenbot. Его можно увидеть в адресной строке на zenbot.org. Это последовательность латинских букв и цифр в конце адреса.

И теперь можно нажать на вкладку Тестирование в Диалогах для Алисы и попробовать написать «привет». Мы увидим ответы от нашего бота!

Делаем бота умнее

Давайте попробуем научить нашего бота делать хоть что-нибудь полезное. Например, давайте научим его знакомиться с пользователем и потом здороваться с ним по имени.

Разберем. Тут после того как пользователь скажет «Привет Алиса», бот проверит переменную UserName, и если она пуста (то есть ее нет вовсе), переведет пользователя в другой диалоговый контекст, где попросит назвать свое имя. После того как пользователь ответит, бот сохранит имя в переменную UserName (функция cap просто сделает первую букву имени заглавной) и скажет пользователю «Приятно познакомиться, Вася» (если пользователь назвал себя Вася).

В следующий раз, когда тот же пользователь вновь активирует ваш навык для Алисы и скажет «привет», Алиса уже поздоровается с ним по имени. Потому что Zenbot сохранил его в базе данных. Вам не нужно самостоятельно сохранять/извлекать данные из какой-либо базы данных. Zenbot сделает эту частую операцию для вас.

А что-нибудь поинтереснее есть?

Есть конечно. Специально для нашей статьи мы подготовили более интересный навык для Алисы, который умеет не только знакомиться с пользователем, но и искать информацию в Википедии и отображать кнопки в интерфейсе Алисы. Этого бота можно найти на нашем гитхабе https://github.com/uzyovoys/zenbot/tree/master/alice

Делаем те же шаги. Создаем бота на zenbot.org, в настройках репозитория прописываем URL https://github.com/uzyovoys/zenbot и в поле Directory указываем alice. Потом идем на https://beta.dialogs.yandex.ru/developer/ и создаем новый диалог. Привязываем его к боту на Zenbot через Webhook URL. И тестируем.

Несколько полезностей

Как добавить кнопки?

Используйте тэг sample. Он создает кнопку, при нажатии на которую в бота придет запрос, текст которого указан на кнопке. Подробнее в документации по sample.

Первый запрос

Когда пользователь активирует ваш навык фразой «Запусти такой-то навык», вашему боту придет пустой запрос. На него нужно выдать реакцию (например поздороваться или что-то еще). Для этого обязательно заведите в своем боте input такого вида

Как закончить сессию

Если в вашем навыке в какой-то момент нужно закончить сессию, просто создайте переменную end_session вот так

Как синтезировать речь

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

Как сформировать JSON ответ

Если вы хотите полностью сформировать ответ в JSON формате по протоколу Алисы (например если вам не хватает функционала тэга sample), то вы можете вернуть JSON ответа в output вот так

Куда дальше?

Для Zenbot мы написали подробную документацию с примерами. Еще у нас есть репозиторий с примерами готовых ботов и FAQ который описывает некоторые основные особенности платформы. У вас не займет много времени, чтобы понять, как писать сценарии ботов, которые понимают естественный язык и могут выполнять полезные (и бесполезные) функции.

Учим Алису от Яндекса узнавать вас по голосу

Голосовой ассистент от Яндекса недавно получил одну интересную фишку.

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

Сейчас разберемся, как все это работает и зачем нужна такая возможность.

Зачем это нужно

Фишка пока только появилась в арсенале голосового ассистента Яндекс. Не стоит рассчитывать на большой набор связанных с ней возможностей.

На данный момент единственным применением распознания пользователя является полная персонализация музыкальных подборок в сервисе Яндекс.Музыка.

Если колонка с голосовым ассистентом активно используется дома, то в подборках дня вы все чаще начнете получать песни из «малышариков», мультфильмов Disney или любимые треки жены или тёщи.

Алиса, познакомившись с вами, сможет отгородить ваши музыкальные предпочтения от истории прослушивания других членов семьи или гостей.

Какие особенности есть у системы

Работает это с голосовым ассистентом на Яндекс.Станции или других колонках с голосовым ассистентом Алиса.

На данный момент Алиса может запомнить и распознавать по голосу лишь одного пользователя. Маловато, но мы верим, что это только начало.

Другим неприятным моментом является необходимость знакомиться с Яндексом на разных используемых устройствах. Точнее сказать, что нужно проходить процедуру на одном устройстве каждой модели. Если используете Яндекс станцию и несколько других поддерживаемых колонок, придется знакомиться с каждой. Если все колонки дома одинаковые – то только на одной.

Рекомендуется, чтобы знакомился с Алисой именно владелец привязанной учетной записи Яндекс.Музыка. В противном случае кто-то другой сможет влиять на механизм подбора треков и исполнителей.

Как “познакомиться” с Алисой

Для того, чтобы ассистент начал узнавать вас по голосу, нужно сделать следующее:

1. Произнестие фразу:

«Алиса, запомни мой голос»

2. Назовите имя, по которому ассистент будет обращаться к вам в дальнейшем.

3. Повторите пять фраз за голосовым ассистентом.

Теперь можете спросить у Алисы свое имя и попросить кого-то другого лайкнуть или дислайкнуть воспроизводимую музыку.

Другие пользователи и дальше смогут общаться с Алисой без ограничений.

Как изменить или удалить свое имя

Для того, чтобы Алиса начала называть владельца по-особенному, нужно произнести следующую команду:

«Алиса, называй меня властелин мира»

Вы можете сменить имя на любое понравившееся.

Можно вовсе разорвать “голосовую связь” с ассистентом. Просто попросите Алису забыть ваш голос.

«Алиса, забудь мой голос»

Теперь в любое время можете произвести процедуру знакомства заново.

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

Так каждый приходящий домой член семьи мог бы здороваться с Алисой и активировать свой набор умных гаджетов или сценариев.

(4.64 из 5, оценили: 14)

Топ-пост этого месяца:  Верстка сайта колонками способы и их реализация
Добавить комментарий