sudanl commited on
Commit
a0ae907
·
1 Parent(s): f24b2b1

fix: 增强排行榜数据加载的健壮性

Browse files

- 添加详细的调试日志来诊断数据加载问题
- 移除自动刷新功能,与原SAGE保持一致
- 添加异常处理确保数据加载错误不会导致崩溃
- 在界面中添加调试信息显示结果数量
- 优化初始化过程的日志输出

Files changed (1) hide show
  1. app.py +53 -38
app.py CHANGED
@@ -57,45 +57,58 @@ def model_hyperlink(link, model_name):
57
 
58
  def get_leaderboard_dataframe():
59
  """Generate leaderboard dataframe from SAGE results"""
 
 
60
  if not SAGE_MODULES_AVAILABLE:
 
61
  return pd.DataFrame()
62
 
63
- sage_results = load_initial_sage_results()
64
-
65
- if not sage_results:
66
- return pd.DataFrame()
67
-
68
- # Convert to leaderboard format
69
- leaderboard_data = []
70
- for result in sage_results:
71
- # Extract model name from submission_id
72
- if result.submission_id.startswith("initial_"):
73
- model_name = result.submission_id.split("_", 2)[-1].replace("_", " ")
74
- else:
75
- model_name = result.submission_id
76
 
77
- # Create model hyperlink (for now just display name)
78
- model_display = f"**{model_name}**"
 
79
 
80
- row = {
81
- "Model": model_display,
82
- "Organization": result.organization,
83
- "Overall (%)": result.results.get("sage_overall", 0),
84
- "Mathematics (%)": result.results.get("sage_math", 0),
85
- "Physics (%)": result.results.get("sage_physics", 0),
86
- "Chemistry (%)": result.results.get("sage_chemistry", 0),
87
- "Biology (%)": result.results.get("sage_biology", 0),
88
- "Earth Science (%)": result.results.get("sage_earth_science", 0),
89
- "Astronomy (%)": result.results.get("sage_astronomy", 0),
90
- "Submission Date": result.submitted_time
91
- }
92
- leaderboard_data.append(row)
93
-
94
- df = pd.DataFrame(leaderboard_data)
95
- if not df.empty:
96
- df = df.sort_values(by=["Overall (%)"], ascending=False)
97
-
98
- return df
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
99
 
100
  def refresh_leaderboard():
101
  """Refresh the leaderboard data"""
@@ -103,7 +116,9 @@ def refresh_leaderboard():
103
  return get_leaderboard_dataframe()
104
 
105
  # Initialize data
 
106
  leaderboard_df = get_leaderboard_dataframe()
 
107
 
108
  # Define column types for the dataframe
109
  COLUMN_TYPES = ["markdown", "str", "number", "number", "number", "number", "number", "number", "number", "str"]
@@ -136,6 +151,10 @@ with demo:
136
 
137
  # Main leaderboard table
138
  gr.Markdown("## 🏆 SAGE Benchmark Results", elem_classes="markdown-text")
 
 
 
 
139
  leaderboard_table = gr.Dataframe(
140
  value=leaderboard_df,
141
  datatype=COLUMN_TYPES,
@@ -175,10 +194,6 @@ with demo:
175
  process_sage_submission_simple,
176
  inputs=[file_upload, org_textbox, email_textbox],
177
  outputs=[submission_result]
178
- ).then(
179
- refresh_leaderboard, # Auto-refresh after submission
180
- inputs=[],
181
- outputs=[leaderboard_table]
182
  )
183
  else:
184
  submit_button.click(
 
57
 
58
  def get_leaderboard_dataframe():
59
  """Generate leaderboard dataframe from SAGE results"""
60
+ print("🔄 Loading SAGE leaderboard data...")
61
+
62
  if not SAGE_MODULES_AVAILABLE:
63
+ print("❌ SAGE modules not available")
64
  return pd.DataFrame()
65
 
66
+ try:
67
+ sage_results = load_initial_sage_results()
68
+ print(f"📊 Loaded {len(sage_results)} SAGE results")
 
 
 
 
 
 
 
 
 
 
69
 
70
+ if not sage_results:
71
+ print("❌ No SAGE results found")
72
+ return pd.DataFrame()
73
 
74
+ # Convert to leaderboard format
75
+ leaderboard_data = []
76
+ for result in sage_results:
77
+ # Extract model name from submission_id
78
+ if result.submission_id.startswith("initial_"):
79
+ model_name = result.submission_id.split("_", 2)[-1].replace("_", " ")
80
+ else:
81
+ model_name = result.submission_id
82
+
83
+ # Create model hyperlink (for now just display name)
84
+ model_display = f"**{model_name}**"
85
+
86
+ row = {
87
+ "Model": model_display,
88
+ "Organization": result.organization,
89
+ "Overall (%)": result.results.get("sage_overall", 0),
90
+ "Mathematics (%)": result.results.get("sage_math", 0),
91
+ "Physics (%)": result.results.get("sage_physics", 0),
92
+ "Chemistry (%)": result.results.get("sage_chemistry", 0),
93
+ "Biology (%)": result.results.get("sage_biology", 0),
94
+ "Earth Science (%)": result.results.get("sage_earth_science", 0),
95
+ "Astronomy (%)": result.results.get("sage_astronomy", 0),
96
+ "Submission Date": result.submitted_time
97
+ }
98
+ leaderboard_data.append(row)
99
+
100
+ df = pd.DataFrame(leaderboard_data)
101
+ if not df.empty:
102
+ df = df.sort_values(by=["Overall (%)"], ascending=False)
103
+
104
+ print(f"✅ Generated dataframe with {len(df)} rows")
105
+ return df
106
+
107
+ except Exception as e:
108
+ print(f"❌ Error generating leaderboard dataframe: {e}")
109
+ import traceback
110
+ traceback.print_exc()
111
+ return pd.DataFrame()
112
 
113
  def refresh_leaderboard():
114
  """Refresh the leaderboard data"""
 
116
  return get_leaderboard_dataframe()
117
 
118
  # Initialize data
119
+ print("🚀 Initializing SAGE-Bench leaderboard...")
120
  leaderboard_df = get_leaderboard_dataframe()
121
+ print(f"📈 Leaderboard initialized with {len(leaderboard_df)} rows")
122
 
123
  # Define column types for the dataframe
124
  COLUMN_TYPES = ["markdown", "str", "number", "number", "number", "number", "number", "number", "number", "str"]
 
151
 
152
  # Main leaderboard table
153
  gr.Markdown("## 🏆 SAGE Benchmark Results", elem_classes="markdown-text")
154
+
155
+ # Debug information
156
+ gr.Markdown(f"📊 **Showing {len(leaderboard_df)} results**")
157
+
158
  leaderboard_table = gr.Dataframe(
159
  value=leaderboard_df,
160
  datatype=COLUMN_TYPES,
 
194
  process_sage_submission_simple,
195
  inputs=[file_upload, org_textbox, email_textbox],
196
  outputs=[submission_result]
 
 
 
 
197
  )
198
  else:
199
  submit_button.click(