Spaces:
Running
Running
Mandark-droid
commited on
Commit
Β·
fd7daa9
1
Parent(s):
813e1f3
Add AI Insights tab with leaderboard summary
Browse files
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...")
|