import requests import os import json # API base URL BASE_URL = "https://agents-course-unit4-scoring.hf.space" import os def get_hf_username(): """ Gets Hugging Face username for submission. """ return os.environ.get("HF_USERNAME", "shrutikaP8497") # replace with your HF username def get_code_link(): """ Returns the public URL to the Hugging Face Space code. """ return "https://huggingface.co/spaces/shrutikaP8497/gaia_agent_code" def download_task_file(task_id, save_dir="downloads"): """ Downloads a file associated with a task from the GAIA evaluation API. """ os.makedirs(save_dir, exist_ok=True) url = f"{BASE_URL}/files/{task_id}" response = requests.get(url) if response.status_code == 200: filename = os.path.join(save_dir, task_id) with open(filename, "wb") as f: f.write(response.content) return filename else: print(f"Failed to download file for task {task_id}") return None def format_answer(agent_output): """ Format the agent's response to meet submission requirements: - Do NOT include 'FINAL ANSWER' - Must be a concise string or comma-separated list """ if isinstance(agent_output, str): return agent_output.strip() elif isinstance(agent_output, list): return ", ".join(map(str, agent_output)) elif isinstance(agent_output, (int, float)): return str(agent_output) else: return str(agent_output) def log_submission(task_id, answer, reasoning_trace=None, save_path="submission_log.jsonl"): """ Log the task_id and answer for debugging/submission traceability. """ entry = { "task_id": task_id, "submitted_answer": answer, } if reasoning_trace: entry["reasoning_trace"] = reasoning_trace with open(save_path, "a") as f: f.write(json.dumps(entry) + "\n")