IT-инфраструктура для бизнеса и творчества
Разработка
SberDevices

От задумки до успешного приложения: как создать смартап для виртуальных ассистентов Салют без кода. Опыт разработчика

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

В сообщество разработчиков SmartMarket я пришёл осенью 2020 года и с тех пор создал 12 навыков и выиграл 2,5 миллиона рублей в конкурсе. Сейчас я расскажу, как создать интересный смартап, к которому пользователи захотят возвращаться снова и снова.

Сергей Кулаков
Разработчик навыков для виртуальных ассистентов

Навыки для голосовых ассистентов — не новая для меня область. Ещё до появления виртуальных ассистентов Салют я полтора года разрабатывал навыки для другого голосового ассистента и неоднократно получал за них награды. В конце мая 2020 года я получил письмо от Сбера, в котором мне предлагали поучаствовать в тестировании новой платформы для разработчиков и портировать туда один из навыков — «Музыкальные стулья». Но Сбер тогда не ассоциировался у меня с IT, поэтому я не стал этим заниматься.

В сентябре мне написал знакомый разработчик — он прислал ссылку на чат в Telegram и сказал, что туда уже пришли все наши общие знакомые. Так я попал в сообщество разработчиков SmartMarket.

С чего всё началось и почему я сделал 12 смартапов

В сообществе действительно оказалось много знакомых, а тех, кого там не было, я пригласил сам. На тот момент платформа была немного сырой, поэтому некоторые разработчики решили пока не разрабатывать смартапы. Я тоже с этим столкнулся. Например, оказалось, что портировать навыки с другой платформы нельзя и мне придётся делать их с нуля. Но многие разработчики всё-таки остались. Во-первых, было интересно стоять у истоков и помогать чинить баги, во-вторых, тогда SmartMarket уже объявил о том, что устроит конкурс с призами.

Я поставил себе цель — сделать 12 смартапов до конца 2020 года. Поэкспериментировать, попробовать разные сценарии и посмотреть, что выстрелит. В итоге часть навыков я продублировал, а часть придумал специально для SmartMarket.

Какие смартапы я сделал для участия в конкурсе:

Угадай песню — угадываем композиции по строчкам из них

Весёлый курьер — запоминаем маршруты и тренируем память

Звёздный поединок — забавная битва известных персонажей: от селебрити до героев сказок

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

Море волнуется раз — показываем необычные фигуры

Слово наоборот — отгадываем слова-перевёртыши

Угадай фильм — угадываем фильмы по описанию

Продолжи пословицу — заканчиваем известные поговорки

Калькулятор алкоголя — выясняем, можно ли садиться за руль

Брось кубик — играем в настолки с онлайн-кубиком

Русская рулетка — игра на везение с револьвером на шесть пуль

Шар предсказаний — узнаём предсказания из будущего

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

Смартап «Угадай песню»

Как всё устроено: инструменты, модерация и юридические тонкости

Чтобы рассказать подробнее о своих смартапах и тонкостях их создания, объясню, как устроена платформа и что она предлагает разработчикам. Пространство, в котором участники сообщества создают навыки, называется SmartMarket Studio. Когда я только присоединился к комьюнити, там почти ничего не было (или было, но плохо работало). Сейчас там есть всё: от гайдов и документации до инструментов и возможности подключить монетизацию.

Инструментов несколько, и они придуманы для разработчиков с разным опытом. Самый простой инструмент — Graph, визуальный редактор. В нём смартап можно собрать как конструктор, используя текст, изображения и аудио. Всё интуитивно понятно, а код в большинстве случаев писать необязательно. Второй инструмент — Code. Это среда разработки, где нужно кодить на SmartApp DSL и JavaScript. Ещё один инструмент — открытый протокол API. Его разработчики используют, чтобы писать приложения на своих серверах, а потом добавлять их в SmartMarket.

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

Так выглядит в конструкторе приветствие и процесс «узнавания» старого игрока
А это — сам процесс игры 
Смартап можно запустить несколькими командами

