Faktencheck-Deduplizierung und Auto-Resolve implementiert

3-Ebenen-System gegen Duplikate:
1. Pre-Dedup: LLM-Antwort wird vor DB-Insert dedupliziert (deduplicate_new_facts)
2. Auto-Resolve: Bestaetigte Fakten loesen automatisch stale developing/unconfirmed Fakten auf
3. Periodische Konsolidierung: Haiku clustert alle 6h semantische Duplikate und entfernt sie

Verbessertes Claim-Matching: SequenceMatcher (70%) + Jaccard-Keyword-Overlap (30%)
statt reinem SequenceMatcher. Threshold von 0.7 auf 0.75 erhoeht.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Dieser Commit ist enthalten in:
claude-dev
2026-03-08 21:59:50 +01:00
Ursprung 62aa63c7fb
Commit e2ea4eaaa0
4 geänderte Dateien mit 336 neuen und 18 gelöschten Zeilen

Datei anzeigen

@@ -9,7 +9,7 @@ from typing import Optional
from urllib.parse import urlparse, urlunparse
from agents.claude_client import UsageAccumulator
from agents.factchecker import find_matching_claim
from agents.factchecker import find_matching_claim, deduplicate_new_facts
from source_rules import (
_detect_category,
_extract_domain,
@@ -890,6 +890,9 @@ class AgentOrchestrator:
all_articles_for_fc = [dict(row) for row in await cursor.fetchall()]
fact_checks, fc_usage = await factchecker.check(title, all_articles_for_fc, incident_type)
# Pre-Dedup: Duplikate aus LLM-Antwort entfernen
fact_checks = deduplicate_new_facts(fact_checks)
if fc_usage:
usage_acc.add(fc_usage)