import gradio as gr import requests import os from agent import run_agent_on_question from utils import get_hf_username, get_code_link API_BASE = "https://agents-course-unit4-scoring.hf.space" def fetch_questions(): response = requests.get(f"{API_BASE}/questions") if response.status_code == 200: return response.json() else: return [] def submit_answers(answers, username, code_link): payload = { "username": username, "agent_code": code_link, "answers": answers } response = requests.post(f"{API_BASE}/submit", json=payload) if response.status_code == 200: return response.json() else: return {"message": "Submission failed.", "score": 0} def run_and_submit(): print("Fetching questions...") questions = fetch_questions() print(f"Fetched {len(questions)} questions") answers = [] for q in questions: print(f"Running agent on task {q['task_id']}") answer = run_agent_on_question(q) answers.append({ "task_id": q["task_id"], "submitted_answer": answer }) username = get_hf_username() code_link = get_code_link() print(f"Submitting answers as {username} with code link {code_link}") result = submit_answers(answers, username, code_link) print(result) return f"Score: {result.get('score', 0)}\nMessage: {result.get('message', 'No message')}" with gr.Blocks() as demo: gr.Markdown("## GAIA Agent Evaluation Space") with gr.Row(): submit_btn = gr.Button("Run Evaluation & Submit All Answers") output = gr.Textbox(label="Submission Result") submit_btn.click(fn=run_and_submit, outputs=output) demo.launch()