Обновление 1.25.10.0 → 1.25.12.2
Значимые изменения в версии 1.25.12.2, которые следует учитывать системному администратору:
- Изменились имена образов целевой машины (см. таблицу ниже)
- Изменились файлы конфигураций всех сервисов
- Добавились модели LLM / Умного OCR
- Изменилась конфигурация docker compose для сервера
Загрузка образов
Загрузите обновленные образы в соответствии со статьей:
| Где используется | Наименование | Старое имя образа | Новое имя образа | Изменение |
|---|---|---|---|---|
| Машина сервера | UI | primo-rpa/ai-server-ui | primo-rpa/ai-server-ui | Обновлен |
| Машина сервера | Api | primo-rpa/ai-server-api | primo-rpa/ai-server-api | Обновлен |
| Машина сервера | Auth | primo-rpa/ai-server-auth | primo-rpa/ai-server-auth | Обновлен |
| Машина сервера | Inference | primo-rpa/ai-server-inference | primo-rpa/ai-server-inference | Обновлен |
| Машина сервера | Logs | primo-rpa/ai-server-logs | primo-rpa/ai-server-logs | Обновлен |
| Целевая машина | IDP-сервер (cpu) | primo-rpa/ai-server-smartocr-cpu | primo-rpa/ai-server-idp-cpu | Новое имя, обновлен |
| Целевая машина | IDP-сервер (gpu) | primo-rpa/ai-server-smartocr-gpu | primo-rpa/ai-server-idp-gpu | Новое имя, обновлен |
| Целевая машина | NLP-сервер | primo-rpa/ai-server-logics | primo-rpa/ai-server-nlp | Новое имя, обновлен |
| Целевая машина | FT-сервер | - | primo-rpa/ai-server-ft | Добавлен |
| Целевая машина | vLLM (cpu) | primo-rpa/ai-server-vllm-cpu | primo-rpa/ai-server-vllm-cpu | Обновлен |
| Целевая машина | vLLM (gpu) | primo-rpa/ai-server-vllm-gpu | primo-rpa/ai-server-vllm-gpu | Обновлен |
| Целевая машина | Ollama | primo-rpa/ai-server-ollama | primo-rpa/ai-server-ollama | Обновлен |
Машина сервера
- Создайте бэкап БД:
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/.- Обновите образы.
Если есть доступ к 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В противном случае см. статью “Загрузка образов”.
- Скорректируйте файл конфигурации
/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-
Отредактируйте файл конфигурации
/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
}
...-
Отредактируйте файл конфигурации
/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
}
...- Отредактируйте файл конфигурации
/app/Primo.AI/Api/volumes/conf/Logs/appsettings.ProdLinux.json:
- Добавьте параметры повтора запросов в секцию
Api:
...
"Api": {
...
"MaxCallRetry": 3, //Максимальное количество попыток вызова сервиса
"MaxTimeoutSecondsRetry": 100 //Максимальный таймаут для попытки
...
},
...- Отредактируйте файл конфигурации
/app/Primo.AI/Api/volumes/conf/Auth/appsettings.ProdLinux.json:
- Добавьте параметры повтора запросов в секцию
Api:
...
"Api": {
...
"MaxCallRetry": 3, //Максимальное количество попыток вызова сервиса
"MaxTimeoutSecondsRetry": 100 //Максимальный таймаут для попытки
...
},
...-
Перезапустите компоненты Api:
docker compose -f /app/Primo.AI/Api/docker-compose.yaml down && \ docker compose -f /app/Primo.AI/Api/docker-compose.yaml up -d -
Обновите сервис Api.MachineInfo, скачав файл
Api.MachineInfo-linux.zipиз каталогаdistr:
sudo systemctl stop Primo.AI.Api.MachineInfosudo 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.MachineInfosudo chown primo:primo-ai /app/Primo.AI/Api.MachineInfo/sudo systemctl start Primo.AI.Api.MachineInfo- Добавьте модели
Умного OCRна сервер (каталогdata/models/SmartOCR):
- Модель для проекта
УПД:
sudo cp 9a529a4c-2807-41a9-bee9-72a511681000 /app/Primo.AI/Api/volumes/Api_Models/.- Добавьте необходимые модели
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/.Целевые машины
- Отредактируйте файл конфигурации агента
/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.Agentsudo rm /app/Primo.AI/Agent/InMemoryProcessStore.jsonsudo unzip -o Agent-linux.zip -x "appsettings*" -d /app/Primo.AI/Agent/sudo chmod +x /app/Primo.AI/Agent/Primo.AI.Agentsudo chown -R agent:primo-ai /app/Primo.AI/Agent/sudo systemctl start Primo.AI.Agent- Отредактируйте файл конфигурации агента 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.NlpEnginesudo rm /app/Primo.AI/Agent/InMemoryProcessStore.jsonsudo 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.NlpEnginesudo chown -R agent:primo-ai /app/Primo.AI/Agent.NlpEngine/sudo systemctl start Primo.AI.Agent.NlpEngine- Обновите образы (см. “Загрузка образов”).
- Удалите старые образы 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В противном случае см. статью “Загрузка образов”.