Пишем смартапп для ассистента Сбера (пошаговый гайд, без программирования)

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Вместо предисловия

Ниже — описание шагов по созданию простейшего приложения (смартаппа) для СберМаркета, без программирования (в данном случае — в среде разработки Graph).

Приступаем к разработке

 Вся документация по разработке тут (изучаем)

 Изучаем IDE в облаке тут

(возможен вход без регистрации, через СберID, Ок, залогинились)

Вот что облачная студия нам предлагает:

Создаем zero-code смартапп в SmartApp Graph

  •  Делаем все по этой инструкции

  • Создаем в своем workspace студии

  • Советы по созданию самртаппа

Создаем новый смартапп — “Предсказатель“

Для примера, напишем приложение для принятия решений, наподобие этого:

https://8-gund.com/ru/

Приложение будет принимать произвольный вопрос пользователя и отвечать случайным образом: “Да“, “Нет“, “Возможно“ и др.

То есть это развлекательное приложение, подобие физической игрушки — “Шар принятия решений“:

Создаем новый проект

  • Переходим в SmartMarket Studio и создайте проект Graph.

  • В разделе Сценарий выбераем блок Текст.

  • В поле Реплика ассистента напишем короткую инструкцию для пользователей по общению с вашим смартапом и нажмем Сохранить.

Пишем текст приветствия

  • Выбираем внизу экрана кнопку Сохранить и переходим в раздел “FAQ ассистент”.

  • Нажимаем “Создать пустую базу”.

Создаем пустую БД знаний

Предсказатель будет давать ответ, когда в конце вопроса его спросят: “Ответь”, вот сценарии (шаблонные ответы) для этого:

  • Вводим вопрос и нажмите ENTER.

  • Вводим ответы.

  • Добавляем еще — синонимы ответов.

  • Нажмаем зелёную кнопку Пуск в правом нижнем углу.

Тестируем на эмуляторе

  • Протестируем смартап, задавая ему ранее добавленные вопросы.

Первая проблемка

Итого, сейчас бот отвечает на ключевую фразу “Ответь”, но надо бы чтобы он игнорировал все то что до нее, то есть шаблон вопроса д.б. вида: “

 Ответь ”*" , где * — произвольная фраза; но как это объяснить ассистенту? …

 Мое решение: перенесем все ответы в сообщения об ошибке, т.о. ответы будут всегда случайные, на любой вопрос (то, что надо, из FAQ при этом вопрос удаляем, ответы теперь у нас тут): справка по “неизвестным вопросам“: https://developers.sber.ru/docs/ru/salute/graph/scenario/cannot_understand

  • Тестируем бота снова, работает как требовалось:

Сборка и публикация

  • Жмем кнопку “Собрать“

  • Регистрируем наш смартап в личном кабинете

  •  но сперва нужно отослать его на модерацию

  • О том, как сделать релиз, можно спросить на форуме разработчиков: 

    • Мне подсказали: “Вам нужно создать карточку смартапа (тип SmartApp) и там можно будет его отправить на модерацию; Подробнее можно прочитать тут“

  • В меню Публикации жмем “Фиксировать версию“, получаем статус — “Опубликовано“:

Graph — это среда разработки вашего смартапа, а не сам смартап

Чтобы сделать смартап, нужно создать еще один вид проекта (SmartApp), заполнить в нем все поля, соединить тип SmartApp с Graph, отправить ваш смартап на модерацию и только после того, как он пройдет модерацию, его можно будет опубликовать в каталог

  • Ок, создаем еще один проект (на этот раз — с типом “Smart App“, подвид “Chat App“):

  • Вводим альтернативные имена для активации приложения (кому-то они удобнее будут):

  • Делаем привязку к Graph App:

  • В качестве поверхностей оставим Салют (голосовой помощник) и пусть SbertPortal с экраном (чтобы вводить вопросы текстом, как в тестировании выше):

  • Дозаполняем описание приложения:

  • Примеры запуска заполняем:

  • Добавляем картинки аппа (требуют по 2 под каждый размер):

  • Заполняем инструкцию по тестированию:

  • Дозаполняем данные о пространстве:

  • Все, можем отправлять на модерацию:

  • Ждем модерации пространства из п. выше (у меня заняло ~1 час, спасибо саппорту), затем отсылаем приложение на модерацию (мы заполнили все требуемые данные, судя по чеклисту):

 У меня в первый раз возникла ошибка отправки: “Произошла ошибка при отправке на модерацию“

  •  Написал в саппорт (Телеграм: @SD_SmartApp_Supprot_Bot) , спасибо ребятам за оперативность, ответили сразу:

Ага, тут, в консоли, наглядно видно, в чем ошибка:

{"message":"Bad Request","error":
[{"type":"arrayUnique",
"message":"Paraphrases not unique: Conflict values: Магический шар",
"property":"paraphrases",
"value":["Магический шар"]}],"status":400}

Исправляем ошибку: удаляем фразу активации “Магический шар“ (т.к. она уже зарезервирована другим приложением… omg кажется нас опередили и приложение не оригинальное, ну кто же мог знать…)

Проверяем снова в консоли, при нажатии на “Отправить на модерацию“, видим что сейчас все ОК:

  • После прохождения модерации, наше приложение станет доступно в Маркете, на выбранных выше платформах, и мы сможем протестировать/использовать соотв. навык ассистента в реальности.

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

  • Например, вот как я протестировал свое разработанное выше прилшложение:

  • Для использования приложения, можно приобрести одну физических из платформ/поверхностей, например тут:

    • На Яндекс Маркете: ТВ-адаптер SBER SberBox с виртуальными ассистентами Салют

    • Медиаплеер Sberbox 

    • Умная портативная колонка SberBox Time SBDV-00026 Black 

    • Официальная страница ассистента Салют (описание функций и т.п.)

  • P.S.: Подписывайтесь на мой телеграм канал, где я делюсь своими открытиями и наработками в программировании. До встречи!

Источник: https://habr.com/ru/post/650281/


Интересные статьи

Интересные статьи

Здравствуйте! Сегодня мы напишем Slack Scrum покер бота на языке Go. Писать будем по возможности без фреймворков и внешних библиотек, так как наша цель – разобраться с яз...
Ваш сайт работает на 1С-Битрикс? Каждому клиенту вы даёте собственную скидку или назначаете персональную цену на товар? Со временем в вашей 1С сложилась непростая логика ценообразования и формирования...
Как-то у нас исторически сложилось, что Менеджеры сидят в Битрикс КП, а Разработчики в Jira. Менеджеры привыкли ставить и решать задачи через КП, Разработчики — через Джиру.
Получить трафик для интернет-магазина сегодня не проблема. Есть много каналов его привлечения: органическая выдача, контекстная реклама, контент-маркетинг, RTB-сети и т. д. Вопрос в том, как вы распор...
От скорости сайта зависит многое: количество отказов, брошенных корзин. Согласно исследованию Google, большинство посетителей не ждёт загрузки больше 3 секунд и уходит к конкурентам. Бывает, что сайт ...