Fakten ohne Quellen-URL werden automatisch herabgestuft
_validate_facts() prueft nach dem Parsen: confirmed/established ohne URL in der Evidenz wird zu unconfirmed/unverified herabgestuft. 183 bestehende confirmed-Fakten ohne URL wurden ebenfalls korrigiert. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Dieser Commit ist enthalten in:
@@ -381,12 +381,27 @@ class FactCheckerAgent:
|
|||||||
logger.error(f"Inkrementeller Faktencheck-Fehler: {e}")
|
logger.error(f"Inkrementeller Faktencheck-Fehler: {e}")
|
||||||
return [], None
|
return [], None
|
||||||
|
|
||||||
|
def _validate_facts(self, facts: list[dict]) -> list[dict]:
|
||||||
|
"""Validiert Fakten: confirmed/established ohne URL wird herabgestuft."""
|
||||||
|
url_pattern = re.compile(r'https?://')
|
||||||
|
for fact in facts:
|
||||||
|
status = fact.get("status", "")
|
||||||
|
evidence = fact.get("evidence") or ""
|
||||||
|
if status in ("confirmed", "established") and not url_pattern.search(evidence):
|
||||||
|
old_status = status
|
||||||
|
fact["status"] = "unconfirmed" if status == "confirmed" else "unverified"
|
||||||
|
logger.warning(
|
||||||
|
f"Fakt herabgestuft ({old_status} -> {fact['status']}): "
|
||||||
|
f"keine URL in Evidenz: '{fact.get('claim', '')[:60]}...'"
|
||||||
|
)
|
||||||
|
return facts
|
||||||
|
|
||||||
def _parse_response(self, response: str) -> list[dict]:
|
def _parse_response(self, response: str) -> list[dict]:
|
||||||
"""Parst die Claude-Antwort als JSON-Array."""
|
"""Parst die Claude-Antwort als JSON-Array."""
|
||||||
try:
|
try:
|
||||||
data = json.loads(response)
|
data = json.loads(response)
|
||||||
if isinstance(data, list):
|
if isinstance(data, list):
|
||||||
return data
|
return self._validate_facts(data)
|
||||||
except json.JSONDecodeError:
|
except json.JSONDecodeError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@@ -395,7 +410,7 @@ class FactCheckerAgent:
|
|||||||
try:
|
try:
|
||||||
data = json.loads(match.group())
|
data = json.loads(match.group())
|
||||||
if isinstance(data, list):
|
if isinstance(data, list):
|
||||||
return data
|
return self._validate_facts(data)
|
||||||
except json.JSONDecodeError:
|
except json.JSONDecodeError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|||||||
In neuem Issue referenzieren
Einen Benutzer sperren