Module: LlmCostTracker::EventMetadata

Defined in:
lib/llm_cost_tracker/event_metadata.rb

Constant Summary collapse

INTERNAL_TAG_KEYS =
%w[
  cache_creation_input_tokens
  cache_creation_tokens
  cache_read_input_tokens
  cache_read_tokens
  cached_input_tokens
  input_tokens
  output_tokens
  reasoning_tokens
  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



18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/llm_cost_tracker/event_metadata.rb', line 18

def usage_data(input_tokens, output_tokens, )
   = .to_h.symbolize_keys
  cache_read = first_integer(, :cache_read_input_tokens, :cache_read_tokens)
  cache_creation = first_integer(, :cache_creation_input_tokens, :cache_creation_tokens)

  {
    input_tokens: input_tokens.to_i,
    output_tokens: output_tokens.to_i,
    cached_input_tokens: [:cached_input_tokens].to_i,
    cache_read_input_tokens: cache_read,
    cache_creation_input_tokens: cache_creation,
    total_tokens: input_tokens.to_i + output_tokens.to_i + cache_read + cache_creation
  }
end