Moncey10 commited on
Commit
f263648
·
1 Parent(s): 5734788

Changed ai_generated_remark to submission_remark

Browse files
Files changed (1) hide show
  1. app.py +17 -17
app.py CHANGED
@@ -911,7 +911,7 @@ async def homework_validate(
911
  "student_level": student_level,
912
  "status": "Unreadable",
913
  "match_percentage": 0,
914
- "ai_generated_remark": None,
915
  "rule_based_remark": "Answer text could not be read clearly. Please upload a clearer file.",
916
  "student_extracted_text": student_text,
917
  "llm_used": False,
@@ -928,7 +928,7 @@ async def homework_validate(
928
  "student_level": student_level,
929
  "status": "Unreadable",
930
  "match_percentage": 0,
931
- "ai_generated_remark": None,
932
  "rule_based_remark": "This PDF looks scanned. OCR is required (install pdf2image + poppler) or upload a clearer file.",
933
  "student_extracted_text": student_text,
934
  "llm_used": False,
@@ -1063,7 +1063,7 @@ async def homework_validate(
1063
  "student_level": student_level,
1064
  "status": status,
1065
  "match_percentage": final_score,
1066
- "ai_generated_remark": None,
1067
  "rule_based_remark": f"MCQ: {correct_mcq}/{total_mcq} correct. Narrative score: {narrative_score}%. (Level: {student_level}, Credit per Q: {credit_per_q}%)",
1068
  "llm_used": bool(narrative_results and 'error' not in narrative_results),
1069
  "student_extracted_text": student_text,
@@ -1154,7 +1154,7 @@ async def homework_validate(
1154
  "student_level": student_level,
1155
  "status": status,
1156
  "match_percentage": match_percentage,
1157
- "ai_generated_remark": None,
1158
  "rule_based_remark": f"Multiple MCQ: {correct_count}/{total_count} correct. Score: {match_percentage}% (Level: {student_level})",
1159
  "student_extracted_text": student_text,
1160
  "llm_used": False,
@@ -1172,7 +1172,7 @@ async def homework_validate(
1172
  "student_level": student_level,
1173
  "status": "Needs Review",
1174
  "match_percentage": 0,
1175
- "ai_generated_remark": None,
1176
  "rule_based_remark": f"Found {len(student_answers_by_qid)} MCQ answers but no correct answers in prompt. Include 'Correct: B' for each question.",
1177
  "student_extracted_text": student_text,
1178
  "llm_used": False,
@@ -1192,7 +1192,7 @@ async def homework_validate(
1192
  "student_level": student_level,
1193
  "status": "Needs Review",
1194
  "match_percentage": 0,
1195
- "ai_generated_remark": None,
1196
  "rule_based_remark": "MCQ correct option not found in prompt. Include 'Correct: B' or similar in prompt.",
1197
  "student_extracted_text": student_text,
1198
  "llm_used": False,
@@ -1209,7 +1209,7 @@ async def homework_validate(
1209
  "student_level": student_level,
1210
  "status": "Needs Review",
1211
  "match_percentage": 0,
1212
- "ai_generated_remark": None,
1213
  "rule_based_remark": "Student option (A/B/C/D) not detected clearly.",
1214
  "student_extracted_text": student_text,
1215
  "llm_used": False,
@@ -1241,7 +1241,7 @@ async def homework_validate(
1241
  "student_level": student_level,
1242
  "status": status,
1243
  "match_percentage": match_percentage,
1244
- "ai_generated_remark": None,
1245
  "rule_based_remark": f"{'Correct' if is_correct else 'Incorrect'}. Score: {match_percentage}% (Level: {student_level}, Credit per Q: {credit_per_q}%)",
1246
  "student_extracted_text": student_text,
1247
  "llm_used": False,
@@ -1260,7 +1260,7 @@ async def homework_validate(
1260
  "student_level": student_level,
1261
  "status": "Needs Review",
1262
  "match_percentage": 0,
1263
- "ai_generated_remark": None,
1264
  "rule_based_remark": "Gemini not configured. Check /health/llm.",
1265
  "llm_used": False,
1266
  "llm_error": parse_gemini_error(GEMINI_LAST_ERROR),
@@ -1294,7 +1294,7 @@ async def homework_validate(
1294
  "student_level": student_level,
1295
  "status": "Needs Review",
1296
  "match_percentage": 0,
1297
- "ai_generated_remark": None,
1298
  "rule_based_remark": "Gemini failed. Check /health/llm.",
1299
  "llm_used": False,
1300
  "llm_error": parse_gemini_error(GEMINI_LAST_ERROR),
@@ -1315,7 +1315,7 @@ async def homework_validate(
1315
  "student_level": student_level,
1316
  "status": "Needs Review",
1317
  "match_percentage": 0,
1318
- "ai_generated_remark": None,
1319
  "rule_based_remark": "Gemini returned non-JSON output.",
1320
  "llm_used": False,
1321
  "llm_error": {"ok": False, "error_type": "GEMINI_BAD_JSON", "message": str(e), "raw": response_text[:800]},
@@ -1339,7 +1339,7 @@ async def homework_validate(
1339
  "student_level": student_level,
1340
  "status": "Needs Review",
1341
  "match_percentage": 0,
1342
- "ai_generated_remark": None,
1343
  "rule_based_remark": "AI returned empty reference answer.",
1344
  "llm_used": True,
1345
  "student_extracted_text": student_text,
@@ -1373,7 +1373,7 @@ async def homework_validate(
1373
  f"{remark_prompt}"
1374
  )
1375
 
1376
- ai_generated_remark = generate_gemini_response(
1377
  prompt=resp2_prompt,
1378
  system_prompt="You are a strict, helpful teacher. Be concise and factual.",
1379
  max_tokens=140,
@@ -1381,10 +1381,10 @@ async def homework_validate(
1381
  )
1382
 
1383
  rule_based_remark = None
1384
- remark_llm_used = bool(ai_generated_remark)
1385
- remark_llm_error = None if ai_generated_remark else (GEMINI_LAST_ERROR or "Unknown LLM error")
1386
 
1387
- if not ai_generated_remark:
1388
  if status == "Verified":
1389
  rule_based_remark = "Homework matches the expected answer well. Good coverage of the key ideas."
1390
  elif status == "Partial":
@@ -1401,7 +1401,7 @@ async def homework_validate(
1401
  "student_level": student_level,
1402
  "status": status,
1403
  "match_percentage": match_pct,
1404
- "ai_generated_remark": ai_generated_remark if ai_generated_remark else None,
1405
  "rule_based_remark": rule_based_remark,
1406
  "llm_used": True,
1407
  "remark_llm_used": remark_llm_used,
 
911
  "student_level": student_level,
912
  "status": "Unreadable",
913
  "match_percentage": 0,
914
+ "submission_remark": None,
915
  "rule_based_remark": "Answer text could not be read clearly. Please upload a clearer file.",
916
  "student_extracted_text": student_text,
917
  "llm_used": False,
 
928
  "student_level": student_level,
929
  "status": "Unreadable",
930
  "match_percentage": 0,
931
+ "submission_remark": None,
932
  "rule_based_remark": "This PDF looks scanned. OCR is required (install pdf2image + poppler) or upload a clearer file.",
933
  "student_extracted_text": student_text,
934
  "llm_used": False,
 
1063
  "student_level": student_level,
1064
  "status": status,
1065
  "match_percentage": final_score,
1066
+ "submission_remark": None,
1067
  "rule_based_remark": f"MCQ: {correct_mcq}/{total_mcq} correct. Narrative score: {narrative_score}%. (Level: {student_level}, Credit per Q: {credit_per_q}%)",
1068
  "llm_used": bool(narrative_results and 'error' not in narrative_results),
1069
  "student_extracted_text": student_text,
 
1154
  "student_level": student_level,
1155
  "status": status,
1156
  "match_percentage": match_percentage,
1157
+ "submission_remark": None,
1158
  "rule_based_remark": f"Multiple MCQ: {correct_count}/{total_count} correct. Score: {match_percentage}% (Level: {student_level})",
1159
  "student_extracted_text": student_text,
1160
  "llm_used": False,
 
1172
  "student_level": student_level,
1173
  "status": "Needs Review",
1174
  "match_percentage": 0,
1175
+ "submission_remark": None,
1176
  "rule_based_remark": f"Found {len(student_answers_by_qid)} MCQ answers but no correct answers in prompt. Include 'Correct: B' for each question.",
1177
  "student_extracted_text": student_text,
1178
  "llm_used": False,
 
1192
  "student_level": student_level,
1193
  "status": "Needs Review",
1194
  "match_percentage": 0,
1195
+ "submission_remark": None,
1196
  "rule_based_remark": "MCQ correct option not found in prompt. Include 'Correct: B' or similar in prompt.",
1197
  "student_extracted_text": student_text,
1198
  "llm_used": False,
 
1209
  "student_level": student_level,
1210
  "status": "Needs Review",
1211
  "match_percentage": 0,
1212
+ "submission_remark": None,
1213
  "rule_based_remark": "Student option (A/B/C/D) not detected clearly.",
1214
  "student_extracted_text": student_text,
1215
  "llm_used": False,
 
1241
  "student_level": student_level,
1242
  "status": status,
1243
  "match_percentage": match_percentage,
1244
+ "submission_remark": None,
1245
  "rule_based_remark": f"{'Correct' if is_correct else 'Incorrect'}. Score: {match_percentage}% (Level: {student_level}, Credit per Q: {credit_per_q}%)",
1246
  "student_extracted_text": student_text,
1247
  "llm_used": False,
 
1260
  "student_level": student_level,
1261
  "status": "Needs Review",
1262
  "match_percentage": 0,
1263
+ "submission_remark": None,
1264
  "rule_based_remark": "Gemini not configured. Check /health/llm.",
1265
  "llm_used": False,
1266
  "llm_error": parse_gemini_error(GEMINI_LAST_ERROR),
 
1294
  "student_level": student_level,
1295
  "status": "Needs Review",
1296
  "match_percentage": 0,
1297
+ "submission_remark": None,
1298
  "rule_based_remark": "Gemini failed. Check /health/llm.",
1299
  "llm_used": False,
1300
  "llm_error": parse_gemini_error(GEMINI_LAST_ERROR),
 
1315
  "student_level": student_level,
1316
  "status": "Needs Review",
1317
  "match_percentage": 0,
1318
+ "submission_remark": None,
1319
  "rule_based_remark": "Gemini returned non-JSON output.",
1320
  "llm_used": False,
1321
  "llm_error": {"ok": False, "error_type": "GEMINI_BAD_JSON", "message": str(e), "raw": response_text[:800]},
 
1339
  "student_level": student_level,
1340
  "status": "Needs Review",
1341
  "match_percentage": 0,
1342
+ "submission_remark": None,
1343
  "rule_based_remark": "AI returned empty reference answer.",
1344
  "llm_used": True,
1345
  "student_extracted_text": student_text,
 
1373
  f"{remark_prompt}"
1374
  )
1375
 
1376
+ submission_remark = generate_gemini_response(
1377
  prompt=resp2_prompt,
1378
  system_prompt="You are a strict, helpful teacher. Be concise and factual.",
1379
  max_tokens=140,
 
1381
  )
1382
 
1383
  rule_based_remark = None
1384
+ remark_llm_used = bool(submission_remark)
1385
+ remark_llm_error = None if submission_remark else (GEMINI_LAST_ERROR or "Unknown LLM error")
1386
 
1387
+ if not submission_remark:
1388
  if status == "Verified":
1389
  rule_based_remark = "Homework matches the expected answer well. Good coverage of the key ideas."
1390
  elif status == "Partial":
 
1401
  "student_level": student_level,
1402
  "status": status,
1403
  "match_percentage": match_pct,
1404
+ "submission_remark": submission_remark if submission_remark else None,
1405
  "rule_based_remark": rule_based_remark,
1406
  "llm_used": True,
1407
  "remark_llm_used": remark_llm_used,