Shiyu Zhao
commited on
Commit
·
f9fbc42
1
Parent(s):
928143b
Update space
Browse files
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 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
--cell-width-1: 250px
|
90 |
-
}
|
91 |
|
92 |
-
|
93 |
-
|
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
|
|
|
113 |
with gr.TabItem(dataset):
|
114 |
-
|
115 |
|
116 |
with gr.TabItem("Synthesized (10%)"):
|
117 |
with gr.Tabs() as inner_tabs_synthesized_10:
|
118 |
-
for
|
|
|
119 |
with gr.TabItem(dataset):
|
120 |
-
|
121 |
|
122 |
with gr.TabItem("Human-Generated"):
|
123 |
with gr.Tabs() as inner_tabs_human:
|
124 |
-
for
|
|
|
125 |
with gr.TabItem(dataset):
|
126 |
-
|
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 |
-
|
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=
|
165 |
)
|
166 |
|
167 |
-
# Initial load of tables
|
168 |
demo.load(
|
169 |
update_tables,
|
170 |
inputs=[model_type_filter],
|
171 |
-
outputs=
|
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()
|