[data] fixing model
Browse files
app.py
CHANGED
@@ -16,11 +16,22 @@ from src.display.css_html_js import custom_css
|
|
16 |
### Space initialisation
|
17 |
|
18 |
|
19 |
-
# Load with multi-header
|
20 |
-
|
21 |
-
|
22 |
-
#
|
23 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
|
25 |
BIAS_DF = pd.read_csv("bias_evaluation_data.csv")
|
26 |
BIAS_DF = BIAS_DF.astype(str).fillna("-")
|
@@ -37,15 +48,14 @@ with demo:
|
|
37 |
# Add the image display
|
38 |
gr.Image("table_snapshot.png", label="Original Table Snapshot", interactive=False)
|
39 |
|
40 |
-
#
|
41 |
-
table_output = gr.DataFrame(value=
|
42 |
|
43 |
gr.Markdown("---")
|
44 |
gr.Markdown("### Display Options")
|
45 |
|
46 |
-
#
|
47 |
-
|
48 |
-
model_filter_choices = LEADERBOARD_DF.index.tolist()
|
49 |
model_selector = gr.CheckboxGroup(
|
50 |
choices=model_filter_choices,
|
51 |
value=model_filter_choices,
|
@@ -53,19 +63,21 @@ with demo:
|
|
53 |
)
|
54 |
|
55 |
def update_table(selected_models_from_filter):
|
|
|
56 |
if not selected_models_from_filter:
|
57 |
-
#
|
58 |
-
|
59 |
else:
|
60 |
-
|
61 |
-
valid_selected_models = [model for model in selected_models_from_filter if model in LEADERBOARD_DF.index]
|
62 |
if not valid_selected_models:
|
63 |
-
|
64 |
else:
|
65 |
-
|
66 |
-
|
|
|
|
|
|
|
67 |
|
68 |
-
# Event listener (only model_selector now)
|
69 |
model_selector.change(
|
70 |
fn=update_table,
|
71 |
inputs=[model_selector],
|
|
|
16 |
### Space initialisation
|
17 |
|
18 |
|
19 |
+
# Load leaderboard data with multi-header, do not set index initially
|
20 |
+
LEADERBOARD_DF_ORIGINAL = pd.read_csv("leaderboard_data.csv", header=[0, 1])
|
21 |
+
|
22 |
+
# Function to prepare DataFrame for display (format headers, ensure Model column)
|
23 |
+
def format_leaderboard_df_for_display(df_orig):
|
24 |
+
df_display = df_orig.copy()
|
25 |
+
new_columns = []
|
26 |
+
for col_tuple in df_display.columns:
|
27 |
+
if col_tuple == ('Model', 'Model'):
|
28 |
+
new_columns.append('Model')
|
29 |
+
else:
|
30 |
+
new_columns.append(f"{col_tuple[0]}\n{col_tuple[1]}")
|
31 |
+
df_display.columns = new_columns
|
32 |
+
return df_display
|
33 |
+
|
34 |
+
LEADERBOARD_DF_DISPLAY_INIT = format_leaderboard_df_for_display(LEADERBOARD_DF_ORIGINAL)
|
35 |
|
36 |
BIAS_DF = pd.read_csv("bias_evaluation_data.csv")
|
37 |
BIAS_DF = BIAS_DF.astype(str).fillna("-")
|
|
|
48 |
# Add the image display
|
49 |
gr.Image("table_snapshot.png", label="Original Table Snapshot", interactive=False)
|
50 |
|
51 |
+
# Initialize with the display-formatted DataFrame
|
52 |
+
table_output = gr.DataFrame(value=LEADERBOARD_DF_DISPLAY_INIT, label="Leaderboard Results", interactive=True, wrap=True)
|
53 |
|
54 |
gr.Markdown("---")
|
55 |
gr.Markdown("### Display Options")
|
56 |
|
57 |
+
# Filter choices from the original DataFrame's ('Model', 'Model') column
|
58 |
+
model_filter_choices = LEADERBOARD_DF_ORIGINAL[('Model', 'Model')].unique().tolist()
|
|
|
59 |
model_selector = gr.CheckboxGroup(
|
60 |
choices=model_filter_choices,
|
61 |
value=model_filter_choices,
|
|
|
63 |
)
|
64 |
|
65 |
def update_table(selected_models_from_filter):
|
66 |
+
filtered_df_orig = LEADERBOARD_DF_ORIGINAL.copy()
|
67 |
if not selected_models_from_filter:
|
68 |
+
# If no models selected, show an empty table structure (based on original for cols)
|
69 |
+
filtered_df_orig = LEADERBOARD_DF_ORIGINAL[LEADERBOARD_DF_ORIGINAL[('Model', 'Model')].isin([])] # Empty but keeps structure
|
70 |
else:
|
71 |
+
valid_selected_models = [model for model in selected_models_from_filter if model in model_filter_choices]
|
|
|
72 |
if not valid_selected_models:
|
73 |
+
filtered_df_orig = LEADERBOARD_DF_ORIGINAL[LEADERBOARD_DF_ORIGINAL[('Model', 'Model')].isin([])]
|
74 |
else:
|
75 |
+
filtered_df_orig = LEADERBOARD_DF_ORIGINAL[LEADERBOARD_DF_ORIGINAL[('Model', 'Model')].isin(valid_selected_models)]
|
76 |
+
|
77 |
+
# Format the filtered DataFrame for display
|
78 |
+
df_to_display = format_leaderboard_df_for_display(filtered_df_orig)
|
79 |
+
return gr.DataFrame.update(value=df_to_display)
|
80 |
|
|
|
81 |
model_selector.change(
|
82 |
fn=update_table,
|
83 |
inputs=[model_selector],
|