Quickstart — MoE Sovereign¶
Was ist MoE Sovereign?¶
Selbst gehostetes Mixture-of-Experts-LLM-System auf eigener GPU-Hardware. Eingehende Anfragen werden analysiert, an spezialisierte LLM-Experten, Berechnungs-Tools und eine Wissensdatenbank verteilt, durch ein Reasoning-Modell strukturiert analysiert und von einem Judge-LLM synthetisiert.
OpenAI-API-kompatibel — Drop-in für Open WebUI und andere Clients.
Services¶
| Container | Port | Funktion |
|---|---|---|
langgraph-orchestrator |
8002 | Kern-API (OpenAI-kompatibel) |
moe-admin-ui |
8088 | Web-Admin: Experten, Modelle, Prompts konfigurieren |
mcp-precision |
8003 | 20 Precision Tools (Mathematik, Datum, Netzwerk, Bundesrecht, ...) |
neo4j-knowledge |
7474 / 7687 | Knowledge Graph (GraphRAG) |
terra_cache |
6379 | Redis: Checkpoints, Performance-Scores, Metadaten |
chromadb-vector |
8001 | Vektorcache (semantischer Cache) |
moe-kafka |
9092 | Event-Streaming (Ingest, Audit-Log, Feedback) |
Pipeline¶
flowchart TD
REQ["📨 Anfrage"] --> CACHE["🔍 Cache-Check\n(ChromaDB)"]
CACHE -->|"Hit"| RESP["✅ Antwort"]
CACHE -->|"Miss"| PLANNER["🧠 Planner\n(Judge-LLM)"]
PLANNER --> E1["👥 Experten-LLMs\n(Two-Tier)"]
PLANNER --> E2["🌐 Web\n(SearXNG + Citations)"]
PLANNER --> E3["🔧 MCP Tools\n(20 Tools)"]
PLANNER --> E4["∑ SymPy\nMathematik"]
PLANNER --> E5["🗃 Neo4j\nGraphRAG"]
E1 -->|"Niedrige Konfidenz"| THINKING["💭 Thinking-Node\n(CoT, bedingt)"]
E1 & E2 & E3 & E4 & E5 --> MERGER["⚖ Merger\n(Judge-LLM)"]
THINKING --> MERGER
MERGER --> CRITIC["🔎 Critic\n(Faktencheck, medical/legal)"]
CRITIC --> RESP
RESP --> S1[("ChromaDB\nCache")]
RESP --> S2[("Kafka\n→ Neo4j Ingest")]
RESP --> S3[("Redis\nMetadaten")]
Output-Modi¶
Mehrere Modell-IDs für Open WebUI — über das model-Feld wählbar:
| Modell | Modus |
|---|---|
moe-orchestrator |
Vollständige Antworten mit Erklärungen (Standard) |
moe-orchestrator-code |
Nur Quellcode — keine Erklärungen |
moe-orchestrator-concise |
Kurz & präzise — max. 120 Wörter |
moe-orchestrator-agent |
Coding-Agent (OpenCode, Continue.dev) |
moe-orchestrator-agent-orchestrated |
Claude Code — voller MoE-Fanout |
moe-orchestrator-research |
Tiefgehende Recherche mit privater SearXNG-Suche |
moe-orchestrator-report |
Strukturierter Bericht mit Abschnitten und Quellenangaben |
moe-orchestrator-plan |
Strukturierte Planung komplexer Aufgaben |
Schnellstart für Claude Code Nutzer¶
Schritt 1: .bashrc konfigurieren¶
# ~/.bashrc oder ~/.zshrc
# MoE API als Anthropic-Backend verwenden
export ANTHROPIC_BASE_URL=http://localhost:8002
export ANTHROPIC_API_KEY=moe-sk-xxxxxxxxxxxxxxxx...
Danach: source ~/.bashrc
Schritt 2: Claude Code starten¶
# Option A — per-session flag
claude --model moe-orchestrator-agent-orchestrated \
--api-key $ANTHROPIC_API_KEY \
--base-url $ANTHROPIC_BASE_URL/v1
# Option B — dauerhaft in ~/.claude/settings.json
{
"env": {
"ANTHROPIC_BASE_URL": "http://localhost:8002/v1",
"ANTHROPIC_API_KEY": "moe-sk-xxxxxxxx..."
}
}
Schritt 3: Status prüfen¶
Verfügbare Claude Code Skills¶
| Skill | Beschreibung |
|---|---|
/moe |
Direktanfrage ans lokale MoE-System (alle Modi wählbar) |
/law |
Deutsches Bundesrecht abrufen und interpretieren |
/calc |
Präzise Berechnungen via MCP-Tools (kein LLM) |
/research |
Private Web-Recherche via lokale SearXNG-Instanz |
/local-doc |
Code-Dokumentation mit lokalem LLM generieren |
/local-review |
Code-Review via lokales MoE-System |
/explain-error |
Fehleranalyse mit technischem Support-Experten |
/moe-status |
Status aller Services, Modelle und GPU-Auslastung |
Schnellstart für API-Nutzer¶
Deployment¶
# 1. Konfiguration anlegen
cp temp.env .env
# INFERENCE_SERVERS, SEARXNG_URL, EXPERT_MODELS in .env eintragen
# 2. Alle Services starten
sudo docker compose up -d
# 3. Status prüfen
curl http://localhost:8002/v1/models
curl http://localhost:8002/graph/stats
Endpunkt: http://<host>:8002/v1
Chat (einfach)¶
curl http://localhost:8002/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "moe-orchestrator",
"messages": [{"role": "user", "content": "Deine Frage"}],
"stream": false
}'
Chat (Streaming / SSE)¶
curl http://localhost:8002/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "moe-orchestrator",
"messages": [{"role": "user", "content": "Deine Frage"}],
"stream": true
}'
Feedback (Lernschleife)¶
curl http://localhost:8002/v1/feedback \
-H "Content-Type: application/json" \
-d '{"response_id": "chatcmpl-<id>", "rating": 5}'
Rating 1–2 = negativ, 3 = neutral, 4–5 = positiv.
Die response_id steht im id-Feld jeder Chat-Antwort.
Graph-API¶
OpenAI-kompatible Clients (Continue.dev, Open WebUI, curl)¶
# Chat completion (streaming)
curl -s http://localhost:8002/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "moe-orchestrator",
"stream": true,
"messages": [{"role": "user", "content": "Erkläre mir Transformer-Architekturen."}]
}'
# Verfügbare Modell-IDs auflisten
curl -s http://localhost:8002/v1/models | jq '.data[].id'