This commit is contained in:
team3
2026-06-29 18:47:37 +02:00
parent 3382a426cf
commit 3e3559aa8f
4 changed files with 2 additions and 102 deletions

View File

@@ -47,15 +47,12 @@ STUFE_CHUNK = 100
RECHERCHE_BATCH = 20 # Crawl-Seiten je Batch
RECHERCHE_READERS = 2 # Reader-Agenten je Batch (Konsens ≥2 innerhalb des Batches)
RECHERCHE_THEMA_AGENTEN = 5 # Web-Modus (Quelle „thema", kein Crawl-Ordner)
RECHERCHE_KAPPE = 1800 # Sicherheits-Deckel je Batch-Agent
# uni/projekt: Skript-Text in Abschnitte ~dieser Größe chunken (gegen Lost-in-the-Middle bei
# großen Dokumenten). ~12k Zeichen ≈ 3k Token → sicher unter der Recall-Abfall-Schwelle.
RECHERCHE_ABSCHNITT_ZEICHEN = 12000
# Sichtung (Content/Noise) ist jetzt ein deterministischer Regel-Filter (config.CRAWL_*).
SUBBAUSTEIN_KAPPE = 900 # Subbaustein-Finde-Loop je Chunk (15 min)
KONSOLIDIERUNG_CHUNK = 600 # bis hierher EIN globaler Judge (dedupt alles); darüber chunked + Merge-Pass — nur Fallback-Pfad
DEDUP_MAX_RUNDEN = 3 # finaler Dedup-Pass: max. Iterationen (die kleinere Liste blockt je Runde neu)
DEDUP_MIN_DELTA = 3 # Abbruch, wenn eine Runde weniger als dieses % der Liste entfernt (konvergiert)
DEDUP_PAAR_FLOOR = 0.6 # Mindest-Cosine fürs Kandidaten-Paar (Complete-Link aggregiert → kein Chaining)
DEDUP_PAARE_CHUNK = 40 # Paare je Judge-Paket (Pairwise-Verifikation statt Block-Mischer)
FILTER_CHUNK = 35 # zu beurteilende Bausteine je Judge im Degradier-Pass (volle Liste als Kontext)
@@ -74,16 +71,6 @@ _bausteine_errors: dict[str, str] = {}
_bausteine_cancelled: set[str] = set()
_bausteine_step: dict[str, int] = {}
BAUSTEINE_STEPS = (
"Recherche", "Konsolidierung", "Klärung", "Dedup", "Bausteine-Filter",
"Subbausteine finden", "Subbausteine wählen", "Subbausteine klären",
"Fakten finden", "Fakten prüfen", "Fakten fix",
"Stufen finden", "Stufen wählen", "Stufen klären",
"Relevanz finden", "Relevanz wählen", "Relevanz klären",
"Gliederung",
"Fragen finden", "Fragen wählen", "Fragen klären", "Fragen prüfen",
"Karteikarten", "Beispiele",
)
ARTEFAKT_TYPEN = ("karteikarte", "beispiel")
@@ -1361,7 +1348,6 @@ async def _fakten_block(ctx, set_p, files: dict, roh: dict, q: dict, ordner, ins
return
idxs = chunks[ci]
rel_by = {bausteine[i][0]: bausteine[i][1] for i in idxs}
# nur die korrigierbaren Subs als Block
ziel = []
for bt, subs in rel_by.items():
betroffen = [s for s in subs if _norm_titel(s) in subs_norm]
@@ -1510,10 +1496,6 @@ async def _relevanz_block(ctx: GenContext, set_p, files: dict, sidecar: dict, in
return relevanz_by_id
def _norm_frage(t: str) -> str:
return " ".join(str(t or "").lower().split())
def _match_sub(agent_sub: str, rel: list[str]) -> str:
"""Subbaustein-Titel des Agenten auf den passenden relevanten Titel mappen — exakt,
dann normalisiert, dann Teilstring (der Agent lässt z. B. das Präfix „Frage: " weg).