hysts HF staff commited on
Commit
50419e9
·
1 Parent(s): 2334db3
Files changed (1) hide show
  1. app.py +101 -111
app.py CHANGED
@@ -65,75 +65,86 @@ except Exception:
65
 
66
 
67
  # Searching and filtering
68
- def update_table(
69
- hidden_df: pd.DataFrame,
70
- columns: list,
 
71
  type_query: list,
72
- precision_query: str,
73
  size_query: list,
 
74
  add_special_tokens_query: list,
75
  num_few_shots_query: list,
76
  show_deleted: bool,
77
  show_merges: bool,
78
  show_flagged: bool,
79
- query: str,
80
- ):
81
- print(
82
- f"Update table called with: type_query={type_query}, precision_query={precision_query}, size_query={size_query}"
83
- )
84
- print(f"hidden_df shape before filtering: {hidden_df.shape}")
85
 
86
- filtered_df = filter_models(
87
- hidden_df,
88
- type_query,
89
- size_query,
90
- precision_query,
91
- add_special_tokens_query,
92
- num_few_shots_query,
93
- show_deleted,
94
- show_merges,
95
- show_flagged,
96
- )
97
- print(f"filtered_df shape after filter_models: {filtered_df.shape}")
98
 
99
- filtered_df = filter_queries(query, filtered_df)
100
- print(f"filtered_df shape after filter_queries: {filtered_df.shape}")
 
 
 
101
 
102
- print(
103
- f"Filter applied: query={query}, columns={columns}, type_query={type_query}, precision_query={precision_query}"
104
- )
105
- print("Filtered dataframe head:")
106
- print(filtered_df.head())
107
 
108
- df = select_columns(filtered_df, columns)
109
- print(f"Final df shape: {df.shape}")
110
- print("Final dataframe head:")
111
- print(df.head())
112
- return df
 
 
 
 
113
 
 
 
 
114
 
115
- def load_query(request: gr.Request): # triggered only once at startup => read query parameter if it exists
116
- query = request.query_params.get("query") or ""
117
- return (
118
- query,
119
- query,
120
- ) # return one for the "search_bar", one for a hidden component that triggers a reload only if value has changed
 
 
 
 
 
 
 
 
121
 
122
 
123
  def search_table(df: pd.DataFrame, query: str) -> pd.DataFrame:
124
  return df[(df[AutoEvalColumn.dummy.name].str.contains(query, case=False))]
125
 
126
 
127
- # def select_columns(df: pd.DataFrame, columns: list) -> pd.DataFrame:
128
- # always_here_cols = [
129
- # AutoEvalColumn.model_type_symbol.name,
130
- # AutoEvalColumn.model.name,
131
- # ]
132
- # # We use COLS to maintain sorting
133
- # filtered_df = df[
134
- # always_here_cols + [c for c in COLS if c in df.columns and c in columns]# + [AutoEvalColumn.dummy.name]
135
- # ]
136
- # return filtered_df
 
 
 
 
 
 
 
 
137
 
138
 
139
  def select_columns(df: pd.DataFrame, columns: list) -> pd.DataFrame:
@@ -169,80 +180,59 @@ def select_columns(df: pd.DataFrame, columns: list) -> pd.DataFrame:
169
  return filtered_df
170
 
171
 
172
- def filter_queries(query: str, filtered_df: pd.DataFrame):
173
- """Added by Abishek"""
174
- final_df = []
175
- if query != "":
176
- queries = [q.strip() for q in query.split(";")]
177
- for _q in queries:
178
- _q = _q.strip()
179
- if _q != "":
180
- temp_filtered_df = search_table(filtered_df, _q)
181
- if len(temp_filtered_df) > 0:
182
- final_df.append(temp_filtered_df)
183
- if len(final_df) > 0:
184
- filtered_df = pd.concat(final_df)
185
- filtered_df = filtered_df.drop_duplicates(
186
- subset=[AutoEvalColumn.model.name, AutoEvalColumn.precision.name, AutoEvalColumn.revision.name]
187
- )
188
-
189
- return filtered_df
190
-
191
-
192
- def filter_models(
193
- df: pd.DataFrame,
194
  type_query: list,
 
195
  size_query: list,
196
- precision_query: list,
197
  add_special_tokens_query: list,
198
  num_few_shots_query: list,
199
  show_deleted: bool,
200
  show_merges: bool,
201
  show_flagged: bool,
202
- ) -> pd.DataFrame:
203
- print(f"Initial df shape: {df.shape}")
204
- print(f"Initial df content:\n{df}")
205
-
206
- filtered_df = df
207
-
208
- # Model Type フィルタリング
209
- type_column = "T" if "T" in df.columns else "Type_"
210
- type_emoji = [t.split()[0] for t in type_query]
211
- filtered_df = df[df[type_column].isin(type_emoji)]
212
- print(f"After type filter: {filtered_df.shape}")
213
 
