Zum Inhalt

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

curl http://localhost:8002/v1/models

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

curl http://localhost:8002/graph/stats
curl "http://localhost:8002/graph/search?q=Ibuprofen"

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'