Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from lb_info import load_results, BUILD_L1_DF | |
| from desc import ( | |
| LEADERBOARD_INTRODUCTION, | |
| LEADERBOARD_MD, | |
| CITATION_BUTTON_TEXT, | |
| CITATION_BUTTON_LABEL, | |
| CINEPILE_ABOUT_MD, | |
| ) | |
| from urllib.request import urlopen | |
| def filter_df(fields): | |
| # Use set operations to avoid duplicates | |
| headers = ( | |
| [ | |
| "Model", | |
| "Params (B)", | |
| "Average Accuracy", | |
| ] | |
| + fields | |
| + [ | |
| "Average Rank", | |
| ] | |
| ) | |
| # Remove duplicates in headers by keeping the earliest entry | |
| headers = list(dict.fromkeys(headers)) | |
| return table[headers] | |
| with gr.Blocks(theme=gr.themes.Soft()) as demo: | |
| struct = load_results() | |
| results = struct | |
| # Build leaderboard DataFrame for CinePile data | |
| table, check_box = BUILD_L1_DF(results) | |
| N_MODELS = len(table) | |
| UP_TS = "20th October 2024" # Replace with actual timestamp | |
| gr.Markdown(LEADERBOARD_INTRODUCTION.format(N_MODELS, UP_TS)) | |
| with gr.Tabs(elem_classes="tab-buttons") as tabs: | |
| # First Tab: CinePile Leaderboard | |
| with gr.TabItem("CinePile Leaderboard", elem_id="main"): | |
| gr.Markdown(LEADERBOARD_MD) | |
| # Checkbox for selecting question categories | |
| checkbox_group = gr.CheckboxGroup( | |
| choices=check_box["question_categories"], | |
| label="Question Categories", | |
| interactive=True, | |
| ) | |
| # DataFrame component for displaying the leaderboard | |
| data_component = gr.DataFrame( | |
| value=table[check_box["essential"]], | |
| datatype=[check_box["type_map"][x] for x in check_box["essential"]], | |
| interactive=False, | |
| visible=True, | |
| ) | |
| # Update the table when checkbox changes | |
| checkbox_group.change( | |
| fn=filter_df, inputs=checkbox_group, outputs=data_component | |
| ) | |
| # Second Tab: About | |
| with gr.TabItem("About CinePile", elem_id="about"): | |
| gr.Markdown(urlopen(CINEPILE_ABOUT_MD).read().decode()) | |
| # Add citation support under "About" | |
| with gr.Row(): | |
| with gr.Accordion("Citation", open=False): | |
| citation_button = gr.Textbox( | |
| value=CITATION_BUTTON_TEXT, | |
| label=CITATION_BUTTON_LABEL, | |
| elem_id="citation-button", | |
| ) | |
| demo.launch() | |