class Riffer::Config::Pricing
Consumer-configured token pricing, keyed by provider/model id. Riffer ships no price table, so an unconfigured model carries no cost.
Public Class Methods
Public Instance Methods
Source
# File lib/riffer/config.rb, line 230 def empty? @rates.empty? end
Returns true when no rates are registered.
Source
# File lib/riffer/config.rb, line 223 def rates_for(model) @rates[model] end
Returns the rates registered for a provider/model id.
Source
# File lib/riffer/config.rb, line 206 def set(models, input:, output:, cache_read: nil, cache_write: nil) ids = models.is_a?(Array) ? models : [models] raise Riffer::ArgumentError, "at least one model id is required" if ids.empty? ids.each { |id| validate_model!(id) } rates = Rates.new( input: coerce_rate(input, "input"), output: coerce_rate(output, "output"), cache_read: coerce_optional_rate(cache_read, "cache_read"), cache_write: coerce_optional_rate(cache_write, "cache_write") ) ids.each { |id| @rates[id] = rates } end
Registers per-million-token rates for a provider/model id/s. Raises Riffer::ArgumentError on a malformed id or a negative/non-numeric rate.