UPS. Руководство администратора: различия между версиями
Материал из Флора AI
| (не показано 5 промежуточных версий 2 участников) | |||
| Строка 2: | Строка 2: | ||
===== '''Общее описание''' ===== | ===== '''Общее описание''' ===== | ||
Сервис предназначен для управления базовыми сервисами ядра, а также в качестве прокси-сервера доступа к сервисам с функцией балансировки нагрузки. | Сервис предназначен для управления базовыми сервисами ядра, а также в качестве прокси-сервера доступа к сервисам с функцией балансировки нагрузки. | ||
===== '''Термины и определения''' ===== | ===== '''Термины и определения''' ===== | ||
Universal Proxy Server (UPS) – сервис управления ядром с проксированием запросов. | Universal Proxy Server (UPS) – сервис управления ядром с проксированием запросов. | ||
| Строка 13: | Строка 11: | ||
===== '''Установка/обновление UPS''' ===== | ===== '''Установка/обновление UPS''' ===== | ||
[https://cloud.connect2ai.net/index.php/apps/files/?dir=/ups&fileid=482 Дистрибутив] распространяется в виде установочных пакетов для окружения и сервиса. Загрузите установочные пакеты на сервер и выполните команды для | [https://cloud.connect2ai.net/index.php/apps/files/?dir=/ups&fileid=482 Дистрибутив] распространяется в виде установочных пакетов для окружения и сервиса. Загрузите установочные пакеты на сервер и выполните команды для вашей системы в каталоге с пакетом. | ||
Для UPS необходимо [[PVE. Установка сервисного пакета окружения|устанавливать выделенное окружение]]. | Для UPS необходимо [[PVE. Установка сервисного пакета окружения|устанавливать выделенное окружение]]. | ||
| Строка 20: | Строка 18: | ||
* Загрузить последнюю версию продукта <code>curl -s "<nowiki>https://repo.connect2ai.net/api/ups/new</nowiki>" --user '[user]:[pass]' 2>&1 | bash</code> или в интерактивном режиме <code>bash -c "$(curl -s <nowiki>https://repo.connect2ai.net/api/ups</nowiki> --user '[user]:[pass]' 2>&1)"</code>. | * Загрузить последнюю версию продукта <code>curl -s "<nowiki>https://repo.connect2ai.net/api/ups/new</nowiki>" --user '[user]:[pass]' 2>&1 | bash</code> или в интерактивном режиме <code>bash -c "$(curl -s <nowiki>https://repo.connect2ai.net/api/ups</nowiki> --user '[user]:[pass]' 2>&1)"</code>. | ||
* Обновить UPS <code>/opt/ups/inupdate</code> в интерактивном режиме. Или запустить с ключом: | * Обновить UPS <code>/opt/ups/inupdate</code> в интерактивном режиме. Или запустить с ключом: | ||
** <code>/opt/ups/inupdate -b</code> | ** <code>/opt/ups/inupdate -b</code> – обновить до последней beta версии; | ||
** <code>/opt/ups/inupdate -r</code> | ** <code>/opt/ups/inupdate -r</code> – обновить до последней release версии; | ||
** <code>/opt/ups/inupdate -n</code> | ** <code>/opt/ups/inupdate -n</code> – обновить до последней версии (неважно beta или release). | ||
* Проверить актуальную версию продукта <code>curl -s "<nowiki>https://repo.connect2ai.net/api/ups/version</nowiki></code>. | * Проверить актуальную версию продукта <code>curl -s "<nowiki>https://repo.connect2ai.net/api/ups/version</nowiki></code>. | ||
* Посмотреть лог изменений <code>curl -s "<nowiki>https://repo.connect2ai.net/api/ups/changelog</nowiki>" --user '[user]:[pass]'</code>. | * Посмотреть лог изменений <code>curl -s "<nowiki>https://repo.connect2ai.net/api/ups/changelog</nowiki>" --user '[user]:[pass]'</code>. | ||
* Полное описание всех команд API репозитория можно найти по ссылке '''https://repo.connect2ai.net/api'''. <code>[user]:[pass]</code> | * Полное описание всех команд API репозитория можно найти по ссылке '''https://repo.connect2ai.net/api'''. <code>[user]:[pass]</code> – это тот же логин и пароль, что и от [https://cloud.connect2ai.net '''Nextcloud'''.] | ||
* В папке с продуктом можно добавить 2 файла конфигурации (допускается один общий файл на все продукты в папке с окружением /opt/pve/): | * В папке с продуктом можно добавить 2 файла конфигурации (допускается один общий файл на все продукты в папке с окружением /opt/pve/): | ||
** echo -n <code>"[user]:[pass]"</code> > /opt/ups/.userapi (это файл авторизации в API, нужен для обновления) | ** echo -n <code>"[user]:[pass]"</code> > /opt/ups/.userapi (это файл авторизации в API, нужен для обновления) | ||
| Строка 106: | Строка 104: | ||
====='''Установка модулей для UPS'''===== | ====='''Установка модулей для UPS'''===== | ||
Есть возможность создать любой модуль, который будет эмулировать любой API интерфейс любого стороннего сервиса через UPS. Для примера создан интерфейс Яндекс. Установка модулей возможна прямым копированием файлов модуля в директорию /opt/ups/modules/<название модуля>. | Есть возможность создать любой модуль, который будет эмулировать любой API-интерфейс любого стороннего сервиса через UPS. Для примера создан интерфейс Яндекс. Установка модулей возможна прямым копированием файлов модуля в директорию /opt/ups/modules/<название модуля>. | ||
Чтобы убедиться, что модуль доступен и работает, выполните запрос: | Чтобы убедиться, что модуль доступен и работает, выполните запрос: | ||
| Строка 114: | Строка 112: | ||
out.wav должен содержать синтезированный голос озвучивший текст из запроса. | out.wav должен содержать синтезированный голос озвучивший текст из запроса. | ||
Данный пример запроса говорит о том, что написан интерфейс Яндекса по синтезу. Соответственно, обращение к нему идет как к Яндексу и ответ как от Яндекса. | |||
Пример структуры файла модуля (/opt/ups/modules/[имя модуля]/handler.py): | Пример структуры файла модуля (/opt/ups/modules/[имя модуля]/handler.py): | ||
| Строка 202: | Строка 200: | ||
|logs.backups | |logs.backups | ||
|10 | |10 | ||
|Количество файлов ротации | |Количество файлов ротации. | ||
|- | |- | ||
|logs.maxSize | |logs.maxSize | ||
|5242880 | |5242880 | ||
|Максимальный размер файла в байтах, триггер для ротации | |Максимальный размер файла в байтах, триггер для ротации. | ||
|- | |- | ||
|auth.accessLifeTime | |auth.accessLifeTime | ||
|1800 | |1800 | ||
|Время жизни access token | |Время жизни access token. | ||
|- | |- | ||
|auth.refreshLifeTime | |auth.refreshLifeTime | ||
|86400 | |86400 | ||
|Время жизни refresh token | |Время жизни refresh token. | ||
|- | |- | ||
|servers.{service}.trainer | |servers.{service}.trainer | ||
|<nowiki>http://127.0.0.1:PORT</nowiki> | |<nowiki>http://127.0.0.1:PORT</nowiki> | ||
|Ссылка на сервер для обучения моделей сервисов. Возможные варианты значения service (с портами по умолчанию) следующие: smc (6181), see (6184), spr (6183), qas(6187), res(6156), ses(6190) | |Ссылка на сервер для обучения моделей сервисов. Возможные варианты значения service (с портами по умолчанию) следующие: smc (6181), see (6184), spr (6183), qas (6187), res (6156), ses (6190). | ||
|- | |- | ||
|servers.{service}.cluster | |servers.{service}.cluster | ||
|<nowiki>[http://127.0.0.1:PORT]</nowiki> | |<nowiki>[http://127.0.0.1:PORT]</nowiki> | ||
|Список ссылок на рабочие серверы сервисов. Возможные варианты значения service (с портами по умолчанию) следующие: smc (6181), see (6184), spr (6183), qas(6187), tts (6186), sbs (6185), ses(6190). | |Список ссылок на рабочие серверы сервисов. Возможные варианты значения service (с портами по умолчанию) следующие: smc (6181), see (6184), spr (6183), qas (6187), tts (6186), sbs (6185), ses (6190). | ||
|- | |- | ||
|servers.res.cluster | |servers.res.cluster | ||
|"<nowiki>https://0.0.0.0:6157</nowiki> | |"<nowiki>https://0.0.0.0:6157</nowiki> | ||
|Ссылка на сервис kibana, подключенный через раверс-прокси на nginx(входит в состав res) | |Ссылка на сервис kibana, подключенный через раверс-прокси на nginx (входит в состав res). | ||
|- | |- | ||
|servers.{service}.timers.connect | |servers.{service}.timers.connect | ||
| Строка 242: | Строка 240: | ||
|servers.{service}.timers.install | |servers.{service}.timers.install | ||
|60 | |60 | ||
|Лимит времени на установку модели на сервис | |Лимит времени на установку модели на сервис. | ||
|- | |- | ||
|servers.{service}.timers.info | |servers.{service}.timers.info | ||
|3 | |3 | ||
|Лимит времени на получение информации о модели | |Лимит времени на получение информации о модели. | ||
|- | |||
|servers.ses.websockets | |||
|"127.0.0.1:6191" | |||
|Все адреса, в том числе и с SSL (wss), по которым доступен websocket-сервер ses. | |||
|- | |||
|servers.res.cluster | |||
|"<nowiki>http://192.168.20.246:5601</nowiki>" | |||
|[https://wiki.connect2ai.net/index.php/RES._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0#%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B8_%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_kibana_+_elasticsearch http адрес Kibana с отчетами.] Для доступа к отчетам по http адресу UPS, и для проксирования на порт 5602 кибаны для ssl UPS | |||
|- | |||
|servers.res.auth.username | |||
servers.res.auth.password | |||
|"reports" | |||
"reports" | |||
|Логин и пароль [https://wiki.connect2ai.net/index.php/RES._%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0#%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B8_%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_kibana_+_elasticsearch пользователя kibana] с правами доступа на просмотр рабочих столов с отчетами | |||
|- | |- | ||
|cluster.logfile | |cluster.logfile | ||
|logs/sync.log | |logs/sync.log | ||
|Расположение лога синхронизации для работы в кластере | |Расположение лога синхронизации для работы в кластере. | ||
|- | |- | ||
|cluster.statusFile | |cluster.statusFile | ||
|logs/sync.status | |logs/sync.status | ||
|Файл для периодической записи | |Файл для периодической записи отчёта о состоянии синхронизации. | ||
|- | |- | ||
|cluster.nodes | |cluster.nodes | ||
|[ ] | |[ ] | ||
|Перечень нод кластера UPS на которые будет отправляться содержимое папки | |Перечень нод кластера UPS, на которые будет отправляться содержимое папки «data». | ||
|- | |- | ||
|userlog | |userlog | ||
|[ "POST:", "DELETE:" ] | |[ "POST:", "DELETE:" ] | ||
|Типы действий пользователей которые будут логироваться | |Типы действий пользователей, которые будут логироваться. | ||
|- | |- | ||
|nouserlog | |nouserlog | ||
|[ "POST:/auth/userlog" ] | |[ | ||
|Исключения из правила логирования действий пользователей | |||
"POST:/auth/userlog", | |||
"POST:/ses/ask", | |||
"POST/auth/user/password", | |||
"POST/spr/stt", | |||
"POST/sbs/analyze", | |||
"POST/sbs/search", | |||
"POST/sbs/verify", | |||
"POST/tts/normalize", | |||
"POST/tts/revoice", | |||
"POST/tts/synthesize", | |||
"POST/qas/summarize" | |||
] | |||
|Исключения из правила логирования действий пользователей. | |||
|- | |- | ||
|nopassword | |nopassword | ||
| Строка 309: | Строка 345: | ||
] | ] | ||
|Список методов, которые не требуют авторизации | |Список методов, которые не требуют авторизации. | ||
|} | |} | ||
| Строка 319: | Строка 355: | ||
===== '''Удаление UPS''' ===== | ===== '''Удаление UPS''' ===== | ||
Для удаления выполните команду: <code>/opt/ups/uninstall</code>. Команда деинсталлирует сервис и удалит рабочий каталог, включая все установленные модели. | Для удаления выполните команду: <code>/opt/ups/uninstall</code>. Команда деинсталлирует сервис и удалит рабочий каталог, включая все установленные модели. | ||
Текущая версия от 09:53, 27 марта 2025
Общее описание
Сервис предназначен для управления базовыми сервисами ядра, а также в качестве прокси-сервера доступа к сервисам с функцией балансировки нагрузки.
Термины и определения
Universal Proxy Server (UPS) – сервис управления ядром с проксированием запросов.
Системные требования
Для нормальной работы сервиса требуется 4 Гб оперативной памяти, 1 CPU >= 2.20 GHz и 40 Гб дискового пространства.
Установка/обновление UPS
Дистрибутив распространяется в виде установочных пакетов для окружения и сервиса. Загрузите установочные пакеты на сервер и выполните команды для вашей системы в каталоге с пакетом.
Для UPS необходимо устанавливать выделенное окружение.
- Установка/обновление UPS осуществляется скриптом
chmod +x ./ups-<версия>-<релиз>.sh && ./ups-<версия>-<релиз>.sh -iс правами администратора. Список всех ключей инсталлятора можно посмотреть, запустив инсталлятор./ups-<версия>-<релиз>.shбез ключей. - Загрузить последнюю версию продукта
curl -s "https://repo.connect2ai.net/api/ups/new" --user '[user]:[pass]' 2>&1 | bashили в интерактивном режимеbash -c "$(curl -s https://repo.connect2ai.net/api/ups --user '[user]:[pass]' 2>&1)". - Обновить UPS
/opt/ups/inupdateв интерактивном режиме. Или запустить с ключом:/opt/ups/inupdate -b– обновить до последней beta версии;/opt/ups/inupdate -r– обновить до последней release версии;/opt/ups/inupdate -n– обновить до последней версии (неважно beta или release).
- Проверить актуальную версию продукта
curl -s "https://repo.connect2ai.net/api/ups/version. - Посмотреть лог изменений
curl -s "https://repo.connect2ai.net/api/ups/changelog" --user '[user]:[pass]'. - Полное описание всех команд API репозитория можно найти по ссылке https://repo.connect2ai.net/api.
[user]:[pass]– это тот же логин и пароль, что и от Nextcloud. - В папке с продуктом можно добавить 2 файла конфигурации (допускается один общий файл на все продукты в папке с окружением /opt/pve/):
- echo -n
"[user]:[pass]"> /opt/ups/.userapi (это файл авторизации в API, нужен для обновления) - echo -n
"http://example.com:3128 [user] [password]"> /opt/ups/.proxy (это файл конфигурации proxy, необходим для обновления при отсутствующем прямом подключении к интернету).
- echo -n
При обновлении следующий список файлов и папок сохраняется: .userapi, .proxy, logs, nnets, config.json, cache, pretrained, pve, data. Сервис не требует остановки и возвращается в актуальное состояние после обновления.
Не забудьте запустить сервис и включить в автозапуск в системе:
sudo systemctl enable ups.service && sudo systemctl start ups.service
Удостоверьтесь, что сервис стартовал:
systemctl status ups.service
Разрешите доступ к порту 6182 на нужном интерфейсе по протоколу TCP.
UPS может работать в составе кластера из двух и более серверов с UPS. Для этого необходимо создать кластер pacemaker/corosync с 2 ресурсами — ресурс systemd UPS и shared IP, и обеспечить их одновременную работу на одной ноде кластера. Синхронизацию изменений обеспечит сервис UPS с помощью lsyncd, для этого есть блок «cluster» в конфигурационном файле. Серверы кластера для этого должны иметь возможность соединения по SSH по ключу.
Внутренняя база данных
В каталоге /opt/ups/data/db находятся папки служебной базы данных. Папки созданы по разделам администрирования UPS. Каждый файл любой папки описывает один объект администрирования, например один из файлов из каталога "/opt/ups/data/db/roles".
{
"id": "ee1b3b1edb8c4376486189d6540f5635",
"name": "Только просмотр",
"rights": [
"SERVICE:smc",
"SERVICE:see",
"GET:/spr/audio",
"GET:/spr/queue",
"GET:/spr/waveform",
"SERVICE:spr",
"GET:/sbs/speakers",
"SERVICE:sbs",
"GET:/tts/dictionary/get",
"SERVICE:tts",
"GET:/qas/doc",
"GET:/qas/list",
"SERVICE:qas",
"GET:/auth/datasets",
"GET:/auth/roles",
"GET:/auth/user/get",
"GET:/auth/user/list",
"SERVICE:auth",
"GET:/model/errors",
"GET:/model/handler",
"GET:/model/log",
"GET:/corpus/get",
"GET:/corpus/list",
"GET:/transcription/audio",
"GET:/transcription/get",
"GET:/transcription/list",
"GET:/transcription/waveform",
"GET:/server/get/addresses",
"GET:/server/get/models",
"GET:/lang/wallpaper"
]
}
описывает роль и ее параметры. В каждом файле обязательно есть уникальный id и хотя бы один параметр. В примере 2 параметра "name" и "rights".
Авторизация в UPS
UPS предполагает доступ по паролю к разделам интерфейса и информации от сервисов. Доступ осуществляется при помощи токена доступа. Токен запрашивается запросом, в котором передаются логин и пароль, а в ответ приходит токен авторизации и токен обновления авторизации.
Пример запроса:
curl -X POST "http://127.0.0.1:6182/auth/access?username=admin&password=password" -H "accept: application/json"
Пример ответа:
{
"x-access-token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiMCIsImNyZWF0ZWQiOjE3MTQ2NTk5MDIuOTk5MzQzNiwidHlwZSI6ImFjY2VzcyJ9.wrTRX2de5jhVFKRQ_Xt0fNXxHWN_yLiqZ6S_inix0Jg", "x-refresh-token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiMCIsImNyZWF0ZWQiOjE3MTQ2NTk5MDIuOTk5NTk1NCwidHlwZSI6InJlZnJlc2gifQ.Y3DNfIpfqJffjrPaT4TQiiF22Huvx62rmB-b9Az6UAc"
}
Пример запроса с участием токена:
curl -X GET "http://127.0.0.1:6182/auth/version" -H "accept: application/json" -H "x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiMCIsImNyZWF0ZWQiOjE3MTQ2NTk5MDIuOTk5MzQzNiwidHlwZSI6ImFjY2VzcyJ9.wrTRX2de5jhVFKRQ_Xt0fNXxHWN_yLiqZ6S_inix0Jg"
В случае если UPS работает в закрытом контуре и авторизация не требуется, методы API, которые используются, нужно добавить в раздел «nopassword» конфигурационного файла (см. ниже).
Установка модулей для UPS
Есть возможность создать любой модуль, который будет эмулировать любой API-интерфейс любого стороннего сервиса через UPS. Для примера создан интерфейс Яндекс. Установка модулей возможна прямым копированием файлов модуля в директорию /opt/ups/modules/<название модуля>.
Чтобы убедиться, что модуль доступен и работает, выполните запрос:
curl -X GET "http://АДРЕС_СЕРВЕРА:6182/tts/synthesize/yandex_tts_emulator?rate=100&pitch=100&volume=0" --H "accept: application/json" --data-urlencode "text=текст для синтеза" --output out.wav
out.wav должен содержать синтезированный голос озвучивший текст из запроса.
Данный пример запроса говорит о том, что написан интерфейс Яндекса по синтезу. Соответственно, обращение к нему идет как к Яндексу и ответ как от Яндекса.
Пример структуры файла модуля (/opt/ups/modules/[имя модуля]/handler.py):
import uuid, io, json
from app.modules import modulesns
from flask import send_file
from flask_restplus import Resource, reqparse
from app.ups import tools
config = json.load(open('/opt/ups/modules/yandex_tts_emulator/config.json'))
parser = reqparse.RequestParser()
parser.add_argument('voice',required=True)
parser.add_argument('text',required=True)
@modulesns.route("/speech/v1/tts:synthesize"
class YandexEmulator(Resource): # имя класса можно указать свое
def post(self): # обязательный метод post класса
args = parser.parse_args()
voice = args['voice']
voice = config['voices'].get(voice,None)
if not voice:
modulesns.abort(405, message = "Wrong voice", error = 1)
reply = tools.getData(servicetype="tts",method="GET",data={'text':args['text']},url="/tts/synthesize/"+voice)
if type(reply) is dict:
return reply
# возвращаемым значение метода post должен быть правильный результат, в данном примере синтезированный аудиофайл
return send_file(
io.BytesIO(reply),
attachment_filename=str(uuid.uuid4())+'.wav',
as_attachment=True,
mimetype='audio/wav'
)
Пример структуры файла конфигурации (/opt/ups/modules/[имя модуля]/config.json):
{
"voices": {
"alena": "Alya_8kHz"
}
}
Конфигурирование параметров сервиса
Настройка параметров сервиса ups производится в файле /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), qas (6187), res (6156), ses (6190). |
| servers.{service}.cluster | [http://127.0.0.1:PORT] | Список ссылок на рабочие серверы сервисов. Возможные варианты значения service (с портами по умолчанию) следующие: smc (6181), see (6184), spr (6183), qas (6187), tts (6186), sbs (6185), ses (6190). |
| servers.res.cluster | "https://0.0.0.0:6157 | Ссылка на сервис kibana, подключенный через раверс-прокси на nginx (входит в состав res). |
| 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 | Лимит времени на получение информации о модели. |
| servers.ses.websockets | "127.0.0.1:6191" | Все адреса, в том числе и с SSL (wss), по которым доступен websocket-сервер ses. |
| servers.res.cluster | "http://192.168.20.246:5601" | http адрес Kibana с отчетами. Для доступа к отчетам по http адресу UPS, и для проксирования на порт 5602 кибаны для ssl UPS |
| servers.res.auth.username
servers.res.auth.password |
"reports"
"reports" |
Логин и пароль пользователя kibana с правами доступа на просмотр рабочих столов с отчетами |
| cluster.logfile | logs/sync.log | Расположение лога синхронизации для работы в кластере. |
| cluster.statusFile | logs/sync.status | Файл для периодической записи отчёта о состоянии синхронизации. |
| cluster.nodes | [ ] | Перечень нод кластера UPS, на которые будет отправляться содержимое папки «data». |
| userlog | [ "POST:", "DELETE:" ] | Типы действий пользователей, которые будут логироваться. |
| nouserlog | [
"POST:/auth/userlog", "POST:/ses/ask", "POST/auth/user/password", "POST/spr/stt", "POST/sbs/analyze", "POST/sbs/search", "POST/sbs/verify", "POST/tts/normalize", "POST/tts/revoice", "POST/tts/synthesize", "POST/qas/summarize" ] |
Исключения из правила логирования действий пользователей. |
| 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
Удаление UPS
Для удаления выполните команду: /opt/ups/uninstall. Команда деинсталлирует сервис и удалит рабочий каталог, включая все установленные модели.