Skip to Content

Обновление 1.25.12.4 → 1.26.10.1

ℹ️

Примечания к релизам: 1.26.3.1 · 1.26.3.2 · 1.26.3.3 · 1.26.3.4 · 1.26.6.0 · 1.26.6.1 · 1.26.6.2 · 1.26.6.3 · 1.26.6.4 · 1.26.8.0 · 1.26.8.1 · 1.26.8.2 · 1.26.8.3 · 1.26.8.4 · 1.26.10.0 · 1.26.10.1

ℹ️

Обязательные пакеты: unzip, acl. Необязательные: 7zip и wget — для загрузки образов через архивы. Отсутствующие пакеты можно установить из комплекта поставки согласно статье Установка пакета из комплекта поставки.

⚠️

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

Данная инструкция позволяет обновиться с версии 1.25.12.4 напрямую до версии 1.26.10.1, минуя промежуточные версии 1.26.3.1, 1.26.3.2, 1.26.3.3, 1.26.3.4, 1.26.6.0, 1.26.6.1, 1.26.6.2, 1.26.6.3, 1.26.6.4, 1.26.8.0, 1.26.8.1, 1.26.8.2, 1.26.8.3 и 1.26.8.4.

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

  • Уничтожен Agent.NlpEngine (его функционал переехал в Agent)
  • Изменились файлы конфигураций всех сервисов
  • Изменилась конфигурация docker compose для сервера
  • Изменилось содержимое .env-файла для сервера
  • Изменилось содержимое nginx.conf для сервера
  • Обновлена модель Умного OCR
  • Добавлены модели NLP, RAG
  • Обновились все образы (включая IDP-сервер)
  • Упразднён образ ai-server-igx (функционал перенесён в ai-server-langflow-backend)
  • Упразднён образ ai-server-vllm-cpu
  • Образ vLLM заменён: primo-rpa/ai-server-vllm-gpu → внешний образ nexus.primo-rpa.ru:8000/vllm/vllm-openai:v0.30.0
  • Добавлена новая модель base-LLM-12-35b-safetensors-nfvp4 (vLLM)
  • Изменены конфигурации сервисов: Api (LlmRunners, Agents.UsagePeriod), Inference (Orchestrator), агент (переработана секция LlmEngineProcess: Endpoint вместо Url, диапазоны портов, ExposePort)
  • Добавлен компонент “Агентские системы”
  • Добавлен новый параметр конфигурации Inference — UnprocessedExpirationSeconds (очистка устаревших необработанных запросов)
  • Добавлены параметры *PrefetchCount в секцию RabbitMQ конфига Inference (ограничение одновременных запросов)
  • Добавлена секция LangflowScriptPreset в конфиг Api (хранилище пресетов агентских систем)
  • Добавлены пресеты конвейеров агентских систем
  • Добавлены новые модели: base-LLM-11-30b, base-LLM-12-35b, base-LLM-13-26b, ft-base-0.6b-fp16, ft-base-2b-fp16
  • Удалены модели: base-LLM-01-*, base-LLM-06-32b-gguf-q4_k_m, base-LLM-10-4b-safetensors-base
  • Обновлен дистрибутив агента на Целевой машине
  • TLS-сертификаты больше не встроены в образ ai-server-ui — теперь монтируются через volume в docker-compose.yaml
  • Образ PostgreSQL обновлён с postgres:17.6 на postgres:17.10-alpine для устранения уязвимостей — после смены образа индексы БД нужно перестроить, см. шаг «Перезапустите компоненты» на машине сервера
  • Обновлён образ RabbitMQ: 3.10.7-management → 4.2.8-management-alpine (устранение уязвимостей, Alpine-база)
  • Обновлён образ Redis: redis:latest → redis:7.4-alpine (устранение уязвимостей, Alpine-база)
  • Образ Ollama (ai-server-ollama) теперь запускается от непривилегированного пользователя (UID 1001)
  • Изменена структура БД: миграции выполняются автоматически при запуске, одна из них удаляет столбец LlmRunnerId из таблицы процессов инференса. Перед обновлением обязательно создайте бэкап БД
  • Добавлен SDC-сервер (семантический классификатор документов) — новый образ целевых машин ai-server-sdc и новая секция DocClassifyProcess в конфигурации агента
  • Образы Docker теперь указываются полным путём в реестре Nexus: nexus.primo-rpa.ru:8000/primo-rpa/<образ>:<версия> для образов AI Server (1.26.10.1 — у ai-server-api, ai-server-auth, ai-server-inference, ai-server-logs, ai-server-machineinfo, ai-server-ui, ai-server-langflow-backend и ai-server-rag-gpu, у остальных — 1.26.10.0) и путь как на Docker Hub для сторонних: nexus.primo-rpa.ru:8000/library/<образ>:<тег> для официальных образов (PostgreSQL, Redis, RabbitMQ), для остальных — пространство издателя (vllm/vllm-openai, pgvector/pgvector). Имена образов нужно заменить в docker-compose.yaml на машине сервера и в конфигурации агента на целевых машинах. Образ vLLM обновлён до nexus.primo-rpa.ru:8000/vllm/vllm-openai:v0.30.0
  • В конфигурации агента у vLLM добавлен параметр AdditionalArgs со значением --max-num-seqs 128. Без него гибридные модели с Mamba-слоями (Qwen3.6 и др.) на vLLM не запускаются
  • Добавлены модели: эмбеддинг-модель qwen3vl-embed-2B и модель семантического классификатора для SDC, базовые LLM base-LLM-12-35b-safetensors-4bit, base-LLM-14-27b-safetensors-4bit (vLLM) и base-LLM-14-27b-gguf-q4_k_m (Ollama)
  • В docker-compose.yaml у сервиса Api добавлены тома Api_SmartOcrTestFile и Api_TestPackage — в них хранятся тестовые файлы Умного OCR и тестовые пакеты
  • В конфигурации Api добавлены необязательные секции ExternalS3 (внешнее S3-хранилище заказчика), ExternalModelRegistries (загрузка базовых моделей из Hugging Face и Ollama) и параметр Agents.ManagementEnabled (страница управления целевой машиной)
  • В конфигурации агента добавлены параметр Lfx.SuperUserPassword и том LangfuseData для трассировки агентских систем
  • Из конфигураций сервисов и агента удалены неиспользуемые параметры, например RabbitMQ.ConnectionWithRetry, SessionLifetimeTailMin, FileDownload, ProcessStore. Оставлять их в конфигурации можно: они больше не читаются
  • Страница чата агентской системы теперь требует входа в AI Server
  • В конфигурации агента для Ollama добавлен параметр OLLAMA_IMAGE_MIN_TOKENS=32 в ExtraEnvs — минимальный порог токенов для обработки изображений
  • Добавлены параметры модели Обработка изображений и Рассуждение для внешней LLM
  • Изменён формат конвейеров пакетной обработки: правила обработки полей задаются только у шага постобработки, в условии hasField вместо hasText используется valueState, список or стал альтернативой собственным проверкам условия
