renderTokenUsageDiffMarkdownSection renders detailed token usage as a markdown sub-section
(run1ID, run2ID int64, diff *TokenUsageDiff)
| 269 | |
| 270 | // renderTokenUsageDiffMarkdownSection renders detailed token usage as a markdown sub-section |
| 271 | func renderTokenUsageDiffMarkdownSection(run1ID, run2ID int64, diff *TokenUsageDiff) { |
| 272 | fmt.Fprintln(os.Stdout, "#### Token Usage Details") |
| 273 | fmt.Fprintln(os.Stdout) |
| 274 | fmt.Fprintf(os.Stdout, "| Token Type | Run #%d | Run #%d | Change |\n", run1ID, run2ID) |
| 275 | fmt.Fprintln(os.Stdout, "|------------|---------|---------|--------|") |
| 276 | |
| 277 | if diff.Run1InputTokens > 0 || diff.Run2InputTokens > 0 { |
| 278 | fmt.Fprintf(os.Stdout, "| Input | %d | %d | %s |\n", diff.Run1InputTokens, diff.Run2InputTokens, diff.InputTokensChange) |
| 279 | } |
| 280 | if diff.Run1OutputTokens > 0 || diff.Run2OutputTokens > 0 { |
| 281 | fmt.Fprintf(os.Stdout, "| Output | %d | %d | %s |\n", diff.Run1OutputTokens, diff.Run2OutputTokens, diff.OutputTokensChange) |
| 282 | } |
| 283 | if diff.Run1CacheReadTokens > 0 || diff.Run2CacheReadTokens > 0 { |
| 284 | fmt.Fprintf(os.Stdout, "| Cache read | %d | %d | %s |\n", diff.Run1CacheReadTokens, diff.Run2CacheReadTokens, diff.CacheReadTokensChange) |
| 285 | } |
| 286 | if diff.Run1CacheWriteTokens > 0 || diff.Run2CacheWriteTokens > 0 { |
| 287 | fmt.Fprintf(os.Stdout, "| Cache write | %d | %d | %s |\n", diff.Run1CacheWriteTokens, diff.Run2CacheWriteTokens, diff.CacheWriteTokensChange) |
| 288 | } |
| 289 | if diff.Run1AIC > 0 || diff.Run2AIC > 0 { |
| 290 | fmt.Fprintf(os.Stdout, "| AI Credits | %.3f | %.3f | %s |\n", diff.Run1AIC, diff.Run2AIC, diff.AICChange) |
| 291 | } |
| 292 | if diff.Run1TotalRequests > 0 || diff.Run2TotalRequests > 0 { |
| 293 | fmt.Fprintf(os.Stdout, "| API requests | %d | %d | %s |\n", diff.Run1TotalRequests, diff.Run2TotalRequests, diff.RequestsDelta) |
| 294 | } |
| 295 | if diff.Run1CacheEfficiency > 0 || diff.Run2CacheEfficiency > 0 { |
| 296 | fmt.Fprintf(os.Stdout, "| Cache efficiency | %.1f%% | %.1f%% | %s |\n", diff.Run1CacheEfficiency*100, diff.Run2CacheEfficiency*100, diff.CacheEfficiencyChange) |
| 297 | } |
| 298 | fmt.Fprintln(os.Stdout) |
| 299 | } |
| 300 | |
| 301 | // renderFirewallDiffPrettySection renders the firewall diff as a pretty console sub-section |
| 302 | func renderFirewallDiffPrettySection(diff *FirewallDiff) { |
no outgoing calls
no test coverage detected