Skip to Content

Обновление 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 done

2. Обновите 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 {} + done

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

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, пункты, оформленные стилем заголовка, могли в базу знаний не попасть. Чтобы исправление разбора подействовало на такие документы, загрузите их в базу знаний заново.

Что дальше

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

Last updated on