⚠️

Конвейеры пакетной обработки нужно поправить вручную. Старый конвейер сохранится без ошибки — неизвестные поля при сохранении игнорируются, — но правила, оставшиеся на шагах Умного OCR и NLP, применяться не будут, а условия начнут срабатывать иначе. Что именно поправить — в статье Обновление 1.26.8.3 → 1.26.10.1, раздел «Конвейеры пакетной обработки».

⚠️

Прежние сессии чатов агентских систем пропадут из списков пользователей. Сессии теперь хранятся на сервере и привязаны к пользователю, который их создал. Для сессий, созданных до обновления, пользователь не известен, поэтому в списке сессий они не отображаются.

Загрузка образов

Загрузите обновленные образы в соответствии со статьями для сервера и целевых машин

Где используетсяНаименованиеСтарое имя образаНовое имя образаИзменение
Машина сервераUIprimo-rpa/ai-server-uiprimo-rpa/ai-server-uiОбновлен
Машина сервераApiprimo-rpa/ai-server-apiprimo-rpa/ai-server-apiОбновлен
Машина сервераAuthprimo-rpa/ai-server-authprimo-rpa/ai-server-authОбновлен
Машина сервераInferenceprimo-rpa/ai-server-inferenceprimo-rpa/ai-server-inferenceОбновлен
Машина сервераLogsprimo-rpa/ai-server-logsprimo-rpa/ai-server-logsОбновлен
Машина сервераКонструктор агентских систем (Backend)-primo-rpa/ai-server-langflow-backendДобавлен
Машина сервераКонструктор агентских систем (UI)-primo-rpa/ai-server-langflow-frontendДобавлен
Целевая машинаIDP-сервер (cpu)primo-rpa/ai-server-smartocr-cpuprimo-rpa/ai-server-idp-cpuОбновлен
Целевая машинаIDP-сервер (gpu)primo-rpa/ai-server-smartocr-gpuprimo-rpa/ai-server-idp-gpuОбновлен
Целевая машинаNLP-серверprimo-rpa/ai-server-logicsprimo-rpa/ai-server-nlpОбновлен
Целевая машинаFT-сервер-primo-rpa/ai-server-ftОбновлен
Целевая машинаvLLM (gpu)primo-rpa/ai-server-vllm-gpunexus.primo-rpa.ru:8000/vllm/vllm-openai:v0.30.0Заменён
Целевая машинаOllamaprimo-rpa/ai-server-ollamaprimo-rpa/ai-server-ollamaОбновлен
Целевая машинаRAG-сервер-primo-rpa/ai-server-rag-gpuДобавлен
Целевая машинаPostgreSQL + pgVector-nexus.primo-rpa.ru:8000/pgvector/pgvector:pg18Добавлен
Целевая машинаИсполнитель агентских систем (Backend)-primo-rpa/ai-server-langflow-backendДобавлен
Целевая машинаSDC-сервер-primo-rpa/ai-server-sdcДобавлен

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

Перед обновлением проверьте, что у пользователя primo, от имени которого работает Api.MachineInfo, есть домашний каталог. Если каталога нет, команда его создаст:

h=$(getent passwd primo | cut -d: -f6); [ -d "$h" ] && echo "Каталог $h уже есть" || { sudo install -d -m 700 -o primo -g "$(id -gn primo)" "$h" && echo "Создан $h"; }

1. Создайте бэкап БД:

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/.

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

