Module: LlmCostTracker::EventMetadata

Defined in:
lib/llm_cost_tracker/event_metadata.rb

Constant Summary collapse

INTERNAL_TAG_KEYS =
%w[
  cache_read_input_tokens
  cache_write_input_tokens
  hidden_output_tokens
  input_tokens
  output_tokens
  pricing_mode
  provider_response_id
  total_tokens
].freeze

Class Method Summary collapse

Class Method Details

.tags(metadata) ⇒ Object



33
34
35
# File 'lib/llm_cost_tracker/event_metadata.rb', line 33

def tags()
  .reject { |key, _value| INTERNAL_TAG_KEYS.include?(key.to_s) }
end

.usage_data(input_tokens, output_tokens, metadata) ⇒ Object



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, )
   = .to_h.symbolize_keys
  cache_read = first_integer(, :cache_read_input_tokens)
  cache_write = first_integer(, :cache_write_input_tokens)
  hidden_output = first_integer(, :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([:pricing_mode])).compact
end