update
This commit is contained in:
@@ -23,7 +23,10 @@ class Knoten:
|
||||
titel: str = ""
|
||||
beschreibung: str = ""
|
||||
skills: list = field(default_factory=list)
|
||||
extra_skills: dict = field(default_factory=dict) # name → Skill-Liste
|
||||
klasse: str = "lang" # lang | mittel | kurz → Bündel-Größe je Call
|
||||
timeout: list | None = None # [basis_s, pro_item_s]
|
||||
runden_max: int = 3 # nur Gates: Runden-Cap
|
||||
max_parallel: int = 4
|
||||
max_versuche: int = config.MAX_VERSUCHE
|
||||
barriere: bool = False
|
||||
@@ -139,7 +142,8 @@ def laden(worker_namen: set[str] | None = None, pfad=None) -> Graph:
|
||||
for kn in knoten.values():
|
||||
if kn.typ == "llm" and not kn.skills:
|
||||
raise GraphFehler(f"{kn.id}: llm-Knoten ohne Skills")
|
||||
for s in kn.skills:
|
||||
for s in kn.skills + [s for liste in kn.extra_skills.values()
|
||||
for s in liste]:
|
||||
skills.lade(s) # wirft SkillFehler, wenn Datei fehlt/kaputt
|
||||
if worker_namen is not None and kn.worker not in worker_namen:
|
||||
raise GraphFehler(f"{kn.id}: Worker '{kn.worker}' nicht registriert")
|
||||
@@ -152,3 +156,21 @@ def get() -> Graph:
|
||||
if _graph is None:
|
||||
raise GraphFehler("Graph nicht geladen")
|
||||
return _graph
|
||||
|
||||
|
||||
def skills_von(knoten_id: str, extra: str | None = None) -> list:
|
||||
"""EINE Wahrheit für Skill-Kompositionen: pipeline.yaml. Worker fragen
|
||||
hier nach, statt Listen zu hardcoden (Drift bricht sonst erst zur
|
||||
Laufzeit)."""
|
||||
kn = get().knoten[knoten_id]
|
||||
if extra is None:
|
||||
return kn.skills
|
||||
if extra not in kn.extra_skills:
|
||||
raise GraphFehler(f"{knoten_id}: extra_skills '{extra}' nicht deklariert")
|
||||
return kn.extra_skills[extra]
|
||||
|
||||
|
||||
def timeout_fuer(knoten_id: str, n: int = 0) -> float:
|
||||
kn = _graph.knoten.get(knoten_id) if _graph else None
|
||||
basis, pro = (kn.timeout if kn and kn.timeout else config.TIMEOUT_DEFAULT)
|
||||
return basis + pro * n
|
||||
|
||||
Reference in New Issue
Block a user