Через архивы из 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-backend ai-server-langflow-frontend" externals="library/redis:7.4-alpine library/rabbitmq:4.2.8-management-alpine library/postgres:17.10-alpine" 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 done for external in $externals; do filename=$(echo "${external##*/}" | sed 's/:/_/g') wget "https://nexus.primo-rpa.ru/repository/raw/data/libraries/docker/images/$filename.tar.7z" 7z x $filename.tar.7z docker load -i $filename.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-backend ai-server-langflow-frontend" externals="library/redis:7.4-alpine library/rabbitmq:4.2.8-management-alpine library/postgres:17.10-alpine" for name in $names; do tag=1.26.10.1 [ "$name" = "ai-server-langflow-frontend" ] && tag=1.26.10.0 # Langflow Frontend в 1.26.10.1 не обновлялся docker pull nexus.primo-rpa.ru:8000/primo-rpa/$name:$tag done for external in $externals; do docker pull nexus.primo-rpa.ru:8000/$external done

3. Подготовьте Центр управления к запуску

  1. Скачайте актуальный файл  конфигурации docker compose и замените содержимое /app/Primo.AI/Api/docker-compose.yaml, учитывая нестандартные параметры конфигурации.

    ℹ️

    Выполните шаг вручную.

  2. Скачайте актуальный файл  с переменными окружения для docker compose и замените содержимое /app/Primo.AI/Api/.env, учитывая нестандартные параметры конфигурации. Браузер может сохранить файл как env.txt или .env.txt — переименуйте его в .env. Скачать файл под нужным именем можно командой wget "https://nexus.primo-rpa.ru/repository/raw/1.26.10/ai-server/docker/.env" -O .env.new.

ℹ️

Выполните шаг вручную.

В т.ч. укажите реальный внешний эндпоинт AI Server:

sudo sed -i 's|AI_SERVER_BASE_URL=https://primo-rpa-ai-server:44392/|AI_SERVER_BASE_URL=https://XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:44392/|g' /app/Primo.AI/Api/.env

В т.ч. укажите реальный внешний эндпоинт Конструктора агентских систем:

sudo sed -i 's|BACKEND_URL=https://primo-rpa-ai-server:44392/langflow/|BACKEND_URL=https://XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:44392/langflow/|g' /app/Primo.AI/Api/.env
  1. Скачайте актуальный файл  с переменными окружения для docker compose и замените содержимое /app/Primo.AI/Api/volumes/nginx/nginx.conf, учитывая нестандартные параметры конфигурации.

    ℹ️

    Выполните шаг вручную.

  2. Подготовьте Конструктор агенстких систем к запуску:

sudo mkdir /app/Primo.AI/Api/volumes/langflow_data/ \ /app/Primo.AI/Api/volumes/lffe/ && \ sudo touch /app/Primo.AI/Api/volumes/langflow_data/langflow.db \ /app/Primo.AI/Api/volumes/langflow_data/langflow.db-shm \ /app/Primo.AI/Api/volumes/langflow_data/langflow.db-wal && \ sudo chmod -R 777 /app/Primo.AI/Api/volumes/langflow_data /app/Primo.AI/Api/volumes/lffe

Создайте каталоги для тестовых файлов Умного OCR и тестовых пакетов — тома Api_SmartOcrTestFile и Api_TestPackage сервиса Api в docker-compose.yaml:

sudo mkdir -p /app/Primo.AI/Api/volumes/Api_SmartOcrTestFile /app/Primo.AI/Api/volumes/Api_TestPackage
  1. Извлеките TLS-сертификаты из текущего образа ai-server-ui:

    ⚠️

    Начиная с версии 1.26.6.2 сертификаты не включены в образ ai-server-ui. Необходимо сохранить сертификаты из работающего контейнера и подключить их через volume.

sudo mkdir -p /app/Primo.AI/Api/volumes/nginx/ssl docker cp server_ui:/etc/nginx/cert1.crt /app/Primo.AI/Api/volumes/nginx/ssl/cert1.crt docker cp server_ui:/etc/nginx/cert1.rsa /app/Primo.AI/Api/volumes/nginx/ssl/cert1.rsa sudo chmod 644 /app/Primo.AI/Api/volumes/nginx/ssl/cert1.crt sudo chmod 600 /app/Primo.AI/Api/volumes/nginx/ssl/cert1.rsa
ℹ️

Если контейнер server_ui уже остановлен или сертификаты недоступны, сгенерируйте новые по инструкции.

  1. Отредактируйте файл конфигурации /app/Primo.AI/Api/volumes/conf/Api/appsettings.ProdLinux.json:
    • Укажите адрес Конструктора агентских систем в Api > LangflowConstructor:
sudo sed -i 's|"ApiBaseUrl": "https://192.168.1.2:44392"|"ApiBaseUrl": "https://XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:44392"|g' /app/Primo.AI/Api/volumes/conf/Api/appsettings.ProdLinux.json
  • Добавьте параметры запуска компонентов Агентских систем:
... "Rag": { "StartTimeoutSeconds": 180, "StopTimeoutSeconds": 10 }, "Langflow": { "StartTimeoutSeconds": 180, "StopTimeoutSeconds": 10 }, ...
  • Добавьте секцию LangflowScriptPreset в FileUpload (хранилище пресетов агентских систем):
... "FileUpload": { ... "LangflowScriptPreset": { "ReadBufferSize": 10000, "ReadBufferIterationBeforeSave": 50, "Folder": "/app/Primo.AI/Api_LangflowScriptPreset", "StoreType": "FileSystem" }, ... }, ...
  • Добавьте параметр UsagePeriod в секцию Agents и новую секцию LlmRunners:
... "Agents": { ... "StopProcessAfterUnavailablePeriod": 300, "UsagePeriod": 10000 }, ... "LlmRunners": { "StartTimeoutSeconds": 1200, "StopTimeoutSeconds": 300 }, ...
  • Параметры Api, добавленные в 1.26.10.0, необязательны: если их нет в файле /app/Primo.AI/Api/volumes/conf/Api/appsettings.ProdLinux.json, используются значения по умолчанию. Добавляйте секции, только если нужно изменить поведение.

a) Управление целевой машиной. По умолчанию в меню целевой машины доступен пункт Управление. На странице управления можно менять настройки агента, завершать процессы, останавливать контейнеры и очищать кэш моделей. Чтобы скрыть этот пункт, добавьте в секцию Agents параметр ManagementEnabled:

