Контейнерная диаграмма
Диаграмма
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 для генерации ответа с цитатами.