Установка и запуск агента LLM OpenAI
Документация
Главная

Установка и запуск агента LLM OpenAILTS

Агент LLM OpenAI — это дополнительный модуль системы Proceset, предназначенный для подключения внешних LLM-сервисов, совместимых с OpenAI API. Агент — опциональный компонент. Его устанавливают, если в системе Proceset необходимо выполнять запросы к внешним или внутренним LLM-сервисам: OpenAI, DeepSeek, Qwen, LLaMA через совместимых провайдеров или другим сервисам с OpenAI-совместимым API.

После запуска агента LLM OpenAI в блоках работы с нейросетью можно выбрать модели, указанные в конфигурации агента.

Proceset и агент LLM OpenAI взаимодействуют по gRPC. Агент обращается к внешнему или внутреннему LLM-сервису по адресу API, указанному в переменной окружения LLM_OPENAI_URL. Дистрибутив агента LLM OpenAI — Docker-образ. GPU на сервере с агентом LLM OpenAI не требуется: агент только передает запросы во внешний или внутренний OpenAI-совместимый сервис.

Установка агента LLM OpenAI

Подготовка хостов и параметров конфигурации

Перед запуском агента LLM OpenAI определите сетевые адреса и параметры конфигурации.

Для примера рассмотрим следующие условные имена хостов, которые можно заменить на актуальные в вашей системе:

  • proceset.domain.local — адрес хоста, на котором располагается система Proceset
  • agent.domain.local — адрес хоста, на котором располагается агент LLM OpenAI
  • https://api.openai.com/v1/ — пример URL API внешнего LLM-сервиса
Заметка

Если LLM-сервис расположен внутри инфраструктурного контура, доступ в интернет не требуется. Если используется внешний сервис, например OpenAI или DeepSeek, серверу с агентом LLM OpenAI необходим сетевой доступ к URL API этого сервиса.

Во время запуска агента LLM OpenAI задайте переменные окружения, определяющие его параметры работы.

Переменная окруженияОбязательнаОписание
CL_NAMEДаУникальное имя текущей ноды
CL_PORTНетПорт, используемый для входящих соединений gRPC. По умолчанию используется порт 7000
CL_REMOTE_NODESДаПолные адреса, включая порт, нод, с которыми происходит взаимодействие по gRPC. Несколько адресов указываются через разделитель ;. Для агента указывается адрес сервера Proceset, для сервера Proceset — адрес агента LLM OpenAI
LLM_OPENAI_URLДаURL API LLM-сервиса. Укажите URL OpenAI-совместимого API
LLM_OPENAI_TOKENДаТокен доступа к LLM-сервису
LLM_OPENAI_MODELSДаСписок моделей, которые будут доступны в Proceset. Поддерживаются списочный формат и JSON-массив
JVM_MAX_MEMORYНетМаксимальный объем памяти JVM, то есть значение параметра -Xmx. По умолчанию используется 4G
Заметка

Для публичных LLM-сервисов, например OpenAI, укажите действующий токен доступа. Если подключаемый внутренний OpenAI-совместимый сервис не требует авторизации по токену, переменную LLM_OPENAI_TOKEN все равно необходимо передать. В этом случае можно указать значение-заглушку: -e LLM_OPENAI_TOKEN='EXAMPLE'

Настройка URL API LLM-сервиса

В переменной LLM_OPENAI_URL укажите URL API OpenAI-совместимого LLM-сервиса.

СервисПример URL
OpenAIhttps://api.openai.com/v1/
DeepSeekhttps://api.deepseek.com/v1/
Другой OpenAI-совместимый сервисURL указывается согласно документации используемого сервиса
Заметка

В значении LLM_OPENAI_URL необходимо указывать завершающий слеш / после v1/.

Настройка списка моделей

В переменной LLM_OPENAI_MODELS укажите модели, которые должны быть доступны в Proceset. Переменная поддерживает списочный формат и готовый JSON-массив.

Рекомендуется использовать списочный формат:

имя[=тип][,ключ=значение]…;…

Модели разделяются символом ;. Тип отделяется от имени модели символом =, так как символ : может входить в имя модели. Если тип не указан, используется тип llm.

