Module: Woods::CostModel::ProviderPricing
- Defined in:
- lib/woods/cost_model/provider_pricing.rb
Overview
Frozen pricing data for embedding providers.
Costs are expressed as dollars per 1 million tokens, sourced from BACKEND_MATRIX.md. Each provider is identified by a Symbol key.
Constant Summary collapse
- COSTS_PER_MILLION_TOKENS =
Cost per 1 million tokens, in USD.
{ openai_small: 0.02, openai_large: 0.13, voyage_code3: 0.06, ollama: 0.00 }.freeze
- DEFAULT_DIMENSIONS =
Default embedding dimensions per provider.
{ openai_small: 1536, openai_large: 3072, voyage_code3: 1024, ollama: 768 }.freeze
Class Method Summary collapse
-
.cost_per_million(provider) ⇒ Float
Look up the cost per 1M tokens for a provider.
-
.default_dimensions(provider) ⇒ Integer
Look up the default dimensions for a provider.
-
.providers ⇒ Array<Symbol>
List all known provider keys.
Class Method Details
.cost_per_million(provider) ⇒ Float
Look up the cost per 1M tokens for a provider.
40 41 42 43 44 45 |
# File 'lib/woods/cost_model/provider_pricing.rb', line 40 def self.cost_per_million(provider) COSTS_PER_MILLION_TOKENS.fetch(provider) do raise ArgumentError, "Unknown embedding provider: #{provider.inspect}. " \ "Valid providers: #{providers.join(', ')}" end end |
.default_dimensions(provider) ⇒ Integer
Look up the default dimensions for a provider.
52 53 54 55 56 57 |
# File 'lib/woods/cost_model/provider_pricing.rb', line 52 def self.default_dimensions(provider) DEFAULT_DIMENSIONS.fetch(provider) do raise ArgumentError, "Unknown embedding provider: #{provider.inspect}. " \ "Valid providers: #{providers.join(', ')}" end end |
.providers ⇒ Array<Symbol>
List all known provider keys.
62 63 64 |
# File 'lib/woods/cost_model/provider_pricing.rb', line 62 def self.providers COSTS_PER_MILLION_TOKENS.keys end |