From 5f053a3eca7efc3e9b34aa2c7be75571ad8c2e71 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 9 May 2026 15:43:36 +0000 Subject: [PATCH] fix(source_suggester): Strategie-Eskalation vor Karteileichen ausfuehren Live-Test heute zeigte: Strategie-Eskalations-Heuristik hat keine Vorschlaege erzeugt, obwohl Verfassungsschutz und Rheinische Post beide fetch_strategy= googlebot UND status=error haben. Grund: die Karteileichen-Heuristik lief zuerst und fing diese Sources schon ein (article_count=0, weil googlebot- Workaround blockiert), sodass die Doppel-Vermeidung der Strategie- Eskalations-Stufe alles uebersprungen hat. Fix: Reihenfolge in generate_suggestions umgekehrt. Strategie-Eskalation zuerst (spezifischere Diagnose mit Begruendung "Workaround greift nicht: HTTP 403"), Karteileichen danach (generische Auffanglogik). --- src/services/source_suggester.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/services/source_suggester.py b/src/services/source_suggester.py index d84c30a..ca45f66 100644 --- a/src/services/source_suggester.py +++ b/src/services/source_suggester.py @@ -179,19 +179,22 @@ async def generate_strategy_escalation_suggestions(db: aiosqlite.Connection) -> async def generate_suggestions(db: aiosqlite.Connection) -> int: """Generiert Quellen-Vorschläge basierend auf Health-Checks und Lückenanalyse. - Drei Stufen: - 1. Deterministisch: Karteileichen-Heuristik (article_count=0 oder >60d stumm) - erzeugt sofort deactivate_source-Vorschläge ohne KI-Aufruf. - 2. Deterministisch: Strategie-Eskalations-Heuristik (fetch_strategy=googlebot + Drei Stufen, in dieser Reihenfolge ausgeführt (spezifisch -> generisch -> KI): + 1. Deterministisch: Strategie-Eskalations-Heuristik (fetch_strategy=googlebot oder paywall, aber Reachability weiter error) erzeugt deactivate_source- - Vorschläge mit Priorität 'high'. + Vorschläge mit Priorität 'high'. Spezifischste Diagnose: "Workaround + greift nicht". Läuft ZUERST, damit diese Sources nicht von der + generischeren Karteileichen-Stufe weggefangen werden. + 2. Deterministisch: Karteileichen-Heuristik (article_count=0 oder >60d stumm) + erzeugt sofort deactivate_source-Vorschläge für alle übrigen toten + Quellen ohne KI-Aufruf. 3. KI-basiert: Haiku schaut sich Quellensammlung + Health-Probleme an und schlägt weitere Verbesserungen vor (add_source, deactivate_source, fix_url, ...). Rückgabe ist die Gesamtzahl neu erzeugter Vorschläge aller Stufen. """ - stale_count = await generate_stale_deactivation_suggestions(db) strategy_count = await generate_strategy_escalation_suggestions(db) + stale_count = await generate_stale_deactivation_suggestions(db) logger.info("Starte Quellen-Vorschläge via Haiku...")