yuchenlin commited on
Commit
eaea101
·
1 Parent(s): 4dd52cf

sample a puzzle

Browse files
Files changed (1) hide show
  1. app.py +10 -6
app.py CHANGED
@@ -90,8 +90,8 @@ def _tab_leaderboard():
90
  mode_selection_radio.change(fn=df_filters, inputs=[mode_selection_radio, _gstr("")], outputs=[leaderboard_table])
91
 
92
 
93
- def sample_explore_item(model_name, size_H, size_W, greedy_or_sample):
94
- print(model_name, size_H, size_W, greedy_or_sample)
95
  explore_item = get_random_item(model_name, size_H, size_W)
96
  if explore_item is None:
97
  return "No item found", "No item found", "No item found", "No item found"
@@ -99,7 +99,8 @@ def sample_explore_item(model_name, size_H, size_W, greedy_or_sample):
99
  example_id = explore_item['id']
100
  puzzle_md = f"### Puzzle [{example_id}]:\n\n" + explore_item['puzzle'].replace("## Clues", "### Clues").replace("\n", "<br>")
101
  model_reasoning_md = f"### {model_name}'s Reasoning:\n\n {explore_item['reasoning']}"
102
- model_prediction_md = f"### {model_name}'s Prediction:\n\n {explore_item['solution']}" + "\n\n" + explore_item['solution_table_md']
 
103
  puzzle_solved = explore_item['correct_cells'] == explore_item['total_cells']
104
  cell_acc = explore_item["correct_cells"] / explore_item["total_cells"] * 100
105
  model_eval_md = f"### Evaluation:\n\n **Total Cells**: {explore_item['total_cells']} | **Correct Cells**: {explore_item['correct_cells']} | **Puzzle solved**: {puzzle_solved} | **Cell Acc**: {cell_acc:.2f}%"
@@ -109,13 +110,16 @@ def sample_explore_item(model_name, size_H, size_W, greedy_or_sample):
109
  def _tab_explore():
110
  global raw_data
111
  model_names = [item["Model"] for item in raw_data]
 
 
112
  with gr.Row():
113
  model_selection = gr.Dropdown(choices = ["random"] + model_names, label="Model: ", elem_id="select-models", value="random", interactive=True)
114
  size_H_selection = gr.Dropdown(choices = ["random"] + [f"{i}" for i in range(2,7)], label="Num of Houses", elem_id="select-H", value="random", interactive=True)
115
  size_W_selection = gr.Dropdown(choices = ["random"] + [f"{i}" for i in range(2,7)], label="Num of Features", elem_id="select-W", value="random", interactive=True)
116
  with gr.Column(scale=1):
117
- greedy_or_sample = gr.Radio(["greedy", "sampling"], show_label=False, elem_id="greedy-or-sample", value="greedy", interactive=True)
118
- explore_button = gr.Button("Sample", elem_id="explore-button")
 
119
 
120
  puzzle_md = gr.Markdown("\n\nTo be loaded", elem_id="puzzle-md", elem_classes="box_md")
121
  model_reasoning_md = gr.Markdown("\n\nTo be loaded", elem_id="model-reasoning-md", elem_classes="box_md")
@@ -123,7 +127,7 @@ def _tab_explore():
123
  model_eval_md = gr.Markdown("\n\nTo be loaded", elem_id="model-eval-md", elem_classes="box_md")
124
 
125
  explore_button.click(fn=sample_explore_item,
126
- inputs=[model_selection, size_H_selection, size_W_selection, greedy_or_sample],
127
  outputs=[puzzle_md, model_reasoning_md, model_prediction_md, model_eval_md])
128
 
129
 
 
90
  mode_selection_radio.change(fn=df_filters, inputs=[mode_selection_radio, _gstr("")], outputs=[leaderboard_table])
91
 
92
 
93
+ def sample_explore_item(model_name, size_H, size_W):
94
+ print(model_name, size_H, size_W)
95
  explore_item = get_random_item(model_name, size_H, size_W)
96
  if explore_item is None:
97
  return "No item found", "No item found", "No item found", "No item found"
 
99
  example_id = explore_item['id']
100
  puzzle_md = f"### Puzzle [{example_id}]:\n\n" + explore_item['puzzle'].replace("## Clues", "### Clues").replace("\n", "<br>")
101
  model_reasoning_md = f"### {model_name}'s Reasoning:\n\n {explore_item['reasoning']}"
102
+ model_prediction_md = f"### {model_name}'s Prediction:\n\n {str(explore_item['solution']).replace('___', 'null')}" + \
103
+ "\n\n" + explore_item['solution_table_md']
104
  puzzle_solved = explore_item['correct_cells'] == explore_item['total_cells']
105
  cell_acc = explore_item["correct_cells"] / explore_item["total_cells"] * 100
106
  model_eval_md = f"### Evaluation:\n\n **Total Cells**: {explore_item['total_cells']} | **Correct Cells**: {explore_item['correct_cells']} | **Puzzle solved**: {puzzle_solved} | **Cell Acc**: {cell_acc:.2f}%"
 
110
  def _tab_explore():
111
  global raw_data
112
  model_names = [item["Model"] for item in raw_data]
113
+ # deduplicate and preserve the order
114
+ model_names = list(dict.fromkeys(model_names))
115
  with gr.Row():
116
  model_selection = gr.Dropdown(choices = ["random"] + model_names, label="Model: ", elem_id="select-models", value="random", interactive=True)
117
  size_H_selection = gr.Dropdown(choices = ["random"] + [f"{i}" for i in range(2,7)], label="Num of Houses", elem_id="select-H", value="random", interactive=True)
118
  size_W_selection = gr.Dropdown(choices = ["random"] + [f"{i}" for i in range(2,7)], label="Num of Features", elem_id="select-W", value="random", interactive=True)
119
  with gr.Column(scale=1):
120
+ # greedy_or_sample = gr.Radio(["greedy", "sampling"], show_label=False, elem_id="greedy-or-sample", value="greedy", interactive=True)
121
+ gr.Markdown("### 🚀 Click below to sample a puzzle. ⬇️ ")
122
+ explore_button = gr.Button("🦓 Sample a Zebra Puzzle!", elem_id="explore-button")
123
 
124
  puzzle_md = gr.Markdown("\n\nTo be loaded", elem_id="puzzle-md", elem_classes="box_md")
125
  model_reasoning_md = gr.Markdown("\n\nTo be loaded", elem_id="model-reasoning-md", elem_classes="box_md")
 
127
  model_eval_md = gr.Markdown("\n\nTo be loaded", elem_id="model-eval-md", elem_classes="box_md")
128
 
129
  explore_button.click(fn=sample_explore_item,
130
+ inputs=[model_selection, size_H_selection, size_W_selection],
131
  outputs=[puzzle_md, model_reasoning_md, model_prediction_md, model_eval_md])
132
 
133