Spaces:
Runtime error
Runtime error
| from agents.routing_agent import route_query | |
| from utils.guardrails import validate_math_query, sanitize | |
| def evaluate(txt_path:str): | |
| total,correct=0,0 | |
| results=[] | |
| with open(txt_path,"r" ,encoding="utf-8") as f: | |
| content=f.read().strip().split("\n\n") | |
| for block in content: | |
| if not block.strip(): | |
| continue | |
| lines = block.strip().split("\n") | |
| question=next((l[3:].strip() for l in lines if l.startswith("Q:")),None) | |
| expected=next((l[3:].strip().lower() for l in lines if l.startswith("A:")),"") | |
| if not question or not expected: | |
| continue | |
| if not validate_math_query(question): | |
| print(f"⚠️ Skipping invalid query: {question}") | |
| continue | |
| response=route_query(question) | |
| cleaned=sanitize(response).lower() | |
| is_right=expected in cleaned | |
| results.append({ | |
| "Question": question, | |
| "Expected": expected, | |
| "ModelAnswer": cleaned, | |
| "Match": is_right | |
| }) | |
| total+=1 | |
| if is_right: | |
| correct+=1 | |
| accuracy = (correct / total * 100) if total > 0 else 0.0 | |
| print(f"{accuracy:.2f}% ({correct}/{total})") | |
| print(results) | |
| if __name__ == "__main__": | |
| txt_file = "data/data.txt" | |
| evaluate(txt_file) |