MCPcopy Create free account
hub / github.com/github/gh-aw / computeTokenUsageDiff

Function computeTokenUsageDiff

pkg/cli/audit_diff.go:841–915  ·  view source on GitHub ↗

computeTokenUsageDiff computes a detailed diff of token usage between two runs using the firewall proxy token-usage.jsonl data (TokenUsageSummary). Returns nil when both summaries are nil.

(tu1, tu2 *TokenUsageSummary)

Source from the content-addressed store, hash-verified

839// the firewall proxy token-usage.jsonl data (TokenUsageSummary). Returns nil when both
840// summaries are nil.
841func computeTokenUsageDiff(tu1, tu2 *TokenUsageSummary) *TokenUsageDiff {
842 if tu1 == nil && tu2 == nil {
843 return nil
844 }
845
846 var (
847 run1Input, run2Input int
848 run1Output, run2Output int
849 run1CacheRead, run2CacheRead int
850 run1CacheWrite, run2CacheWrite int
851 run1AIC, run2AIC float64
852 run1Requests, run2Requests int
853 run1CacheEff, run2CacheEff float64
854 )
855
856 if tu1 != nil {
857 run1Input = tu1.TotalInputTokens
858 run1Output = tu1.TotalOutputTokens
859 run1CacheRead = tu1.TotalCacheReadTokens
860 run1CacheWrite = tu1.TotalCacheWriteTokens
861 run1AIC = tu1.TotalAIC
862 run1Requests = tu1.TotalRequests
863 run1CacheEff = tu1.CacheEfficiency
864 }
865 if tu2 != nil {
866 run2Input = tu2.TotalInputTokens
867 run2Output = tu2.TotalOutputTokens
868 run2CacheRead = tu2.TotalCacheReadTokens
869 run2CacheWrite = tu2.TotalCacheWriteTokens
870 run2AIC = tu2.TotalAIC
871 run2Requests = tu2.TotalRequests
872 run2CacheEff = tu2.CacheEfficiency
873 }
874
875 diff := &TokenUsageDiff{
876 Run1InputTokens: run1Input,
877 Run2InputTokens: run2Input,
878 Run1OutputTokens: run1Output,
879 Run2OutputTokens: run2Output,
880 Run1CacheReadTokens: run1CacheRead,
881 Run2CacheReadTokens: run2CacheRead,
882 Run1CacheWriteTokens: run1CacheWrite,
883 Run2CacheWriteTokens: run2CacheWrite,
884 Run1AIC: run1AIC,
885 Run2AIC: run2AIC,
886 Run1TotalRequests: run1Requests,
887 Run2TotalRequests: run2Requests,
888 Run1CacheEfficiency: run1CacheEff,
889 Run2CacheEfficiency: run2CacheEff,
890 }
891
892 if run1Input > 0 || run2Input > 0 {
893 diff.InputTokensChange = formatVolumeChange(run1Input, run2Input)
894 }
895 if run1Output > 0 || run2Output > 0 {
896 diff.OutputTokensChange = formatVolumeChange(run1Output, run2Output)
897 }
898 if run1CacheRead > 0 || run2CacheRead > 0 {

Calls 4

formatVolumeChangeFunction · 0.85
formatFloatDeltaFunction · 0.85
formatCountChangeFunction · 0.85