Skip to Content

Обновление 1.26.6.4 → 1.26.8.0

ℹ️

Примечания к релизу: 1.26.8.0

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

  • Обновлены образы Docker всех сервисов AI Server (ai-server-*) — на машине сервера (Центр управления) и на целевых машинах
  • Обновлены дистрибутивы Api.MachineInfo-linux.zip (машина сервера) и Agent-linux.zip (целевые машины)
  • Образ vLLM заменён: primo-rpa/ai-server-vllm-gpu → внешний образ externals/vllm-openai:v0.26.0
  • Добавлена новая модель base-LLM-12-35b-safetensors-nfvp4 (vLLM) — мультимодальная LLM для обработки изображений и в роли ViT для Умного OCR, поддерживает флаг Рассуждение. Это vLLM-вариант модели base-LLM-12-35b-gguf-q4_k_m
  • Изменены конфигурации сервисов: Api (секция LlmRunners, параметр Agents.UsagePeriod), Inference (секция Orchestrator), агент (переработана секция LlmEngineProcess: Endpoint вместо Url, диапазоны портов, ExposePort)

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

1. Обновите образы

Через архивы:

sudo apt update && sudo apt install 7z names="ai-server-api ai-server-auth ai-server-inference ai-server-logs ai-server-machineinfo ai-server-ui ai-server-langflow-backend ai-server-langflow-frontend" for name in $names; do wget --content-disposition "https://disk.primo-rpa.ru/index.php/s/t9BHBjR6PP06Yax/download?path=%2FRelease%2FAI%20Server%2Fdistr&files=$name.tar.7z" 7z x $name.tar.7z docker load -i $name.tar rm $name.tar.7z $name.tar done

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

names="ai-server-api ai-server-auth ai-server-inference ai-server-logs ai-server-machineinfo ai-server-ui ai-server-langflow-backend ai-server-langflow-frontend" for name in $names; do docker pull nexus.primo-rpa.ru:8005/primo-rpa/$name docker tag nexus.primo-rpa.ru:8005/primo-rpa/$name primo-rpa/$name docker rmi nexus.primo-rpa.ru:8005/primo-rpa/$name done

2. Скачайте новую модель

Имя моделиИмя файлаИсполнение
base-llm-12-35b-safetensors-nfvp463e56e59-6c96-4fc7-9ecb-afab3d79bb21vLLM
filenames="63e56e59-6c96-4fc7-9ecb-afab3d79bb21" for filename in $filenames; do wget --content-disposition "https://disk.primo-rpa.ru/index.php/s/t9BHBjR6PP06Yax/download?path=%2FRelease%2FAI%20Server%2Fdata%2Fmodels%2FNLP&files=$filename" -P /app/Primo.AI/Api/volumes/Api_Models/ done

3. Обновите конфигурацию сервисов

a) Api. В файле /app/Primo.AI/Api/volumes/conf/Api/appsettings.ProdLinux.json добавьте параметр UsagePeriod в секцию Agents:

... "Agents": { ... "StopProcessAfterUnavailablePeriod": 300, "UsagePeriod": 10000 }, ...

и добавьте новую секцию LlmRunners (рядом с секциями Rag, Langflow):

... "LlmRunners": { "StartTimeoutSeconds": 1200, "StopTimeoutSeconds": 300 }, ...
ПараметрПо умолчаниюОписание
Agents.UsagePeriod10000Периодичность сбора данных о нагрузке на целевые машины (мс)
LlmRunners.StartTimeoutSeconds1200Таймаут запуска контейнера LLM-движка (сек)
LlmRunners.StopTimeoutSeconds300Таймаут остановки контейнера LLM-движка (сек)

b) Inference. В файле /app/Primo.AI/Api/volumes/conf/Inference/appsettings.ProdLinux.json добавьте секцию Orchestrator:

... "Orchestrator": { "Login": "aiserver", "Password": "JLWIyl1xZNDVVx8tcVllOg==", "Address": "https://<адрес Центра управления>:44392" }, ...
ℹ️

Укажите в Address реальный внешний адрес Центра управления. Password — зашифрованное значение (утилита шифрования конфигов).

4. Обновите Api.MachineInfo

wget --content-disposition "https://disk.primo-rpa.ru/index.php/s/t9BHBjR6PP06Yax/download?path=%2FRelease%2FAI%20Server%2Fdistr&files=Api.MachineInfo-linux.zip" 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

5. Перезапустите компоненты

docker compose -f /app/Primo.AI/Api/docker-compose.yaml down && \ docker compose -f /app/Primo.AI/Api/docker-compose.yaml up -d

Убедитесь, что Центр управления доступен по HTTPS (порт 44392).

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

