import re def normalize_answer(answer: str) -> str: """Apply minimal GAIA answer cleanup without changing meaning.""" cleaned = str(answer).strip() final_answer_match = re.search( r"FINAL\s+ANSWER\s*:\s*(.+)\s*$", cleaned, flags=re.IGNORECASE | re.DOTALL, ) if final_answer_match: cleaned = final_answer_match.group(1).strip() cleaned = cleaned.strip("` \n\t") cleaned = cleaned.strip() if ( len(cleaned) >= 2 and cleaned[0] == cleaned[-1] and cleaned[0] in {"'", '"'} ): cleaned = cleaned[1:-1].strip() cleaned = cleaned.removesuffix(".").strip() if re.fullmatch(r"\$?-?\d[\d,]*(?:\.\d+)?", cleaned): cleaned = cleaned.removeprefix("$").replace(",", "") return cleaned