Конфигурация боевого сервера¶
Где задаются настройки¶
Все настройки указываются в файле docker-compose.yml в секции environment соответствующего сервиса. Секретные значения (ключи доступа) выносятся в файл .env в корне проекта --- этот файл не попадает в систему управления версиями.
Подробное описание каждой переменной приведено в разделе Конфигурация серверной части.
Ключевые настройки, которые чаще всего меняются¶
Режим обработки¶
Переменная PROCESSING_MODE определяет, как отправляются запросы к Claude:
sync--- каждый документ отправляется немедленно. Подходит для разработки и отладки.batch--- документы накапливаются и отправляются пакетом. Экономия составляет 50 % от стоимости обращений к Claude. Результаты появляются с задержкой 15--30 минут.
На боевом сервере используется режим batch.
Чтобы изменить режим, нужно отредактировать docker-compose.yml и перезапустить серверную часть:
ssh alfa "cd /opt/alfa && docker compose restart backend"
Масштаб параллельности¶
Три параметра управляют скоростью обработки:
| Параметр | Текущее значение на сервере | На что влияет |
|---|---|---|
OCR_WORKERS |
2 | Сколько файлов распознаются одновременно. Зависит от числа процессорных ядер |
BATCH_SIZE |
150 | Сколько заданий попадает в один пакет. Чем больше, тем реже отправляются пакеты, но дольше ожидание первого результата |
POLL_INTERVAL |
10 | Как часто (в секундах) серверная часть проверяет готовность результатов пакета |
Рекомендации по выбору значений:
| Число процессорных ядер | OCR_WORKERS |
BATCH_SIZE |
|---|---|---|
| 2 | 1 | 30 |
| 4 | 2--3 | 50 |
| 8 | 4--6 | 100--150 |
На текущем сервере (8 ядер, 16 ГБ оперативной памяти) используются значения OCR_WORKERS=2 и BATCH_SIZE=150.
Ограничение памяти при обработке¶
Переменная MAX_CONCURRENT_MB (по умолчанию 300) задаёт предел суммарного размера PDF-файлов, одновременно находящихся в оперативной памяти при обработке. Если загрузить несколько десятков крупных файлов одновременно, этот параметр не позволит серверной части израсходовать всю доступную память.
Ключ доступа к Anthropic¶
Переменная ANTHROPIC_API_KEY содержит ключ для обращений к Claude. Она задаётся через файл .env:
# файл /opt/alfa/.env
ANTHROPIC_API_KEY=sk-ant-...
Значение подставляется в docker-compose.yml через синтаксис ${ANTHROPIC_API_KEY:-}.
Адрес пользовательского интерфейса¶
При сборке образа React-приложения нужно указать переменную VITE_API_URL --- она встраивается в собранный код и определяет, куда пользовательский интерфейс будет обращаться за данными:
VITE_API_URL=https://alfainft-api.monroe-tech.ru docker compose build frontend-react
Если адрес серверной части изменится, образ пользовательского интерфейса нужно пересобрать.
Параллелизм обработчика Celery¶
Обработчик Celery запускается с параметром --concurrency=4, что означает четыре параллельных процесса. Каждый процесс выполняет поиск по реестру независимо от остальных.
Увеличение этого значения ускорит поиск по нескольким реестрам одновременно, но потребует больше оперативной памяти (каждый процесс может занимать до 1--1.5 ГБ при большом реестре).
Для изменения нужно отредактировать строку command сервиса celery-worker в docker-compose.yml:
command: celery -A app.celery_app worker --loglevel=info --concurrency=4
Применение изменений¶
После редактирования docker-compose.yml изменения применяются перезапуском соответствующего сервиса:
# Только серверная часть
ssh alfa "cd /opt/alfa && docker compose restart backend"
# Серверная часть и обработчик Celery
ssh alfa "cd /opt/alfa && docker compose restart backend celery-worker"
# Все сервисы
ssh alfa "cd /opt/alfa && docker compose up -d"