import gradio as gr from gradio_leaderboard import Leaderboard, ColumnFilter, SelectColumns import pandas as pd from apscheduler.schedulers.background import BackgroundScheduler from huggingface_hub import snapshot_download # Define dataset paths and constants LEADERBOARD_PATH = "hf://datasets/alibayram/yapay_zeka_turkce_mmlu_liderlik_tablosu/data/train-00000-of-00001.parquet" RESPONSES_PATH = "hf://datasets/alibayram/yapay_zeka_turkce_mmlu_model_cevaplari/data/train-00000-of-00001.parquet" SECTION_RESULTS_PATH = "hf://datasets/alibayram/yapay_zeka_turkce_mmlu_bolum_sonuclari/data/train-00000-of-00001.parquet" REPO_ID = "alibayram" QUEUE_REPO = "queue-repo" RESULTS_REPO = "results-repo" TOKEN = "your_hf_token" # Load datasets try: leaderboard_data = pd.read_parquet(LEADERBOARD_PATH) model_responses_data = pd.read_parquet(RESPONSES_PATH) section_results_data = pd.read_parquet(SECTION_RESULTS_PATH) except Exception as e: print(f"Error loading datasets: {e}") raise # Initialize leaderboard def init_leaderboard(dataframe): if dataframe is None or dataframe.empty: raise ValueError("Leaderboard DataFrame is empty or None.") return Leaderboard( value=dataframe, datatype=[col.dtype.name for col in dataframe.dtypes], select_columns=SelectColumns( default_selection=["model", "basari", "toplam_sure"], label="Select Columns to Display", ), search_columns=["model"], filter_columns=[ ColumnFilter("family", type="checkboxgroup", label="Model Family"), ColumnFilter("quantization_level", type="checkboxgroup", label="Quantization Level"), ], ) # Refresh datasets def restart_space(): snapshot_download(repo_id=QUEUE_REPO, local_dir="queue_cache", repo_type="dataset", token=TOKEN) snapshot_download(repo_id=RESULTS_REPO, local_dir="results_cache", repo_type="dataset", token=TOKEN) # Gradio app setup demo = gr.Blocks(css=".container { max-width: 1200px; margin: auto; }") with demo: gr.HTML("