Настройка целевой машины
Введение
Компоненты Primo.AI.Api (выборочно) и их связи приведены на схеме ниже:
Агент – self-hosted веб-приложение, REST API. Агент выполнен как NET8-приложение, которое устанавливается на целевой машине и используется для управления IDP.
IDP – data science-ядро с нейронными сетями и OCR. Предназначено для интеллектуальной обработки документов. Размещено на специальным образом настроенной целевой машине.
На одной целевой машине может работать только один агент – это ограничение обусловлено полной нагрузкой машины IDP-процессом. Целевых машин может быть много. Все целевые машины должны быть настроены одинаково, и на каждой целевой машине должен быть развернут агент. Версии ОС на целевых машинах могут отличаться
Порт 44392
, указанный на схеме выше, используется при настройке конфигурационных файлов агента и открытия портов на файерволе (в том числе аппаратном в сети организации).
Для настройки целевой машины нужна чистая машина с ОС Linux (обязательно с последними обновлениями). На машину необходимо скопировать папку с комплектом поставки. Это может быть любая папка, но для определенности пусть будет папка /srv/samba/shared/install
*.
Для настройки целевой машины требуется последовательно выполнить все шаги настоящего руководства.
*Сетевая папка, доступная с машины, на которой размещен комплект поставки.
Системные требования
Для целевой машины следует использовать рабочую станцию под управлением Astra Linux, к которой предъявляются требования из таблицы ниже.
Параметр | Требование |
---|---|
CPU | 4 физических ядра / 8 виртуальных ядер |
RAM | 8 Гб |
HDD | 250 Гб (OS + Data) |
Файлы из комплекта поставки
Скопируйте на целевую машину файлы, приведенные в таблице ниже — их вы найдете в комплекте поставки Primo RPA AI Server. Остальное ПО должно быть предустановлено в Astra Linux.
Файл | Описание | Примечание |
---|---|---|
Agent-linux.zip | Дистрибутив агента | |
A-IDP.zip | Дистрибутив IDP | Вариант установки А: - при наличии интернета; - python 3.10+; - GNU C Library (glibc) версии 2.33 и выше |
B-IDP.zip | Дистрибутив IDP | Вариант установки Б – при невозможности выполнить вариант установки А |
B-pyenv.zip | Вспомогательное ПО – pyenv со встроенным Python 3.11 | Вариант установки Б – при невозможности выполнить вариант установки А |
Подготовка к установке
При установке Astra Linux на целевой машине необходимо создать пользователя-администратора. Для этого на экране «Настройка учетных записей и паролей» введите имя primo-admin
для учетной записи администратора.
Установка дополнительного ПО и создание дополнительных пользователей описаны ниже.
Настройка дополнительного ПО
Выполните подключение целевой машины к репозиториям main
, update
, base
и extended
. Сами репозитории описаны в статье Интернет-репозитории Astra Linux Special Edition x.7. Настройка локальных зеркал этих репозиториев описана в статье Создание репозиториев для операционной системы Astra Linux Special Edition x.7 в закрытом сегменте.
🔶Важно. Локальные репозитории необходимо выгружать на машине, имеющей доступ в интернет.
Рекомендуется выделить одну машину под управлением Astra Linux для размещения на ней сервера репозиториев.
Проверьте доступность репозиториев, используя команду:
Репозитории main
, update
, base
и extended
должны присутствовать в выводе команды.
Агент
Настройка учетной записи
Для работы агента и IDP создайте общую группу:
Для работы агента и IDP-ядра создайте учетную запись agent, указав расположение home-папки – в ней будут размещены инсталляции Python, а также все необходимые пакеты суммарным весом более 3.5 Гбайт (при установке IDP-ядра с использованием "варианта Б" - см. далее):
Установка агента
Разверните файлы агента на целевой машине (файл Agent-linux.zip
должен находиться в каталоге /srv/samba/shared/install
):
Для запуска и остановки агентом IDP-ядра без ввода пароля установите следующую настройку:
Установите агент как службу и настройте автозапуск:
В конфигурационном файле appsettings.ProdLinux.json
укажите:
Адрес Primo.AI.Api и его компонентов.
AgentId — уникальный идентификатор агента в виде значения с типом данных GUID. Идентификатор агента можно задать самостоятельно, а затем передать администратору вместе с IP-адресом, чтобы он добавил его в профиль целевой машины, либо наоборот — сначала создать целевую машину в разделе Настройки ➝ Целевые машины, скопировать автоматически заданный GUID и указать его в этом параметре.
UserName — логин учетной записи агента.
Password — пароль от учетной записи агента.
Убедитесь, что в конфигурационном файле appsettings.ProdLinux.json
правильно указан путь к стандартным скриптам, с помощью которых агент запускает процессы IDP:
Запустите службы:
Проверьте статус службы:
Просмотрите журнал службы:
Настройка правила брандмауэра ufw
Для разрешения доступа к API агента выполните команду:
IDP
Вариант установки А
Установка IDP при наличии в репозиториях apt целевой машины python3.10/3.11, выхода в интернет, а также GNU C Library (glibc) версии 2.33 и выше.
Разверните файлы IDP на целевой машине (файл A-IDP.zip
должен находиться в каталоге /srv/samba/shared/install
):
Установите библиотеки python3, tesseract и другие пакеты:
Создайте и активируйте виртуальную среду venv:
Установите пакеты python.
Если для IDP-процесса будет использоваться CPU:
Если для IDP-процесса будет использоваться GPU:
Произведите финальную раздачу прав IDP:
Вариант установки Б
Используйте этот способ при отсутствии необходимых библиотек.
Установка pyenv c Python 3.11 и виртуальной средой
Создайте временный каталог pyenv
и переместитесь туда:
Скопируйте во временный каталог файлы pyenv из комплекта поставки (файл B-pyenv.zip
должен находиться в каталоге /srv/samba/shared/install
):
Запустите скрипт установки pyenv-installer.sh
:
Сообщение «WARNING: The Python tkinter extension was not compiled and GUI subsystem has been detected. Missing the Tk toolkit?» можно проигнорировать.
Удалите установочные файлы:
Установка зависимостей IDP в виртуальную среду
Создайте папку с инсталляцией:
Переместитесь в папку с инсталляцией
Распакуйте архив с IDP в каталог /app/Primo.AI/IDP
(файл B-IDP.zip
должен находиться в каталоге /srv/samba/shared/install
):
Запустите скрипт установки idp-installer.sh
:
Раздайте права на IDP:
Удалите установочные файлы:
Установка Tesseract
Проверьте наличие Tesseract версии 4.0.0+:
Установите Tesseract:
Проверка настройки целевой машины
Проверьте доступность Primo.AI.Api с целевой машины. На целевой машине выполните команду:
Убедитесь, что вернулась версия Primo.Ai.Api.
Проверьте работу агента на целевой машине. На машине Primo.Ai.Api выполните команду:
Убедитесь, что вернулась версия агента.
Ограничение нагрузки
Оптимальная нагрузка на целевую машину предполагает размещение единственного агента с IDP-ядром и запуск единственного в каждый момент времени процесса любого типа – обучение или инференс (распознавание изображений в IDP).
Кроме того, для процессов инференса следует ограничивать единовременное количество запросов (изображений) в обработке. Превышение этого ограничения приведет к неадекватному кратному увеличению времени обработки изображений.
Рассчитайте максимальную нагрузку на целевую машину по формуле: 0.5n – 1, где n – количество виртуальных ядер процессора (например, для 16 виртуальных ядер это значение – 7).
Пропишите итоговое значение в параметре InferenceRequestQueue -> MaxImagesLoad в конфигурационном файле агента (appsettings.ProdLinux.json
):
Увеличение лимита потребления ресурсов
При большой нагрузке на целевую машину происходит открытие множества дескрипторов файлов, что приводит к ошибке – "Too many open files". Необходимо увеличить системный лимит на количество дескрипторов, доступных пользователям. Для этого отредактируйте файл limits.conf:
Добавьте туда следующие строки:
Last updated