0c16fb28c2
"Aktuell beste Modelle fuer dein System": fragt vertrauenswuerdige HF-Orgs (unsloth/bartowski/ggml-org/lmstudio-community) LIVE ab, kategorisiert die Treffer (vision/coder/reasoning/agent/scout), filtert per hw_math auf das, was auf die Hardware passt, und cached das Ergebnis (TTL 12 h, lazy + Knopf "Aktualisieren"). Damit bleibt das Cookbook von selbst aktuell, ohne dass Modelle hartkodiert werden. - sources.py: TRUSTED_AUTHORS + CATEGORIES + SKIP_TOKENS (reine Daten). - config.py: DISCOVER_CACHE_PATH (persistent neben den Modellen, uebersteht Deploys) + DISCOVER_TTL. - cookbook.py: /api/cookbook/discover (force-Param), refresh_discover, Bestandsabgleich (_model_installed -> "schon installiert als X") und ehrliche Voraussetzungen je Modell (Vision->mmproj/jinja, unquantisiert, zu gross/knapp). - cookbook.js: Sektion mit Kategorien, Fit-Ampel, Downloads, Hinweisen, 1-Klick-Installieren bzw. "installiert"-Markierung; "Aktualisieren"-Knopf. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
34 lines
1.8 KiB
Python
34 lines
1.8 KiB
Python
"""
|
|
Vertrauenswuerdige Quellen + Kategorien fuer die AUTOMATISCHE Modell-Entdeckung
|
|
(Cookbook „aktuell beste Modelle"). Bewusst nur Daten, kein Code.
|
|
|
|
Idee: Statt Modelle hartzukodieren, fragt MC diese HF-Orgs live ab (sie pflegen
|
|
zuverlaessig hochwertige GGUF-Quants), ordnet die Treffer per Stichwort einer
|
|
Kategorie zu, filtert per hw_math auf „passt zu deiner Hardware" und cached das
|
|
Ergebnis (siehe DISCOVER_CACHE_PATH/_TTL in config). So bleibt das Cookbook von
|
|
selbst aktuell, ohne Code-Aenderung.
|
|
"""
|
|
|
|
# HF-Orgs, die zuverlaessig aktuelle, hochwertige GGUF-Quants veroeffentlichen.
|
|
TRUSTED_AUTHORS = ["unsloth", "bartowski", "ggml-org", "lmstudio-community"]
|
|
|
|
# Kategorien (Reihenfolge = Anzeige + Zuordnungs-Prioritaet). Ein Modell wird der
|
|
# ERSTEN Kategorie zugeordnet, deren Stichwort im Repo-Namen vorkommt; bleibt nichts
|
|
# uebrig, faellt es in „scout" (Allrounder). Die `role` ist zugleich der Alias-Vorschlag.
|
|
CATEGORIES = [
|
|
{"role": "vision", "title": "Bilder verstehen", "icon": "eye",
|
|
"kw": ["-vl-", "-vl", "vision", "llava", "multimodal", "-mm-", "pixtral"]},
|
|
{"role": "coder", "title": "Coden & Programmieren", "icon": "code",
|
|
"kw": ["coder", "-code-", "code-", "codestral", "starcoder"]},
|
|
{"role": "reasoning", "title": "Nachdenken & Logik", "icon": "pulse",
|
|
"kw": ["-r1", "deepseek-r1", "reasoning", "qwq", "magistral", "-think", "thinking", "-o1"]},
|
|
{"role": "agent", "title": "Agenten & Tool-Use", "icon": "layers",
|
|
"kw": ["hermes", "-tool", "command-r", "watt", "-fc-", "function"]},
|
|
{"role": "scout", "title": "Allrounder & Chat", "icon": "compass",
|
|
"kw": []}, # Fallback: instruct/chat-Modelle
|
|
]
|
|
|
|
# Repo-Namensteile, die wir bei der Entdeckung ueberspringen (Roh-/Spezialformate,
|
|
# die fuer Anfaenger nicht die richtige Wahl sind).
|
|
SKIP_TOKENS = ["-base", "-bnb-", "-gptq", "-awq", "-fp8", "draft", "tokenizer"]
|