import gradio as gr from gradio_leaderboard import Leaderboard, SelectColumns from src.display.columns import ( MODEL_COL, TEAM_COL, main_board_datatype_for_df, main_board_default_cols, main_board_hidden_columns, ) from src.display.css_html_js import custom_css from src.display.datasets_tab import build_datasets_tab from src.display.i18n import t from src.display.utils import BENCHMARK_COLS, COLS, AutoEvalColumn from src.leaderboard.sync import log_storage_status, sync_results_from_hub from src.populate import ( get_empty_leaderboard_notice, get_leaderboard_df, reload_leaderboard_tables, ) from src.submission.submit import add_zip_submission log_storage_status() sync_results_from_hub() LEADERBOARD_DF = get_leaderboard_df(COLS, BENCHMARK_COLS) def build_leaderboard(dataframe): return Leaderboard( value=dataframe, datatype=main_board_datatype_for_df(dataframe), select_columns=SelectColumns( default_selection=main_board_default_cols(), cant_deselect=[AutoEvalColumn.model_type_symbol.name, MODEL_COL, TEAM_COL], label=t("select_columns"), ), search_columns=[MODEL_COL, TEAM_COL], hide_columns=main_board_hidden_columns(), interactive=False, ) demo = gr.Blocks(css=custom_css) with demo: title = gr.HTML(t("title")) introduction = gr.Markdown(t("introduction"), elem_classes="markdown-text") with gr.Tabs(elem_classes="tab-buttons") as tabs: with gr.TabItem(t("tab_leaderboard"), elem_id="llm-benchmark-tab-table", id=0): empty_notice = gr.Markdown( get_empty_leaderboard_notice() if LEADERBOARD_DF.empty else "", visible=LEADERBOARD_DF.empty, elem_classes="markdown-text", ) leaderboard = build_leaderboard(LEADERBOARD_DF) dataset_tables = build_datasets_tab() with gr.TabItem(t("tab_about"), elem_id="llm-benchmark-tab-about", id=2): gr.Markdown(t("about"), elem_classes="markdown-text") with gr.TabItem(t("tab_submit"), elem_id="llm-benchmark-tab-submit", id=3): gr.Markdown(t("submit"), elem_classes="markdown-text") zip_model_name_textbox = gr.Textbox( label=t("model_name_label"), placeholder=t("model_name_placeholder"), ) zip_team_name_textbox = gr.Textbox( label=t("team_name_label"), placeholder=t("team_name_placeholder"), ) submission_zip = gr.File( label=t("submission_zip_label"), file_types=[".zip"], type="filepath", ) zip_submit_button = gr.Button(t("submit_button")) zip_submission_result = gr.Markdown() zip_submit_button.click( add_zip_submission, [submission_zip, zip_model_name_textbox, zip_team_name_textbox], [ zip_submission_result, leaderboard, *dataset_tables, empty_notice, zip_model_name_textbox, zip_team_name_textbox, submission_zip, ], ) demo.load( reload_leaderboard_tables, outputs=[leaderboard, *dataset_tables, empty_notice], ) demo.queue(default_concurrency_limit=40).launch()