@@ -13,14 +13,16 @@ import (
1313
1414// streamAdapter adapts the Anthropic stream to our interface
1515type streamAdapter struct {
16- stream * ssestream.Stream [anthropic.MessageStreamEventUnion ]
17- toolCall bool
18- toolID string
16+ stream * ssestream.Stream [anthropic.MessageStreamEventUnion ]
17+ trackUsage bool
18+ toolCall bool
19+ toolID string
1920}
2021
21- func newStreamAdapter (stream * ssestream.Stream [anthropic.MessageStreamEventUnion ]) * streamAdapter {
22+ func newStreamAdapter (stream * ssestream.Stream [anthropic.MessageStreamEventUnion ], trackUsage bool ) * streamAdapter {
2223 return & streamAdapter {
23- stream : stream ,
24+ stream : stream ,
25+ trackUsage : trackUsage ,
2426 }
2527}
2628
@@ -96,11 +98,13 @@ func (a *streamAdapter) Recv() (chat.MessageStreamResponse, error) {
9698 return response , fmt .Errorf ("unknown delta type: %T" , deltaVariant )
9799 }
98100 case anthropic.MessageDeltaEvent :
99- response .Usage = & chat.Usage {
100- InputTokens : int (eventVariant .Usage .InputTokens ),
101- OutputTokens : int (eventVariant .Usage .OutputTokens ),
102- CachedInputTokens : int (eventVariant .Usage .CacheReadInputTokens ),
103- CachedOutputTokens : int (eventVariant .Usage .CacheCreationInputTokens ),
101+ if a .trackUsage {
102+ response .Usage = & chat.Usage {
103+ InputTokens : int (eventVariant .Usage .InputTokens ),
104+ OutputTokens : int (eventVariant .Usage .OutputTokens ),
105+ CachedInputTokens : int (eventVariant .Usage .CacheReadInputTokens ),
106+ CachedOutputTokens : int (eventVariant .Usage .CacheCreationInputTokens ),
107+ }
104108 }
105109 case anthropic.MessageStopEvent :
106110 if a .toolCall {
0 commit comments