Explorer
/proc/109/root/tmp/harden_qa.py
← Zurück ↓ Download
from pathlib import Path
p=Path('/opt/struktur/social-media-agent/codex_image_qa.py'); s=p.read_text()
old='''    confidence = raw.get("confidence")
    result["confidence"] = confidence if isinstance(confidence, (int, float)) else None
    if any(result[key] == "FAIL" for key in CRITERIA):
        result["overall"] = "FAIL"
    if result["overall"] == "FAIL" and not result["failure_reasons"]:
        result["failure_reasons"] = ["Mindestens ein technisches QA-Kriterium ist nicht bestanden."]'''
new='''    confidence = raw.get("confidence")
    result["confidence"] = confidence if isinstance(confidence, (int, float)) and 0 <= confidence <= 1 else None
    if any(result[key] == "FAIL" for key in CRITERIA) or result["confidence"] is None:
        result["overall"] = "FAIL"
    if result["overall"] == "FAIL" and not result["failure_reasons"]:
        result["failure_reasons"] = ["Technische Plausibilität oder sichere Bewertung nicht nachgewiesen."]'''
assert s.count(old)==1
s=s.replace(old,new)
old2='''Bewerte jedes Kriterium mit exakt PASS oder FAIL. Ein einzelner kritischer FAIL erzwingt overall FAIL. Prüfe: plausibles professionelles Messgerät für die behauptete Tätigkeit; nachvollziehbare Kabel und Anschlüsse ohne aus Wand/Boden/Körper zu entstehen; technisch sinnvolle Messhandlung; anatomisch plausible Person/Hände; widerspruchsfreie Bauteil- und Umgebungsgeometrie; fachlicher Bezug zum konkreten Thema/Post.'''
new2='''Du bist ein kritischer technischer Prüfer, nicht ein wohlwollender Bildbewerter. Attraktivität, Fotorealismus oder ein ungefähr passendes Motiv dürfen niemals technische Plausibilität ersetzen. Bewerte jedes Kriterium mit exakt PASS oder FAIL; bei Unsicherheit FAIL. Ein einzelner kritischer FAIL erzwingt overall FAIL. Prüfe ausdrücklich: (1) Technical device identity: Ist die Bauform wirklich mit der behaupteten Messaufgabe vereinbar? Sind Hauptgerät, Sensorfläche, Sonde und Anschlüsse plausibel und funktional zusammengehörig? Könnte es stattdessen eine Bohrmaschine, ein Winkelschleifer oder ein Fantasiegerät sein? Dann FAIL. (2) Cable/probe continuity: Wo beginnt und endet jede Leitung? Ist jeder Anschluss vollständig oder logisch nachvollziehbar? Leitung aus Wand, Boden, Decke, Möbel oder Körper, abgeschnittene/schwebende/verschmolzene oder funktionslose Leitung: FAIL. (3) Measurement method: kontaktlos/flächig/Sonde/anderes Verfahren aus dem Bild bestimmen; Gerät und Anwendung müssen dazu passen, sonst FAIL. (4) anatomisch plausible Person/Hände; (5) widerspruchsfreie Bauteil- und Umgebungsgeometrie; (6) fachlicher Bezug zum konkreten Thema/Post.'''
assert s.count(old2)==1
s=s.replace(old2,new2)
p.write_text(s); print('hardened QA prompt and parser')