System-Architektur
Vom Matrix-Bot zum vollstaendigen KI-Oekosystem. Ein Blick hinter die Kulissen.
Das Gesamtbild
Archimedes besteht aus mehreren Schichten, die zusammen ein modulares, erweiterbares System bilden.
Projekt-Struktur
Kern-Komponenten
ResourceGovernor
Verwaltet den Zugriff auf die GPU (Ollama) mit einem Priority-Queue-System. Verhindert Konflikte, wenn mehrere Clients gleichzeitig Anfragen stellen.
| Priority | Client | Timeout |
|---|---|---|
| 1 (LIVE) | Merlin (Prod) | 300s |
| 2 (SANDBOX) | Archimedes | 60s |
| 3 (BG) | Indexing | 30s |
LazyService & ServiceRegistry
Dienste werden erst geladen, wenn sie gebraucht werden (Lazy Loading). Nach 5 Minuten Inaktivitaet werden sie automatisch entladen (IdleManager).
| Service | Vorher | Nachher |
|---|---|---|
| Basis | ~900MB | ~50MB |
| Embeddings | ~400MB | Lazy |
| ChromaDB | ~200MB | Lazy |
Authentifizierung
JWT Token System
Zwei-Token-System fuer sichere, langlebige Sessions:
- Access Token: 15 Minuten Lebensdauer, fuer API-Zugriff
- Refresh Token: 30 Tage, fuer Token-Erneuerung
- Token Rotation: Refresh Token wird bei Erneuerung rotiert
- Revocation: Refresh Tokens koennen widerrufen werden
Passwort-Security
- bcrypt Hashing: 12 Rounds, salted
- Reset via Matrix: 6-stelliger Code per DM, 15 Min gueltig
- Nach Reset: Alle Refresh Tokens werden invalidiert
Deployment
Server-Setup
Archimedes laeuft auf einem Windows Home Server mit NVIDIA GPU.
Der Zugang von aussen erfolgt ueber einen WireGuard VPN-Tunnel zur Domain archimedes.pm.
Der API Gateway hoert auf Port 8420 und serviert sowohl die REST/SSE API als auch die Flutter Web App.
| Komponente | Technologie | Version |
|---|---|---|
| Betriebssystem | Windows | 10/11 |
| Python | Python | 3.10+ |
| API Framework | FastAPI + Uvicorn | Latest |
| LLM Runtime | Ollama | Latest |
| LLM Model | Mistral-Nemo 12B | Konfigurierbar |
| Vektor-DB | ChromaDB | Latest |
| Embeddings | Sentence-Transformers | all-MiniLM-L6-v2 |
| User-DB | SQLite + aiosqlite | 3 |
| Matrix | matrix-nio | Latest |
| App Framework | Flutter | 3.x |
| GPU | NVIDIA (CUDA) | Variable |
| VPN | WireGuard | Latest |
Konfiguration
Alle Einstellungen werden in YAML-Dateien verwaltet:
config/config.sandbox.yaml — Haupt-Konfiguration (Bot, LLM, RAG, Matrix)
config/config.api.yaml — API Gateway Konfiguration (Port, CORS, Auth)
Solide Architektur
Modular, erweiterbar und auf Privatsphere ausgelegt.
Jetzt erleben