Архитектура
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— хранит данные проектов Агентских систем.Исполнитель агентских систем— исполняет проекты Агентских систем.
- 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 | Нет | Исполнение проектов агентских систем |
Целевых машин может быть несколько. Например, для Умного OCR можно использовать отдельную от NLP целевую машину. На каждой целевой машине при этом должен быть свой агент (требует отдельной лицензии).
Last updated on