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).
Dieser Commit ist enthalten in:
@@ -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...")
|
||||
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren