Архитектура
Primo RPA AI Server построен на клиент-серверной архитектуре. Взаимосвязь компонентов представлена на схеме ниже.

В состав сервиса входят следующие компоненты:
- Компоненты серверной части:
Nginx— веб-сервер для отдачи статического контента в UI (через браузер) и реверс-прокси для Primo.AI.Api и его компонентов.RabbitMQ— брокер сообщений, служит для обмена событиями между компонентами Primo.AI.Api.- Базы данных и хранилища данных:
PostgreSQL— служит для управления основными реляционными базами данных, хранящими настройки веб-приложения Primo AI, данные о пользователях, ролях, лицензиях, событиях и др.Redis— управляет базами данных класса NoSQL. Данные БД используются для временного хранения токенов авторизации и результатов инференсов. Опциональный компонент.MinIO— объектное хранилище изображений, применяемых в обучении моделей нейронной сети и в процессе распознавания данных на документах. Опциональный компонент.
Primo.AI.Api— REST API для взаимодействия клиентской и серверной части Primo RPA AI Server, включая взаимодействие с агентом на целевой машине.Primo.AI.Api.Auth— служит для аутентификации пользователей в системе.Primo.AI.Api.Logs— служит для приема событий от компонентов Primo.AI.Api и от агентов, для хранения событий и передачи данных о событиях через UI.Primo.AI.Api.MachineInfo— служит для определения параметров машин для лицензий.Primo.AI.Api.Inference— служит для обеспечения запросов на инференс: запуск, хранение данных и для передачи результатов клиенту.Конструктор агентских систем (Backend)— позволяет разрабатывать проекты с конвейерами Агентских систем.Конструктор агентских систем (UI)— веб-сервер для отдачи статического контента Конструктора Агентских систем в UI (через браузер), также служит реверс-проекси для Backend Конструктора.
- Целевая машина
Primo.AI.Agent— осуществляет взаимодействие Primo.AI.Api с компонентами Целевой машины, управляет их (компонентов) жизненным циклом.- Умный OCR
IDP-сервер— служит для обучения и инференса CV-моделей.
- AI Текст > NLP
NLP-сервер— непосредственно взаимодействует с LLM-моделями.FT-сервер— производит файнтюнинг моделей.
- AI Текст > Агентские системы
RAG-сервер— производит наполнение и извлечение данных из БД в проекте Агентских систем.PostgreSQL + pgVector— хранит данные проектов Агентских систем.Исполнитель агентских систем— исполняет проекты Агентских систем.IgX-сервер— выполняет агентские задачи.
- AI Текст
LLM-ядро— производит инференс LLM-моделей. Используется во всех компонентах AI Server.
О взаимодействии Центра управления и Целевых машин
Компоненты AI Server и их связи с целевыми машинами приведены на схеме ниже:

Целевая машина — физическая или виртуальная машина, на которой производится обучение/инференс ИИ-моделей AI Server. Компоненты целевых машин:
| Наименование | Компонент AI Server | Запуск | Кол-во | Docker | Стандартные порты | Лицензируется | Роль |
|---|---|---|---|---|---|---|---|
| Агент | * | systemd | 1 | Нет | https: 5002, http: 5092 | Да | Взаимодействие серверной части AI Server с другими компонентами Целевой машины; Управление жизненным циклом IDP-сервера, FT-сервера и NLP-сервера |
| IDP-сервер | Умный OCR | Агент | 0..N | Да | http: 9100..9199 | Нет | Обучение и инференс CV-моделей |
| NLP-сервер | NLP | Агент | 0..1 | Да | http: 9200..9299 | Нет | Непосредственное взаимодействие с LLM-моделями |
| FT-сервер | NLP | Агент | 0..N | Да | http: 9300..9399 | Нет | Файнтюнинг моделей |
| LLM-ядро | AI Текст | Агент | 0..1 | Да | http: 8000..8009 | Нет | Инференс LLM-моделей |
| RAG-сервер | Агентские системы | Агент | 0..N | Да | http: 9400..9499 | Нет | Наполнение и извлечение данных из БД в проекте Агентских систем |
| PostgreSQL + pgVector | Агентские системы | Агент | 0..N | Да | http: 5433..5440 | Нет | Хранение данных в проекте Агентских систем |
| Исполнитель агентских систем | Агентские системы | Агент | 0..N | Да | http: 9500..9599 | Нет | Исполнение проектов агентских систем |
| IgX-сервер | Агентские системы | Агент | 0..N | Да | http: 9600..9699 | Нет | Выполнение агентских задач |
Целевых машин может быть несколько. Например, для Умного OCR можно использовать отдельную от NLP целевую машину. На каждой целевой машине при этом должен быть свой агент (требует отдельной лицензии).