|
import pandas as pd |
|
import requests |
|
|
|
|
|
class HsEvaluatorClient: |
|
|
|
def __init__(self, username, space_id): |
|
self.space_id = space_id |
|
self.username = username |
|
self.base_url = "https://agents-course-unit4-scoring.hf.space" |
|
|
|
def fetch_questions(self): |
|
try: |
|
response = requests.get(f"{self.base_url}/questions", timeout=15) |
|
response.raise_for_status() |
|
return response.json() |
|
except Exception as e: |
|
print(f"Error fetching questions: {e}") |
|
return None |
|
|
|
def submit_answers(self, answers_payload, results_log): |
|
agent_code = f"https://huggingface.co/spaces/{self.space_id}/tree/main" |
|
submission_data = { |
|
"username": self.username.strip(), |
|
"agent_code": agent_code, |
|
"answers": answers_payload |
|
} |
|
try: |
|
response = requests.post(f"{self.base_url}/submit", json=submission_data, timeout=60) |
|
response.raise_for_status() |
|
result_data = response.json() |
|
final_status = ( |
|
f"Submission Successful!\n" |
|
f"User: {result_data.get('username')}\n" |
|
f"Overall Score: {result_data.get('score', 'N/A')}% " |
|
f"({result_data.get('correct_count', '?')}/{result_data.get('total_attempted', '?')} correct)\n" |
|
f"Message: {result_data.get('message', 'No message received.')}" |
|
) |
|
return final_status, pd.DataFrame(results_log) |
|
except Exception as e: |
|
return f"Submission Failed: {e}", pd.DataFrame(results_log) |
|
|