Обновление 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
done2. Скачайте новую модель
| Имя модели | Имя файла | Исполнение |
|---|---|---|
| base-llm-12-35b-safetensors-nfvp4 | 63e56e59-6c96-4fc7-9ecb-afab3d79bb21 | vLLM |
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/
done3. Обновите конфигурацию сервисов
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.UsagePeriod | 10000 | Периодичность сбора данных о нагрузке на целевые машины (мс) |
LlmRunners.StartTimeoutSeconds | 1200 | Таймаут запуска контейнера LLM-движка (сек) |
LlmRunners.StopTimeoutSeconds | 300 | Таймаут остановки контейнера 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.MachineInfo5. Перезапустите компоненты
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 || true5. Перезапустите агента
sudo systemctl restart Primo.AI.AgentЧто дальше
После завершения обновления выполните проверку работоспособности системы.