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



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


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

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

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



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

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



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



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

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


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

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

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

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

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


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

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

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

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



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

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

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


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



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

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

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


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

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

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

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

Комментарии (0)