File size: 3,480 Bytes
881357e
c7a8a09
881357e
21b6db8
30b8f34
 
e6a31da
21b6db8
e679095
21b6db8
881357e
9be823f
8ee00c9
e679095
ea9bdf0
96c29e4
ab4ccfc
96c29e4
 
 
c7a8a09
881357e
ea9bdf0
6d68931
e6a31da
9be823f
 
30b8f34
881357e
 
e6a31da
881357e
30b8f34
54bda52
30b8f34
881357e
30b8f34
e679095
881357e
 
 
 
 
 
30b8f34
 
881357e
 
30b8f34
96c29e4
30b8f34
96c29e4
 
 
30b8f34
881357e
30b8f34
9be823f
30b8f34
 
881357e
30b8f34
 
c7a8a09
30b8f34
 
881357e
c7a8a09
30b8f34
 
60c1c5f
 
30b8f34
60c1c5f
 
 
30b8f34
60c1c5f
 
 
30b8f34
60c1c5f
c7a8a09
 
 
96c29e4
60c1c5f
 
c7a8a09
60c1c5f
 
 
c7a8a09
 
96c29e4
c7a8a09
 
9be823f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
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()