⚠️

Перед началом работ на целевой машине остановите все её процессы через Центр управления (UI).

1. Обновите образы

  • Вариант загрузки образов 1: скачайте необходимые архивы из официальной поставки AI Server:
images="" externals="" echo "GPU? y/n" read GPU if [ "$GPU" = "y" ] || [ "$GPU" = "Y" ]; then echo "Агентские системы? y/n" read agent_systems if [ "$agent_systems" = "y" ] || [ "$agent_systems" = "Y" ]; then images+=" ai-server-rag-gpu ai-server-langflow-backend" externals+=" pgvector:pg18" fi echo "FT-сервер? y/n" read ft_server if [ "$ft_server" = "y" ] || [ "$ft_server" = "Y" ]; then images+=" ai-server-ft" fi echo "NLP-сервер? y/n" read nlp_server if [ "$nlp_server" = "y" ] || [ "$nlp_server" = "Y" ]; then images+=" ai-server-nlp" fi echo "Ollama? y/n" read ollama if [ "$ollama" = "y" ] || [ "$ollama" = "Y" ]; then images+=" ai-server-ollama" fi echo "vLLM? y/n" read vllm if [ "$vllm" = "y" ] || [ "$vllm" = "Y" ]; then externals+=" vllm-openai:v0.26.0" fi echo "IDP-сервер? y/n" read idp_server if [ "$idp_server" = "y" ] || [ "$idp_server" = "Y" ]; then images+=" ai-server-idp-gpu" fi else echo "NLP-сервер? y/n" read nlp_server if [ "$nlp_server" = "y" ] || [ "$nlp_server" = "Y" ]; then images+=" ai-server-nlp" fi echo "Ollama? y/n" read ollama if [ "$ollama" = "y" ] || [ "$ollama" = "Y" ]; then images+=" ai-server-ollama" fi echo "IDP-сервер? y/n" read idp_server if [ "$idp_server" = "y" ] || [ "$idp_server" = "Y" ]; then images+=" ai-server-idp-cpu" fi fi # Удаляем ведущий пробел images=$(echo $images | sed 's/^ //') externals=$(echo $externals | sed 's/^ //') names=$(echo $images | tr ' ' '\n') echo "Загружаемые images: $images" echo "Externals: $externals" sudo apt update && sudo apt install -y 7z for name in $names; do echo "Загрузка $name..." wget --content-disposition "https://disk.primo-rpa.ru/index.php/s/t9BHBjR6PP06Yax/download?path=%2FRelease%2FAI%20Server%2Fdistr&files=$name.tar.7z" 7z x $name.tar.7z docker load -i $name.tar rm -f $name.tar.7z $name.tar done for external in $externals; do echo "Загрузка external $external..." filename=$(echo "$external" | sed 's/:/_/g') wget --content-disposition "https://disk.primo-rpa.ru/index.php/s/t9BHBjR6PP06Yax/download?path=%2FRelease%2FAI%20Server%2Fdistr%2Fexternals&files=$filename.tar.7z" 7z x $filename.tar.7z docker load -i $filename.tar rm -f $filename.tar.7z $filename.tar done echo "Готово!"
  • Вариант загрузки образов 2: используя репозиторий Docker: Работает при наличии подключения к nexus.primo-rpa.ru:8005.
#!/bin/bash images="" externals="" echo "GPU? y/n" read GPU if [ "$GPU" = "y" ] || [ "$GPU" = "Y" ]; then echo "Агентские системы? y/n" read agent_systems if [ "$agent_systems" = "y" ] || [ "$agent_systems" = "Y" ]; then images+=" ai-server-rag-gpu ai-server-langflow-backend" externals+=" pgvector:pg18" fi echo "FT-сервер? y/n" read ft_server if [ "$ft_server" = "y" ] || [ "$ft_server" = "Y" ]; then images+=" ai-server-ft" fi echo "NLP-сервер? y/n" read nlp_server if [ "$nlp_server" = "y" ] || [ "$nlp_server" = "Y" ]; then images+=" ai-server-nlp" fi echo "Ollama? y/n" read ollama if [ "$ollama" = "y" ] || [ "$ollama" = "Y" ]; then images+=" ai-server-ollama" fi echo "vLLM? y/n" read vllm if [ "$vllm" = "y" ] || [ "$vllm" = "Y" ]; then externals+=" vllm-openai:v0.26.0" fi echo "IDP-сервер? y/n" read idp_server if [ "$idp_server" = "y" ] || [ "$idp_server" = "Y" ]; then images+=" ai-server-idp-gpu" fi else echo "NLP-сервер? y/n" read nlp_server if [ "$nlp_server" = "y" ] || [ "$nlp_server" = "Y" ]; then images+=" ai-server-nlp" fi echo "Ollama? y/n" read ollama if [ "$ollama" = "y" ] || [ "$ollama" = "Y" ]; then images+=" ai-server-ollama" fi echo "IDP-сервер? y/n" read idp_server if [ "$idp_server" = "y" ] || [ "$idp_server" = "Y" ]; then images+=" ai-server-idp-cpu" fi fi # Удаляем ведущий пробел images=$(echo $images | sed 's/^ //') externals=$(echo $externals | sed 's/^ //') names=$(echo $images | tr ' ' '\n') echo "Загружаемые images: $images" echo "Externals: $externals" for name in $names; do docker pull nexus.primo-rpa.ru:8005/primo-rpa/$name docker tag nexus.primo-rpa.ru:8005/primo-rpa/$name primo-rpa/$name docker rmi nexus.primo-rpa.ru:8005/primo-rpa/$name done for external in $externals; do docker pull nexus.primo-rpa.ru:8005/externals/$external docker tag nexus.primo-rpa.ru:8005/externals/$external externals/$external docker rmi nexus.primo-rpa.ru:8005/externals/$external done echo "Готово!"

