From bf78d9074c25a352d58b8bdc1b1665e51c063fb6 Mon Sep 17 00:00:00 2001 From: sit002 Date: Tue, 2 Dec 2025 12:05:48 +0800 Subject: [PATCH] feat: preserve LLM grading details (criteria, confidence, reasons) - aggregate_final_grade.py now keeps criteria and confidence from LLM output - create_minimal_metadata.py includes these in the uploaded metadata --- .autograde/aggregate_final_grade.py | 10 +++++++--- .autograde/create_minimal_metadata.py | 8 ++++++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/.autograde/aggregate_final_grade.py b/.autograde/aggregate_final_grade.py index cb49512..2f19bd5 100644 --- a/.autograde/aggregate_final_grade.py +++ b/.autograde/aggregate_final_grade.py @@ -51,7 +51,7 @@ def main(): total_score = prog_score + report_score + frontend_score total_max = prog_max + report_max + frontend_max - # 构建最终成绩数据 + # 构建最终成绩数据(保留 LLM 评分的详细内容) final_grade = { "total_score": round(total_score, 2), "max_score": total_max, @@ -64,12 +64,16 @@ def main(): "report": { "score": round(report_score, 2), "max_score": report_max, - "flags": report_grade.get("flags", []) + "flags": report_grade.get("flags", []), + "confidence": report_grade.get("confidence"), + "criteria": report_grade.get("criteria", []) # LLM 评分详情 }, "frontend": { "score": round(frontend_score, 2), "max_score": frontend_max, - "flags": frontend_grade.get("flags", []) + "flags": frontend_grade.get("flags", []), + "confidence": frontend_grade.get("confidence"), + "criteria": frontend_grade.get("criteria", []) # LLM 评分详情 } } } diff --git a/.autograde/create_minimal_metadata.py b/.autograde/create_minimal_metadata.py index b98b879..75b3875 100644 --- a/.autograde/create_minimal_metadata.py +++ b/.autograde/create_minimal_metadata.py @@ -97,7 +97,9 @@ def create_final_metadata(final_grade_file='final_grade.json'): "score": report.get("score", 0), "max_score": report.get("max_score", 10), "details": { - "flags": report.get("flags", []) + "flags": report.get("flags", []), + "confidence": report.get("confidence"), + "criteria": report.get("criteria", []) # LLM 各评分项及理由 } } components.append(report_component) @@ -110,7 +112,9 @@ def create_final_metadata(final_grade_file='final_grade.json'): "score": frontend.get("score", 0), "max_score": frontend.get("max_score", 10), "details": { - "flags": frontend.get("flags", []) + "flags": frontend.get("flags", []), + "confidence": frontend.get("confidence"), + "criteria": frontend.get("criteria", []) # LLM 各评分项及理由 } } components.append(frontend_component)