piotrj's picture
Update app.py
f3ca6f5 verified
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()