После типа через запятую можно указать параметры модели:

  • temperature — температура генерации
  • max_tokens — максимальное количество токенов
  • max_tokens_field_name — имя поля, в котором сервис принимает максимальное количество токенов
  • families — семейства модели, разделенные символом |

Пример:

LLM_OPENAI_MODELS='qwen-2.5-instruct-14B-Q4=llm,temperature=0.01,max_tokens=8000;qwen2.5-vl-32b=multimodal_llm'

Поддерживаются следующие типы моделей:

  • llm — текстовая модель
  • multimodal_llm — мультимодальная модель

Другие значения типа не поддерживаются агентом LLM OpenAI. При указании неподдерживаемого типа или неизвестного ключа параметра контейнер завершит запуск с сообщением об ошибке.

Вместо списочного формата можно передать JSON-массив. В этом случае значение переменной должно начинаться с символа [. Пример:

LLM_OPENAI_MODELS='[
  {"name": "qwen3-32b", "model_type": "llm",
   "params": {"temperature": 0.01, "max_tokens": 8000}},
  {"name": "qwen2.5-vl-32b", "model_type": "multimodal_llm"}
]'

Объект модели в JSON-массиве поддерживает следующие поля:

ПолеОбязательноОписание
nameДаУникальное имя модели у провайдера
model_typeДаТип модели: llm или multimodal_llm
paramsНетПараметры temperature, max_tokens и max_tokens_field_name. Значение temperature по умолчанию — 0.01, значение max_tokens по умолчанию — 2000
model_familiesНетМассив строк с семействами модели для автоматизации

Ключи и строковые значения внутри JSON должны быть заключены в двойные кавычки. Если JSON некорректен, контейнер завершит запуск с сообщением об ошибке.

Заметка

В командной строке Windows cmd.exe одинарные кавычки не удаляются, а внутренние двойные кавычки необходимо экранировать как \". Поэтому в cmd.exe рекомендуется использовать списочный формат.

В Docker Compose значение в формате JSON можно указать следующим образом:

LLM_OPENAI_MODELS: '[{"name":"qwen3-32b","model_type":"llm"}]'

В этом примере одинарные кавычки относятся к синтаксису YAML и не передаются в контейнер.

Подключение к LLM-сервису по HTTPS с самоподписанным сертификатом

Поддерживается подключение к LLM-сервисам по HTTPS с самоподписанными сертификатами, а также с сертификатами, выпущенными внутренним удостоверяющим центром клиента.

Чтобы агент доверял такому сертификату при подключении к LLM-сервису, передайте в контейнер сертификат сервиса или сертификат удостоверяющего центра, которым подписан сертификат сервиса. Смонтируйте сертификат в контейнер по пути /run/secrets/llm_openai.crt:

-v /opt/agent/<название сертификата>.crt:/run/secrets/llm_openai.crt

Где /opt/agent/<название сертификата>.crt — путь к сертификату на хосте, где запускается агент LLM OpenAI.

При запуске контейнера точка входа автоматически добавит параметр trusted_certificate во все элементы ai_configurations.

Заметка

Этот сертификат используется только для проверки доверия к HTTPS-соединению с LLM-сервисом. Он не относится к настройке взаимодействия между сервером Proceset и агентом LLM OpenAI.

Подготовка образа

Загрузите образ с дистрибутивом агента LLM OpenAI на сервер, где он будет запущен. После этого добавьте образ в локальный реестр Docker:

docker load < infomaximum_app_llm-agent_&lt;версия&gt;-openai.tar
Заметка

Имя образа с версией приведено для примера. Укажите образ, соответствующий устанавливаемой версии агента.

Запуск агента LLM OpenAI

Создайте volume для хранения логов агента LLM OpenAI:

docker volume create infomaximum-llm-agent-log

Запуск с помощью Docker

Запустите контейнер с агентом LLM OpenAI. Замените адреса, токен, список моделей и имя образа на значения, соответствующие вашей инфраструктуре:

