huckiyang commited on
Commit
bd783af
·
1 Parent(s): 0035b5e
Files changed (1) hide show
  1. app.py +39 -3
app.py CHANGED
@@ -489,11 +489,17 @@ with gr.Blocks(title="ASR Text Correction Leaderboard") as demo:
489
  with gr.Row():
490
  submit_btn = gr.Button("Submit Results")
491
 
492
- def submit_method(name, **values):
493
  if not name:
494
  return "Please enter a method name", leaderboard
495
 
496
- success = add_user_method(name, values)
 
 
 
 
 
 
497
  if success:
498
  updated_df, _ = create_leaderboard()
499
  return "Method added successfully!", updated_df
@@ -505,7 +511,6 @@ with gr.Blocks(title="ASR Text Correction Leaderboard") as demo:
505
  return updated_df
506
 
507
  # Connect buttons to functions
508
- submit_args = [method_name] + list(source_inputs.values())
509
  submit_btn.click(
510
  submit_method,
511
  inputs=[method_name] + list(source_inputs.values()),
@@ -514,5 +519,36 @@ with gr.Blocks(title="ASR Text Correction Leaderboard") as demo:
514
 
515
  refresh_btn.click(refresh_and_report, outputs=[leaderboard])
516
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
517
  if __name__ == "__main__":
518
  demo.launch()
 
489
  with gr.Row():
490
  submit_btn = gr.Button("Submit Results")
491
 
492
+ def submit_method(name, *args):
493
  if not name:
494
  return "Please enter a method name", leaderboard
495
 
496
+ # Convert args to a dictionary of source:value pairs
497
+ values = {}
498
+ for i, source in enumerate(all_sources):
499
+ if i < len(args):
500
+ values[source] = args[i]
501
+
502
+ success = add_user_method(name, **values)
503
  if success:
504
  updated_df, _ = create_leaderboard()
505
  return "Method added successfully!", updated_df
 
511
  return updated_df
512
 
513
  # Connect buttons to functions
 
514
  submit_btn.click(
515
  submit_method,
516
  inputs=[method_name] + list(source_inputs.values()),
 
519
 
520
  refresh_btn.click(refresh_and_report, outputs=[leaderboard])
521
 
522
+ # Add a new method to the leaderboard
523
+ def add_user_method(name, **values):
524
+ # Create a new method entry
525
+ method = {"name": name}
526
+
527
+ # Add values for each source
528
+ for source, value in values.items():
529
+ if value and value.strip():
530
+ try:
531
+ # Convert to float and ensure it's a percentage
532
+ float_value = float(value)
533
+ # Store as decimal (divide by 100 if it's a percentage greater than 1)
534
+ method[source] = float_value / 100 if float_value > 1 else float_value
535
+ except ValueError:
536
+ # Skip invalid values
537
+ continue
538
+
539
+ # Calculate overall average if we have values
540
+ if len(method) > 1: # More than just the name
541
+ values_list = [v for k, v in method.items() if k != "name" and isinstance(v, (int, float))]
542
+ if values_list:
543
+ method["OVERALL"] = np.mean(values_list)
544
+
545
+ # Add to user methods
546
+ user_methods.append(method)
547
+
548
+ # Save to file
549
+ save_user_methods()
550
+
551
+ return True
552
+
553
  if __name__ == "__main__":
554
  demo.launch()