feat(gui): add per-tier cost breakdown to token budget panel
This commit is contained in:
25
src/gui_2.py
25
src/gui_2.py
@@ -1389,6 +1389,31 @@ class App:
|
||||
imgui.table_set_column_index(1); imgui.text(f"{tok:,}")
|
||||
imgui.table_set_column_index(2); imgui.text(f"{tok / total_tok * 100:.0f}%")
|
||||
imgui.end_table()
|
||||
imgui.separator()
|
||||
imgui.text("MMA Tier Costs")
|
||||
if hasattr(self, 'mma_tier_usage') and self.mma_tier_usage:
|
||||
if imgui.begin_table("tier_cost_breakdown", 4, imgui.TableFlags_.borders_inner_h | imgui.TableFlags_.sizing_fixed_fit):
|
||||
imgui.table_setup_column("Tier")
|
||||
imgui.table_setup_column("Model")
|
||||
imgui.table_setup_column("Tokens")
|
||||
imgui.table_setup_column("Est. Cost")
|
||||
imgui.table_headers_row()
|
||||
for tier, stats in self.mma_tier_usage.items():
|
||||
model = stats.get('model', 'unknown')
|
||||
in_t = stats.get('input', 0)
|
||||
out_t = stats.get('output', 0)
|
||||
tokens = in_t + out_t
|
||||
cost = cost_tracker.estimate_cost(model, in_t, out_t)
|
||||
imgui.table_next_row()
|
||||
imgui.table_set_column_index(0); imgui.text(tier)
|
||||
imgui.table_set_column_index(1); imgui.text(model.split('-')[0])
|
||||
imgui.table_set_column_index(2); imgui.text(f"{tokens:,}")
|
||||
imgui.table_set_column_index(3); imgui.text_colored(imgui.ImVec4(0.2, 0.9, 0.2, 1), f"${cost:.4f}")
|
||||
imgui.end_table()
|
||||
tier_total = sum(cost_tracker.estimate_cost(stats.get('model', ''), stats.get('input', 0), stats.get('output', 0)) for stats in self.mma_tier_usage.values())
|
||||
imgui.text_colored(imgui.ImVec4(0, 1, 0, 1), f"Session Total: ${tier_total:.4f}")
|
||||
else:
|
||||
imgui.text_disabled("No MMA tier usage data")
|
||||
if stats.get("would_trim"):
|
||||
imgui.text_colored(imgui.ImVec4(1.0, 0.3, 0.0, 1.0), "WARNING: Next call will trim history")
|
||||
trimmable = stats.get("trimmable_turns", 0)
|
||||
|
||||
Reference in New Issue
Block a user