Установка и запуск AI агента
AI агент — это дополнительный модуль системы Proceset, предназначенный для работы с нейросетями и выполнения задач, связанных с LLM. AI агент — это опциональный компонент, который устанавливается только при необходимости использования нейросетей в системе Proceset.
AI агент обеспечивает выполнение следующих функций:
- Аналитический ассистент
- Распознавание текста (OCR)
- Распознавание речи (ASR)
Для каждой функции используется отдельный дистрибутив AI агента. В системе Proceset может одновременно работать несколько AI агентов.
Proceset и AI агенты взаимодействуют через протокол gRPC, который обеспечивает быстрый и безопасный обмен данными.
Все дистрибутивы AI агента представляют собой Docker-образы.
Технические требования представлены в разделе Технические требования к серверному и аппаратному оборудованию.
Запуск AI агента
Подготовка хостов и параметров конфигурации
Перед запуском AI агента необходимо определить сетевые адреса и параметры конфигурации.
Для примера рассмотрим следующие условные имена хостов, которые можно заменить на актуальные в вашей системе:
proceset.domain.local
— адрес хоста, на котором располагается система Procesetagent.domain.local
— адрес хоста, на котором располагается AI агент
Во время запуска AI агента с помощью docker run
необходимо задать переменные окружения, определяющие его параметры работы.
Переменная окружения | Описание |
---|---|
CL_NAME | Уникальное имя текущей ноды в рамках системы Proceset |
CL_PORT | Порт ноды внутри сети Docker, используемый для входящих соединений gRPC |
CL_REMOTE_NODES | Массив, в котором указываются полные адреса (включая порт) всех нод, с которыми происходит взаимодействие по gRPC |
AI_LLM_MODEL | Название языковой модели Необходимо указывать только при использовании Аналитического ассистента (llama-3.1-instruct-8B-Q4), чтобы в рабочих пространствах появилась вкладка ProcesetAI |
Таблица ниже содержит справочную информацию о соответствии названия модели ее возможностям.
Функционал | Имя языковой модели |
---|---|
Аналитический ассистент | llama-3.1-instruct-8B-Q4 |
OCR | qwen2-instruct-7B-Q8 |
Подготовка образа и сертификатов
Загрузите образ с дистрибутивом AI агента на сервер с поддержкой GPU. После этого добавьте образ в локальный реестр Docker:
$ gunzip infomaximum_app_llm-agent:dlagdlag241201-llama3.1-instruct-8B-Q4.tar.gz
# docker load < infomaximum_app_llm-agent:dlag241201-llama3.1-instruct-8B-Q4.tar
Подготовьте сертификаты X.509 для работы HTTPS на этой ноде в формате PEM. Сертификат (.crt) содержит открытый ключ, а файл ключа (.key) содержит закрытый ключ, который используется для шифрования соединения.
Разместите сертификаты в удобном каталоге на хосте, например, в /opt/agent/
. В этот же каталог добавьте сертификат сервера Proceset (.crt).
Запуск контейнера
Выполните запуск контейнера с AI агентом с помощью следующей команды (внесите изменения в соответствии с вашей инфраструктурой):
# docker run --name infomaximum-llama \
-d \
--gpus all \
--runtime=nvidia \
-e CL_NAME='agent' \
-e CL_PORT='7000' \
-e CL_REMOTE_NODES='proceset.domain.local:7000' \
-v /opt/agent/agent_cert.crt:/run/secrets/cluster_current.crt:ro \
-v /opt/agent/agent_key.key:/run/secrets/cluster_current.key:ro \
-v /opt/agent/proceset_cert.crt:/run/secrets/cluster_remote_node_agent.crt:ro \
-p 7000:7000 \
--restart=on-failure \
infomaximum/infomaximum_app_llm-agent:dlag241201-llama3.1-instruct-8B-Q4
Где:
v /opt/agent/agent_cert.crt:/run/secrets/cluster_current.crt:ro
— передача файла сертификата текущей ноды в контейнерv /opt/agent/agent_key.key:/run/secrets/cluster_current.key:ro
— передача файла закрытого ключа текущей ноды в контейнерv /opt/agent/proceset_cert.crt:/run/secrets/cluster_remote_node_agent.crt:ro
— передача файла сертификата сервера Proceset в контейнерinfomaximum/infomaximum_app_llm-agent:dlag241201-llama3.1-instruct-8B-Q4
— имя образа (может отличаться в зависимости от версии)
Если контейнер AI агента успешно запущен, перезапустите сервер Proceset с новыми параметрами.
Настройка взаимодействия AI агента с сервером Proceset на ОС семейства Linux
Для работы AI агента с Proceset подготовьте сертификат X.509 для HTTPS на этой ноде в формате PEM (если у вас есть PFX-файл, его можно конвертировать в PEM), а также сертификат ноды AI агента.
Разместите сертификаты в каталоге /opt/agent/
, после чего создайте секреты Docker на их основе:
# docker secret create cluster_current.crt /opt/agent/proceset.crt
# docker secret create cluster_current.key /opt/agent/proceset.key
# docker secret create cluster_remote_node_agent.crt /opt/agent/agent.crt
Перед запуском с новыми параметрами остановите службу Proceset:
# docker service rm infomaximum-app
После этого выполните запуск службы с новыми параметрами:
docker service create --name infomaximum-app \
-e AI_LLM_MODEL='llama-3.1-instruct-8B-Q4' \
-e CL_NAME='proceset' \
-e CL_PORT='7000' \
-e CL_REMOTE_NODES='agent.domain.local:7000' \
--secret infomaximum_app_https_certificate \
--secret infomaximum_app_https_certificate_password \
--secret cluster_current.crt \
--secret cluster_current.key \
--secret cluster_remote_node_agent.crt \
--mount type=volume,src=infomaximum-app-data,target=/var/lib/infomaximum/data/ \
--mount type=volume,src=infomaximum-app-log,target=/var/log/infomaximum/ \
--publish published=443,target=8010,mode=host \
--publish published=7000,target=7000,mode=host \
--restart-max-attempts 5 \
--restart-condition "on-failure" \
-e JVM_MAX_MEMORY='4G' \
-e FE_URL="https://proceset.domain.local" \
infomaximum/infomaximum_app:d241202
При запуске с новыми параметрами были добавлены:
- Переменные окружения (
AI_LLM_MODEL
,CL_NAME
,CL_PORT
,CL_REMOTE_NODES
) - Секреты (
cluster_current.crt
,cluster_current.key
,cluster_remote_node_agent.crt
) - Публикация на хосте дополнительного порта для gRPC (
publish published=7000,target=7000,mode=host
)
Остальные параметры должны соответствовать вашей предыдущей команде запуска Proceset.
Проверка успешного запуска
Если запуск прошел успешно, перейдите в веб-интерфейс и убедитесь, что новые возможности корректно работают.
Дополнительная информация о функционале представлена в следующих разделах:
Была ли статья полезна?