Class: Legion::Extensions::Llm::Model::PricingCategory

Inherits:
Object
  • Object
show all
Defined in:
lib/legion/extensions/llm/model/pricing_category.rb

Overview

Represents pricing tiers for different usage categories (standard and batch)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data = {}) ⇒ PricingCategory

Returns a new instance of PricingCategory.



11
12
13
14
# File 'lib/legion/extensions/llm/model/pricing_category.rb', line 11

def initialize(data = {})
  @standard = PricingTier.new(data[:standard] || {}) unless empty_tier?(data[:standard])
  @batch = PricingTier.new(data[:batch] || {}) unless empty_tier?(data[:batch])
end

Instance Attribute Details

#batchObject (readonly)

Returns the value of attribute batch.



9
10
11
# File 'lib/legion/extensions/llm/model/pricing_category.rb', line 9

def batch
  @batch
end

#standardObject (readonly)

Returns the value of attribute standard.



9
10
11
# File 'lib/legion/extensions/llm/model/pricing_category.rb', line 9

def standard
  @standard
end

Instance Method Details

#[](key) ⇒ Object



28
29
30
# File 'lib/legion/extensions/llm/model/pricing_category.rb', line 28

def [](key)
  key == :batch ? batch : standard
end

#cached_inputObject



24
25
26
# File 'lib/legion/extensions/llm/model/pricing_category.rb', line 24

def cached_input
  standard&.cached_input_per_million
end

#inputObject



16
17
18
# File 'lib/legion/extensions/llm/model/pricing_category.rb', line 16

def input
  standard&.input_per_million
end

#outputObject



20
21
22
# File 'lib/legion/extensions/llm/model/pricing_category.rb', line 20

def output
  standard&.output_per_million
end

#to_hObject



32
33
34
35
36
37
# File 'lib/legion/extensions/llm/model/pricing_category.rb', line 32

def to_h
  result = {}
  result[:standard] = standard.to_h if standard
  result[:batch] = batch.to_h if batch
  result
end