from dataclasses import dataclass from enum import Enum from typing import Dict, List from src.evaluation.questions import EXAM_QUESTIONS from src.envs import QUEUE_REPO, RESULTS_REPO, REPO_ID, EXAM_QUESTIONS_REPO, HF_DATASETS_BASE_URL @dataclass class Task: benchmark: str metric: str col_name: str display_name: str def create_tasks_enum(): """Create Tasks enum dynamically from dataset themes""" task_dict = {} for sanitized_theme, questions in EXAM_QUESTIONS.items(): original_theme = questions[0]['theme'] task_dict[sanitized_theme] = Task( benchmark=sanitized_theme, metric="accuracy", col_name=f"{original_theme} Test", display_name=original_theme ) # Add overall score task_dict['overall'] = Task( benchmark="overall", metric="accuracy", col_name="Overall Score", display_name="Overall Score" ) return Enum('Tasks', task_dict) Tasks = create_tasks_enum() NUM_FEWSHOT = 0 TITLE = """

馃弳 SAS Opposition Exam Leaderboard

""" INTRODUCTION_TEXT = """ Este leaderboard eval煤a modelos de lenguaje natural simulando la experiencia real de un opositor al Servicio Andaluz de Salud (SAS). Al igual que un alumno opositor, los modelos deben responder a preguntas tipo test del temario oficial, demostrando su comprensi贸n y conocimiento de las materias evaluadas. """ LLM_BENCHMARKS_TEXT = f""" ## C贸mo funciona Los modelos son evaluados exactamente igual que un opositor real: respondiendo preguntas tipo test del temario oficial del SAS, sin acceso a material de consulta durante la prueba. Para consultar el temario completo y el proceso de oposici贸n, puede visitar la [p谩gina oficial del SAS](https://www.sspa.juntadeandalucia.es/servicioandaluzdesalud/profesionales/ofertas-de-empleo/oferta-de-empleo-publico-puestos-base/oep-extraordinaria-decreto-ley-122022-centros-sas/cuadro-de-evolucion-concurso-oposicion-centros-sas). ## Datasets del Proyecto El proyecto utiliza tres datasets principales, todos disponibles en Hugging Face: - [Dataset de Preguntas de Examen]({HF_DATASETS_BASE_URL}/{EXAM_QUESTIONS_REPO}): Contiene las preguntas tipo test utilizadas para la evaluaci贸n - [Dataset de Solicitudes]({HF_DATASETS_BASE_URL}/{QUEUE_REPO}): Almacena las solicitudes de evaluaci贸n de modelos - [Dataset de Resultados]({HF_DATASETS_BASE_URL}/{RESULTS_REPO}): Contiene los resultados de las evaluaciones realizadas ## Proceso de Evaluaci贸n - Cada modelo se enfrenta a preguntas tipo test, similar al examen real de oposici贸n - Las preguntas son de opci贸n m煤ltiple con una 煤nica respuesta correcta - La puntuaci贸n se calcula como porcentaje de aciertos, igual que en la oposici贸n real ## Reproducibilidad El c贸digo de evaluaci贸n est谩 disponible en este repositorio. Para reproducir resultados: 1. Env铆a tu modelo a trav茅s de la pesta帽a "Submit here!" 2. Puedes usar modelos de Hugging Face Hub o de OpenRouter 3. Los resultados se calcular谩n autom谩ticamente y se a帽adir谩n al leaderboard """ EVALUATION_QUEUE_TEXT = """ ## Opciones para evaluar tu modelo ### 1) Usando Hugging Face Hub: - Aseg煤rate de que tu modelo est谩 disponible en el Hub - El modelo debe poder cargarse usando AutoModelForCausalLM y AutoTokenizer - Necesitar谩s proporcionar el nombre del modelo y la revisi贸n ### 2) Usando OpenRouter: - Necesitar谩s una API key de OpenRouter - Proporciona el nombre exacto del modelo como aparece en OpenRouter - No necesitas hospedar el modelo, OpenRouter se encarga de eso ### Requisitos generales: - Los modelos deben poder generar texto en espa帽ol - Deben poder entender y responder preguntas de opci贸n m煤ltiple - Se recomienda usar modelos con capacidad de razonamiento general """ CITATION_BUTTON_LABEL = "Citar estos resultados" CITATION_BUTTON_TEXT = r""" @misc{sas-exam-leaderboard, title={SAS Opposition Exam Leaderboard}, year={2025}, url={https://huggingface.co/spaces/alberti/leaderboard} } """