box-wart: Hirn gezielt pruefen, Laden meldet das echte Ergebnis, Radar-Suche als Auftrag
- Waechter (pruefe_kern): prueft jetzt gezielt das Modell mit der Rolle hermes und seinen
Zustand in llama-swap (/running, v257 listet auch ladende Modelle), statt das Hirn fuer
bereit zu halten, sobald irgendein Modell laeuft. Ein Ladevorgang ist kein Ausfall, aber
nur bis 10 Minuten (MC_WAECHTER_HIRN_LADEN_S), sonst bliebe ein immer neu startendes Hirn
unbemerkt. Sonst die ueblichen Takte (FAIL_AFTER); Knopf "Protokoll des Motors".
- llamaswap: modell_zustaende() und hirn_zustand(); lade_modell() meldet ok false mit
deutschem Grund und der Meldung der Engine, "laedt noch" nach der Wartezeit ist kein Fehler,
ein geladenes Modell ohne Chat (embed) zaehlt als geladen. POST /api/models/{id}/load
reicht das Ergebnis durch (Router duenn).
- Radar "Jetzt suchen": startet die Suche als Auftrag (Job-Engine, Gruppe radar, hoechstens
einer, radar_lauf.py --nur-suche) und antwortet sofort mit der Auftrags-ID. Die Ansicht
zeigt "Sucht ..." bis der Auftrag fertig ist, liest danach das Radar neu und nennt eine
gescheiterte Suche; die Auftragskarte zeigt den Stand.
- Tests: Hirn-Zustaende und Frist, Laden gegen eine llama-swap-Attrappe, Radar-Auftrag.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
40d2840b16
commit
93f6613146
@@ -52,7 +52,7 @@ from config import HF_DOWNLOAD_ENV, LLAMA_SWAP_URL, MODELS_DIR
|
||||
from kern.zeit import LOCAL_TZ
|
||||
from ruamel.yaml.scalarstring import LiteralScalarString
|
||||
|
||||
from services import discover, geheimnisse, hf, llamaswap
|
||||
from services import discover, geheimnisse, hf, jobengine, llamaswap
|
||||
from services.fit import extract_active_params_b, extract_params_b
|
||||
|
||||
try:
|
||||
@@ -795,6 +795,26 @@ def suche() -> dict:
|
||||
return ergebnis
|
||||
|
||||
|
||||
SUCHE_ZEITLIMIT_S = 20 * 60
|
||||
_LAUF_SKRIPT = Path(__file__).resolve().parents[1] / "radar_lauf.py"
|
||||
|
||||
|
||||
def suche_starten() -> dict:
|
||||
"""„Jetzt suchen“ als Auftrag (seit 24.09.2026): Die Suche fragt Hugging Face je Fund ab und kann Minuten dauern —
|
||||
synchron hielt sie die Anfrage der Oberfläche so lange fest. Jetzt läuft sie in der Job-Engine (Gruppe „radar“,
|
||||
höchstens eine zugleich, radar_lauf.py --nur-suche); die Antwort kommt sofort mit der Auftrags-ID, den Stand
|
||||
zeigt die Auftragskarte. Läuft schon eine Suche, kommt deren ID zurück."""
|
||||
job_id, laeuft = jobengine.start_job_exklusiv(
|
||||
"radar", [sys.executable, str(_LAUF_SKRIPT), "--nur-suche"], "Modell-Radar: Suche nach neuen Modellen",
|
||||
zeitlimit_s=SUCHE_ZEITLIMIT_S)
|
||||
if job_id is None:
|
||||
return {"ok": True, "job_id": (laeuft or {}).get("id"), "laeuft_schon": True,
|
||||
"text": "Die Suche läuft schon. Den Stand zeigt der Auftrag unter „Aufträge“."}
|
||||
return {"ok": True, "job_id": job_id,
|
||||
"text": "Das Radar sucht jetzt nach neuen Modellen. Das dauert ein paar Minuten; den Stand zeigt der "
|
||||
"Auftrag unter „Aufträge“."}
|
||||
|
||||
|
||||
# --- Test ---------------------------------------------------------------------------------
|
||||
|
||||
_PS = None
|
||||
|
||||
Reference in New Issue
Block a user