Хабрахабр

Как создать крутой экшен для Google Ассистента. Лайфхаки от Just AI

image

В апреле 2017 года пользователям были доступны всего 165 экшенов, а сегодня только на английском их – более 4500. Экосистема вокруг Google Ассистента развивается невероятно быстро. Есть ли формула «идеального экшена»? Насколько разнообразным и интересным станет русскоязычный уголок вселенной Google Ассистента, зависит от разработчиков. О чем нужно помнить, работая над разговорным интерфейсом? Зачем отделять код и контент от сценария? На платформе Aimylogic от Just AI созданы несколько сотен экшенов, среди которых есть весьма популярные – в игру «Да, милорд» сыграли уже более 140 тысяч человек. Мы попросили команду Just AI, разработчиков технологий разговорного AI, поделиться лайфхаками по созданию приложений для Google Ассистента. Как правильно построить работу над экшеном мечты, рассказывает Дмитрий Чечёткин, руководитель стратегических проектов Just AI.

Взболтать, но не смешивать: роль сценария, контента и кода

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

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

Так вы определитесь, что и за чем следует в диалоге. Для начала не помешает нарисовать простенькую схему сценария на бумаге. Google предлагает для создания полностью кастомизированного диалога Dialogflow, а для самых простых и коротких сценариев, не требующих обширного понимания языка, Actions SDK. Затем уже можно переносить сценарий в какой-то продукт для его визуализации. Я использую Aimylogic, чтобы увидеть, как будут работать все переходы в моем диалоге, проверить и провалидировать саму гипотезу и идею того, что я хочу реализовать. Еще один вариант – визуальный конструктор с NLU Aimylogic (как создать экшен для Google Ассистента в Aimylogic), в котором можно построить сценарий и без глубинных навыков программирования, к тому же сразу протестировать экшен.

Например, ваш сайт может выглядеть классно, но, чтобы он что-то «умел», ему придется обязательно обращаться к коду на сервере – и уже код сможет что-то посчитать, сохранить и вернуть результат. Зачастую требуется и программируемая логика. Код должен работать бесперебойно, и лучше, если совершенно бесплатно. То же самое со сценарием для экшена. Я использую для этого сразу несколько сервисов: Google Cloud Functions, Heroku, Webtask.io, Amazon Lambda. Сегодня нет нужды платить тысячи долларов, чтобы код в 50, 100, 1000 строк был доступен для вашего экшена в режиме 24/7. Google Cloud Platform вообще предоставляем бесплатно достаточно широкий набор сервисов в своем Free Tier.

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

Это данные, которые могут все время меняться, не влияя при этом на структуру самого сценария. Третий компонент – контент. Если бы контент жил вместе со сценарием или вместе с кодом, то такой сценарий становился бы все более громоздким. Например, вопросы викторины или эпизоды в нашей игре «Да, милорд». Поэтому я рекомендую хранить контент отдельно: в базе данных, в файле в облачном хранилище или в таблице, к которой сценарий может также обращаться посредством API, чтобы получать данные на лету. И в этом случае, какой бы инструмент вы не использовали для создания экшена, работать с ним вам будет все равно неудобно. А развитие контента очень важно, потому что пользователь ждет от экшена, к которому он возвращается раз за разом, свежего и разнообразного содержания. Отделив контент от сценария и от кода, можно привлекать для работы над экшеном и других людей – они смогут пополнять контент независимо от вас.

Например, в игре «Первое или второе» мы использовали облачную Excel-таблицу, где любой из участников проекта мог добавлять новые вопросы и ответы для экшена. Как использовать обыкновенные таблицы в облаке, чтобы не хранить весь контент в самом сценарии? Как видите, сам сценарий небольшой – потому что в нем не хранятся все данные из таблицы, которые обновляются каждый день. К этой таблице сценарий на Aimylogic обращается с помощью одного-единственного http-запроса через специальный API. Кстати, в эту игру уже сыграли 50 тысяч человек. Таким образом мы отделяем диалоговый сценарий от контента, что позволяет нам работать с контентом самостоятельно и коллективно пополнять сценарий свежими данными.

Чек-лист: о чем нужно помнить, создавая разговорный интерфейс

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

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

Не стоит надеяться, что клиент будет проворачивать весь привычный сценарий голосом – искать билет по пяти-шести критериям, выбирать между перевозчиками, сравнивать и оплачивать. Например, у вас есть сервис по продаже авиабилетов. А вот приложение, которое подсказывает минимальную цену по выбранному направлению, вполне может пригодиться: это очень быстрая операция, и ее удобно выполнить голосом, не открывая сайт, не проходя каждый раз заново сценарий «form-filling» (когда вы заполняете поля и выбираете фильтры).

Но как понять, что без голоса не обойтись? Экшен – это про голос, а не про сервис в целом. Пользователь не должен пожалеть, что запустил экшен в Ассистенте, а не зашел, например, в приложение или на сайт. Если вы с легкостью можете выполнить то же действие и без голоса, толку не будет. Для начала примерьте идею экшена на себя. Это такой виртуальный личный тренер, который помогает делать зарядку для зрения. Одно из моих первых приложений для Ассистента – «Йога для глаз». Подглядывать в памятку, отвлекаясь от тренировки, было бы неудобно и неэффективно. Сомнений в том, что тут нужен голос, не возникает: глаза заняты упражнениями, вы расслаблены и сконцентрированы на устных рекомендациях.

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

