feat(cookbook): autonome Modell-Entdeckung aus vertrauenswuerdigen Quellen
"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>
This commit is contained in:
@@ -20,6 +20,11 @@ MODELS_DIR = Path(os.environ.get("MC_MODELS_DIR", "/srv/models"))
|
||||
# Eigene Cookbook-Setups (vom Nutzer angelegt). Bewusst NICHT im App-Verzeichnis, sonst
|
||||
# wuerde ein Deploy (rsync) sie ueberschreiben -> persistent neben den Modellen ablegen.
|
||||
USER_RECIPES_PATH = Path(os.environ.get("MC_USER_RECIPES", str(MODELS_DIR / "mission-control-recipes.json")))
|
||||
# Cache der automatischen Modell-Entdeckung ("aktuell beste Modelle", live von HuggingFace).
|
||||
# Ebenfalls persistent neben den Modellen (uebersteht Deploys). TTL = wie lange der Cache
|
||||
# als frisch gilt, bevor lazy neu von den Quellen geladen wird (Default 12 h).
|
||||
DISCOVER_CACHE_PATH = Path(os.environ.get("MC_DISCOVER_CACHE", str(MODELS_DIR / "mission-control-discover.json")))
|
||||
DISCOVER_TTL = int(os.environ.get("MC_DISCOVER_TTL", "43200"))
|
||||
# Befehl, der zum Starten eines Modells in die config.yaml geschrieben wird.
|
||||
# {model} = Pfad zur GGUF-Datei, {ctx} = Kontextlaenge, ${PORT} bleibt fuer llama-swap stehen.
|
||||
# WICHTIG: an deinen Container-/llama-server-Aufruf anpassen (siehe README).
|
||||
|
||||
Reference in New Issue
Block a user