|
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"] |
|
|
|
|
|
|
|
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() |
|
|