diff --git a/backend/src/tracker/api/routes/bewertung.py b/backend/src/tracker/api/routes/bewertung.py index ca77939..9b7a561 100644 --- a/backend/src/tracker/api/routes/bewertung.py +++ b/backend/src/tracker/api/routes/bewertung.py @@ -162,6 +162,12 @@ def _run_zusammenfassung(vorlage_id: int, anmerkung: str, job_id: str): _jobs[job_id] = {"status": "error", "error": str(result)} return + # Get previous version for logging + prev = conn.execute( + "SELECT begruendung FROM ki_bewertungen WHERE vorlage_id = ? AND typ = 'zusammenfassung' ORDER BY id DESC LIMIT 1", + (vorlage_id,), + ).fetchone() + # Keep old versions, insert new conn.execute( """INSERT INTO ki_bewertungen (vorlage_id, typ, begruendung, anmerkungen, modell, prompt_version, erstellt_at) @@ -171,6 +177,14 @@ def _run_zusammenfassung(vorlage_id: int, anmerkung: str, job_id: str): ) if result.get("kernforderung"): conn.execute("UPDATE vorlagen SET thema_kurz = ? WHERE id = ?", (result["kernforderung"][:200], vorlage_id)) + + # Log + conn.execute( + """INSERT INTO bewertungs_log (vorlage_id, typ, anmerkung, modell, prompt_version, bewertung_vorher, bewertung_nachher, erstellt_at) + VALUES (?, 'zusammenfassung', ?, 'qwen-plus-latest', 'v2-reeval', ?, ?, ?)""", + (vorlage_id, anmerkung, prev["begruendung"] if prev else None, + result.get("zusammenfassung"), datetime.now().isoformat()), + ) conn.commit() # Auto-trigger Ketten-Bewertung wenn Vorlage in einer Kette ist @@ -272,6 +286,13 @@ def _run_ketten_bewertung(kette_id: int, anmerkung: str, job_id: str): ), ) + # Get previous scores for logging + prev_ki = conn.execute( + "SELECT score, begruendung FROM ki_bewertungen WHERE vorlage_id = ? AND typ = 'umsetzung_match' ORDER BY id DESC LIMIT 1", + (kette["ursprung_id"],), + ).fetchone() + prev_status = kette["status"] + # Update chain status based on KI score score = result.get("score", 0) bewertung = result.get("bewertung", "") @@ -297,6 +318,21 @@ def _run_ketten_bewertung(kette_id: int, anmerkung: str, job_id: str): "UPDATE ketten SET status = ?, begruendung = ? WHERE id = ?", (new_status, begruendung, kette_id), ) + + # Log + conn.execute( + """INSERT INTO bewertungs_log + (vorlage_id, kette_id, typ, anmerkung, modell, prompt_version, + score_vorher, score_nachher, status_vorher, status_nachher, + bewertung_vorher, bewertung_nachher, erstellt_at) + VALUES (?, ?, 'umsetzung', ?, 'qwen-plus-latest', 'v2-reeval', + ?, ?, ?, ?, ?, ?, ?)""", + (kette["ursprung_id"], kette_id, anmerkung, + prev_ki["score"] if prev_ki else None, score, + prev_status, new_status, + prev_ki["begruendung"] if prev_ki else None, result.get("begruendung"), + datetime.now().isoformat()), + ) conn.commit() conn.close()