File size: 4,670 Bytes
c5afbf5
 
 
 
aff51a8
c5afbf5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2fb73e2
c5afbf5
 
 
 
2fb73e2
c5afbf5
 
 
 
ccab79e
c5afbf5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9dfc55d
0192d6a
a6681b4
 
 
 
 
 
 
 
0192d6a
 
 
 
f3ca6f5
0192d6a
 
 
 
 
 
 
 
 
 
 
 
c5afbf5
 
 
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
import gradio as gr
from gradio_leaderboard import Leaderboard
from pathlib import Path
import pandas as pd
from src.styles import custom_css, polygon_svg

from src.structures.leaderboard_structure import (LB_LLMZSZL,
    ORDER_LIST,
    DATA_TYPES,
    COLUMN_HEADERS,
    filter_data,
    filter_columns,
)
from src.structures.gim import GIM_SCORES
from src.structures.zaw import ZAW_SCORES
from src.structures.mat import MAT_SCORES
from src.structures.osm import OSM_SCORES

global data_component
from src.abouts import *


main = gr.Blocks(css=custom_css)
with main:
    with gr.Row():
        with gr.Column():
            gr.HTML(polygon_svg)
        with gr.Column():
            gr.HTML(HEADER_TITLE)
    with gr.Tabs(elem_classes="tab-buttons") as tabs:
        with gr.Tab("🏅 LLMZSZL"):
            gr.Markdown(MAIN_DESC)
            # Checkbox to toggle column visibility
            columns_selector = gr.CheckboxGroup(
                choices=ORDER_LIST,
                label="Select columns to display",
                value=ORDER_LIST,
            )
            # Dataframe component to display the leaderboard data
            data_component = gr.components.Dataframe(
                value=LB_LLMZSZL,
                headers=COLUMN_HEADERS,
                type="pandas",
                datatype=DATA_TYPES,
                interactive=False,
                visible=True,
                column_widths=[400, 200, 100, 120, 100]
            )
            # def update_data(selected_columns, selected_languages):
            #     return update_dataframe(selected_columns, selected_languages)

            def update_dataframe(selected_columns):
                return filter_columns(selected_columns)

            columns_selector.change(update_dataframe, inputs=columns_selector, outputs=data_component)
            # language_selector.change(update_data, inputs=[columns_selector, language_selector], outputs=data_component)


        with gr.Tab("📝 Middle School exam"):
            gr.Markdown(GIM_DESC)
            data_component = gr.components.Dataframe(
                value=GIM_SCORES,
                type="pandas",
                interactive=False,
                visible=True,
                datatype=["markdown"]+["number"]*18,
                column_widths=[400] + [80] * 18
            )

        with gr.Tab("📝 8-grade exam"):
            gr.Markdown(OSM_DESC)
            data_component = gr.components.Dataframe(
                value=OSM_SCORES,
                type="pandas",
                interactive=False,
                visible=True,
                datatype=["markdown"]+["number"]*5,
                column_widths=[400] + [80] * 5
            )

        with gr.Tab("📝 High School exam"):
            gr.Markdown(MAT_DESC)
            data_component = gr.components.Dataframe(
                value=MAT_SCORES,
                type="pandas",
                interactive=False,
                visible=True,
                datatype=["markdown"]+["number"]*22,
                column_widths=[400] + [80] * 22
            )

        with gr.Tab("📝 Professional exam"):
            gr.Markdown(ZAW_DESC)
            data_component = gr.components.Dataframe(
                value=ZAW_SCORES,
                type="pandas",
                interactive=False,
                visible=True,
                datatype=["markdown"]+["number"]*12,
                column_widths=[400] + [80] * 12
            )

        with gr.Tab("📝 About"):
            gr.Markdown(ABOUT)
            gr.Markdown(DATASET_TABLE)
            with gr.Column():
                with gr.Accordion("📙 Related Work", open=False):
                    citation_button = gr.Textbox(
                        label=CITATION_LABEL,
                        value=CITATION_CONTENT,
                        lines=20,
                        elem_id="citation-button",
                        show_copy_button=True,
                    )
        
        gr.Markdown(r"""
        If this work is useful to you, please consider citing:
        ```bibtex
        @misc{jassem2025llmzszl,
              title={LLMzSz{\L}: a comprehensive LLM benchmark for Polish}, 
              author={Krzysztof Jassem and Michał Ciesiółka and Filip Graliński and Piotr Jabłoński and Jakub Pokrywka and Marek Kubis and Monika Jabłońska and Ryszard Staruch},
              year={2025},
              eprint={2501.02266},
              archivePrefix={arXiv},
              primaryClass={cs.CL},
              url={https://arxiv.org/abs/2501.02266}, 
        }
        ```
        """)
        
       

if __name__ == "__main__":
    main.launch()