Закончив, я мог попросить кого-то из чата найти смартап по названию и протестировать его, чтобы проверить, корректно ли всё работает. Доступ получал только тот, кого попросили. Когда смартап готов, его нужно отправить на модерацию. Если разработчик внимательно изучил требования и гайды, она занимает один день. Если в навыке всё же нашли ошибки, ещё два-три дня обычно уходит на доработку. Модераторы работают внимательно: если предложение построено неграмотно или где-то не там стоит точка, они на это укажут. С одной стороны, иногда это раздражает, с другой — было бы неправильно выкатывать сырые смартапы. Если подходить к модерации спустя рукава, разработчики расслабятся, качество навыков снизится, а пострадают из-за этого пользователи.

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

При создании смартапа важно учитывать юридические тонкости, о которых начинающие разработчики могут не подозревать. Например, для моего навыка «Море волнуется раз» мне понадобилась музыка. Смартап построен на основе всем известной игры, когда ведущий произносит слова «Море волнуется раз, море волнуется два, море волнуется три — морская фигура, замри!», и игроки застывают в определённых позах. Я хотел, чтобы во время игры звучала музыка, и нашёл подходящую песню украинской артистки. Чтобы не нарушать авторские права, я связался с ней и получил разрешение. Многие не разбираются в таких тонкостях, поэтому команда SmartMarket отвечает и на вопросы, связанные с законодательством.

После прохождения модерации смартапы появляются в каталоге. Сейчас все мои навыки живут на четырёх поверхностях: в SberPortal, SberBox и приложениях Сбер Салют и СберБанк Онлайн. На всех поверхностях, кроме банковского приложения, смартап появляется моментально. И только если он работает корректно там, его пропускают в СберБанк Онлайн.

Монетизация и онлайн-витрины: немного о возможностях для заработка

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

Смартап «Угадай фильм». Так выглядит предложение купить подсказки и возможности пропустить ход

Недавно я стал аккредитованным партнёром SberDevices. В SmartMarket есть специальная программа для разработчиков со статусом ООО или ИП, которая позволяет им принимать коммерческие заказы. Если какой-то компании нужен смартап, команда SmartMarket направляет её к аккредитованным разработчикам, которые уже сделали несколько качественных навыков. Мне интересно посмотреть на задачи, с которыми приходит бизнес, и поработать с ним. Ещё я, как и всё сообщество, надеюсь, что в смартапы разрешат добавлять рекламу — это существенно упростит жизнь тем, кто хочет зарабатывать на приложениях.

Новые функции я обычно тестирую сразу. Например, недавно в редактор Graph добавили возможность создавать карточки товаров прямо в конструкторе. Другими словами, теперь смартап можно превратить в маленький онлайн-магазин. Сейчас я собираюсь вплотную заняться созданием Canvas App — смартапов с более сложной и интересной графикой.

Советы начинающим разработчикам. Как сделать интересный смартап

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

Смартап «Море волнуется раз»

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

1. Постарайтесь предугадывать шаги пользователя. Чем точнее вы будете понимать, как может повести себя человек, тем логичнее получится сценарий смартапа. Так пользователь не заблудится и получит удовольствие от игры.

2. Запоминайте историю действий пользователя, чтобы он не терял игровой прогресс и мог переходить на следующие уровни.

3. Не забывайте добавлять саджесты в диалогах — подсказки для пользователей. Например, после приветствия ассистент может предложить пользователю два варианта: «Начать играть» и «Узнать правила».

4. Не делайте слишком сложные игровые смартапы: пусть пользователь почаще выигрывает и добивается желаемого. Так вы мотивируете его возвращаться.

5. Не забывайте о том, что Сбер, Афина и Джой, персонажи семейства Салют, общаются к пользователям по-разному. Если Сбер и Афина говорят пользователю «вы», то Джой обращается на «ты». Поэтому для этого персонажа реплики, обращённые к пользователю, нужно прописывать отдельно.

