File size: 797 Bytes
07fb471
 
 
b4bc906
 
07fb471
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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