docker run --name infomaximum-llm-agent \
-d \
-e CL_NAME='openai-agent' \
-e CL_PORT='7000' \
-e CL_REMOTE_NODES='proceset.domain.local:7000' \
-e LLM_OPENAI_URL='https://api.openai.com/v1/' \
-e LLM_OPENAI_TOKEN='your-api-token-here' \
-e LLM_OPENAI_MODELS='gpt-4o=multimodal_llm;gpt-4.1-mini=llm' \
--mount type=volume,src=infomaximum-llm-agent-log,target=/var/log/infomaximum/ \
-p 7001:7000 \
--restart=always \
infomaximum/infomaximum_app_llm-agent:&lt;версия&gt;-openai
Заметка

Имя образа с версией приведено для примера. Укажите образ, соответствующий устанавливаемой версии агента.

Если LLM-сервис использует самоподписанный сертификат или сертификат, выпущенный внутренним удостоверяющим центром, добавьте в команду запуска монтирование сертификата:

-v /opt/agent/&lt;название сертификата&gt;.crt:/run/secrets/llm_openai.crt \

Где:

  • CL_NAME='openai-agent' — имя агента LLM OpenAI
  • CL_PORT='7000' — внутренний порт агента для входящих gRPC-соединений
  • CL_REMOTE_NODES='proceset.domain.local:7000' — адрес сервера Proceset, с которым должен взаимодействовать агент. Если серверов несколько, укажите их адреса через разделитель ;
  • LLM_OPENAI_URL='https://api.openai.com/v1/' — URL API OpenAI-совместимого LLM-сервиса
  • LLM_OPENAI_TOKEN='your-api-token-here' — токен доступа к LLM-сервису
  • LLM_OPENAI_MODELS='gpt-4o=multimodal_llm;gpt-4.1-mini=llm' — список моделей и их типов
  • -p 7001:7000 — публикация порта агента на хосте. Если агент LLM OpenAI запускается на том же сервере, что и Proceset, внешний порт агента должен отличаться от внешнего gRPC-порта сервера Proceset. Например, можно использовать 7001:7000. Если агент запускается на отдельном сервере, можно использовать 7000:7000
  • infomaximum/infomaximum_app_llm-agent:&lt;версия&gt;-openai — имя Docker-образа агента LLM OpenAI
Заметка

Если агент LLM OpenAI запускается на том же сервере, где уже опубликован gRPC-порт сервера Proceset 7000, для агента укажите другой внешний порт, например 7001:7000. Если агент LLM OpenAI запускается на отдельном сервере, можно оставить публикацию порта 7000:7000.

Запуск с помощью Docker Compose

Создайте файл конфигурации Docker Compose. Замените адреса, токен, список моделей и имя образа на значения, соответствующие вашей инфраструктуре:

services:
  llmagent:
    image: infomaximum/infomaximum_app_llm-agent:&lt;версия&gt;-openai
    restart: always
    ports:
      - "7001:7000"
    volumes:
      - ./data/logs:/var/log/infomaximum/
    environment:
      - "CL_NAME=openai-agent"
      - "CL_PORT=7000"
      - "CL_REMOTE_NODES=proceset.domain.local:7000"
      - "LLM_OPENAI_URL=https://api.openai.com/v1/"
      - "LLM_OPENAI_TOKEN=your-api-token-here"
      - "LLM_OPENAI_MODELS=gpt-4o=multimodal_llm;gpt-4.1-mini=llm"

Если LLM-сервис использует самоподписанный сертификат или сертификат внутреннего удостоверяющего центра, добавьте сертификат как секрет:

services:
  llmagent:
    # ...
    secrets:
      - llm_openai.crt

secrets:
  llm_openai.crt:
    file: ./llm_openai.crt

Запуск в Docker Swarm

Если агент необходимо запустить как службу Docker Swarm, выполните команду:

docker service create --name infomaximum-llm-agent \
-e CL_NAME='openai-agent' \
-e CL_PORT='7000' \
-e CL_REMOTE_NODES='proceset.domain.local:7000' \
-e LLM_OPENAI_URL='https://api.openai.com/v1/' \
-e LLM_OPENAI_TOKEN='your-api-token-here' \
-e LLM_OPENAI_MODELS='gpt-4o=multimodal_llm;gpt-4.1-mini=llm' \
--publish published=7001,target=7000 \
--mount type=volume,src=infomaximum-llm-agent-log,target=/var/log/infomaximum/ \
--restart-max-attempts 5 \
--restart-condition "on-failure" \
infomaximum/infomaximum_app_llm-agent:&lt;версия&gt;-openai
Заметка

