leaderboard / app.py
anikfekr
refactor: streamline leaderboard functionality and enhance submission process
d220025
import gradio as gr
from gradio_leaderboard import Leaderboard, SelectColumns
from utils import (
LLM_BENCHMARKS_ABOUT_TEXT,
LLM_BENCHMARKS_SUBMIT_TEXT,
custom_css,
prepare_leaderboard_data,
submit
)
# Dataset Variables
overall_score_column = "overall"
model_name_column = "model"
precision_column = "precision"
num_params_column = "#parameters (B)"
num_params_range = [0, 100] # in billions
# Prepare the data
leaderboard_df = prepare_leaderboard_data(overall_score_column, model_name_column)
# Determine columns data type (markdown for all to support clickable links)
columns_datatype = ["markdown" for _ in range(len(leaderboard_df.columns))]
NUM_MODELS = len(leaderboard_df)
with gr.Blocks(
css=custom_css,
theme=gr.themes.Default(
font=["sans-serif", "ui-sans-serif", "system-ui"],
font_mono=["monospace", "ui-monospace", "Consolas"]
)
) as demo:
gr.Markdown("""
# πŸ† CRCIS LLM Leaderboard
""")
gr.Markdown(f"""
- **Total Models**: {NUM_MODELS}
""")
with gr.Tab("πŸ† Leaderboard"):
Leaderboard(
value=leaderboard_df,
datatype=columns_datatype,
select_columns=SelectColumns(
default_selection=leaderboard_df.columns.tolist(),
cant_deselect=[model_name_column],
label="Select Columns to Show",
),
search_columns=[model_name_column],
filter_columns=[precision_column, num_params_column],
)
with gr.TabItem("πŸ“– About"):
gr.Markdown(LLM_BENCHMARKS_ABOUT_TEXT)
with gr.Tab("πŸ“€ Submit"):
gr.Markdown(LLM_BENCHMARKS_SUBMIT_TEXT)
model_name = gr.Textbox(label="Model name")
model_id = gr.Textbox(label="Model ID (e.g., username/model-name)")
contact_email = gr.Textbox(label="Contact E-Mail")
submit_btn = gr.Button("Submit")
submit_btn.click(submit, inputs=[model_name, model_id, contact_email], outputs=[])
if __name__ == "__main__":
demo.launch()