Spaces:
Runtime error
Runtime error
| """ | |
| Local test script for the GAIA benchmark agent. | |
| Fetches questions from the scoring API and runs the agent on 2-3 questions | |
| WITHOUT submitting answers. This lets you validate reasoning and answer | |
| formatting before burning submission attempts. | |
| Usage: | |
| set MODEL_ID=gpt-4o | |
| set OPENAI_API_KEY=sk-... | |
| python test_local.py | |
| """ | |
| import os | |
| import sys | |
| import requests | |
| from agent import create_agent, _clean_answer, build_question_prompt | |
| API_URL = "https://agents-course-unit4-scoring.hf.space" | |
| NUM_QUESTIONS = 3 | |
| def main(): | |
| print("=" * 60) | |
| print("GAIA Agent — Local Test") | |
| print("=" * 60) | |
| # Check that the agent can be created | |
| print("\n[1] Creating agent...") | |
| try: | |
| agent = create_agent() | |
| print(" Agent created successfully.") | |
| except Exception as e: | |
| print(f" Failed to create agent: {e}") | |
| sys.exit(1) | |
| # Fetch questions | |
| print(f"\n[2] Fetching questions from {API_URL}/questions ...") | |
| try: | |
| resp = requests.get(f"{API_URL}/questions", timeout=15) | |
| resp.raise_for_status() | |
| questions = resp.json() | |
| except Exception as e: | |
| print(f" Failed to fetch questions: {e}") | |
| sys.exit(1) | |
| print(f" Got {len(questions)} total questions.") | |
| # Prefer text-only questions first (no file attachment) | |
| no_file = [q for q in questions if not q.get("file_name")] | |
| with_file = [q for q in questions if q.get("file_name")] | |
| selected = no_file[:NUM_QUESTIONS] | |
| if len(selected) < NUM_QUESTIONS: | |
| selected += with_file[: NUM_QUESTIONS - len(selected)] | |
| print(f" Selected {len(selected)} questions to test.\n") | |
| # Run agent on each | |
| for i, item in enumerate(selected): | |
| task_id = item.get("task_id", "???") | |
| question = item.get("question", "") | |
| file_name = item.get("file_name", "") | |
| prompt = build_question_prompt(item) | |
| print("=" * 60) | |
| print(f"Question {i + 1}/{len(selected)}") | |
| print(f" Task ID: {task_id}") | |
| print(f" File: {file_name or '(none)'}") | |
| print(f" Question: {question[:200]}{'...' if len(question) > 200 else ''}") | |
| print("-" * 60) | |
| try: | |
| raw_output = agent.run(prompt) | |
| except Exception as e: | |
| raw_output = f"ERROR: {e}" | |
| cleaned = _clean_answer(raw_output) | |
| print(f" Raw output: {raw_output!r}") | |
| print(f" Clean answer: {cleaned!r}") | |
| print() | |
| print("=" * 60) | |
| print("Test complete.") | |
| print("=" * 60) | |
| if __name__ == "__main__": | |
| main() | |