... "Agents": { ... "ManagementEnabled": false }, ...

b) Внешнее S3-хранилище. Если PDF-документы пакетной обработки и файлы запросов нужно сохранять в S3-хранилище заказчика, добавьте секцию ExternalS3:

... "ExternalS3": { "Endpoint": "", "AccessKey": "", "SecretKey": "", "SSL": true, "ForcePathStyle": false, "StoreType": "Minio", // Minio, AmazonS3 "PackageFiles": { "Enabled": false, "Path": "" }, "RequestFiles": { "Enabled": false, "Path": "" } }, ...
ℹ️

SecretKey указывается в зашифрованном виде (утилита шифрования конфигов).

c) Загрузка базовых моделей из Hugging Face и Ollama. Базовую модель теперь можно добавить из Hugging Face или из реестра Ollama прямо в интерфейсе. Для этого машине сервера нужен доступ к huggingface.co, registry.ollama.ai и ollama.com. Параметры задаются секцией ExternalModelRegistries: добавьте её, если нужно указать токен Hugging Face или изменить таймауты.

... "ExternalModelRegistries": { "DownloadTimeoutMinutes": 240, "ConnectivityTimeoutSeconds": 10, "IgnoreCertificateErrors": true, "TempFolder": "", "HuggingFace": { "ApiUrl": "https://huggingface.co/api", "FilesUrl": "https://huggingface.co", "Token": "" }, "Ollama": { "RegistryUrl": "https://registry.ollama.ai", "LibraryUrl": "https://ollama.com/library" } }, ...
ПараметрПо умолчаниюОписание
DownloadTimeoutMinutes240Максимальное время загрузки модели (мин)
ConnectivityTimeoutSeconds10Таймаут проверки связи с реестром (сек)
IgnoreCertificateErrorstrueНе проверять сертификаты реестров
TempFolderпустоКаталог для временных файлов; пусто — используется FileUpload.Temp
HuggingFace.TokenпустоТокен Hugging Face для закрытых моделей
  1. Отредактируйте файл конфигурации /app/Primo.AI/Api/volumes/conf/Auth/appsettings.ProdLinux.json:
  • Скорректируйте время жизни токенов:
