Spaces:
Running
Running
Commit ·
80e2f77
1
Parent(s): 8b7b316
refactor: reorganize data source into categorized groups with toggles
Browse files- __pycache__/data_manager.cpython-311.pyc +0 -0
- app.py +108 -18
- data_manager.py +11 -7
__pycache__/data_manager.cpython-311.pyc
CHANGED
|
Binary files a/__pycache__/data_manager.cpython-311.pyc and b/__pycache__/data_manager.cpython-311.pyc differ
|
|
|
app.py
CHANGED
|
@@ -344,37 +344,127 @@ if __name__ == "__main__":
|
|
| 344 |
model_selector = gr.CheckboxGroup(label="Model Size", choices=model_size_list, value=model_size_list)
|
| 345 |
size_range_slider = RangeSlider(minimum=0, maximum=40, value=[0, 40], step=0.1, label="Model Size Range")
|
| 346 |
metric_selector = gr.Dropdown(label="Metric", choices=metric_list, value=initial_metric)
|
| 347 |
-
with gr.Column():
|
| 348 |
midpoint_slider = gr.Slider(minimum=0.1, maximum=0.9, value=0.5, step=0.01, label="Color Gradient Midpoint")
|
| 349 |
color_selector = gr.CheckboxGroup(label="Colored Columns", choices=["Average", "Individual Tests"], value=initial_colors)
|
| 350 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 351 |
table = gr.HTML(initial_data)
|
| 352 |
|
| 353 |
-
def update_table_wrapper(
|
|
|
|
|
|
|
|
|
|
| 354 |
return update_table(data_manager, period, models_size, metric, visible_columns, color_columns, size_range, midpoint)
|
| 355 |
|
| 356 |
-
def update_column_choices(period,
|
| 357 |
if not period:
|
| 358 |
-
|
|
|
|
| 359 |
columns = data_manager.get_available_columns(period)
|
| 360 |
-
# 只保留在新 choices 中存在的已选择值
|
| 361 |
-
if current_selected:
|
| 362 |
-
valid_selected = [col for col in current_selected if col in columns]
|
| 363 |
-
# 如果过滤后为空,默认选择所有列(保持默认行为)
|
| 364 |
-
if not valid_selected:
|
| 365 |
-
valid_selected = columns
|
| 366 |
-
else:
|
| 367 |
-
# 如果没有当前选择,默认选择所有列(保持默认行为)
|
| 368 |
-
valid_selected = columns
|
| 369 |
-
return gr.update(choices=columns, value=valid_selected)
|
| 370 |
|
| 371 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 372 |
|
| 373 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 374 |
period_selector.change(update_table_wrapper, inputs=shared_inputs, outputs=table)
|
| 375 |
model_selector.change(update_table_wrapper, inputs=shared_inputs, outputs=table)
|
| 376 |
metric_selector.change(update_table_wrapper, inputs=shared_inputs, outputs=table)
|
| 377 |
-
|
|
|
|
|
|
|
|
|
|
| 378 |
color_selector.change(update_table_wrapper, inputs=shared_inputs, outputs=table)
|
| 379 |
size_range_slider.change(update_table_wrapper, inputs=shared_inputs, outputs=table)
|
| 380 |
midpoint_slider.change(update_table_wrapper, inputs=shared_inputs, outputs=table)
|
|
|
|
| 344 |
model_selector = gr.CheckboxGroup(label="Model Size", choices=model_size_list, value=model_size_list)
|
| 345 |
size_range_slider = RangeSlider(minimum=0, maximum=40, value=[0, 40], step=0.1, label="Model Size Range")
|
| 346 |
metric_selector = gr.Dropdown(label="Metric", choices=metric_list, value=initial_metric)
|
|
|
|
| 347 |
midpoint_slider = gr.Slider(minimum=0.1, maximum=0.9, value=0.5, step=0.01, label="Color Gradient Midpoint")
|
| 348 |
color_selector = gr.CheckboxGroup(label="Colored Columns", choices=["Average", "Individual Tests"], value=initial_colors)
|
| 349 |
+
with gr.Column():
|
| 350 |
+
# Data Source 分组定义
|
| 351 |
+
code_cols = ["github cpp", "github python", "github javascript"]
|
| 352 |
+
research_cols = ["arxiv physics", "arxiv cs", "arxiv math"]
|
| 353 |
+
writing_cols = ["ao3 english", "github markdown"]
|
| 354 |
+
knowledge_cols = ["bbc news", "wikipedia english"]
|
| 355 |
+
|
| 356 |
+
initial_code = [c for c in code_cols if c in initial_columns]
|
| 357 |
+
initial_research = [c for c in research_cols if c in initial_columns]
|
| 358 |
+
initial_writing = [c for c in writing_cols if c in initial_columns]
|
| 359 |
+
initial_knowledge = [c for c in knowledge_cols if c in initial_columns]
|
| 360 |
+
|
| 361 |
+
gr.Markdown("**Data Source**")
|
| 362 |
+
|
| 363 |
+
# 代码 (Code)
|
| 364 |
+
with gr.Row():
|
| 365 |
+
toggle_code = gr.Checkbox(label="💻 Code", value=True, scale=0, min_width=150)
|
| 366 |
+
colfilter_code = gr.CheckboxGroup(choices=initial_code, value=initial_code, show_label=False, scale=3)
|
| 367 |
+
|
| 368 |
+
# 科研 (Research)
|
| 369 |
+
with gr.Row():
|
| 370 |
+
toggle_research = gr.Checkbox(label="🔬 Research", value=True, scale=0, min_width=150)
|
| 371 |
+
colfilter_research = gr.CheckboxGroup(choices=initial_research, value=initial_research, show_label=False, scale=3)
|
| 372 |
+
|
| 373 |
+
# 写作 (Writing)
|
| 374 |
+
with gr.Row():
|
| 375 |
+
toggle_writing = gr.Checkbox(label="✍️ Writing", value=True, scale=0, min_width=150)
|
| 376 |
+
colfilter_writing = gr.CheckboxGroup(choices=initial_writing, value=initial_writing, show_label=False, scale=3)
|
| 377 |
+
|
| 378 |
+
# 世界知识 (World Knowledge)
|
| 379 |
+
with gr.Row():
|
| 380 |
+
toggle_knowledge = gr.Checkbox(label="🌍 Knowledge", value=True, scale=0, min_width=150)
|
| 381 |
+
colfilter_knowledge = gr.CheckboxGroup(choices=initial_knowledge, value=initial_knowledge, show_label=False, scale=3)
|
| 382 |
+
|
| 383 |
+
# 多语言 (Multilingual) - Coming Soon
|
| 384 |
+
with gr.Row():
|
| 385 |
+
gr.Checkbox(label="🌐 Multilingual (Coming Soon)", value=False, interactive=False, scale=0, min_width=250)
|
| 386 |
+
|
| 387 |
table = gr.HTML(initial_data)
|
| 388 |
|
| 389 |
+
def update_table_wrapper(
|
| 390 |
+
period, models_size, metric, code_sel, research_sel, writing_sel, knowledge_sel, color_columns, size_range, midpoint
|
| 391 |
+
):
|
| 392 |
+
visible_columns = code_sel + research_sel + writing_sel + knowledge_sel
|
| 393 |
return update_table(data_manager, period, models_size, metric, visible_columns, color_columns, size_range, midpoint)
|
| 394 |
|
| 395 |
+
def update_column_choices(period, cur_code, cur_research, cur_writing, cur_knowledge):
|
| 396 |
if not period:
|
| 397 |
+
empty = gr.update(choices=[], value=[])
|
| 398 |
+
return empty, empty, empty, empty
|
| 399 |
columns = data_manager.get_available_columns(period)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 400 |
|
| 401 |
+
new_code = [c for c in code_cols if c in columns]
|
| 402 |
+
new_research = [c for c in research_cols if c in columns]
|
| 403 |
+
new_writing = [c for c in writing_cols if c in columns]
|
| 404 |
+
new_knowledge = [c for c in knowledge_cols if c in columns]
|
| 405 |
+
|
| 406 |
+
sel_code = [c for c in cur_code if c in new_code] if cur_code else new_code
|
| 407 |
+
sel_research = [c for c in cur_research if c in new_research] if cur_research else new_research
|
| 408 |
+
sel_writing = [c for c in cur_writing if c in new_writing] if cur_writing else new_writing
|
| 409 |
+
sel_knowledge = [c for c in cur_knowledge if c in new_knowledge] if cur_knowledge else new_knowledge
|
| 410 |
+
|
| 411 |
+
if not sel_code:
|
| 412 |
+
sel_code = new_code
|
| 413 |
+
if not sel_research:
|
| 414 |
+
sel_research = new_research
|
| 415 |
+
if not sel_writing:
|
| 416 |
+
sel_writing = new_writing
|
| 417 |
+
if not sel_knowledge:
|
| 418 |
+
sel_knowledge = new_knowledge
|
| 419 |
+
|
| 420 |
+
return (
|
| 421 |
+
gr.update(choices=new_code, value=sel_code),
|
| 422 |
+
gr.update(choices=new_research, value=sel_research),
|
| 423 |
+
gr.update(choices=new_writing, value=sel_writing),
|
| 424 |
+
gr.update(choices=new_knowledge, value=sel_knowledge),
|
| 425 |
+
)
|
| 426 |
+
|
| 427 |
+
# 总开关功能
|
| 428 |
+
def toggle_group(enabled, group_cols, available_cols):
|
| 429 |
+
valid_cols = [c for c in group_cols if c in available_cols]
|
| 430 |
+
return valid_cols if enabled else []
|
| 431 |
+
|
| 432 |
+
toggle_code.change(lambda enabled: toggle_group(enabled, code_cols, initial_columns), inputs=[toggle_code], outputs=[colfilter_code])
|
| 433 |
+
toggle_research.change(
|
| 434 |
+
lambda enabled: toggle_group(enabled, research_cols, initial_columns), inputs=[toggle_research], outputs=[colfilter_research]
|
| 435 |
+
)
|
| 436 |
+
toggle_writing.change(
|
| 437 |
+
lambda enabled: toggle_group(enabled, writing_cols, initial_columns), inputs=[toggle_writing], outputs=[colfilter_writing]
|
| 438 |
+
)
|
| 439 |
+
toggle_knowledge.change(
|
| 440 |
+
lambda enabled: toggle_group(enabled, knowledge_cols, initial_columns), inputs=[toggle_knowledge], outputs=[colfilter_knowledge]
|
| 441 |
+
)
|
| 442 |
|
| 443 |
+
shared_inputs = [
|
| 444 |
+
period_selector,
|
| 445 |
+
model_selector,
|
| 446 |
+
metric_selector,
|
| 447 |
+
colfilter_code,
|
| 448 |
+
colfilter_research,
|
| 449 |
+
colfilter_writing,
|
| 450 |
+
colfilter_knowledge,
|
| 451 |
+
color_selector,
|
| 452 |
+
size_range_slider,
|
| 453 |
+
midpoint_slider,
|
| 454 |
+
]
|
| 455 |
+
|
| 456 |
+
period_selector.change(
|
| 457 |
+
update_column_choices,
|
| 458 |
+
inputs=[period_selector, colfilter_code, colfilter_research, colfilter_writing, colfilter_knowledge],
|
| 459 |
+
outputs=[colfilter_code, colfilter_research, colfilter_writing, colfilter_knowledge],
|
| 460 |
+
)
|
| 461 |
period_selector.change(update_table_wrapper, inputs=shared_inputs, outputs=table)
|
| 462 |
model_selector.change(update_table_wrapper, inputs=shared_inputs, outputs=table)
|
| 463 |
metric_selector.change(update_table_wrapper, inputs=shared_inputs, outputs=table)
|
| 464 |
+
colfilter_code.change(update_table_wrapper, inputs=shared_inputs, outputs=table)
|
| 465 |
+
colfilter_research.change(update_table_wrapper, inputs=shared_inputs, outputs=table)
|
| 466 |
+
colfilter_writing.change(update_table_wrapper, inputs=shared_inputs, outputs=table)
|
| 467 |
+
colfilter_knowledge.change(update_table_wrapper, inputs=shared_inputs, outputs=table)
|
| 468 |
color_selector.change(update_table_wrapper, inputs=shared_inputs, outputs=table)
|
| 469 |
size_range_slider.change(update_table_wrapper, inputs=shared_inputs, outputs=table)
|
| 470 |
midpoint_slider.change(update_table_wrapper, inputs=shared_inputs, outputs=table)
|
data_manager.py
CHANGED
|
@@ -242,16 +242,20 @@ class DataManager:
|
|
| 242 |
|
| 243 |
fixed_cols = ["Name", "Params (B)", "Average (lower=better)"]
|
| 244 |
column_priority = [
|
| 245 |
-
|
| 246 |
-
"bbc news",
|
| 247 |
-
"wikipedia english",
|
| 248 |
-
"github markdown",
|
| 249 |
-
"arxiv physics",
|
| 250 |
-
"arxiv cs",
|
| 251 |
-
"arxiv math",
|
| 252 |
"github cpp",
|
| 253 |
"github python",
|
| 254 |
"github javascript",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 255 |
]
|
| 256 |
existing_cols = filtered_df.columns.tolist()
|
| 257 |
ordered_cols = []
|
|
|
|
| 242 |
|
| 243 |
fixed_cols = ["Name", "Params (B)", "Average (lower=better)"]
|
| 244 |
column_priority = [
|
| 245 |
+
# 代码 (Code)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 246 |
"github cpp",
|
| 247 |
"github python",
|
| 248 |
"github javascript",
|
| 249 |
+
# 科研 (Research)
|
| 250 |
+
"arxiv physics",
|
| 251 |
+
"arxiv cs",
|
| 252 |
+
"arxiv math",
|
| 253 |
+
# 写作 (Writing)
|
| 254 |
+
"ao3 english",
|
| 255 |
+
"github markdown",
|
| 256 |
+
# 世界知识 (World Knowledge)
|
| 257 |
+
"bbc news",
|
| 258 |
+
"wikipedia english",
|
| 259 |
]
|
| 260 |
existing_cols = filtered_df.columns.tolist()
|
| 261 |
ordered_cols = []
|