5d8babaede
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>
137 lines
8.7 KiB
Python
137 lines
8.7 KiB
Python
"""
|
|
Kuratierte Use-Case-„Setups" (Stacks) fuers Cookbook 2.0. Stand: Juni 2026.
|
|
|
|
Best-in-class je Use-Case — bewusst herstelleruebergreifend (Qwen, Google Gemma, Mistral, DeepSeek),
|
|
nicht alles Qwen. Pro Modell nur Repo + Groesse/Quant; die GGUF-Datei wird beim Installieren dynamisch
|
|
aufgeloest (robust). Fit + optimaler Kontext kommen zur Laufzeit aus hw_math.
|
|
"""
|
|
|
|
RECIPES = [
|
|
{
|
|
"id": "elite", "title": "Elite-Lineup (für deine APU)", "icon": "bolt",
|
|
"desc": "Das Stärkste, das auf deinem Strix Halo wirklich flott läuft: bevorzugt MoE-Modelle (viel Wissen, wenige aktive Parameter). Ein Spitzenmodell je Rolle — sie wechseln sich automatisch ab, es läuft immer nur eins.",
|
|
"models": [
|
|
{"role": "coder", "name": "Qwen3-Coder 30B-A3B", "repo": "unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF",
|
|
"params_b": 30, "quant": "Q4_K_M", "why": "Bestes lokales Coder-Modell — MoE (nur ~3B aktiv) → 30B-Wissen bei hohem Tempo."},
|
|
{"role": "manager", "name": "Qwen3 30B-A3B", "repo": "unsloth/Qwen3-30B-A3B-Instruct-2507-GGUF",
|
|
"params_b": 30, "quant": "Q4_K_M", "why": "Starker Allrounder & Orchestrator (MoE) — plant, delegiert, fasst zusammen."},
|
|
{"role": "reviewer", "name": "Gemma 3 27B", "repo": "unsloth/gemma-3-27b-it-GGUF",
|
|
"params_b": 27, "quant": "Q4_K_M", "why": "Googles Modell mit feinem Sprachgefühl — ideal zum Prüfen & Gegenlesen von Code/Texten."},
|
|
{"role": "vision", "name": "Qwen3-VL 8B", "repo": "Qwen/Qwen3-VL-8B-Instruct-GGUF",
|
|
"params_b": 8, "quant": "Q4_K_M", "why": "Liest Screenshots, Diagramme & Fehlerbilder — der Blick fürs Visuelle."},
|
|
{"role": "scout", "name": "Qwen3 8B", "repo": "unsloth/Qwen3-8B-GGUF",
|
|
"params_b": 8, "quant": "Q4_K_M", "why": "Flinker Kundschafter für schnelle Fragen & einfache Aufgaben."},
|
|
],
|
|
},
|
|
{
|
|
"id": "coding", "title": "Coden & Programmieren", "icon": "code",
|
|
"desc": "Aktueller Top-Coder (MoE, nur 3B aktiv → schnell), ein flinker Helfer und Vision für Screenshots.",
|
|
"models": [
|
|
{"role": "coder", "name": "Qwen3-Coder 30B-A3B", "repo": "unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF",
|
|
"params_b": 30, "quant": "Q4_K_M", "why": "Bestes lokales Coder-Modell — versteht große Codebasen, läuft dank MoE flott."},
|
|
{"role": "coder-fast", "name": "Qwen3 8B", "repo": "unsloth/Qwen3-8B-GGUF",
|
|
"params_b": 8, "quant": "Q4_K_M", "why": "Schneller Helfer für einfache Edits & Autovervollständigung."},
|
|
{"role": "vision", "name": "Qwen3-VL 8B", "repo": "Qwen/Qwen3-VL-8B-Instruct-GGUF",
|
|
"params_b": 8, "quant": "Q4_K_M", "why": "Liest Screenshots & Fehlerbilder für die Analyse."},
|
|
],
|
|
},
|
|
{
|
|
"id": "vision", "title": "Bilder verstehen", "icon": "eye",
|
|
"desc": "Ein multimodales Modell, das Bilder und Text gemeinsam versteht.",
|
|
"models": [
|
|
{"role": "vision", "name": "Qwen3-VL 8B", "repo": "Qwen/Qwen3-VL-8B-Instruct-GGUF",
|
|
"params_b": 8, "quant": "Q4_K_M", "why": "Aktuelles Vision-Modell — beschreibt Bilder, liest Diagramme & Screenshots."},
|
|
],
|
|
},
|
|
{
|
|
"id": "chat", "title": "Allrounder & Chat", "icon": "compass",
|
|
"desc": "Vielseitig für Alltag, Texte und Brainstorming — Googles Gemma als starke Alternative zu Qwen.",
|
|
"models": [
|
|
{"role": "scout", "name": "Gemma 3 27B", "repo": "unsloth/gemma-3-27b-it-GGUF",
|
|
"params_b": 27, "quant": "Q4_K_M", "why": "Googles Allrounder — exzellent bei Sprache, Wissen und langem Kontext."},
|
|
{"role": "scout-fast", "name": "Qwen3 8B", "repo": "unsloth/Qwen3-8B-GGUF",
|
|
"params_b": 8, "quant": "Q4_K_M", "why": "Schnelle Alternative für kurze Fragen."},
|
|
],
|
|
},
|
|
{
|
|
"id": "reasoning", "title": "Nachdenken & Logik", "icon": "pulse",
|
|
"desc": "Ein Reasoning-Modell, das Schritt für Schritt denkt — für Mathe, Logik, knifflige Probleme.",
|
|
"models": [
|
|
{"role": "thinker", "name": "DeepSeek-R1 Distill 7B", "repo": "unsloth/DeepSeek-R1-Distill-Qwen-7B-GGUF",
|
|
"params_b": 7, "quant": "Q4_K_M", "why": "DeepSeeks Reasoning-Ansatz — denkt laut mit, stark bei Logik & Mathe."},
|
|
],
|
|
},
|
|
{
|
|
"id": "longdoc", "title": "Lange Dokumente", "icon": "file",
|
|
"desc": "Großes Modell mit großem Kontext — für lange Texte, Verträge, Bücher.",
|
|
"models": [
|
|
{"role": "reader", "name": "Gemma 3 27B", "repo": "unsloth/gemma-3-27b-it-GGUF",
|
|
"params_b": 27, "quant": "Q4_K_M", "why": "Starke Qualität bei sehr großem Kontextfenster (auto-optimiert)."},
|
|
],
|
|
},
|
|
{
|
|
"id": "agents", "title": "Agenten & Tool-Use", "icon": "layers",
|
|
"desc": "Modelle, die gut mit Werkzeugen/Funktionen umgehen (MCP) — Mistral als Tool-Use-Spezialist.",
|
|
"models": [
|
|
{"role": "agent", "name": "Mistral Small 3.2 24B", "repo": "unsloth/Mistral-Small-3.2-24B-Instruct-2506-GGUF",
|
|
"params_b": 24, "quant": "Q4_K_M", "why": "Mistrals Stärke: zuverlässiges Function-Calling für Agenten."},
|
|
{"role": "agent-think", "name": "Qwen3 30B-A3B", "repo": "unsloth/Qwen3-30B-A3B-Instruct-2507-GGUF",
|
|
"params_b": 30, "quant": "Q4_K_M", "why": "Starkes mehrstufiges Denken (MoE) als Backup-Hirn."},
|
|
],
|
|
},
|
|
{
|
|
"id": "fast", "title": "Schnell & sparsam", "icon": "bolt",
|
|
"desc": "Kleine, flinke Modelle — ideal bei wenig Speicher oder für schnelle Antworten.",
|
|
"models": [
|
|
{"role": "mini", "name": "Qwen3 4B", "repo": "Qwen/Qwen3-4B-GGUF",
|
|
"params_b": 4, "quant": "Q4_K_M", "why": "Winzig & sehr schnell für einfache Aufgaben."},
|
|
{"role": "scout-fast", "name": "Qwen3 8B", "repo": "unsloth/Qwen3-8B-GGUF",
|
|
"params_b": 8, "quant": "Q4_K_M", "why": "Etwas mehr Können, immer noch flott."},
|
|
],
|
|
},
|
|
]
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# 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",
|
|
"repo": "unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF", "params_b": 30, "quant": "Q4_K_M",
|
|
"why": "Nachfolger deines Coders: MoE mit nur 3B aktiven Parametern → schneller und stärker auf SWE-bench."},
|
|
{"match": ["qwen2.5-7b", "qwen2_5-7b", "qwen2.5-instruct", "llama-3.1-8b", "llama-3-8b"], "name": "Qwen3 8B",
|
|
"repo": "unsloth/Qwen3-8B-GGUF", "params_b": 8, "quant": "Q4_K_M",
|
|
"why": "Neuere Generation deines Allrounders — besser im Reasoning und bei Tool-Use."},
|
|
{"match": ["llama-3.2-11b-vision", "llama-3.2-vision", "qwen2.5-vl"], "name": "Qwen3-VL 8B",
|
|
"repo": "Qwen/Qwen3-VL-8B-Instruct-GGUF", "params_b": 8, "quant": "Q4_K_M",
|
|
"why": "Modernes Vision-Modell — kleiner und treffsicherer beim Bildverständnis."},
|
|
]
|