214
- # Precision フィルタリング
215
- filtered_df = filtered_df[filtered_df["Precision"].isin(precision_query + ["Unknown", "?"])]
216
- print(f"After precision filter: {filtered_df.shape}")
 
 
 
 
 
 
 
 
 
217
 
218
- # Model Size フィルタリング
219
- if "Unknown" in size_query:
220
- size_mask = filtered_df["#Params (B)"].isna() | (filtered_df["#Params (B)"] == 0)
221
- else:
222
- size_mask = filtered_df["#Params (B)"].apply(
223
- lambda x: any(x in NUMERIC_INTERVALS[s] for s in size_query if s != "Unknown")
224
- )
225
- filtered_df = filtered_df[size_mask]
226
- print(f"After size filter: {filtered_df.shape}")
227
 
228
- # Add Special Tokens フィルタリング
229
- filtered_df = filtered_df[filtered_df["Add Special Tokens"].isin(add_special_tokens_query + ["Unknown", "?"])]
230
- print(f"After add_special_tokens filter: {filtered_df.shape}")
 
 
231
 
232
- # Num Few Shots フィルタリング
233
- filtered_df = filtered_df[
234
- filtered_df["Few-shot"].astype(str).isin([str(x) for x in num_few_shots_query] + ["Unknown", "?"])
235
- ]
236
- print(f"After num_few_shots filter: {filtered_df.shape}")
237
 
238
- # Show deleted models フィルタリング
239
- if not show_deleted:
240
- filtered_df = filtered_df[filtered_df["Available on the hub"]]
241
- print(f"After show_deleted filter: {filtered_df.shape}")
242
 
243
- print("Filtered dataframe head:")
244
- print(filtered_df.head())
245
- return filtered_df
 
 
 
246
 
247
 
248
  # Prepare the dataframes
 
65
 
66
 
67
  # Searching and filtering
68
+
69
+
70
+ def filter_models(
71
+ df: pd.DataFrame,
72
  type_query: list,
 
73
  size_query: list,
74
+ precision_query: list,
75
  add_special_tokens_query: list,
76
  num_few_shots_query: list,
77
  show_deleted: bool,
78
  show_merges: bool,
79
  show_flagged: bool,
80
+ ) -> pd.DataFrame:
81
+ print(f"Initial df shape: {df.shape}")
82
+ print(f"Initial df content:\n{df}")
 
 
 
83
 
84
+ filtered_df = df
 
 
 
 
 
 
 
 
 
 
 
85
 
86
+ # Model Type フィルタリング
87
+ type_column = "T" if "T" in df.columns else "Type_"
88
+ type_emoji = [t.split()[0] for t in type_query]
89
+ filtered_df = df[df[type_column].isin(type_emoji)]
90
+ print(f"After type filter: {filtered_df.shape}")
91
 
92
+ # Precision フィルタリング
93
+ filtered_df = filtered_df[filtered_df["Precision"].isin(precision_query + ["Unknown", "?"])]
94
+ print(f"After precision filter: {filtered_df.shape}")
 
 
95
 
96
+ # Model Size フィルタリング
97
+ if "Unknown" in size_query:
98
+ size_mask = filtered_df["#Params (B)"].isna() | (filtered_df["#Params (B)"] == 0)
99
+ else:
100
+ size_mask = filtered_df["#Params (B)"].apply(
101
+ lambda x: any(x in NUMERIC_INTERVALS[s] for s in size_query if s != "Unknown")
102
+ )
103
+ filtered_df = filtered_df[size_mask]
104
+ print(f"After size filter: {filtered_df.shape}")
105
 
