lcipolina commited on
Commit
9f6c7b8
·
verified ·
1 Parent(s): 08fd631

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -10
app.py CHANGED
@@ -71,21 +71,23 @@ def extract_leaderboard_stats(game_name: str) -> pd.DataFrame:
71
  "SUM(reward) AS total_rewards " \
72
  "FROM game_results"
73
  df = pd.read_sql_query(query, conn)
 
 
 
 
74
  else:
75
  query = "SELECT COUNT(DISTINCT episode) AS games_played, " \
76
  "SUM(reward) AS total_rewards " \
77
  "FROM game_results WHERE game_name = ?"
78
  df = pd.read_sql_query(query, conn, params=(game_name,))
 
 
 
 
79
 
80
  # Keep division by 2 for total rewards
81
  df["total_rewards"] = df["total_rewards"].fillna(0).astype(float) / 2
82
 
83
- # Fetch average generation time from moves table
84
- gen_time_query = """
85
- SELECT AVG(generation_time) FROM moves WHERE game_name = ?
86
- """
87
- avg_gen_time = conn.execute(gen_time_query, (game_name,)).fetchone()[0] or 0
88
-
89
  # Ensure avg_gen_time has decimals
90
  avg_gen_time = round(avg_gen_time, 3)
91
 
@@ -105,9 +107,9 @@ def extract_leaderboard_stats(game_name: str) -> pd.DataFrame:
105
  vs_random_rate = (wins_vs_random / total_vs_random * 100) if total_vs_random > 0 else 0
106
 
107
  df.insert(0, "agent_name", model_name) # Ensure agent_name is the first column
108
- df["agent_type"] = agent_type
109
  df["avg_generation_time (sec)"] = avg_gen_time
110
- df["vs_random"] = round(vs_random_rate, 2)
111
 
112
  all_stats.append(df)
113
  conn.close()
@@ -115,7 +117,7 @@ def extract_leaderboard_stats(game_name: str) -> pd.DataFrame:
115
  leaderboard_df = pd.concat(all_stats, ignore_index=True) if all_stats else pd.DataFrame()
116
 
117
  if leaderboard_df.empty:
118
- leaderboard_df = pd.DataFrame(columns=["agent_name", "# games", "total rewards", "avg_generation_time (sec)", "win-rate", "vs_random"])
119
 
120
  return leaderboard_df
121
 
@@ -133,7 +135,7 @@ with gr.Blocks() as interface:
133
  gr.Markdown("# LLM Model Leaderboard\nTrack performance across different games!")
134
  available_games = get_available_games()
135
  leaderboard_game_dropdown = gr.Dropdown(available_games, label="Select Game", value="Aggregated Performance")
136
- leaderboard_table = gr.Dataframe(headers=["agent_name", "# games", "total rewards", "avg_generation_time (sec)", "win-rate", "vs_random"])
137
  generate_button = gr.Button("Generate Leaderboard JSON")
138
  download_component = gr.File(label="Download Leaderboard JSON")
139
  refresh_button = gr.Button("Refresh Leaderboard")
 
71
  "SUM(reward) AS total_rewards " \
72
  "FROM game_results"
73
  df = pd.read_sql_query(query, conn)
74
+
75
+ # Use avg_generation_time from a specific game (e.g., Kuhn Poker)
76
+ game_query = "SELECT AVG(generation_time) FROM moves WHERE game_name = 'kuhn_poker'"
77
+ avg_gen_time = conn.execute(game_query).fetchone()[0] or 0
78
  else:
79
  query = "SELECT COUNT(DISTINCT episode) AS games_played, " \
80
  "SUM(reward) AS total_rewards " \
81
  "FROM game_results WHERE game_name = ?"
82
  df = pd.read_sql_query(query, conn, params=(game_name,))
83
+
84
+ # Fetch average generation time from moves table
85
+ gen_time_query = "SELECT AVG(generation_time) FROM moves WHERE game_name = ?"
86
+ avg_gen_time = conn.execute(gen_time_query, (game_name,)).fetchone()[0] or 0
87
 
88
  # Keep division by 2 for total rewards
89
  df["total_rewards"] = df["total_rewards"].fillna(0).astype(float) / 2
90
 
 
 
 
 
 
 
91
  # Ensure avg_gen_time has decimals
92
  avg_gen_time = round(avg_gen_time, 3)
93
 
 
107
  vs_random_rate = (wins_vs_random / total_vs_random * 100) if total_vs_random > 0 else 0
108
 
109
  df.insert(0, "agent_name", model_name) # Ensure agent_name is the first column
110
+ df.insert(1, "agent_type", agent_type) # Ensure agent_type is second column
111
  df["avg_generation_time (sec)"] = avg_gen_time
112
+ df["win vs_random (%)"] = round(vs_random_rate, 2)
113
 
114
  all_stats.append(df)
115
  conn.close()
 
117
  leaderboard_df = pd.concat(all_stats, ignore_index=True) if all_stats else pd.DataFrame()
118
 
119
  if leaderboard_df.empty:
120
+ leaderboard_df = pd.DataFrame(columns=["agent_name", "agent_type", "# games", "total rewards", "avg_generation_time (sec)", "win-rate", "win vs_random (%)"])
121
 
122
  return leaderboard_df
123
 
 
135
  gr.Markdown("# LLM Model Leaderboard\nTrack performance across different games!")
136
  available_games = get_available_games()
137
  leaderboard_game_dropdown = gr.Dropdown(available_games, label="Select Game", value="Aggregated Performance")
138
+ leaderboard_table = gr.Dataframe(headers=["agent_name", "agent_type", "# games", "total rewards", "avg_generation_time (sec)", "win-rate", "win vs_random (%)"])
139
  generate_button = gr.Button("Generate Leaderboard JSON")
140
  download_component = gr.File(label="Download Leaderboard JSON")
141
  refresh_button = gr.Button("Refresh Leaderboard")