ken2ki's picture
Focus the agent on passing Level 1 with local grading
75f03cb
Raw
History Blame Contribute Delete
1.02 kB
"""Scoring helpers aligned with the course Unit 4 API."""
from __future__ import annotations
import re
def normalize_answer(answer: str) -> str:
text = str(answer).strip()
text = re.sub(r"^FINAL ANSWER:\s*", "", text, flags=re.IGNORECASE)
text = re.sub(r"^Answer:\s*", "", text, flags=re.IGNORECASE)
if len(text) >= 2 and text[0] == text[-1] and text[0] in "\"'":
text = text[1:-1].strip()
return text.strip()
def course_answer_matches(submitted: str, ground_truth: str) -> bool:
"""Same comparison as agents-course Unit4 scoring API."""
return normalize_answer(submitted).lower() == normalize_answer(ground_truth).lower()
def course_score_percent(correct_count: int, total_questions: int = 20) -> float:
if total_questions == 0:
return 0.0
return round((correct_count / total_questions) * 100, 2)
def passes_course_threshold(correct_count: int, total_questions: int = 20) -> bool:
return course_score_percent(correct_count, total_questions) >= 30.0