6. Добавьте экшена: звуков, картинок, шуток и неожиданных реплик. Всё это сделает виртуального ассистента живым, а смартап — интересным.

7. Не забывайте о голосовом управлении. Я заметил, что многие разработчики делают приложения «для экрана», рассчитывая на то, что пользователи будут использовать тачскрин, а не голос. Но во все мои смартапы можно играть с закрытыми глазами, даже если пользователь запускает их на SberPortal. При этом остальные способы взаимодействия я не игнорирую: можно управлять сценарием с помощью тачскрина, а в будущем в смартапах появится и управление жестами.

8. Если вы — новичок в создании приложений для виртуальных ассистентов, начните с простого. Изучите, как устроены инструменты SmartMarket Studio, почитайте документацию и потренируйтесь. Не стоит сразу же пытаться создать Canvas App со сложной логикой и сценариями. Вы обязательно доберётесь до этого уровня, но чтобы не растерять энтузиазм, лучше начать с Chat App.

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

Надеюсь, мой рассказ помог вам разобраться в том, как устроен SmartMarket и чем там занимаются разработчики. Если у вас остались какие-то вопросы или вы хотите присоединиться к сообществу — переходите по ссылке, здесь будут рады помочь. И удачи вам!

{ "author_name": "SberDevices", "author_type": "editor", "tags": [], "comments": 0, "likes": 9, "favorites": 14, "is_advertisement": false, "subsite_label": "dev", "id": 247448, "is_wide": true, "is_ugc": false, "date": "Tue, 18 May 2021 12:15:23 +0300", "is_special": false }
(function () { let cdnUrl = `https://specialsf378ef5-a.akamaihd.net/SelectelBranding/images/` let previousArticleNumber = null let currentArticleNumber = 0 let platform = 'Desktop' let articles = [ // { // name: 'camera', // url: `${cdnUrl}CameraCat`, // text: 'умную камеру для\u00A0наблюдения за\u00A0котиками', // link: '1', // }, { name: 'chill', url: `${cdnUrl}ChillCat`, text: 'трекер, который подскажет, когда пора отдохнуть', link: 'https://vc.ru/promo/288561-eye-tracker', }, // { // name: 'cloud', // url: `${cdnUrl}CloudCat`, // text: 'котика: даёшь ему «пять», а\u00A0он делает бэкап в облако', // link: '3', // } ] let buttonCycle = document.querySelector('.button--cycle') let textField = document.querySelector('.selectel-footer-subtitle') let imageAgent = document.querySelector('.image--agent') let banner = document.querySelector('.selectel-footer') buttonCycle.addEventListener('click', cycleClick) let media = window.matchMedia("(max-width: 570px)") media.addEventListener('change', matchMedia) function matchMedia() { if (media.matches) { platform = 'Mobile' } else { platform = 'Desktop' } update() } matchMedia() function cycleClick(event) { if (event) { event.preventDefault() event.stopPropagation() } window.open('https://vc.ru/tag/selectelDIY', '_blank') //cycle(event) } function cycle(event) { // incrementArticleNumber() textField.innerHTML = generatedText() imageAgent.src = articles[currentArticleNumber].url + platform + '.svg?5' imageAgent.setAttribute("class", "") imageAgent.classList.add('image--agent', articles[currentArticleNumber].name) banner.href = articles[currentArticleNumber].link } function update() { banner.href = articles[currentArticleNumber].link imageAgent.src = articles[currentArticleNumber].url + platform + '.svg?5' textField.innerHTML = generatedText() } function incrementArticleNumber() { previousArticleNumber = currentArticleNumber if (currentArticleNumber >= articles.length - 1) { currentArticleNumber = 0 } else { currentArticleNumber++ } } function generatedText() { let defaultText if (platform === 'Desktop') { defaultText = `Мы тут собрали %text%. Хотите почитать?` } else { defaultText = `Мы тут собрали %text%.` } return defaultText.replace('%text%', articles[currentArticleNumber].text) } function getRandom(min, max) { min = Math.ceil(min) max = Math.floor(max) return Math.floor(Math.random() * (max - min + 1)) + min } (function create() { currentArticleNumber = getRandom(0, articles.length - 1) cycle() let page = document.querySelector('.page--entry') if (page) { function insertAfter() { let parents = page.querySelectorAll('[data-id="7"]') let referenceNode = parents[0] referenceNode.parentNode.insertBefore(banner, referenceNode.nextSibling); loaded() } setTimeout(() => insertAfter(), 0) } }()) function loaded() { banner.classList.add('loaded') } loadImages([ `${cdnUrl}CameraCatDesktop.svg`, `${cdnUrl}ChillCatDesktop.svg`, `${cdnUrl}CloudCatDesktop.svg`, `${cdnUrl}CameraCatMobile.svg`, `${cdnUrl}ChillCatMobile.svg`, `${cdnUrl}CloudCatMobile.svg`, ]) function loadImages(urls) { return Promise.all(urls.map(function (url) { return new Promise(function (resolve) { var img = document.createElement('img'); img.onload = resolve; img.onerror = resolve; img.src = url; }); })); } }())
0
0 комментариев
Популярные
По порядку

Комментарий удален

Читать все 0 комментариев
Почему кейс с хомяком - не ошибка выжившего и не случайность

Сегодня Интернет облетела новость о том, что хомяк, бегая по своей клетке, заработал +29% на крипте. В комментария к публикации на VC многие писали, что это ошибка выжившего и просто случайность, которая ни о чем не значит. Я же постараюсь объяснить, почему это закономерность, и как сделать так, чтобы ваш кот/собака/рыбка показали такой же…

Я скрестил «Трибуну» и Product Hunt

Теперь вы никогда не пропустите самые перспективные русскоязычные стартапы.

Как мы проводили командную ретроспективу в Minecraft

Рассказываем историю, на что стоит обратить внимание при проведении командного мероприятия в игре Minecraft, какие грабли могут быть, как организовать онлайн- и офлайн-участие.

Прошел финал программы скаутинга в киберспорте Winstrike

Итоги программы Winstrike Scouting powered by UltraGear

Как испортить лучшую систему комментариев в рунете на примере vc.ru

Иногда мне кажется, на vc.ru идёт прогресс дизайна ради дизайна, а не ради прогресса. Вот и до комментариев добрались.

Увидеть первые Apple, сделать копию на ксероксе и потрогать мышку: как в Минске-88 прошла выставка «Информатика в США» Статьи редакции

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

Как традиционному малому бизнесу превратиться в стартап: план действий

Сейчас в России предприниматели переходят из традиционного малого бизнеса в стартапы очень редко — меньше чем в 0,02% случаев. Это не больше 1 000 стартапов из около 6 млн предприятий малого бизнеса. Поговорим о том, что мешает предпринимателям и как действовать, если есть желание создать стартап.

Создал ледовый комбайн в 50, а вместе с ним и рынок таких машин, который сразу захватил — это изобретатель Фрэнк Замбони Статьи редакции

Иногда ледозаливочные машины других производителей по ошибке называют «Замбони», пишет The Hustle.

Ледовый комбайн Замбони Time
Жизнь и удаленная работа во Вьетнаме: почему работать со сдвигом на 4 часа — это хорошо

Чтобы разобраться, как живется во Вьетнаме на самом деле, мы пообщались с аналитиком, которая с 2013 года живет здесь с супругом и не собирается никуда уезжать. Она расскажет, какие тут на самом деле цены, как обстоят дела с развлечениями и медициной и в чем главное отличие Вьетнама от других стран Юго-Восточной Азии.

Готовы выбрать победителя премии «Экспортер года eBay — 2021»?
Хомяк-криптотрейдер заработал 30% за три месяца в «клетке для торговли» — обойдя Уоррена Баффета и S&P 500 Статьи редакции

Мистер Гокс занимается торговлей криптовалютой с 12 июня.

null