Spaces:
Build error
Build error
| __all__ = ['block'] | |
| import gradio as gr | |
| import pandas as pd | |
| from constants import ( | |
| MODEL_INFO, TASK_INFO, AVG_INFO, DATA_TITILE_TYPE, | |
| COLUMN_NAMES, CSV_RESULT_PATH, LEADERBORAD_INTRODUCTION, | |
| CITATION_BUTTON_TEXT, CITATION_BUTTON_LABEL | |
| ) | |
| def get_baseline_df(selected_columns=None): | |
| if selected_columns is None: | |
| selected_columns = AVG_INFO | |
| df = pd.read_csv(CSV_RESULT_PATH) | |
| df = df.sort_values(by="Overall", ascending=False) | |
| present_columns = MODEL_INFO + selected_columns | |
| df = df[present_columns] | |
| return df | |
| def get_all_df(): | |
| df = pd.read_csv(CSV_RESULT_PATH) | |
| df = df.sort_values(by="Overall", ascending=False) | |
| return df | |
| block = gr.Blocks() | |
| with block: | |
| gr.Markdown( | |
| LEADERBORAD_INTRODUCTION | |
| ) | |
| with gr.Tabs(elem_classes="tab-buttons") as tabs: | |
| # table jmmmu bench | |
| with gr.TabItem("🏅 JMMMU-Pro Benchmark", elem_id="jmmmu-pro-benchmark-tab-table", id=1): | |
| # selection for column part: | |
| checkbox_group = gr.CheckboxGroup( | |
| choices=TASK_INFO, | |
| value=AVG_INFO, | |
| label="Evaluation Dimension", | |
| interactive=True, | |
| ) # user can select the evaluation dimension | |
| baseline_value = get_baseline_df(checkbox_group.value) | |
| baseline_header = MODEL_INFO + checkbox_group.value | |
| baseline_datatype = ['markdown'] * 2 + ['number'] * len(checkbox_group.value) | |
| data_component = gr.components.Dataframe( | |
| value=baseline_value, | |
| headers=baseline_header, | |
| type="pandas", | |
| datatype=baseline_datatype, | |
| interactive=False, | |
| visible=True, | |
| ) | |
| def on_filter_method_change(selected_columns): | |
| updated_data = get_all_df() | |
| # columns: | |
| selected_columns = [ | |
| item for item in TASK_INFO if item in selected_columns | |
| ] | |
| present_columns = MODEL_INFO + selected_columns | |
| updated_data = updated_data[present_columns] | |
| updated_data = updated_data.sort_values( | |
| by=selected_columns[0], ascending=False | |
| ) | |
| updated_headers = present_columns | |
| update_datatype = [ | |
| DATA_TITILE_TYPE[COLUMN_NAMES.index(x)] | |
| for x in updated_headers | |
| ] | |
| filter_component = gr.components.Dataframe( | |
| value=updated_data, | |
| headers=updated_headers, | |
| type="pandas", | |
| datatype=update_datatype, | |
| interactive=False, | |
| visible=True, | |
| ) | |
| return filter_component | |
| checkbox_group.change(fn=on_filter_method_change, inputs=[checkbox_group], outputs=data_component) | |
| def refresh_data(): | |
| value = get_baseline_df(checkbox_group.value) | |
| return value | |
| with gr.Row(): | |
| data_run = gr.Button("Refresh") | |
| data_run.click( | |
| refresh_data, outputs=[data_component] | |
| ) | |
| with gr.Accordion("Citation", open=False): | |
| citation_button = gr.Textbox( | |
| value=CITATION_BUTTON_TEXT, | |
| label=CITATION_BUTTON_LABEL, | |
| elem_id="citation-button", | |
| show_copy_button=True, | |
| ) | |
| block.launch() | |