Docker Swarm должен быть предварительно инициализирован. Имя образа с версией приведено для примера. Укажите образ, соответствующий устанавливаемой версии агента.

Итоговая конфигурация агента

Из шаблона и переменных окружения точка входа контейнера формирует файл /var/lib/infomaximum/config/com.infomaximum.subsystem.aiopenaiagent.json. Пример итоговой конфигурации:

{
    "request_count_per_minute": 60,
    "ai_configurations": [
        {
            "url": "https://api.openai.com/v1/",
            "token": "your-api-token-here",
            "request_timeout": "1m",
            "models": [
                { "name": "gpt-4.1-mini", "model_type": "llm" },
                { "name": "gpt-4o", "model_type": "multimodal_llm" }
            ]
        }
    ]
}

Настройка сервера Proceset для взаимодействия с агентом LLM OpenAI

Для работы агента LLM OpenAI с сервером Proceset укажите серверу Proceset параметры gRPC-взаимодействия с агентом. Перед запуском с новыми параметрами остановите службу Proceset:

docker service rm infomaximum-app

После этого выполните запуск службы Proceset с новыми параметрами. Ниже приведен пример команды для случая, когда агент LLM OpenAI опубликован на внешнем порту 7001. Сохраните параметры из вашей текущей команды запуска и добавьте к ним переменные CL_NAME, CL_PORT, CL_REMOTE_NODES, а также публикацию порта 7000 для gRPC-взаимодействия:

docker service create --name infomaximum-app \
--secret infomaximum_app_https_certificate \
--secret infomaximum_app_https_certificate_password \
--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' \
-e FE_CORS_POLICY="*" \
-e CL_NAME='proceset' \
-e CL_PORT='7000' \
-e CL_REMOTE_NODES='agent.domain.local:7001' \
infomaximum/infomaximum_app:d&lt;версия&gt;
Заметка

Имя образа с версией приведено для примера. Укажите образ, соответствующий устанавливаемой версии Proceset.

При запуске с новыми параметрами добавлены:

  • CL_NAME='proceset' — имя сервера Proceset
  • CL_PORT='7000' — порт сервера Proceset для gRPC-взаимодействия
  • CL_REMOTE_NODES='agent.domain.local:7001' — адрес агента LLM OpenAI. Если агент запущен на том же сервере, что и Proceset, и опубликован как 7001:7000, укажите внешний порт 7001. Если агент запущен на отдельном сервере и опубликован как 7000:7000, укажите порт 7000
  • --publish published=7000,target=7000,mode=host — публикация gRPC-порта сервера Proceset на хосте

Остальные параметры должны соответствовать вашей предыдущей команде запуска Proceset.

Проверка подключения агента к серверу Proceset

После успешного запуска агента LLM OpenAI дополнительных настроек в веб-интерфейсе Proceset не требуется.

Чтобы проверить, что агент LLM OpenAI подключился к серверу Proceset:

  1. Перейдите в веб-интерфейс Proceset.
  2. Откройте раздел Настройки → Администрирование → О системе.
  3. Проверьте, что в списке модулей появилась строка llm-agent.proceset.
  4. Разверните строку и проверьте наличие модуля com.infomaximum.subsystem.aiopenaiagent.

Появление модуля в разделе О системе означает, что агент LLM OpenAI корректно подключился к серверу Proceset.

После этого проверьте выполнение запроса к модели:

  1. Создайте тестовый скрипт.
  2. Добавьте блок работы с нейросетью, поддерживающий выбор внешней модели.
  3. В настройках блока проверьте, что в списке доступны модели, указанные в LLM_OPENAI_MODELS.
  4. Выполните тестовый запрос к внешней модели.

Была ли статья полезна?

Предыдущая
Установка и запуск агента Webhook
Следующая
Настройка системы
8 (800) 555-89-02
430006, Саранск,
Северо-восточное шоссе, д. 3
Код вида деятельности
в области ИТ 15.02 и 17.01
ОКВЭД 62.01
ИНН 1328​909857
Языки программирования: