Shiyu Zhao commited on
Commit
f9fbc42
·
1 Parent(s): 928143b

Update space

Browse files
Files changed (1) hide show
  1. app.py +31 -53
app.py CHANGED
@@ -77,22 +77,29 @@ model_types = {
77
  }
78
 
79
  def filter_by_model_type(df, selected_types):
 
 
80
  selected_models = [model for type in selected_types for model in model_types[type]]
81
  return df[df['Method'].isin(selected_models)]
82
 
83
- css = """
84
- table > thead {
85
- white-space: normal
86
- }
87
-
88
- table {
89
- --cell-width-1: 250px
90
- }
91
 
92
- table > tbody > tr > td:nth-child(2) > div {
93
- overflow-x: auto
94
- }
95
- """
 
 
 
 
 
 
 
96
 
97
  with gr.Blocks(css=css) as demo:
98
  gr.Markdown("# Semi-structured Retrieval Benchmark (STaRK) Leaderboard")
@@ -109,66 +116,37 @@ with gr.Blocks(css=css) as demo:
109
  with gr.Tabs() as outer_tabs:
110
  with gr.TabItem("Synthesized (full)"):
111
  with gr.Tabs() as inner_tabs_synthesized_full:
112
- for dataset in ['AMAZON', 'MAG', 'PRIME']:
 
113
  with gr.TabItem(dataset):
114
- gr.DataFrame(format_dataframe(df_synthesized_full, f"STARK-{dataset}"))
115
 
116
  with gr.TabItem("Synthesized (10%)"):
117
  with gr.Tabs() as inner_tabs_synthesized_10:
118
- for dataset in ['AMAZON', 'MAG', 'PRIME']:
 
119
  with gr.TabItem(dataset):
120
- gr.DataFrame(format_dataframe(df_synthesized_10, f"STARK-{dataset}"))
121
 
122
  with gr.TabItem("Human-Generated"):
123
  with gr.Tabs() as inner_tabs_human:
124
- for dataset in ['AMAZON', 'MAG', 'PRIME']:
 
125
  with gr.TabItem(dataset):
126
- gr.DataFrame(format_dataframe(df_human_generated, f"STARK-{dataset}"))
127
-
128
- def update_tables(selected_types):
129
- filtered_df_full = filter_by_model_type(df_synthesized_full, selected_types)
130
- filtered_df_10 = filter_by_model_type(df_synthesized_10, selected_types)
131
- filtered_df_human = filter_by_model_type(df_human_generated, selected_types)
132
-
133
- outputs = []
134
- for df in [filtered_df_full, filtered_df_10, filtered_df_human]:
135
- for dataset in ['AMAZON', 'MAG', 'PRIME']:
136
- outputs.append(format_dataframe(df, f"STARK-{dataset}"))
137
-
138
- return outputs
139
-
140
- # Create DataFrame components for each tab and dataset
141
- dataframes = []
142
- for _ in range(3): # 3 main tabs
143
- for _ in range(3): # 3 datasets per tab
144
- df_component = gr.DataFrame(visible=False)
145
- dataframes.append(df_component)
146
 
147
- # Update visibility and content of DataFrames based on selected tab
148
- def update_visibility(tab):
149
- visibilities = [False] * 9
150
- start_index = tab * 3
151
- visibilities[start_index:start_index+3] = [True, True, True]
152
- return visibilities
153
-
154
- outer_tabs.select(
155
- update_visibility,
156
- None,
157
- dataframes
158
- )
159
 
160
- # Connect model type filter to update_tables function
161
  model_type_filter.change(
162
  update_tables,
163
  inputs=[model_type_filter],
164
- outputs=dataframes
165
  )
166
 
167
- # Initial load of tables
168
  demo.load(
169
  update_tables,
170
  inputs=[model_type_filter],
171
- outputs=dataframes
172
  )
173
 
174
  demo.launch()
 
77
  }
78
 
79
  def filter_by_model_type(df, selected_types):
80
+ if not selected_types: # If no types are selected, return an empty DataFrame
81
+ return df.head(0)
82
  selected_models = [model for type in selected_types for model in model_types[type]]
83
  return df[df['Method'].isin(selected_models)]
84
 
85
+ def format_dataframe(df, dataset):
86
+ columns = ['Method'] + [col for col in df.columns if dataset in col]
87
+ filtered_df = df[columns].copy()
88
+ filtered_df.columns = [col.split('_')[-1] if '_' in col else col for col in filtered_df.columns]
89
+ filtered_df = filtered_df.sort_values('MRR', ascending=False)
90
+ return filtered_df
 
 
91
 
92
+ def update_tables(selected_types):
93
+ filtered_df_full = filter_by_model_type(df_synthesized_full, selected_types)
94
+ filtered_df_10 = filter_by_model_type(df_synthesized_10, selected_types)
95
+ filtered_df_human = filter_by_model_type(df_human_generated, selected_types)
96
+
97
+ outputs = []
98
+ for df in [filtered_df_full, filtered_df_10, filtered_df_human]:
99
+ for dataset in ['AMAZON', 'MAG', 'PRIME']:
100
+ outputs.append(format_dataframe(df, f"STARK-{dataset}"))
101
+
102
+ return outputs
103
 
104
  with gr.Blocks(css=css) as demo:
105
  gr.Markdown("# Semi-structured Retrieval Benchmark (STaRK) Leaderboard")
 
116
  with gr.Tabs() as outer_tabs:
117
  with gr.TabItem("Synthesized (full)"):
118
  with gr.Tabs() as inner_tabs_synthesized_full:
119
+ syn_full_dfs = [gr.DataFrame(interactive=False) for _ in range(3)]
120
+ for df, dataset in zip(syn_full_dfs, ['AMAZON', 'MAG', 'PRIME']):
121
  with gr.TabItem(dataset):
122
+ df.render()
123
 
124
  with gr.TabItem("Synthesized (10%)"):
125
  with gr.Tabs() as inner_tabs_synthesized_10:
126
+ syn_10_dfs = [gr.DataFrame(interactive=False) for _ in range(3)]
127
+ for df, dataset in zip(syn_10_dfs, ['AMAZON', 'MAG', 'PRIME']):
128
  with gr.TabItem(dataset):
129
+ df.render()
130
 
131
  with gr.TabItem("Human-Generated"):
132
  with gr.Tabs() as inner_tabs_human:
133
+ human_dfs = [gr.DataFrame(interactive=False) for _ in range(3)]
134
+ for df, dataset in zip(human_dfs, ['AMAZON', 'MAG', 'PRIME']):
135
  with gr.TabItem(dataset):
136
+ df.render()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
137
 
138
+ all_dfs = syn_full_dfs + syn_10_dfs + human_dfs
 
 
 
 
 
 
 
 
 
 
 
139
 
 
140
  model_type_filter.change(
141
  update_tables,
142
  inputs=[model_type_filter],
143
+ outputs=all_dfs
144
  )
145
 
 
146
  demo.load(
147
  update_tables,
148
  inputs=[model_type_filter],
149
+ outputs=all_dfs
150
  )
151
 
152
  demo.launch()