106
+ # Add Special Tokens フィルタリング
107
+ filtered_df = filtered_df[filtered_df["Add Special Tokens"].isin(add_special_tokens_query + ["Unknown", "?"])]
108
+ print(f"After add_special_tokens filter: {filtered_df.shape}")
109
 
110
+ # Num Few Shots フィルタリング
111
+ filtered_df = filtered_df[
112
+ filtered_df["Few-shot"].astype(str).isin([str(x) for x in num_few_shots_query] + ["Unknown", "?"])
113
+ ]
114
+ print(f"After num_few_shots filter: {filtered_df.shape}")
115
+
116
+ # Show deleted models フィルタリング
117
+ if not show_deleted:
118
+ filtered_df = filtered_df[filtered_df["Available on the hub"]]
119
+ print(f"After show_deleted filter: {filtered_df.shape}")
120
+
121
+ print("Filtered dataframe head:")
122
+ print(filtered_df.head())
123
+ return filtered_df
124
 
125
 
126
  def search_table(df: pd.DataFrame, query: str) -> pd.DataFrame:
127
  return df[(df[AutoEvalColumn.dummy.name].str.contains(query, case=False))]
128
 
129
 
130
+ def filter_queries(query: str, filtered_df: pd.DataFrame):
131
+ """Added by Abishek"""
132
+ final_df = []
133
+ if query != "":
134
+ queries = [q.strip() for q in query.split(";")]
135
+ for _q in queries:
136
+ _q = _q.strip()
137
+ if _q != "":
138
+ temp_filtered_df = search_table(filtered_df, _q)
139
+ if len(temp_filtered_df) > 0:
140
+ final_df.append(temp_filtered_df)
141
+ if len(final_df) > 0:
142
+ filtered_df = pd.concat(final_df)
143
+ filtered_df = filtered_df.drop_duplicates(
144
+ subset=[AutoEvalColumn.model.name, AutoEvalColumn.precision.name, AutoEvalColumn.revision.name]
145
+ )
146
+
147
+ return filtered_df
148
 
149
 
150
  def select_columns(df: pd.DataFrame, columns: list) -> pd.DataFrame:
 
180
  return filtered_df
181
 
182
 
183
+ def update_table(
184
+ hidden_df: pd.DataFrame,
185
+ columns: list,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
186
  type_query: list,
187
+ precision_query: str,
188
  size_query: list,
 
189
  add_special_tokens_query: list,
190
  num_few_shots_query: list,
191
  show_deleted: bool,
192
  show_merges: bool,
193
  show_flagged: bool,
194
+ query: str,
195
+ ):
196
+ print(
197
+ f"Update table called with: type_query={type_query}, precision_query={precision_query}, size_query={size_query}"
198
+ )
199
+ print(f"hidden_df shape before filtering: {hidden_df.shape}")
 
 
 
 
 
200
 
201
+ filtered_df = filter_models(
202
+ hidden_df,
203
+ type_query,
204
+ size_query,
205
+ precision_query,
206
+ add_special_tokens_query,
207
+ num_few_shots_query,
208
+ show_deleted,
209
+ show_merges,
210
+ show_flagged,
211
+ )
212
+ print(f"filtered_df shape after filter_models: {filtered_df.shape}")
213
 
214
+ filtered_df = filter_queries(query, filtered_df)
215
+ print(f"filtered_df shape after filter_queries: {filtered_df.shape}")
 
 
 
 
 
 
 
216
 
217
+ print(
218
+ f"Filter applied: query={query}, columns={columns}, type_query={type_query}, precision_query={precision_query}"
219
+ )
220
+ print("Filtered dataframe head:")
221
+ print(filtered_df.head())
222
 
223
+ df = select_columns(filtered_df, columns)
224
+ print(f"Final df shape: {df.shape}")
225
+ print("Final dataframe head:")
226
+ print(df.head())
227
+ return df
228
 
 
 
 
 
229
 
230
+ def load_query(request: gr.Request): # triggered only once at startup => read query parameter if it exists
231
+ query = request.query_params.get("query") or ""
232
+ return (
233
+ query,
234
+ query,
235
+ ) # return one for the "search_bar", one for a hidden component that triggers a reload only if value has changed
236
 
237
 
238
  # Prepare the dataframes