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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 кажется нас опередили и приложение не оригинальное, ну кто же мог знать…)

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

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

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

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

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

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