... "Security": { "Jwt": { ... "SessionLifetimeMin": 10, // access токен: 10 минут "SessionLifetimeTailMin": 60, "SessionRefreshTokenLifetimeMin": 600 // refresh токен: 10 часов }, ... }, ...
  1. Отредактируйте файл конфигурации /app/Primo.AI/Api/volumes/conf/Inference/appsettings.ProdLinux.json:
  • Добавьте ключ ServerLoad:
... "ServerLoad": { "PeriodMilliseconds": 1000, "Cpu": { "DegradationLimitPercents": 95, "DegradationLimitElapsedSeconds": 30 } }, ...
  • Добавьте секцию ClearRequestsService (очистка устаревших запросов):
... "ClearRequestsService": { "DefaultExpirationSeconds": 3600, "UnprocessedExpirationSeconds": 86400 }, ...
ПараметрПо умолчаниюОписание
DefaultExpirationSeconds3600Время хранения обработанного запроса (сек). По умолчанию 1 час
UnprocessedExpirationSeconds86400Время хранения необработанного запроса (сек). По умолчанию 24 часа
  • Добавьте параметры PrefetchCount в секцию RabbitMQ:
... "RabbitMQ": { ... "AgentSystemRequestEventPrefetchCount": 10, "SmartOcrRequestEventPrefetchCount": 10, "NlpRequestEventPrefetchCount": 10, "PackageRequestEventPrefetchCount": 10, "PdfGeneratingEventPrefetchCount": 10 }, ...
ПараметрПо умолчаниюОписание
AgentSystemRequestEventPrefetchCount10Кол-во одновременных запросов агентских систем в обработке
SmartOcrRequestEventPrefetchCount10Кол-во одновременных запросов Умного OCR в обработке
NlpRequestEventPrefetchCount10Кол-во одновременных запросов NLP в обработке
PackageRequestEventPrefetchCount10Кол-во одновременных запросов пакетной обработки
PdfGeneratingEventPrefetchCount10Кол-во одновременных запросов генерации PDF

Уменьшите значения PrefetchCount при нехватке ресурсов на сервере. Это ограничит количество запросов, одновременно обрабатываемых сервисом Inference.

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

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

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

⚠️

Образ PostgreSQL сменился с postgres:17.6 (на базе Debian) на postgres:17.10-alpine (на базе Alpine). В них разные правила сравнения строк, поэтому индексы по текстовым полям, построенные прежним образом, нужно перестроить до запуска остальных компонентов. Без этого уникальные индексы перестают находить существующие записи: в таблицах появляются дубли, и Api может не запуститься с ошибкой An item with the same key has already been added. Key: LastExecution.

Остановите компоненты и запустите только PostgreSQL на новом образе:

docker compose -f /app/Primo.AI/Api/docker-compose.yaml down && \ docker compose -f /app/Primo.AI/Api/docker-compose.yaml up -d postgres && \ until docker exec postgres pg_isready -U postgres; do sleep 2; done

Удалите служебную схему hangfire в БД primo-ai-application. В ней хранится расписание фоновых задач Api: при запуске Api создаст схему заново и зарегистрирует задачи.

docker exec -it postgres psql -U postgres -d primo-ai-application -c "DROP SCHEMA IF EXISTS hangfire CASCADE;"

Перестройте индексы во всех БД:

docker exec postgres reindexdb -U postgres --all
⚠️

Если reindexdb завершилась ошибкой could not create unique index ... is duplicated, в таблице уже есть дубли. Не запускайте компоненты и обратитесь в техническую поддержку, приложив текст ошибки.

Запустите компоненты:

docker compose -f /app/Primo.AI/Api/docker-compose.yaml up -d
ℹ️

Если обновление уже выполнено без перестройки индексов и Api не запускается с ошибкой Key: LastExecution, выполните команды этого шага: остановите компоненты, удалите схему hangfire, перестройте индексы и запустите компоненты.

ℹ️

После обновления Центра управления выполните повторный вход в систему.

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

  1. Обновите сервис Api.MachineInfo, скачав файл Api.MachineInfo-linux.zip из каталога distr:
wget "https://nexus.primo-rpa.ru/repository/raw/1.26.10/ai-server/linux/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

6. Обновите модель УПД:

wget "https://nexus.primo-rpa.ru/repository/raw/data/ai-server/models/9a529a4c-2807-41a9-bee9-72a511681000" -O /app/Primo.AI/Api/volumes/Api_Models/9a529a4c-2807-41a9-bee9-72a511681000

7. Скачайте новые LLM для NLP:

Имя моделиИмя файлаИсполнение
base-llm-06-7b-gguf-fp16c7a88b7f-bf7e-484b-bcc4-fea147315c83Ollama
base-llm-11-9b-safetensors-fp16610d3c1c-6674-460e-8652-fc9f597aa370vLLM
base-llm-11-9b-gguf-q4_k_m6383fa95-74fa-4a1f-8b05-3e57e0a37f21Ollama
base-llm-11-9b-safetensors-fp8ca4a4832-54e3-4601-bcf8-c5672ee6808avLLM
base-llm-11-30b-gguf-q4_k_me8dfc900-e183-4647-80b0-a97f242a7dbaOllama
base-llm-12-35b-gguf-q4_k_m3377b494-f686-4cef-9db1-4ffb3164cc9cOllama
base-llm-12-35b-safetensors-nfvp463e56e59-6c96-4fc7-9ecb-afab3d79bb21vLLM
base-llm-13-26b-gguf-q4_k_m1442b32b-aaee-4139-88c1-a7f313d11a09Ollama
base-llm-12-35b-safetensors-4bit471c79fa-17b3-46a6-a42f-b93eef012012vLLM
base-llm-14-27b-safetensors-4bit312244b9-9d2e-4553-8bd1-b135e739af13vLLM
base-llm-14-27b-gguf-q4_k_m40d9afa6-de73-46e6-a85d-8816d54cafb7Ollama
ft-base-0.6b-fp166dd7fb3c-d58e-427c-8845-39964df50bc5vLLM (FT)
ft-base-2b-fp16ce8f072a-b6dc-4c9f-ae4e-abe826da3aa0vLLM (FT)
filenames="c7a88b7f-bf7e-484b-bcc4-fea147315c83 \ 610d3c1c-6674-460e-8652-fc9f597aa370 \ 6383fa95-74fa-4a1f-8b05-3e57e0a37f21 \ ca4a4832-54e3-4601-bcf8-c5672ee6808a \ e8dfc900-e183-4647-80b0-a97f242a7dba \ 3377b494-f686-4cef-9db1-4ffb3164cc9c \ 63e56e59-6c96-4fc7-9ecb-afab3d79bb21 \ 1442b32b-aaee-4139-88c1-a7f313d11a09 \ 471c79fa-17b3-46a6-a42f-b93eef012012 \ 312244b9-9d2e-4553-8bd1-b135e739af13 \ 40d9afa6-de73-46e6-a85d-8816d54cafb7 \ 6dd7fb3c-d58e-427c-8845-39964df50bc5 \ ce8f072a-b6dc-4c9f-ae4e-abe826da3aa0" cd /app/Primo.AI/Api/volumes/Api_Models/ for filename in $filenames; do wget "https://nexus.primo-rpa.ru/repository/raw/data/ai-server/models/$filename" -O /app/Primo.AI/Api/volumes/Api_Models/$filename done

8. Скачайте модели SDC-сервера:

⚠️

Файлы моделей, пресетов и контекста не имеют расширения, и AI Server ищет их по точному имени. Скачивайте их командами из статьи. Браузер добавляет к имени расширение по типу содержимого (например, .txt) — если файл скачан браузером, удалите это расширение.

Модели SDC-сервера (нужны для проектов Классификация (семантическая)):

Имя моделиИмя файла
qwen3vl-embed-2B2263ec5f-b843-422f-b9e0-78e98549e738
Классификатор (семантический)8502296a-9608-4672-bd7a-05acb32b50ef
wget "https://nexus.primo-rpa.ru/repository/raw/data/ai-server/models/2263ec5f-b843-422f-b9e0-78e98549e738" -O /app/Primo.AI/Api/volumes/Api_Models/2263ec5f-b843-422f-b9e0-78e98549e738 wget "https://nexus.primo-rpa.ru/repository/raw/data/ai-server/models/8502296a-9608-4672-bd7a-05acb32b50ef" -O /app/Primo.AI/Api/volumes/Api_Models/8502296a-9608-4672-bd7a-05acb32b50ef

9. Скачайте новые LLM для RAG-сервера:

ℹ️

Только при наличии GPU и для проектов “Агентская система”.

Имя моделиИмя файла
embeddinggemma-300m9fbc250f-fb1d-43c0-9af5-957a7f8c5aa7
jina-rerank-v33cf2d1e8-e15b-4633-933f-556823ada8ce
qwen3-embed-0.6b18851aa6-af5f-4569-8084-f7db6b820e32
qwen3-embed-4b7316ea9c-eb37-40fd-ba09-551d5568c60e
qwen3-rerank-0.6b91b8ef72-f954-4409-8b7b-26c7a9bedefe
qwen3-rerank-4ba55e5fe7-6545-4777-9e75-7eae472c3ff0
filenames="9fbc250f-fb1d-43c0-9af5-957a7f8c5aa7 \ 3cf2d1e8-e15b-4633-933f-556823ada8ce \ 18851aa6-af5f-4569-8084-f7db6b820e32 \ 7316ea9c-eb37-40fd-ba09-551d5568c60e \ 91b8ef72-f954-4409-8b7b-26c7a9bedefe \ a55e5fe7-6545-4777-9e75-7eae472c3ff0" cd /app/Primo.AI/Api/volumes/Api_Models/ for filename in $filenames; do wget "https://nexus.primo-rpa.ru/repository/raw/data/ai-server/models/$filename" -O /app/Primo.AI/Api/volumes/Api_Models/$filename done

10. Скачайте пресеты конвейеров агентских систем:

sudo mkdir -p /app/Primo.AI/Api/volumes/Api_LangflowScriptPreset/ filenames="e18c953c-6cbf-4f43-9267-76796bea018c \ fd652603-1410-49cd-a3ab-6323256753fa \ b933462a-b85e-4267-b5df-45a78f9453a4 \ 3bc6dd44-226f-4a61-87e6-475e4c0e2dd0" for filename in $filenames; do wget "https://nexus.primo-rpa.ru/repository/raw/1.26.10/ai-server/data/agsys-presets/$filename" -O /app/Primo.AI/Api/volumes/Api_LangflowScriptPreset/$filename done

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

Перед обновлением проверьте, что у пользователя agent, от имени которого работает агент, есть домашний каталог. Если каталога нет, команда его создаст:

h=$(getent passwd agent | cut -d: -f6); [ -d "$h" ] && echo "Каталог $h уже есть" || { sudo install -d -m 700 -o agent -g "$(id -gn agent)" "$h" && echo "Создан $h"; }

Уничтожение Agent.NlpEngine

  1. Уничтожьте службу Primo.AI.Agent.NlpEngine.service:
sudo systemctl stop Primo.AI.Agent.NlpEngine sudo systemctl disable Primo.AI.Agent.NlpEngine sudo rm /etc/systemd/system/Primo.AI.Agent.NlpEngine.service sudo systemctl daemon-reload
  1. Удалите сервис Agent.NlpEngine:
sudo mkdir -p /app/Primo.AI/backups sudo zip -r /app/Primo.AI/backups/Agent.NlpEngine.zip /app/Primo.AI/Agent.NlpEngine sudo rm -r /app/Primo.AI/Agent.NlpEngine
  1. Перенесите модели:
sudo mv /app/Primo.AI/Agent.NlpEngineData/ModelTemplates/* /app/Primo.AI/AgentData/ModelTemplates/.

Агент

  1. Актуализируйте файл конфигурации:
  • Добавьте таймаут ожидания ответа при инференсе моделей:
... "Api": { ... "InferenceTimeoutSeconds": 600 // Таймаут запроса к LLM / IDP-серверу. Если null: 5 минут }, ...
  • Удалите блок NlpProcess > Engines.
  • Добавьте блок 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": "nexus.primo-rpa.ru:8000/vllm/vllm-openai:v0.30.0", "ContainerName": "vllm", "PortsRangeFrom": 8000, "PortsRangeTo": 8019, "Subnet": "agent_agent_ai", "ExposePort": true, "AdditionalArgs": [ "--max-num-seqs 128" ] }, "Ollama": { "ImageName": "nexus.primo-rpa.ru:8000/primo-rpa/ai-server-ollama:1.26.10.0", "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", "-e OLLAMA_IMAGE_MIN_TOKENS=32" ] }, "LlamaCppPython": { "ImageName": "nexus.primo-rpa.ru:8000/primo-rpa/ai-server-llama-cpp-python:1.26.10.0", "ContainerName": "llama", "PortsRangeFrom": 8040, "PortsRangeTo": 8059, "Subnet": "agent_agent_ai", "ExposePort": true } } }, ...
  • Добавьте блок Rag:
... "Rag": { "Cpus": null, "HealthCheck": { "TimeoutSeconds": 90, "PeriodMilliseconds": 500 }, "DockerOptions": { "PortsRangeFrom": 9400, "PortsRangeTo": 9499, "ImageName": "nexus.primo-rpa.ru:8000/primo-rpa/ai-server-rag-gpu:1.26.10.1", "ContainerNamePrefix": "rag", "Subnet": "agent_agent_ai", "SharedMemorySize": 2 } }, ...
  • Добавьте блок RagPostgres:
... "RagPostgres": { "DbName": "rag_db", "Password": "postgres", "User": "postgres", "Cpus": null, "HealthCheck": { "TimeoutSeconds": 30, "PeriodMilliseconds": 500 }, "DockerOptions": { "PortsRangeFrom": 5433, "PortsRangeTo": 5440, "ImageName": "nexus.primo-rpa.ru:8000/pgvector/pgvector:pg18", "ContainerNamePrefix": "rag_postgres", "Subnet": "agent_agent_ai", "SharedMemorySize": 2 }, "VolumeMounts": [ { "HostPath": "/app/Primo.AI/AgentData/PostgresData", "ContainerPath": "/var/lib/postgresql", "AppendPort": true } ] }, ...
  • Добавьте блок Lfx:
... "Lfx": { "Password": "JLWIyl1xZNDVVx8tcVllOg==", "SuperUserPassword": "JLWIyl1xZNDVVx8tcVllOg==", "HealthCheck": { "TimeoutSeconds": 30, "PeriodMilliseconds": 500 }, "DockerOptions": { "PortsRangeFrom": 9500, "PortsRangeTo": 9599, "ImageName": "nexus.primo-rpa.ru:8000/primo-rpa/ai-server-langflow-backend:1.26.10.1", "ContainerNamePrefix": "lfx", "Subnet": "agent_agent_ai", "SharedMemorySize": 2 }, "VolumeMounts": [ { "HostPath": "/app/Primo.AI/AgentData/LangflowData", "ContainerPath": "/app/data", "AppendPort": true }, { "HostPath": "/app/Primo.AI/AgentData/LangfuseData", "ContainerPath": "/app/langfuse", "AppendPort": true } ] }, ...

SuperUserPassword — пароль суперпользователя исполнителя в зашифрованном виде (утилита шифрования конфигов). Том LangfuseData хранит трассы агентских систем: без него трассы теряются при каждом перезапуске исполнителя.

  • Добавьте блок DocClassifyProcess (SDC-сервер). Без него SDC-сервер на целевой машине не запустится:
... "DocClassifyProcess": { "HealthCheck": { "TimeoutSeconds": 180, "PeriodMilliseconds": 500 }, "DockerOptions": { "PortsRangeFrom": 9600, "PortsRangeTo": 9699, "ImageName": "nexus.primo-rpa.ru:8000/primo-rpa/ai-server-sdc:1.26.10.0", "ContainerNamePrefix": "sdc", "Subnet": "agent_agent_ai", "SharedMemorySize": 4 }, "VolumeMounts": [ { "HostPath": "/app/Primo.AI/AgentData/SdcModels", "ContainerPath": "/app/apps/doc_classify/model_store" } ] }, ...
  • Добавьте в блок IdpProcess параметр VolumeMounts, чтобы IDP-сервер не скачивал модели заново при каждом запуске:
"IdpProcess": { ... "VolumeMounts": [ { "HostPath": "/app/Primo.AI/AgentData/IdpModels", "ContainerPath": "/app/apps/idp/model_store" } ] },
  • Замените имена образов: теперь они указываются полным путём в реестре Nexus с тегом версии:
sudo sed -i -E \ -e 's#"ImageName": "primo-rpa/ai-server-vllm-(cpu|gpu)(:[^"]*)?"#"ImageName": "nexus.primo-rpa.ru:8000/vllm/vllm-openai:v0.30.0"#' \ -e 's#"ImageName": "primo-rpa/(ai-server-[a-z-]+)(:[^"]*)?"#"ImageName": "nexus.primo-rpa.ru:8000/primo-rpa/\1:1.26.10.0"#' \ -e 's#"ImageName": "externals/vllm-openai:[^"]*"#"ImageName": "nexus.primo-rpa.ru:8000/vllm/vllm-openai:v0.30.0"#' \ -e 's#"ImageName": "externals/pgvector:([^"]*)"#"ImageName": "nexus.primo-rpa.ru:8000/pgvector/pgvector:\1"#' \ /app/Primo.AI/Agent/appsettings.ProdLinux.json

Проверьте результат: все значения в выводе команды grep '"ImageName"' /app/Primo.AI/Agent/appsettings.ProdLinux.json должны начинаться с nexus.primo-rpa.ru:8000/.

Образы RAG-сервера и Исполнителя агентских систем обновлены в 1.26.10.1 — поднимите их тег:

sudo sed -i -E 's#(nexus\.primo-rpa\.ru:8000/primo-rpa/ai-server-(rag-gpu|langflow-backend)):1\.26\.10\.0"#\1:1.26.10.1"#' /app/Primo.AI/Agent/appsettings.ProdLinux.json

Остальные образы ai-server-* в конфигурации агента остаются с тегом 1.26.10.0.

  • Добавьте блок RuntimeSettings — каталог для файла appsettings.Runtime.json с настройками, изменёнными на странице Управление целевой машины:
... "RuntimeSettings": { "Directory": "/app/Primo.AI/AgentData" }, ...
ℹ️

Каталоги SdcModels, IdpModels и LangfuseData агент создаёт сам при первом запуске процесса.

  1. Настройте права доступа для Ollama:
⚠️

Шаг обязателен, если на целевой машине используется Ollama. Образ ai-server-ollama теперь запускается от непривилегированного пользователя (UID 1001). Агент создаёт файлы и поддиректории в ModelTemplates от имени agent:primo-ai, поэтому для доступа Ollama используется механизм POSIX ACL с наследованием прав — он не зависит от текущего владельца файла. Директории blobs и meta дополнительно должны принадлежать непосредственно UID 1001: Ollama изменяет временные метки файлов в них, а для этого требуется реальное владение файлом, а не только ACL.

Установите пакет acl, если он отсутствует, из комплекта поставки согласно статье Установка пакета из комплекта поставки.

Настройте права доступа для UID 1001 на существующие файлы и директории:

sudo setfacl -R -m u:1001:rwx /app/Primo.AI/AgentData/ModelTemplates

Установите default ACL для автоматического наследования прав новыми файлами и директориями:

sudo find /app/Primo.AI/AgentData/ModelTemplates -type d -exec setfacl -d -m u:1001:rwx {} +

Верните владельца директории агенту:

sudo chown -R agent:primo-ai /app/Primo.AI/AgentData/ModelTemplates

Смените владельца файлов моделей на UID 1001:

sudo chown -R 1001:1001 /app/Primo.AI/AgentData/ModelTemplates/blobs/* sudo chown -R 1001:1001 /app/Primo.AI/AgentData/ModelTemplates/meta/*

Проверьте результат:

getfacl /app/Primo.AI/AgentData/ModelTemplates

В выводе должны присутствовать строки user:1001:rwx и default:user:1001:rwx.

  1. Обновите файлы агента:
wget "https://nexus.primo-rpa.ru/repository/raw/1.26.10/ai-server/linux/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/ sudo systemctl start Primo.AI.Agent

Образы

  1. Удалите старые образы.
images=( "primo-rpa/ai-server-idp-gpu" "primo-rpa/ai-server-idp-cpu" "primo-rpa/ai-server-nlp" "primo-rpa/ai-server-ollama" "primo-rpa/ai-server-vllm-cpu" "primo-rpa/ai-server-vllm-gpu" "primo-rpa/ai-server-ft" ) for img in "${images[@]}"; do echo "Обрабатываем образ: $img" docker stop $(docker ps -a -q --filter ancestor="$img") 2>/dev/null || true docker rm $(docker ps -a -q --filter ancestor="$img") 2>/dev/null || true done # Удаляем образы docker rmi "${images[@]}"
  1. Загрузите новые образы:
  • Вариант загрузки образов 1: скачайте архивы комплекта поставки из Nexus (https://nexus.primo-rpa.ru):

Если 7z не установлен, установите пакет 7zip из репозитория ОС или из комплекта поставки согласно статье Установка пакета из комплекта поставки.

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/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/vllm-openai:v0.30.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 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" echo "Externals: $externals" 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 for external in $externals; do echo "Загрузка external $external..." filename=$(echo "${external##*/}" | sed 's/:/_/g') wget "https://nexus.primo-rpa.ru/repository/raw/data/libraries/docker/images/$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. Нужен доступ с машины к nexus.primo-rpa.ru:8000. Если открыт только https://nexus.primo-rpa.ru (порт 443), используйте вариант 1.
#!/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/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/vllm-openai:v0.30.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 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" echo "Externals: $externals" for name in $names; do tag=1.26.10.0 case "$name" in ai-server-rag-gpu|ai-server-langflow-backend) tag=1.26.10.1 ;; esac # в 1.26.10.1 обновлены только RAG-сервер и Исполнитель агентских систем docker pull nexus.primo-rpa.ru:8000/primo-rpa/$name:$tag done for external in $externals; do docker pull nexus.primo-rpa.ru:8000/$external done echo "Готово!"

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

Добавьте параметр ExtraEnvs в секцию Ollama файла /app/Primo.AI/Agent/appsettings.ProdLinux.json:

"Ollama": { ... "PostRunCommands": [ "cp {modelFilePath} {blobFilePath}", "ollama create {modelId} -f {modelMetaFilePath}", "ollama run {modelId} \"\"" ], "ExtraEnvs": [ "-e OLLAMA_GO_TEMPLATE=1", "-e OLLAMA_IMAGE_MIN_TOKENS=32" ] }

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

sudo systemctl restart Primo.AI.Agent

Что дальше

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

Last updated on