feat(v9): Phase 11 — selbst-aktualisierende Setups (Rollen-Slots × discover)

Setups sind nicht mehr hartkodiert: RECIPE_TEMPLATES definieren das KONZEPT
als Rollen-Slots, build_dynamic_recipes füllt sie live aus discover (Hardware-
Fit, MoE bevorzugt, dedupe, leere Slots ausgelassen). all_recipes liefert
Auto-Setups + eigene; statische RECIPES nur als Fallback.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Hitonabi
2026-06-24 18:27:19 +02:00
parent 30bae06c0c
commit 5d8babaede
2 changed files with 91 additions and 4 deletions
+31
View File
@@ -91,6 +91,37 @@ RECIPES = [
},
]
# ---------------------------------------------------------------------------
# Dynamische Setups: KONZEPT bleibt kuratiert (Rollen-Slots), die Modelle werden
# zur Laufzeit aus `discover` (live HF + Hardware-Fit) gefuellt → Setups
# aktualisieren sich von selbst und passen sich der Hardware an.
# slots = Rollen aus sources.CATEGORIES (vision/coder/reasoning/agent/scout).
# ---------------------------------------------------------------------------
RECIPE_TEMPLATES = [
{"id": "auto-elite", "title": "Elite-Lineup (für deine APU)", "icon": "bolt",
"desc": "Das Stärkste, das auf deiner Hardware flott läuft — bevorzugt MoE (viel Wissen, "
"wenige aktive Parameter). Ein Spitzenmodell je Rolle, automatisch aktuell gehalten.",
"slots": ["coder", "reasoning", "agent", "vision", "scout"]},
{"id": "auto-coding", "title": "Coden & Programmieren", "icon": "code",
"desc": "Bestes Coder-Modell für deine Hardware + ein Reasoning-Modell zum Gegenlesen.",
"slots": ["coder", "reasoning"]},
{"id": "auto-chat", "title": "Alltag & Chat", "icon": "compass",
"desc": "Vielseitiger Allrounder + Bildverständnis für den täglichen Gebrauch.",
"slots": ["scout", "vision"]},
{"id": "auto-agent", "title": "Agenten & Tools", "icon": "layers",
"desc": "Tool-fähige Modelle für autonome Aufgaben, ergänzt um einen Coder.",
"slots": ["agent", "coder"]},
]
# Kurzbegruendung je Rolle (ersetzt die handgeschriebenen „why"-Texte bei Auto-Setups).
ROLE_WHY = {
"coder": "Bestes lokales Coder-Modell für deine Hardware.",
"reasoning": "Reasoning-Modell für Mathe, Logik & knifflige Aufgaben.",
"agent": "Tool-fähig — plant, ruft Werkzeuge auf, arbeitet mehrschrittig.",
"vision": "Versteht Screenshots, Diagramme & Fehlerbilder.",
"scout": "Flinker Allrounder für schnelle Fragen & Chat.",
}
# Upgrade-Map: hat der Nutzer ein „altes" Modell, schlagen wir das aktuelle vor.
UPGRADES = [
{"match": ["qwen2.5-coder", "qwen2_5-coder"], "name": "Qwen3-Coder 30B-A3B",