2. Обновите файлы агента

wget --content-disposition "https://disk.primo-rpa.ru/index.php/s/t9BHBjR6PP06Yax/download?path=%2FRelease%2FAI%20Server%2Fdistr&files=Agent-linux.zip" sudo systemctl stop Primo.AI.Agent 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/
ℹ️

Флаг -x "appsettings*" сохраняет ваш файл конфигурации агента. Правки конфигурации внесите на следующем шаге, агент запустится на шаге «Перезапустите агента».

3. Обновите конфигурацию агента

В файле /app/Primo.AI/Agent/appsettings.ProdLinux.json переработана секция LlmEngineProcess:

  • проверка доступности движка (HealthCheck) задаётся относительным путём Endpoint вместо полного Url;
  • порт контейнера движка задаётся диапазоном PortsRangeFrom/PortsRangeTo вместо одиночного Port;
  • для Vllm и LlamaCppPython добавлен параметр ExposePort.

Приведите секцию LlmEngineProcess к следующему виду:

"LlmEngineProcess": { "HealthCheck": { "Vllm": { "Endpoint": "/version", "TimeoutSeconds": 600, "PeriodMilliseconds": 500 }, "Ollama": { "Endpoint": "/v1/models", "TimeoutSeconds": 600, "PeriodMilliseconds": 500 }, "LlamaCppPython": { "Endpoint": "/v1/models", "TimeoutSeconds": 600, "PeriodMilliseconds": 500 } }, "EnginesDockerRun": { "Vllm": { "ImageName": "externals/vllm-openai:v0.26.0", "ContainerName": "vllm", "PortsRangeFrom": 8000, "PortsRangeTo": 8019, "Subnet": "agent_agent_ai", "ExposePort": true }, "Ollama": { "ImageName": "primo-rpa/ai-server-ollama", "ContainerName": "ollama", "PortsRangeFrom": 8020, "PortsRangeTo": 8039, "Subnet": "agent_agent_ai", "PostRunCommands": [ "cp {modelFilePath} {blobFilePath}", "ollama create {modelId} -f {modelMetaFilePath}", "ollama run {modelId} \"\"" ], "ExtraEnvs": [ "-e OLLAMA_GO_TEMPLATE=1" ] }, "LlamaCppPython": { "ImageName": "primo-rpa/ai-server-llama-cpp-python", "ContainerName": "llama", "PortsRangeFrom": 8040, "PortsRangeTo": 8059, "Subnet": "agent_agent_ai", "ExposePort": true } } },
⚠️

Если на целевой машине используется vLLM на GPU, укажите в EnginesDockerRun.Vllm.ImageName внешний образ externals/vllm-openai:v0.26.0 (ранее primo-rpa/ai-server-vllm-gpu).

4. Удалите упразднённый образ vLLM

ℹ️

Образ primo-rpa/ai-server-vllm-gpu больше не используется — его заменил внешний образ externals/vllm-openai:v0.26.0.

docker stop $(docker ps -a -q --filter ancestor="primo-rpa/ai-server-vllm-gpu") 2>/dev/null || true docker rm $(docker ps -a -q --filter ancestor="primo-rpa/ai-server-vllm-gpu") 2>/dev/null || true docker rmi primo-rpa/ai-server-vllm-gpu 2>/dev/null || true

5. Перезапустите агента

sudo systemctl restart Primo.AI.Agent

Что дальше

После завершения обновления выполните проверку работоспособности системы.

Last updated on