File size: 1,881 Bytes
c8be55c
 
 
f8efcf6
c8be55c
f8efcf6
c8be55c
40afe38
8285d94
 
c8be55c
 
 
 
 
f8efcf6
40afe38
 
f8efcf6
c8be55c
 
40afe38
c8be55c
 
40afe38
c8be55c
40afe38
 
c8be55c
 
40afe38
 
c8be55c
 
40afe38
c8be55c
 
f8efcf6
 
c8be55c
 
 
 
 
 
 
 
 
 
 
 
 
 
40afe38
c8be55c
 
 
40afe38
c8be55c
f8efcf6
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
import gradio as gr
import pandas as pd
from apscheduler.schedulers.background import BackgroundScheduler
from gradio_leaderboard import ColumnFilter, Leaderboard, SelectColumns

from src.about import INTRODUCTION_TEXT, TITLE
from src.display.css_html_js import custom_css
from src.envs import API, REPO_ID
from src.leaderboard.populate import load_results
from src.leaderboard.utils import COLUMNS


def restart_space():
    API.restart_space(repo_id=REPO_ID)


def init_leaderboard(dataframe: pd.DataFrame):
    dataframe = load_results()

    if dataframe is None or dataframe.empty:
        raise ValueError("Leaderboard DataFrame is empty or None.")

    return Leaderboard(
        value=dataframe,
        datatype=[c.type for c in COLUMNS],
        select_columns=SelectColumns(
            default_selection=[c.name for c in COLUMNS if c.displayed_by_default],
            cant_deselect=[c.name for c in COLUMNS if c.never_hidden],
            label="Select Columns to Display:",
        ),
        search_columns=["Model"],
        hide_columns=[c.name for c in COLUMNS if c.hidden],
        filter_columns=[
            ColumnFilter(
                "Average",
                type="slider",
                min=0.01,
                max=100,
                label="Average score",
            ),
        ],
        bool_checkboxgroup_label="Hide models",
        interactive=False,
    )


demo = gr.Blocks(css=custom_css)
with demo:
    gr.HTML(TITLE)
    gr.Markdown(INTRODUCTION_TEXT, elem_classes="markdown-text")

    with gr.Tabs(elem_classes="tab-buttons") as tabs:
        with gr.TabItem("🏅 LLM Benchmark", elem_id="llm-benchmark-tab-table", id=0):
            leaderboard = init_leaderboard()


scheduler = BackgroundScheduler()
scheduler.add_job(restart_space, "interval", seconds=3600)
scheduler.start()
demo.queue(default_concurrency_limit=40).launch()