Mandark-droid commited on
Commit
fd7daa9
Β·
1 Parent(s): 813e1f3

Add AI Insights tab with leaderboard summary

Browse files
Files changed (1) hide show
  1. app.py +45 -0
app.py CHANGED
@@ -106,6 +106,37 @@ def generate_card(top_n):
106
  return html
107
 
108
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
109
  # Build Gradio app
110
  with gr.Blocks(title="TraceMind-AI") as app:
111
  gr.Markdown("# 🧠 TraceMind-AI")
@@ -177,6 +208,10 @@ with gr.Blocks(title="TraceMind-AI") as app:
177
  generate_card_btn = gr.Button("🎨 Generate Card")
178
  card_preview = gr.HTML()
179
 
 
 
 
 
180
  # Hidden textbox for row selection (JavaScript bridge)
181
  selected_row_index = gr.Textbox(visible=False, elem_id="selected_row_index")
182
 
@@ -221,6 +256,16 @@ with gr.Blocks(title="TraceMind-AI") as app:
221
  outputs=[card_preview]
222
  )
223
 
 
 
 
 
 
 
 
 
 
 
224
 
225
  if __name__ == "__main__":
226
  print("πŸš€ Starting TraceMind-AI...")
 
106
  return html
107
 
108
 
109
+ def generate_insights():
110
+ """Generate AI insights summary"""
111
+ df = data_loader.load_leaderboard()
112
+
113
+ top_model = df.loc[df['success_rate'].idxmax()]
114
+ most_cost_effective = df.loc[(df['success_rate'] / (df['total_cost_usd'] + 0.0001)).idxmax()]
115
+ fastest = df.loc[df['avg_duration_ms'].idxmin()]
116
+
117
+ insights = f"""
118
+ ## πŸ“Š Leaderboard Summary
119
+
120
+ **Total Runs:** {len(df)}
121
+
122
+ **Top Performers:**
123
+ - πŸ₯‡ **Best Accuracy:** {top_model['model']} ({top_model['success_rate']:.1f}%)
124
+ - πŸ’° **Most Cost-Effective:** {most_cost_effective['model']} ({most_cost_effective['success_rate']:.1f}% @ ${most_cost_effective['total_cost_usd']:.4f})
125
+ - ⚑ **Fastest:** {fastest['model']} ({fastest['avg_duration_ms']:.0f}ms avg)
126
+
127
+ **Key Trends:**
128
+ - Average Success Rate: {df['success_rate'].mean():.1f}%
129
+ - Average Cost: ${df['total_cost_usd'].mean():.4f}
130
+ - Average Duration: {df['avg_duration_ms'].mean():.0f}ms
131
+
132
+ ---
133
+
134
+ *Note: AI-powered insights will be available via MCP integration in the full version.*
135
+ """
136
+
137
+ return insights
138
+
139
+
140
  # Build Gradio app
141
  with gr.Blocks(title="TraceMind-AI") as app:
142
  gr.Markdown("# 🧠 TraceMind-AI")
 
208
  generate_card_btn = gr.Button("🎨 Generate Card")
209
  card_preview = gr.HTML()
210
 
211
+ with gr.TabItem("πŸ€– AI Insights"):
212
+ regenerate_btn = gr.Button("πŸ”„ Regenerate")
213
+ mcp_insights = gr.Markdown("*Loading insights...*")
214
+
215
  # Hidden textbox for row selection (JavaScript bridge)
216
  selected_row_index = gr.Textbox(visible=False, elem_id="selected_row_index")
217
 
 
256
  outputs=[card_preview]
257
  )
258
 
259
+ app.load(
260
+ fn=generate_insights,
261
+ outputs=[mcp_insights]
262
+ )
263
+
264
+ regenerate_btn.click(
265
+ fn=generate_insights,
266
+ outputs=[mcp_insights]
267
+ )
268
+
269
 
270
  if __name__ == "__main__":
271
  print("πŸš€ Starting TraceMind-AI...")