Skip to Content

Обновление 1.25.10.0 → 1.25.12.2

Значимые изменения в версии 1.25.12.2, которые следует учитывать системному администратору:

  • Изменились имена образов целевой машины (см. таблицу ниже)
  • Изменились файлы конфигураций всех сервисов
  • Добавились модели LLM / Умного OCR
  • Изменилась конфигурация docker compose для сервера

Загрузка образов

Загрузите обновленные образы в соответствии со статьей:

Где используетсяНаименованиеСтарое имя образаНовое имя образаИзменение
Машина сервераUIprimo-rpa/ai-server-uiprimo-rpa/ai-server-uiОбновлен
Машина сервераApiprimo-rpa/ai-server-apiprimo-rpa/ai-server-apiОбновлен
Машина сервераAuthprimo-rpa/ai-server-authprimo-rpa/ai-server-authОбновлен
Машина сервераInferenceprimo-rpa/ai-server-inferenceprimo-rpa/ai-server-inferenceОбновлен
Машина сервераLogsprimo-rpa/ai-server-logsprimo-rpa/ai-server-logsОбновлен
Целевая машинаIDP-сервер (cpu)primo-rpa/ai-server-smartocr-cpuprimo-rpa/ai-server-idp-cpuНовое имя, обновлен
Целевая машинаIDP-сервер (gpu)primo-rpa/ai-server-smartocr-gpuprimo-rpa/ai-server-idp-gpuНовое имя, обновлен
Целевая машинаNLP-серверprimo-rpa/ai-server-logicsprimo-rpa/ai-server-nlpНовое имя, обновлен
Целевая машинаFT-сервер-primo-rpa/ai-server-ftДобавлен
Целевая машинаvLLM (cpu)primo-rpa/ai-server-vllm-cpuprimo-rpa/ai-server-vllm-cpuОбновлен
Целевая машинаvLLM (gpu)primo-rpa/ai-server-vllm-gpuprimo-rpa/ai-server-vllm-gpuОбновлен
Целевая машинаOllamaprimo-rpa/ai-server-ollamaprimo-rpa/ai-server-ollamaОбновлен

Машина сервера

  1. Создайте бэкап БД:
