Module: LlmCostTracker::Pricing::PriceKey
- Defined in:
- lib/llm_cost_tracker/pricing/price_key.rb
Constant Summary collapse
- ABOVE_CONTEXT_PREFIX =
"above_context_"
Class Method Summary collapse
- .build(dimension_key, mode: nil, above_context: false) ⇒ Object
- .parse_dimension_key(key) ⇒ Object
- .price_key_for(key) ⇒ Object
Class Method Details
.build(dimension_key, mode: nil, above_context: false) ⇒ Object
12 13 14 15 |
# File 'lib/llm_cost_tracker/pricing/price_key.rb', line 12 def build(dimension_key, mode: nil, above_context: false) key = mode ? "#{mode}_#{dimension_key}" : dimension_key.to_s above_context ? "#{ABOVE_CONTEXT_PREFIX}#{key}" : key end |
.parse_dimension_key(key) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/llm_cost_tracker/pricing/price_key.rb', line 27 def parse_dimension_key(key) name = key.to_s exact = Usage::Catalog.all.find { |dimension| dimension.key == name } return [exact, nil] if exact Usage::Catalog.all.sort_by { |dimension| -dimension.key.length }.each do |dimension| suffix = "_#{dimension.key}" next unless name.end_with?(suffix) tier = name.delete_suffix(suffix) return [dimension, tier] unless tier.empty? end nil end |
.price_key_for(key) ⇒ Object
17 18 19 20 21 22 23 24 25 |
# File 'lib/llm_cost_tracker/pricing/price_key.rb', line 17 def price_key_for(key) key = key.to_s dimension_key = strip_mode_prefix(key.delete_prefix(ABOVE_CONTEXT_PREFIX)) dimension = Usage::Catalog[dimension_key] return nil unless dimension return key if key == dimension_key dimension.token_key ? key : nil end |