Skip to Content

Архитектура

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

alt

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

  1. Сервер баз данных и хранилищ данных:
    • PostgreSQL — служит для управления основными реляционными базами данных, хранящими настройки веб-приложения Primo AI, данные о пользователях, ролях, лицензиях, событиях и др.
    • Redis — управляет базами данных класса NoSQL. Данные БД используются для временного хранения токенов авторизации и результатов инференсов. Опциональный компонент.
    • MinIO — объектное хранилище изображений, применяемых в обучении моделей нейронной сети и в процессе распознавания данных на документах. Опциональный компонент.
  2. Веб-клиент:
    • Primo.AI.UI — пользовательский интерфейс веб-приложения Primo RPA AI Server.
  3. Промежуточное ПО:
    • Nginx — веб-сервер для отдачи статического контента в UI (через браузер) и реверс-прокси для Primo.AI.Api и его компонентов.
    • RabbitMQ — брокер сообщений, служит для обмена событиями между компонентами Primo.AI.Api.
  4. Primo.AI.Api и его компоненты:
    • 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 — служит для обеспечения запросов на инференс: запуск, хранение данных и для передачи результатов клиенту.
  5. ПО целевой машины для Умного OCR:
    • Primo.AI.IDP — data science-ядро с нейронными сетями и OCR. Предназначено для интеллектуальной обработки документов.
    • Primo.AI.Agent — self-hosted веб-приложение, выполнено как NET8-приложение. Агент используется для управления IDP на целевой машине.
  6. ПО целевой машины для NLP-задач:
    • Агент Logics-сервера — self-hosted веб-приложение, REST API. Управляет LogicsServer, а также агентом LLM-ядра. Лицензируется (требует 1 лицензии агента). Выполнено как NET8-приложение, которое размещается на той же физической или виртуальной машине-хосте, что и контейнер Logics-сервера.

    • LogicsServer — python-приложение для управления LLM-ядром. LogicsServer поставляется в виде отдельного докер-образа и управляется основным агентом.

    • Агент LLM-ядра — self-hosted веб-приложение, REST API. Управляет LLM-ядром. Выполнено как NET8-приложение, которое размещается на той же физической или виртуальной машине-хосте, что и контейнер LLM-ядра.

    • LLM-ядро — движок для запуска LLM. Бывает 2 типов: VLLM и LLAMA. Размещается в отдельном docker-контейнере на той же физической или виртуальной машине-хосте, что и агент LLM-ядра.