|
import requests |
|
from typing import List, Dict, Any |
|
from core_agent import GAIAAgent |
|
|
|
class GAIAApiClient: |
|
def __init__(self, api_url="https://agents-course-unit4-scoring.hf.space"): |
|
self.api_url = api_url |
|
self.questions_url = f"{api_url}/questions" |
|
self.submit_url = f"{api_url}/submit" |
|
self.files_url = f"{api_url}/files" |
|
|
|
def get_questions(self) -> List[Dict[str, Any]]: |
|
"""Fetch all evaluation questions""" |
|
response = requests.get(self.questions_url) |
|
response.raise_for_status() |
|
return response.json() |
|
|
|
def get_random_question(self) -> Dict[str, Any]: |
|
"""Fetch a single random question""" |
|
response = requests.get(f"{self.api_url}/random-question") |
|
response.raise_for_status() |
|
return response.json() |
|
|
|
def get_file(self, task_id: str) -> bytes: |
|
"""Download a file for a specific task""" |
|
response = requests.get(f"{self.files_url}/{task_id}") |
|
response.raise_for_status() |
|
return response.content |
|
|
|
def submit_answers(self, username: str, agent_code: str, answers: List[Dict[str, Any]]) -> Dict[str, Any]: |
|
"""Submit agent answers and get score""" |
|
data = { |
|
"username": username, |
|
"agent_code": agent_code, |
|
"answers": answers |
|
} |
|
response = requests.post(self.submit_url, json=data) |
|
response.raise_for_status() |
|
return response.json() |
|
|