Module: ActiveHarness::Pricing
- Defined in:
- lib/active_harness/pricing.rb,
lib/active_harness/pricing/models_dev.rb,
lib/active_harness/pricing/openrouter.rb
Overview
Pricing namespace — shared types and a facade over pricing source modules.
Sources (in priority order):
Pricing::OpenRouter — live data from OpenRouter API (image models, 24h cache)
Pricing::ModelsDev — live data from models.dev API (all providers, 24h cache)
Public facade delegates to ModelsDev (used as the general fallback):
Pricing.find("gpt-4o") → ModelPrice or nil
Pricing.all → Array<ModelPrice>
Pricing.providers.openai → Array<ModelPrice>
Pricing.update → refreshes ModelsDev cache
Defined Under Namespace
Modules: ModelsDev, OpenRouter
Classes: ModelPrice, ProvidersProxy
Class Method Summary
collapse
Class Method Details
.all ⇒ Object
119
120
121
|
# File 'lib/active_harness/pricing.rb', line 119
def all
ModelsDev.all
end
|
.available_providers ⇒ Object
.cache_file ⇒ Object
143
144
145
|
# File 'lib/active_harness/pricing.rb', line 143
def cache_file
ModelsDev.cache_file
end
|
.find(model_id) ⇒ Object
115
116
117
|
# File 'lib/active_harness/pricing.rb', line 115
def find(model_id)
ModelsDev.find(model_id)
end
|
.for_provider(name) ⇒ Object
127
128
129
|
# File 'lib/active_harness/pricing.rb', line 127
def for_provider(name)
ModelsDev.for_provider(name)
end
|
.preload! ⇒ Object
Eagerly fetch all pricing sources and load them into memory. Called at Rails startup. Network failures are silently ignored.
.providers ⇒ Object
123
124
125
|
# File 'lib/active_harness/pricing.rb', line 123
def providers
ModelsDev.providers
end
|
.reload! ⇒ Object
139
140
141
|
# File 'lib/active_harness/pricing.rb', line 139
def reload!
ModelsDev.reload!
end
|
.update ⇒ Object
135
136
137
|
# File 'lib/active_harness/pricing.rb', line 135
def update
ModelsDev.update
end
|