docker exec -it postgres mkdir -p /var/lib/postgresql/data/backups && \ docker exec -it postgres pg_dump -U postgres -d primo-ai-identity -F c -f /var/lib/postgresql/data/backups/identity_$(date +%F).dump && \ docker exec -it postgres pg_dump -U postgres -d primo-ai-application -F c -f /var/lib/postgresql/data/backups/application_$(date +%F).dump && \ docker exec -it postgres pg_dump -U postgres -d primo-ai-filestore -F c -f /var/lib/postgresql/data/backups/filestore_$(date +%F).dump && \ docker exec -it postgres pg_dump -U postgres -d primo-ai-license -F c -f /var/lib/postgresql/data/backups/license_$(date +%F).dump && \ docker exec -it postgres pg_dump -U postgres -d primo-ai-logs -F c -f /var/lib/postgresql/data/backups/logs_$(date +%F).dump && \ docker exec -it postgres pg_dump -U postgres -d primo-ai-inference -F c -f /var/lib/postgresql/data/backups/inference_$(date +%F).dump && \ mkdir -p /app/Primo.AI/Api/backups && \ sudo mv /app/Primo.AI/Api/volumes/pgsql-data/backups/*.dump /app/Primo.AI/Api/backups/.
  1. Обновите образы.

Если есть доступ к nexus.primo-rpa.ru:8000:

names="ai-server-api ai-server-auth ai-server-inference ai-server-logs ai-server-ui" for name in $names; do images+=" primo-rpa/$name" done for image in $images; do docker pull nexus.primo-rpa.ru:8000/$image docker tag nexus.primo-rpa.ru:8000/$image $image docker rmi nexus.primo-rpa.ru:8000/$image done

В противном случае см. статью “Загрузка образов”.

  1. Скорректируйте файл конфигурации /app/Primo.AI/Api/docker-compose.yaml в соответствии с файлом конфигурации docker/server/docker-compose.yaml:
  • уберите проброс портов для всех сервисов, кроме nginx:
# Для всех сервисов закомментируйте блок ports: redis: image: externals/redis:latest container_name: redis restart: always environment: REDIS_PASSWORD: ${REDIS_PASSWORD} TZ: ${TIMEZONE} #ports: # - 6379:6379 networks: - server_ai # Но не для nginx! nginx: image: primo-rpa/ai-server-ui container_name: server_ui restart: always environment: TZ: ${TIMEZONE} ports: - 44392:44392 networks: - server_ai volumes: - ./volumes/nginx/nginx.conf:/etc/nginx/nginx.conf - ./volumes/nginx/:/var/log/nginx
  1. Отредактируйте файл конфигурации /app/Primo.AI/Api/volumes/conf/Api/appsettings.ProdLinux.json:

    • Добавьте параметры повтора запросов в секцию Api:
... "Api": { ... "MaxCallRetry": 3, //Максимальное количество попыток вызова сервиса "MaxTimeoutSecondsRetry": 100 //Максимальный таймаут для попытки ... }, ...
  • Добавьте параметры файнтюнинга в секцию FileUpload:
... "FileUpload": { ... "FinetuningDataSet": { "ReadBufferSize": 10000, "ReadBufferIterationBeforeSave": 50, "Folder": "/app/Primo.AI/Api_FinetuningDataSet", "StoreType": "FileSystem" // Minio, FileSystem }, "FinetuningBalanceDataSet": { "ReadBufferSize": 10000, "ReadBufferIterationBeforeSave": 50, "Folder": "/app/Primo.AI/Api_FinetuningBalanceDataSet", "StoreType": "FileSystem" // Minio, FileSystem }, "FinetuningBalanceArtefact": { "ReadBufferSize": 10000, "ReadBufferIterationBeforeSave": 50, "Folder": "/app/Primo.AI/Api_FinetuningBalanceArtefact", "StoreType": "FileSystem" // Minio, FileSystem } ... }, ...
  • Добавьте параметры WS-соединения:
... "Websocket": { "Route": "/events", "Transport": "WebSockets" //LongPolling, WebSockets } ...
  1. Отредактируйте файл конфигурации /app/Primo.AI/Api/volumes/conf/Inference/appsettings.ProdLinux.json:

    • Добавьте параметры повтора запросов в секцию Api:
... "Api": { ... "MaxCallRetry": 3, //Максимальное количество попыток вызова сервиса "MaxTimeoutSecondsRetry": 100 //Максимальный таймаут для попытки ... }, ...
  • Добавьте параметры WS-соединения:
... "Websocket": { "Route": "/inference-events", "Transport": "WebSockets" //LongPolling, WebSockets } ...
  1. Отредактируйте файл конфигурации /app/Primo.AI/Api/volumes/conf/Logs/appsettings.ProdLinux.json:
  • Добавьте параметры повтора запросов в секцию Api:
... "Api": { ... "MaxCallRetry": 3, //Максимальное количество попыток вызова сервиса "MaxTimeoutSecondsRetry": 100 //Максимальный таймаут для попытки ... }, ...
  1. Отредактируйте файл конфигурации /app/Primo.AI/Api/volumes/conf/Auth/appsettings.ProdLinux.json:
  • Добавьте параметры повтора запросов в секцию Api:
... "Api": { ... "MaxCallRetry": 3, //Максимальное количество попыток вызова сервиса "MaxTimeoutSecondsRetry": 100 //Максимальный таймаут для попытки ... }, ...
  1. Перезапустите компоненты Api:

    docker compose -f /app/Primo.AI/Api/docker-compose.yaml down && \ docker compose -f /app/Primo.AI/Api/docker-compose.yaml up -d
  2. Обновите сервис Api.MachineInfo, скачав файл Api.MachineInfo-linux.zip из каталога distr:

sudo systemctl stop Primo.AI.Api.MachineInfo
sudo unzip -o Api.MachineInfo-linux.zip -x "appsettings*" -d /app/Primo.AI/Api.MachineInfo/
sudo chmod +x /app/Primo.AI/Api.MachineInfo/Primo.AI.Api.MachineInfo
sudo chown primo:primo-ai /app/Primo.AI/Api.MachineInfo/
sudo systemctl start Primo.AI.Api.MachineInfo
  1. Добавьте модели Умного OCR на сервер (каталог data/models/SmartOCR):
  • Модель для проекта УПД:
sudo cp 9a529a4c-2807-41a9-bee9-72a511681000 /app/Primo.AI/Api/volumes/Api_Models/.
  1. Добавьте необходимые модели AI Текст на сервер (каталог data/models/NLP):
  • Базовая модель для Файнтюнинга base-LLM-10-4b-safetensors-base:
sudo cp 98291769-7a84-468f-af2a-5ea4bb02f72a /app/Primo.AI/Api/volumes/Api_Models/.
  • Рассуждающая 30b-модель base-LLM-09-30b-gguf-q4_k_m:
sudo cp 7BE7740D-64BC-4D07-A3B2-5BA5E6815E17 /app/Primo.AI/Api/volumes/Api_Models/.
  • 27b-модель base-LLM-08-27b-gguf-q4_k_m:
sudo cp 1FC223EF-7A13-42DB-8BCB-5FDA5A39779E /app/Primo.AI/Api/volumes/Api_Models/.
  • 32b-модификация 6-й модели с квантованием q4 base-LLM-06-32b-gguf-q4_k_m:
sudo cp 68C2D421-1877-4693-B53F-2E1CA1079DB8 /app/Primo.AI/Api/volumes/Api_Models/.
  • fp16-модификация 6-й модели в формате GGUF base-LLM-06-7b-gguf-fp16:
sudo cp C7A88B7F-BF7E-484B-BCC4-FEA147315C83 /app/Primo.AI/Api/volumes/Api_Models/.

Целевые машины

  1. Отредактируйте файл конфигурации агента /app/Primo.AI/Agent/appsettings.ProdLinux.json
  • Добавьте параметры повтора запросов в секцию Api:
... "Api": { ... "MaxCallRetry": 3, //Максимальное количество попыток вызова сервиса "MaxTimeoutSecondsRetry": 100 //Максимальный таймаут для попытки ... }, ...
  • Добавьте ArtefactBalances в секцию FileStore:
... "FileStore": { ... "ArtefactBalances": "/app/Primo.AI/AgentData/ArtefactBalances" }, ...
  • Добавьте секции IdpProcess и FinetuningProcess. Для IDP-сервера укажите корректное имя образа (primo-rpa/ai-server-idp-cpu / primo-rpa/ai-server-idp-gpu):
... "IdpProcess": { "Cpus": null, // Опционально. Количество ядер CPU, отдаваемое всем контейнерам IDP-сервера. "HealthCheck": { "TimeoutSeconds": 30, // Как долго ждать полного запуска IDP-сервера "PeriodMilliseconds": 500 }, "DockerOptions": { "PortsRangeFrom": 9100, "PortsRangeTo": 9199, "ImageName": "primo-rpa/ai-server-idp-cpu", // или primo-rpa/ai-server-idp-gpu "ContainerNamePrefix": "idp", "Subnet": "agent_agent_ai", "SharedMemorySize": 4 } }, "FinetuningProcess": { "Cpus": null, // Опционально. Количество ядер CPU, отдаваемое всем контейнерам FT-сервера. "HealthCheck": { "TimeoutSeconds": 30, // Как долго ждать полного запуска FT-сервера "PeriodMilliseconds": 500 }, "DockerOptions": { "PortsRangeFrom": 9300, "PortsRangeTo": 9399, "ImageName": "primo-rpa/ai-server-ft:latest", "ContainerNamePrefix": "ft", "Subnet": "agent_agent_ai", "SharedMemorySize": 4 } }, ...
  • Скорректируйте секцию NlpProcess. Переименуйте LogicsDockerCompose в DockerCompose, добавьте OrientationDetectionType:
... "NlpProcess": { "OrientationDetectionType": "Multiprobe", "Cpus": null, // Опционально. Количество ядер CPU, отдаваемое всем контейнерам NLP-сервера. "DockerOptions": { "PortsRangeFrom": 9200, "PortsRangeTo": 9299, "ImageName": "primo-rpa/ai-server-nlp:latest", "ContainerNamePrefix": "nlp", "Subnet": "agent_agent_ai", "SharedMemorySize": 4 }, "HealthCheck": { "TimeoutSeconds": 120, // Как долго ждать полного запуска NLP-сервера "PeriodMilliseconds": 500 }, "Engines": { "Vllm": { "Host": "vllm", "Port": 8000 }, "Ollama": { "Host": "ollama", "Port": 8004 }, "LlamaCppPython": { "Host": "llama", "Port": 8003 } } }, ...
  • Обновите агент, скачав файл Agent-linux.zip из каталога distr:
sudo systemctl stop Primo.AI.Agent
sudo rm /app/Primo.AI/Agent/InMemoryProcessStore.json
sudo unzip -o Agent-linux.zip -x "appsettings*" -d /app/Primo.AI/Agent/
sudo chmod +x /app/Primo.AI/Agent/Primo.AI.Agent
sudo chown -R agent:primo-ai /app/Primo.AI/Agent/
sudo systemctl start Primo.AI.Agent
  1. Отредактируйте файл конфигурации агента LLM-ядра /app/Primo.AI/Agent.NlpEngine/appsettings.ProdLinux.json
  • Добавьте параметры повтора запросов в секцию Api:
... "Api": { ... "MaxCallRetry": 3, //Максимальное количество попыток вызова сервиса "MaxTimeoutSecondsRetry": 100 //Максимальный таймаут для попытки ... }, ...
  • Обновите агент LLM-ядра, скачав файл Agent.NlpEngine-linux.zip из каталога distr:
sudo systemctl stop Primo.AI.Agent.NlpEngine
sudo rm /app/Primo.AI/Agent/InMemoryProcessStore.json
sudo unzip -o Agent.NlpEngine-linux.zip -x "appsettings*" -d /app/Primo.AI/Agent.NlpEngine/
sudo chmod +x /app/Primo.AI/Agent.NlpEngine/Primo.AI.Agent.NlpEngine
sudo chown -R agent:primo-ai /app/Primo.AI/Agent.NlpEngine/
sudo systemctl start Primo.AI.Agent.NlpEngine
  1. Обновите образы (см. “Загрузка образов”).
    • Удалите старые образы IDP/Logics-серверов:
docker rmi primo-rpa/ai-server-smartocr primo-rpa/ai-server-logics
  • Установите образы IDP/NLP/FT-серверов: primo-rpa/ai-server-idp-cpu / primo-rpa/ai-server-idp-gpu, primo-rpa/ai-server-nlp, primo-rpa/ai-server-ft и обновите образы LLM-ядер: primo-rpa/ai-server-vllm-cpu / primo-rpa/ai-server-vllm-gpu, primo-rpa/ai-server-ollama.

Например, для GPU и если есть доступ к nexus.primo-rpa.ru:8000:

images="primo-rpa/ai-server-idp-gpu primo-rpa/ai-server-nlp primo-rpa/ai-server-ollama primo-rpa/ai-server-ft primo-rpa/ai-server-vllm-gpu" for image in $images; do docker pull nexus.primo-rpa.ru:8000/$image docker tag nexus.primo-rpa.ru:8000/$image $image docker rmi nexus.primo-rpa.ru:8000/$image done

В противном случае см. статью “Загрузка образов”.