Spaces:
Running
Running
import gradio as gr | |
import pandas as pd | |
from gradio_leaderboard import Leaderboard, SelectColumns, ColumnFilter | |
TITLE = "<h1>M-RewardBench Leaderboard</h1>" | |
INTRODUCTION_TEXT = "https://m-rewardbench.github.io/" | |
GOOGLE_SHEET_URL = "https://docs.google.com/spreadsheets/d/1qrD7plUdrBwAw7G6UeDVZAaV9ihxaNAcoiKwSaqotR4/export?gid=0&format=csv" | |
ABOUT_TEXT = """Welcome to M-RewardBench Leaderboard!""" | |
class AutoEvalColumn: | |
model = { | |
"name": "Model", | |
"type": "markdown", | |
"displayed_by_default": True, | |
"never_hidden": True, | |
} | |
model_type = { | |
"name": "Model_Type", | |
"type": "markdown", | |
"displayed_by_default": True, | |
"never_hidden": True, | |
} | |
eng_Latn = { | |
"name": "eng_Latn", | |
"type": "float", | |
"displayed_by_default": True, | |
"never_hidden": False, | |
} | |
Avg_Multilingual = { | |
"name": "Avg_Multilingual", | |
"type": "float", | |
"displayed_by_default": True, | |
"never_hidden": False, | |
} | |
arb_Arab = { | |
"name": "arb_Arab", | |
"type": "float", | |
"displayed_by_default": True, | |
"never_hidden": False, | |
} | |
tur_Latn = { | |
"name": "tur_Latn", | |
"type": "float", | |
"displayed_by_default": True, | |
"never_hidden": False, | |
} | |
rus_Cyrl = { | |
"name": "rus_Cyrl", | |
"type": "float", | |
"displayed_by_default": True, | |
"never_hidden": False, | |
} | |
ces_Latn = { | |
"name": "ces_Latn", | |
"type": "float", | |
"displayed_by_default": True, | |
"never_hidden": False, | |
} | |
pol_Latn = { | |
"name": "pol_Latn", | |
"type": "float", | |
"displayed_by_default": True, | |
"never_hidden": False, | |
} | |
kor_Hang = { | |
"name": "kor_Hang", | |
"type": "float", | |
"displayed_by_default": True, | |
"never_hidden": False, | |
} | |
def get_result_data(): | |
return pd.read_csv(GOOGLE_SHEET_URL) | |
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["type"] | |
for col in AutoEvalColumn.__dict__.values() | |
if isinstance(col, dict) | |
], | |
select_columns=SelectColumns( | |
default_selection=[ | |
col["name"] | |
for col in AutoEvalColumn.__dict__.values() | |
if isinstance(col, dict) and col["displayed_by_default"] | |
], | |
cant_deselect=[ | |
col["name"] | |
for col in AutoEvalColumn.__dict__.values() | |
if isinstance(col, dict) and col.get("never_hidden", False) | |
], | |
label="Select Columns to Display:", | |
), | |
search_columns=["Model"], | |
interactive=False, | |
) | |
def format_model_link(row): | |
"""Format model name as HTML link if URL is available""" | |
model_name = row["Model"] | |
# url = row.get("URL", "") | |
# if pd.notna(url) and url.strip(): | |
# return f'<a href="{url}" target="_blank">{model_name}</a>' | |
return model_name | |
demo = gr.Blocks() | |
with demo: | |
gr.HTML(TITLE) | |
gr.Markdown(INTRODUCTION_TEXT) | |
with gr.Tabs() as tabs: | |
with gr.TabItem("π Leaderboard"): | |
df = get_result_data() | |
df["Model"] = df.apply(format_model_link, axis=1) | |
leaderboard = init_leaderboard(df) | |
demo.launch(ssr_mode=False) | |