UPS. Руководство администратора
Материал из Флора AI
Общее описание
Сервис предназначен для управления базовыми сервисами ядра, а также в качестве прокси-сервера доступа к сервисам с функцией балансировки нагрузки.
Термины и определения
Universal Proxy Server (UPS) – Сервис управления ядром с проксированием запросов.
Системные требования
Для нормальной работы сервиса требуется 4Гб оперативной памяти, 1 CPU >= 2.20GHz и 40Гб дискового пространства.
Установка/обновление сервиса
Дистрибутив распространяется в виде установочных пакетов для окружения и сервиса. Загрузите установочные пакеты на сервер и выполните команды для Вашей системы в каталоге с пакетом.
Для UPS необходимо устанавливать выделенное окружение.
Установка/обновление UPS осуществляется скриптом chmod +x ./ups-<версия>-<релиз>.sh && ./ups-<версия>-<релиз>.sh -i с правами администратора. Список всех ключей инсталятора можно посмотреть, запустив инсталятор ./ups-<версия>-<релиз>.sh без ключей.
Загрузить последнюю версию пакета curl -s 'https://cloud.connect2ai.net/ups/' --user 'user_nexcloud:pass_nexcloud' | bash
Устновить/обновить пакет одной командой curl -s 'https://cloud.connect2ai.net/ups/?name=s' --user 'user_nexcloud:pass_nexcloud' | bash && chmod +x ./ups.sh && ./ups.sh -i
Проверить актуальную версию пакета можно curl -s 'https://cloud.connect2ai.net/ups/?type=v'
Не забудьте запустить сервис и включить в автозапуск в системе:
sudo systemctl enable ups.service && sudo systemctl start ups.service
Удостоверьтесь, что сервис стартовал:
systemctl status ups.service
Разрешите доступ к порту 6182 на нужном интерфейсе по протоколу tcp.
Установка модулей
Есть возможность создать любой модуль, который будет эмулировать любой API интерфейс любого стороннего сервиса через UPS. Для примера создан интерфейс Яндекс. Установка модулей возможна прямым копирование файлов модуля в деррикторию /opt/ups/modules/<название модуля>.
Чтобы убедиться, что модуль доступен и работает, выполните запрос
curl -H "accept: application/json" -X GET "http://АДРЕС_СЕРВЕРА:6182/spr/"
В ответе должно содержаться название новой модели или перечень названий моделей в формате json.
Проверить корректность работы модели можно запросто к API с отправкой файла на распознавание:
curl -X POST "http://АДРЕС_СЕРВЕРА:6182/spr/stt/common" -H "accept: application/json" -H "Content-Type: multipart/form-data" -F "wav=@ФАЙЛ.wav;type=audio/wav"
Конфигурирование параметров сервиса
Настройка параметров сервиса ыьс производится в файле /opt/ups/params.json
Описание параметров приведено в таблице
| Параметр | По умолчанию | Назначение |
|---|---|---|
| logs.path | logs/ | Директория для хранения логов. Примеры абсолютного пути: "/var/log/ups/" |
| logs.backups | 10 | Количество файлов ротации |
| logs.maxSize | 5242880 | Максимальный размер файла в байтах, триггер для ротации |
| auth.accessLifeTime | 1800 | Время жизни access token |
| auth.refreshLifeTime | 86400 | Время жизни refresh token |
| servers.{service}.trainer | http://127.0.0.1:PORT | Ссылка на сервер для обучения моделей сервисов. Возможные варианты значения service (с портами по умолчанию) следующие: smc (6181), see (6184), spr (6183) |
| servers.{service}.cluster | [http://127.0.0.1:PORT] | Список ссылок на рабочие серверы сервисов. Возможные варианты значения service (с портами по умолчанию) следующие: smc (6181), see (6184), spr (6183), tts (6186), sbs (6185). |
| servers.{service}.timers.connect | 0.5 | Лимит времени на подключение к сервису, сек. |
| servers.{service}.timers.read | 300 | Лимит времени на получение данных от сервиса, сек. |
| servers.{service}.timers.failed | 600 | Длительность паузы обращений к сервису при сбое, сек. |
| servers.{service}.timers.install | 60 | Лимит времени на установку модели на сервис |
| servers.{service}.timers.info | 3 | Лимит времени на получение информации о модели |
| nopassword | [
"GET:/auth/refresh", "GET:/auth/rights", "POST:/auth/access", "GET:/lang/", "GET:/tts/synthesize", "POST:/sbs/embedding", "GET:/smc/classify", "GET:/auth/version", "GET:/smc/compress", "GET:/smc/emotion", "GET:/see/entities", "POST:/sbs/analyze", "POST:/sbs/verify", "POST:/sbs/search", "POST:/spr/stt", "GET:/spr/result", "GET:/auth/user/info", "GET:/model/info", "POST:/auth/user/password" ] |
Список методов, которые не требуют авторизации |
Сбор данных об ошибках
Логи сервиса по умолчанию находятся в файле /opt/ups/logs/log.txt
Удаление
Для удаления выполните команду: /opt/ups/uninstall. Команда деинсталлирует сервис и удалит рабочий каталог, включая все установленные модели.