Skip to Content

Архитектура

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

alt

В состав сервиса входят следующие компоненты:

  1. Компоненты серверной части:
    • 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 Конструктора.
  2. Целевая машина
    • 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. Компоненты целевых машин:

НаименованиеКомпонент AI ServerЗапускКол-воDockerСтандартные портыЛицензируетсяРоль
Агент*systemd1Нет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 целевую машину. На каждой целевой машине при этом должен быть свой агент (требует отдельной лицензии).