Это небольшое Todo приложение (добавление, выполнение и удаление задач. См. видео) демонстрирует пример взаимодействия с Assistant Client.
В данном репозитории находятся два приложения:
- приложение React, реализующее классическое демо-приложение To-do и использующее
assistan-client
для взаимодействия с бэкендом распознавания; - архив
scenario-example.zip
- приложение Смарт-кода, выполняющееся на бэкенде распознавания речи и определяющее логику распознавания речи и голосового/текстового взаимодействия. Обычного бэкенда, реализующего серверную логику и хранение данных, в этом приложении нет.
Для работы необходимо создать два проекта: один "SmartApp Code" (загрузив в него архив) и еще один - смартап в "SmartApp Studio", затем сгенерировать token и запустить приложение React.
- Идём на страницу SmartMarket Studio (ссылка);
- В меню слева нажимаем "Создать проект";
- Выбираем "Инструменты разработки приложений" -> раздел "Мини-приложения Салют" -> Code for SmartApp (есть еще "Code for SulteBot" - это немного другой тип приложений)
- Указываем "Название проекта";
- В "Выбор шаблона" указываем "Пустой проект";
- Нажимаем "Создать проект";
- Переходим на страницу с проектами (ссылка);
- Заходим в сам проект, переходим в пункт меню "Настройки проекта" (внизу меню), потом на закладку "Экспорт/Импорт", нажимаем на "Прикрепите файл"
В меню проекта (кнопка "⋮") выбираем "Загрузить"; - Выбираеv архив "scenario-example.zip" (лежит в корне этого проекта) - не весь проект из Git, только zip-файл, который внутри этого проекта;
- Нажимаем "Редактор" -> "Сценарии";
- Нажимаем "Собрать";
- Нажимаем "Публикации";
- Нажимаем "Получить вебхук" (URL на Webhook в буфере обмена).
- Идём на страницу SmartApp Studio (ссылка;
- В меню слева нажимаем "Создать проект";
- Выбираем "Инструменты разработки приложений" -> SmartApp
- Указываем "Название смартапа" (указываем это же название в файле ".env.sample", в строке "REACT_APP_SMARTAPP"), переименовываем его в ".env";
- Переключаем "Выбор типа смартапа" на "Canvas App";
- Нажимаем "Создать смартап".
Либовыбираем SmartApp Code API и указываем URL на "Webhook" (полученный в "SmartApp Code"), либо выбираем SmartApp Code App и выбираем название и версию (в последующем версии нужно будет менять);- Указываем URL на "Frontend Endpoint" (url страницы, где будет размещаться клиентская часть вашего приложения. Для локального запуска не используется, можете указать любой);
- Идём на страницу SmartApp Studio (ссылка
старая ссылка); - В меню пользователя (правый верхний угол) выбираем "Настройки профиля";
- Нажимаем "Эмулятор"
"Auth Token"; - Нажимаем "Обновить ключ";
- Нажимаем "Скопировать ключ" (сейчас token в буфере);
- Указываем токен в файле ".env.sample", в строке "REACT_APP_TOKEN".
- Переименовываем файл ".env.sample" в ".env".
Текущая версия приложения не работает под Nodejs 18. Протестировано под Nodejs 16.16.0.
Протестировано под Nodejs 18.15.0.
Установить нужную версию Nodejs можно либо непосредственно с сайта, либо (рекомендуется) с помощью утилиты nvm
, позволяющей быстро переключаться между версиями Node из командной строки (nvm install 16.16.0
, nvm use 16.16.0
).
Установка зависимостей проекта и запуск:
npm install -g yarn
yarn install
yarn run start
Должен открыться веб-браузер со страницей приложения, в котором (кроме обычного визуального интерфейса) в нижней части появится панель Ассистента с шариком слева. Кликом на шарике можно включать/отключать распознавание речи. При отключенном распознавании текст можно вводить с клавиатуры в строке справа от шарика.
При вращающемся шарике в этом приложении доступны голосовые команды "Добавь "тест", "Выполнил "тест", "Удали "тест".
Не забудьте разрешить доступ страницы к микрофону.