Обновление 1.26.10.1 → 1.26.10.2
Примечания к релизу: 1.26.10.2
Обязательные пакеты: acl. Необязательные: 7zip и wget — для загрузки образов через архивы. Отсутствующие пакеты можно установить из комплекта поставки согласно статье Установка пакета из комплекта поставки.
Перед началом работ на целевой машине остановите все её процессы через Центр управления (UI).
Значимые изменения, которые следует учитывать системному администратору:
- Обновлены образы Docker с тегом
1.26.10.2: на машине сервера (Центр управления) —ai-server-api,ai-server-auth,ai-server-inference,ai-server-logs,ai-server-machineinfo,ai-server-uiиai-server-langflow-frontend, на целевых машинах —ai-server-nlp,ai-server-idp-cpu,ai-server-idp-gpu,ai-server-rag-gpu,ai-server-ft,ai-server-sdcиai-server-ollama. Образai-server-langflow-backendи сторонние образы не обновлялись и остаются с прежними тегами - Дистрибутивы
Api.MachineInfo-linux.zipиAgent-linux.zip, пресеты агентских систем и параметры конфигурации не менялись - Структура БД не изменилась
- Изменён разбор документов для базы знаний RAG: заголовки, сразу за которыми идёт другой заголовок, больше не теряются. Уже загруженные документы исправление не затрагивает — чтобы оно подействовало на них, загрузите их в базу знаний заново
Машина сервера
1. Обновите образы
Через архивы из Nexus (https://nexus.primo-rpa.ru):
Если 7z не установлен, установите пакет 7zip из репозитория ОС или из комплекта поставки согласно статье Установка пакета из комплекта поставки.
names="ai-server-api ai-server-auth ai-server-inference ai-server-logs ai-server-machineinfo ai-server-ui ai-server-langflow-frontend"
for name in $names; do
wget "https://nexus.primo-rpa.ru/repository/raw/1.26.10/ai-server/docker/images/$name.tar.7z"
7z x $name.tar.7z
docker load -i $name.tar
rm $name.tar.7z $name.tar
doneЧерез Docker-реестр Nexus, если с машины открыт nexus.primo-rpa.ru:8000:
names="ai-server-api ai-server-auth ai-server-inference ai-server-logs ai-server-machineinfo ai-server-ui ai-server-langflow-frontend"
for name in $names; do
docker pull nexus.primo-rpa.ru:8000/primo-rpa/$name:1.26.10.2
done2. Обновите docker-compose.yaml
Замените тег обновлённых образов в файле /app/Primo.AI/Api/docker-compose.yaml:
sudo sed -i -E 's#(image:[[:space:]]+nexus\.primo-rpa\.ru:8000/primo-rpa/ai-server-(api|auth|inference|logs|ui|langflow-frontend)):1\.26\.10\.[01]#\1:1.26.10.2#' /app/Primo.AI/Api/docker-compose.yamlПроверьте результат командой grep image: /app/Primo.AI/Api/docker-compose.yaml: у образа ai-server-langflow-backend остаётся тег 1.26.10.1, у остальных образов ai-server-* — 1.26.10.2.
3. Настройте права контейнеров на тома
Контейнеры Центра управления работают от непривилегированных пользователей: сервисы Api, Auth, Inference и Logs — от UID 1001, nginx (server_ui) и бэкенд Конструктора агентских систем — от UID 1000. Если UID учетной записи primo с ними не совпадает, контейнеры не могут прочитать свои конфигурации и писать в тома. Каталоги, созданные при обновлении через sudo, принадлежат root, и контейнеры не могут в них писать при любом UID primo. Механизм POSIX ACL с наследованием выдаёт контейнерам доступ ко всем текущим и будущим файлам. Команды безопасно выполнять повторно.
Установите пакет acl, если он отсутствует, из репозитория ОС (sudo apt install -y acl) или из комплекта поставки согласно статье Установка пакета из комплекта поставки.
volumes=/app/Primo.AI/Api/volumes
sudo mkdir -p $volumes/Api_Models $volumes/Api_ContextFiles $volumes/Api_LangflowScriptPreset \
$volumes/Api_SmartOcrTestFile $volumes/Api_TestPackage \
$volumes/Logs/Api $volumes/Logs/Api.Auth $volumes/Logs/Api.Inference $volumes/Logs/Api.Logs \
$volumes/langflow_data/logs
for dir in conf Api_Models Api_ContextFiles Api_LangflowScriptPreset Api_SmartOcrTestFile Api_TestPackage Logs; do
sudo setfacl -R -m u:1001:rwX $volumes/$dir
sudo find $volumes/$dir -type d -exec setfacl -d -m u:1001:rwX {} +
done
for dir in nginx langflow_data; do
sudo setfacl -R -m u:1000:rwX $volumes/$dir
sudo find $volumes/$dir -type d -exec setfacl -d -m u:1000:rwX {} +
done4. Перезапустите компоненты
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).
После обновления Центра управления выполните повторный вход в систему.
Целевые машины
1. Обновите образы
Загрузите образы серверов, которые работают на машине. Образ Исполнителя агентских систем (ai-server-langflow-backend) не менялся — загружать его не нужно.
- Вариант загрузки образов 1: скачайте архивы комплекта поставки из Nexus (
https://nexus.primo-rpa.ru):
Если 7z не установлен, установите пакет 7zip из репозитория ОС или из комплекта поставки согласно статье Установка пакета из комплекта поставки.
images=""
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"
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 "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
echo "SDC-сервер (семантический классификатор)? y/n"
read sdc_server
if [ "$sdc_server" = "y" ] || [ "$sdc_server" = "Y" ]; then
images+=" ai-server-sdc"
fi
# Удаляем ведущий пробел
images=$(echo $images | sed 's/^ //')
names=$(echo $images | tr ' ' '\n')
echo "Загружаемые images: $images"
for name in $names; do
echo "Загрузка $name..."
wget "https://nexus.primo-rpa.ru/repository/raw/1.26.10/ai-server/docker/images/$name.tar.7z"
7z x $name.tar.7z
docker load -i $name.tar
rm -f $name.tar.7z $name.tar
done
echo "Готово!"- Вариант загрузки образов 2: через Docker-реестр Nexus.
Нужен доступ с машины к
nexus.primo-rpa.ru:8000. Если открыт толькоhttps://nexus.primo-rpa.ru(порт 443), используйте вариант 1.
#!/bin/bash
images=""
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"
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 "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
echo "SDC-сервер (семантический классификатор)? y/n"
read sdc_server
if [ "$sdc_server" = "y" ] || [ "$sdc_server" = "Y" ]; then
images+=" ai-server-sdc"
fi
# Удаляем ведущий пробел
images=$(echo $images | sed 's/^ //')
names=$(echo $images | tr ' ' '\n')
echo "Загружаемые images: $images"
for name in $names; do
docker pull nexus.primo-rpa.ru:8000/primo-rpa/$name:1.26.10.2
done
echo "Готово!"2. Обновите конфигурацию агента
Поднимите тег у образов серверов в файле конфигурации агента:
sudo sed -i -E 's#(nexus\.primo-rpa\.ru:8000/primo-rpa/ai-server-(nlp|idp-cpu|idp-gpu|rag-gpu|ft|sdc|ollama|llama-cpp-python)):1\.26\.10\.[01]"#\1:1.26.10.2"#' /app/Primo.AI/Agent/appsettings.ProdLinux.jsonПроверьте результат командой grep '"ImageName"' /app/Primo.AI/Agent/appsettings.ProdLinux.json: у образа ai-server-langflow-backend остаётся тег 1.26.10.1, у остальных образов ai-server-* — 1.26.10.2.
3. Перезапустите агента
sudo systemctl restart Primo.AI.AgentПосле обновления
Документы, загруженные в базу знаний RAG до обновления, остаются разобранными по-старому: заголовки, за которыми сразу шёл другой заголовок, и, в документах Word, пункты, оформленные стилем заголовка, могли в базу знаний не попасть. Чтобы исправление разбора подействовало на такие документы, загрузите их в базу знаний заново.
Что дальше
После завершения обновления выполните проверку работоспособности системы.