kaikaidai commited on
Commit
9ca1ad8
·
verified ·
1 Parent(s): bcd436c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -11
app.py CHANGED
@@ -669,7 +669,10 @@ with gr.Blocks(theme="default", css=CSS_STYLES) as demo:
669
  ]
670
  )
671
 
672
- # Update the submit function to handle different prompts
 
 
 
673
  def submit_and_store(
674
  use_reference,
675
  eval_criteria_text_input,
@@ -681,7 +684,7 @@ with gr.Blocks(theme="default", css=CSS_STYLES) as demo:
681
  score3_description,
682
  score4_description,
683
  score5_description,
684
- is_first_game=False
685
  ):
686
  # Build prompt data dictionary
687
  prompt_data = {
@@ -698,35 +701,31 @@ with gr.Blocks(theme="default", css=CSS_STYLES) as demo:
698
 
699
  # Get list of active models only for matches
700
  active_models = [name for name, info in model_data.items()
701
- if info.get("active", True)] # Default to True for backward compatibility
702
 
703
- # Modified model selection logic
704
  atla_model = "Atla-8B-preview-2024-01-08"
705
 
706
  if is_first_game:
707
- # For the first game, ensure Atla is one of the models
708
  other_models = [m for m in active_models if m != atla_model]
709
  other_model = random.choice(other_models)
710
 
711
- # Randomly assign Atla to either position A or B
712
  if random.random() < 0.5:
713
  model_a, model_b = atla_model, other_model
714
  else:
715
  model_a, model_b = other_model, atla_model
716
  else:
717
- # For subsequent games, Atla appears 30% of the time
718
  if random.random() < 0.3:
719
- # Include Atla in this battle
720
  other_models = [m for m in active_models if m != atla_model]
721
  other_model = random.choice(other_models)
722
 
723
- # Randomly assign Atla to either position A or B
724
  if random.random() < 0.5:
725
  model_a, model_b = atla_model, other_model
726
  else:
727
  model_a, model_b = other_model, atla_model
728
  else:
729
- # Battle between two non-Atla models
730
  non_atla_models = [m for m in active_models if m != atla_model]
731
  model1, model2 = random.sample(non_atla_models, 2)
732
  model_a, model_b = (model1, model2) if random.random() < 0.5 else (model2, model1)
@@ -786,6 +785,7 @@ with gr.Blocks(theme="default", css=CSS_STYLES) as demo:
786
  gr.update(value="*Model: Hidden*"),
787
  gr.update(value="Regenerate judges", variant="secondary", interactive=True),
788
  gr.update(value="🎲"), # random_btn
 
789
  )
790
 
791
  # Update the click handler to use False for is_first_game after first submission
@@ -802,7 +802,7 @@ with gr.Blocks(theme="default", css=CSS_STYLES) as demo:
802
 
803
  # Update the send_btn click handler
804
  send_btn.click(
805
- fn=create_submit_handler(),
806
  inputs=[
807
  use_reference_toggle,
808
  eval_criteria_text,
@@ -814,6 +814,7 @@ with gr.Blocks(theme="default", css=CSS_STYLES) as demo:
814
  score3_description,
815
  score4_description,
816
  score5_description,
 
817
  ],
818
  outputs=[
819
  score_a,
@@ -830,6 +831,7 @@ with gr.Blocks(theme="default", css=CSS_STYLES) as demo:
830
  model_name_b,
831
  send_btn,
832
  random_btn,
 
833
  ],
834
  )
835
 
 
669
  ]
670
  )
671
 
672
+ # Add a new state variable to track first game
673
+ first_game_state = gr.State(True) # Initialize as True
674
+
675
+ # Update the submit function to use the state variable
676
  def submit_and_store(
677
  use_reference,
678
  eval_criteria_text_input,
 
684
  score3_description,
685
  score4_description,
686
  score5_description,
687
+ is_first_game, # Add state variable as input
688
  ):
689
  # Build prompt data dictionary
690
  prompt_data = {
 
701
 
702
  # Get list of active models only for matches
703
  active_models = [name for name, info in model_data.items()
704
+ if info.get("active", True)]
705
 
 
706
  atla_model = "Atla-8B-preview-2024-01-08"
707
 
708
  if is_first_game:
709
+ # For the first game, ensure new model is one of the models to catch up on votes
710
  other_models = [m for m in active_models if m != atla_model]
711
  other_model = random.choice(other_models)
712
 
713
+ # Randomly assign new model to either position A or B
714
  if random.random() < 0.5:
715
  model_a, model_b = atla_model, other_model
716
  else:
717
  model_a, model_b = other_model, atla_model
718
  else:
719
+ # For subsequent games, new model appears 30% of the time
720
  if random.random() < 0.3:
 
721
  other_models = [m for m in active_models if m != atla_model]
722
  other_model = random.choice(other_models)
723
 
 
724
  if random.random() < 0.5:
725
  model_a, model_b = atla_model, other_model
726
  else:
727
  model_a, model_b = other_model, atla_model
728
  else:
 
729
  non_atla_models = [m for m in active_models if m != atla_model]
730
  model1, model2 = random.sample(non_atla_models, 2)
731
  model_a, model_b = (model1, model2) if random.random() < 0.5 else (model2, model1)
 
785
  gr.update(value="*Model: Hidden*"),
786
  gr.update(value="Regenerate judges", variant="secondary", interactive=True),
787
  gr.update(value="🎲"), # random_btn
788
+ False, # Set first_game_state to False after first submission
789
  )
790
 
791
  # Update the click handler to use False for is_first_game after first submission
 
802
 
803
  # Update the send_btn click handler
804
  send_btn.click(
805
+ fn=submit_and_store,
806
  inputs=[
807
  use_reference_toggle,
808
  eval_criteria_text,
 
814
  score3_description,
815
  score4_description,
816
  score5_description,
817
+ first_game_state, # Add first_game_state as input
818
  ],
819
  outputs=[
820
  score_a,
 
831
  model_name_b,
832
  send_btn,
833
  random_btn,
834
+ first_game_state, # Add first_game_state as output
835
  ],
836
  )
837