Архитектура
Два сервера
WEB PORTAL и NEURO CORE — что где работает и почему платформа разделена.
Платформа разделена на две физические машины с жёсткой границей доверия.
WEB PORTAL — CPU-сервер и единственная точка входа из интернета. На нём работают сайт, кабинеты, API, чат, Redis и мониторинг.
NEURO CORE — GPU-сервер с 2× Radeon AI PRO R9700, 64 GB VRAM и 128 GB RAM. Закрыт от интернета. На нём работают vLLM, MongoDB, Qdrant и ingest worker. Запросы принимает только от Go-сервиса WEB PORTAL.
Инварианты
Инварианты системы
Эти правила не нарушаются ни в одном компоненте системы.
- WEB PORTAL — единственный вход из интернета; NEURO CORE закрыт полностью.
- Go на WEB PORTAL не ходит в MongoDB и Qdrant — только
POST /v1/chat. - Браузер не ходит на NEURO CORE.
- Redis только на WEB PORTAL. MongoDB и Qdrant только на NEURO CORE.
- Данные обезличиваются до выхода на
/v1/chat.
Состав серверов
Цепочка входящего запроса: пользователь → WAF → Nginx → React или Go.
| Компонент | Роль |
|---|---|
| WAF | Первая линия: SQL-инъекции, XSS, CSRF, боты, аномальная частота |
| Nginx | HTTPS, статика React, прокси /api/v1 на Go |
| React | Публичный сайт, кабинеты, чат |
| Go | API портала, RBAC, обезличивание, вызовы NEURO CORE |
| Redis | Кэш LLM, очередь Asynq, WebSocket-сессии |
| Object Storage | Файлы курсов |
| Prometheus, Loki, Grafana | Метрики, логи, алерты (Grafana — только VPN) |
| Компонент | Роль |
|---|---|
| NEURO CORE Service | Единая точка входа с WEB PORTAL, оркестрация RAG |
| MongoDB | Пользователи, курсы, диалоги, аналитика, реестр документов, текст чанков |
| Qdrant | Эмбеддинги чанков и векторный поиск; связь с MongoDB по chunk_id |
| vLLM | Qwen3-32B, Qwen3-Embedding, bge-reranker-v2-m3 на localhost |
| ingest worker | Asynq consumer: разбор и индексация документов |
| Promtail | Отправка логов в Loki на WEB PORTAL |
Почему два сервера
| Причина | Что даёт |
|---|---|
| Экономия | Сайт на дешёвом CPU, нейросеть на дорогом GPU (~42–62 тыс. ₽/мес) |
| Стабильность | GPU занят чатом — сайт работает как обычно |
| Скорость RAG | Qdrant и MongoDB рядом с vLLM, без сети на каждый вопрос |
| Масштаб | Нагрузка на сайт и чат растёт независимо |