17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/llm_cost_tracker/event_metadata.rb', line 17
def usage_data(input_tokens, output_tokens, metadata)
metadata = metadata.to_h.symbolize_keys
cache_read = first_integer(metadata, :cache_read_input_tokens)
cache_write = first_integer(metadata, :cache_write_input_tokens)
hidden_output = first_integer(metadata, :hidden_output_tokens)
breakdown = UsageBreakdown.build(
input_tokens: input_tokens,
output_tokens: output_tokens,
cache_read_input_tokens: cache_read,
cache_write_input_tokens: cache_write,
hidden_output_tokens: hidden_output
)
breakdown.to_h.merge(pricing_mode: normalized_pricing_mode(metadata[:pricing_mode])).compact
end
|