Если человек заходит в тупик, начинает думать «И что дальше-то?» – это провал. Помнить про UX. Экшен должен быть заодно с пользователем: сопровождать и направлять его по ходу диалога, чтобы он без труда понимал, что требуется сказать. «Тупики» нужно отслеживать (например, в аналитике в Actions Console), а пользователю помогать с помощью наводящих вопросов или подсказок. Не нужно уповать на то, что ваш пользователь будет все время обращаться к справке. Например, в нашей игре «Да, милорд» каждая фраза заканчивается так, что участник может ответить либо «да», либо «нет». В случае с голосовым экшеном предсказуемость – не порок. И дело не в том, что это такая элементарная игра. От него не требуется придумывать что-то самостоятельно. Просто правила срежиссированы так, что пользователю все предельно ясно.

«Хорошо говорит!». Экшен хорошо «слышит» благодаря Ассистенту, а хорошо «говорит» – благодаря разработчику сценария. Недавнее обновление дало Google Ассистенту новые варианты голосов и более реалистичное произношение. Все круто, но и разработчику стоит поразмышлять над фразой, ее структурой, звучанием, чтобы пользователю все было понятно с первого раза. Расставляйте ударения, используйте паузы, чтобы фразы экшена звучали по-человечески.

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

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

Во-первых, можно разнообразить ответы в Default Fallback Intent – использовать не только стандартно предусмотренные, но и кастомные. Как выйти из ситуаций, когда экшен отказывается понимать? Это научит приложение не только адекватно реагировать на не относящиеся к делу запросы, но и повысит точность классификации остальных типов запросов. А во-вторых, можно натренировать Fallback Intent всякими спам-фразами, не относящимися к игре.

image

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

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

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

Как правильно работать с оценками и отзывами

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

Более того, он может не перейти по ссылке, а сказать «Ставлю пять», а это совсем не то, что вам в данном случае нужно. И лучше не пытаться озвучивать эту просьбу голосом, с помощью синтеза речи – вы только потратите время пользователя.

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

А еще недавно мы выпустили первый голосовой квест для Google Ассистента «Мир Лавкрафта» – это интерактивная драма в мистической стилистике «Зова Ктулху», где сцены озвучены профессиональными актерами, сюжетом можно управлять с помощью голоса и им же совершать внутриигровые платежи. В общем, попробуйте сами наши созданные в Aimylogic экшены «Йога для глаз», игры «Первое или второе» и «Да, милорд» (а скоро в ней появятся транзакции, и милорду будет легче сохранить свою власть и богатство!). Этот экшен разработан уже на платформе Just AI Conversational Platform, профессиональном enterprise-решении.

Три секрета Google Ассистента

  1. Использование музыки. Из голосовых помощников на русском языке только Google Ассистент позволяет задействовать музыкальное сопровождение прямо в сценарии экшена. Музыкальное оформление отлично звучит в игровых экшенах, да и от йоги под музыку совсем другие ощущения.
  2. Возможности оплаты внутри экшена. Для покупок внутри экшена (in-app purchasing) в Google Ассистенте используется платформа Google Play. Условия работы с площадкой для создателей игровых экшенов такие же, как для разработчиков мобильных приложений – от каждой транзакции разработчику отчисляется 70%.
  3. Модерация. Для успешного прохождения модерации у экшена должна быть Политика обработки персональных данных. Ее нужно разместить на sites.google.com, указать название своего экшена и имейл – такой же, как у девелопера в консоли разработчика, и написать, что приложение не использует данные пользователя. Модерация экшена без транзакций длится 2-3 дня, а вот модерация приложения со встроенными оплатами может занять 4-6 недель. Подробнее о процедуре ревью

Андрей Липатцев, Strategic Partner Development Manager Google, расскажет про международный опыт и российскую специфику Google Ассистента. Больше лайфхаков, больше кейсов и поучительных эпик-фейлов ждет разработчиков на конференции по разговорному AI Conversations, которая пройдет 27-28 июня в Санкт-Петербурге. А в Developers’ Day Таня Ландо, ведущий лингвист Google, поговорит с участниками про диалоговые корпуса, сигналы и методологии и как их выбирать под свои задачи; а сами разработчики поделятся личным опытом создания голосовых приложений для ассистентов – от виртуального секретаря для Google Home до голосовых игр и B2B-экшенов, которые умеют работать с закрытой инфраструктурой компании.

Регистрируйтесь — количество мест ограничено! И, кстати, 28 июня в рамках конференции Google и Just AI проведут открытый хакатон для профессиональных и начинающих разработчиков – можно будет поработать над экшенами для Ассистента, поэкспериментировать с разговорным UX, синтезом речи и инструментами NLU и побороться за денежные призы!

image

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть