Обзор архитектуры
Архитектура (высокоуровневая)
graph TB
subgraph clients["🌐 Каналы входа"]
W["Виджет<br/>(Preact, WebSocket)"]
TG["Telegram-бот<br/>(Go)"]
end
subgraph realtime["⚡ Real-time слой"]
CS["Chat Service<br/>WebSocket, буферизация 5 сек"]
NATS["NATS<br/>ai.process / ai.response"]
end
subgraph ai["🧠 AI Core"]
AIS["AI Service"]
RAG["RAG Pipeline<br/>Pinned + Hybrid Search + Re-ranking"]
LLM["RouterAI<br/>GPT-4.1 · Claude · Gemini · YandexGPT"]
AE["Action Engine<br/>15+ команд на оборудовании"]
IC["Incident Manager<br/>Создание, SLA, кластеризация"]
end
subgraph data["💾 Данные"]
PG[("PostgreSQL<br/>+ pgvector")]
REDIS[("Redis Stack<br/>Semantic Cache")]
MINIO[("MinIO<br/>Файлы")]
end
subgraph dashboard["📊 Дашборд"]
DASH["Next.js<br/>Сводка · Обращения · Графики"]
TRAIN["AI-тренер<br/>Очередь · KB Editor · Дебаггер"]
end
W --> CS
TG --> CS
CS --> NATS
NATS --> AIS
AIS --> RAG
AIS --> AE
AIS --> IC
RAG --> PG
RAG --> REDIS
RAG --> LLM
AE -->|"GraphQL, GIS,<br/>Mobile API"| EXT["Внешние<br/>системы"]
DASH --> AIS
TRAIN --> AIS
AIS --> PG
AIS --> MINIO
style clients fill:#e0e7ff,stroke:#6366f1,stroke-width:2px
style realtime fill:#fef3c7,stroke:#f59e0b,stroke-width:2px
style ai fill:#f0fdf4,stroke:#22c55e,stroke-width:2px
style data fill:#fce7f3,stroke:#ec4899,stroke-width:2px
style dashboard fill:#ede9fe,stroke:#8b5cf6,stroke-width:2px
Сущности и их связи
erDiagram
Contact ||--o{ Conversation : "создаёт"
Conversation ||--o{ Message : "содержит"
Conversation ||--o| Incident : "может создать"
Incident }o--|| Cluster : "группируется в"
Incident ||--o| Ticket : "может эскалироваться"
- Contact — клиент через все каналы
- Conversation — каждое обращение. Большинство закрываются AI автоматически (целевой показатель — см. раздел "Метрики успеха")
- Incident — AI не справился. Маршрутизируется по типу
- Ticket — формальный трекинг работы. Создаётся из инцидента при необходимости
- Cluster — группа похожих инцидентов. Вычисляется на лету, не хранится
Стек технологий
| Слой |
Технологии |
| Backend |
Go (chi), PostgreSQL + pgvector, Redis, NATS, MinIO |
| Frontend |
Next.js, React, TypeScript, Tailwind CSS, Zustand |
| AI |
OpenAI (GPT-4.1, Ada v2) — первый провайдер. Абстракция для Claude, Gemini, YandexGPT, self-hosted |
| Инфраструктура |
Docker, nginx, GitHub Actions CI/CD, Grafana + Prometheus + Loki |
Миграция существующих ассетов
| Ассет |
Текущий формат |
Куда в Mimir |
| System prompts (4 шт) |
Текст в Go, ~6-10K chars каждый |
system_prompts (4 записи: 2 scope × 2 conditions) |
| Tech status guidelines |
Текст, 2 чанка, ~20K chars |
kb_entries (is_pinned=true, entry_type=rule) |
| RAG-база жители |
JSON чанки, ~50K chars, ~100+ чанков |
kb_qa_pairs + kb_entries |
| RAG-база партнёры |
JSON чанки + txt, ~30K chars |
kb_entries (entry_type=fact) |
| Команды AI |
JSON в промпте, 15+ команд |
actions (Action Engine) |