Skip to content

Контейнерная диаграмма

Диаграмма

graph TB
    subgraph "Акторы"
        Doctor[👨‍⚕️ Врач]
        Patient[👤 Пациент]
    end

    subgraph "Medical Assistant RAG"
        Web[⚛️ React Frontend]
        API[⚡ FastAPI Gateway]
        RAG[🧠 RAG Engine]
        Search[🔎 OpenSearch Hybrid]
        LLM[🤖 LLM Service<br/>LiteLLM / vLLM]
        WebSearch[🌐 Web Search Adapter]
        Broker[📨 Message Broker<br/>Kafka / NATS]
    end

    Doctor -->|HTTPS| Web
    Patient -->|HTTPS| Web
    Web -->|API запросы| API
    API -->|публикует события| Broker
    Broker -->|асинхронные задачи| RAG
    API -->|запрос контекста| RAG
    RAG -->|hybrid search| Search
    RAG -->|поиск актуальных данных| WebSearch
    RAG -->|генерация ответа| LLM

    style RAG fill:#e3f2fd,stroke:#1976d2,stroke-width:3px
    style Web fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
    style API fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
    style Broker fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
    style Search fill:#e0f2f1,stroke:#00897b,stroke-width:2px
    style WebSearch fill:#e0f2f1,stroke:#00897b,stroke-width:2px
    style LLM fill:#ede7f6,stroke:#5e35b1,stroke-width:2px
    style Doctor fill:#fff3e0,stroke:#ef6c00,stroke-width:2px
    style Patient fill:#fff3e0,stroke:#ef6c00,stroke-width:2px

Контейнеры

Контейнер Технология Назначение
⚛️ React Frontend React UI для врачей и пациентов
⚡ FastAPI Gateway FastAPI API, аутентификация, валидация
🧠 RAG Engine Python Retrieval + контекст для LLM
🔎 OpenSearch Hybrid OpenSearch Hybrid-поиск по историям болезней и медикаментам
🤖 LLM Service LiteLLM / vLLM Инференс LLM
🌐 Web Search Adapter Python Интеграция с web-поиском
📨 Message Broker Kafka / NATS Асинхронная обработка событий

Примечания

  • Брокер сообщений пока не выбран: Kafka или NATS (см. ADR-0006).
  • RAG Engine — ядро системы: собирает контекст из OpenSearch и web-поиска и передаёт его LLM для генерации ответа с цитатами.