import gradio as gr
import pandas as pd
from gradio_leaderboard import Leaderboard, SelectColumns, ColumnFilter
TITLE = "
M-RewardBench Leaderboard
"
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'{model_name}'
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)