Module: LlmCostTracker::Pricing

Defined in:
lib/llm_cost_tracker.rb,
lib/llm_cost_tracker/pricing.rb,
lib/llm_cost_tracker/pricing/mode.rb,
lib/llm_cost_tracker/pricing/rate.rb,
lib/llm_cost_tracker/pricing/sync.rb,
lib/llm_cost_tracker/pricing/source.rb,
lib/llm_cost_tracker/pricing/matcher.rb,
lib/llm_cost_tracker/pricing/unknown.rb,
lib/llm_cost_tracker/pricing/backfill.rb,
lib/llm_cost_tracker/pricing/registry.rb,
lib/llm_cost_tracker/pricing/estimator.rb,
lib/llm_cost_tracker/pricing/price_key.rb,
lib/llm_cost_tracker/pricing/calculation.rb,
lib/llm_cost_tracker/pricing/sync/fetcher.rb,
lib/llm_cost_tracker/pricing/service_rates.rb,
lib/llm_cost_tracker/pricing/effective_prices.rb,
lib/llm_cost_tracker/pricing/sync/registry_diff.rb,
lib/llm_cost_tracker/pricing/sync/change_printer.rb,
lib/llm_cost_tracker/pricing/sync/registry_writer.rb

Defined Under Namespace

Modules: Backfill, EffectivePrices, Estimator, Matcher, Mode, PriceKey, Registry, ServiceRates, Sync, Unknown Classes: Calculation, Rate, Source

Constant Summary collapse

RATE_BASIS_QUANTITIES =
{
  "per_million_tokens" => 1_000_000,
  "per_million_characters" => 1_000_000,
  "per_request" => 1,
  "per_1k_requests" => 1_000,
  "per_session" => 1,
  "per_hour" => 1,
  "per_minute" => 1,
  "per_image" => 1
}.freeze

Class Method Summary collapse

Class Method Details

.cost_for(provider:, model:, tokens:, pricing_mode: nil) ⇒ Object



23
24
25
# File 'lib/llm_cost_tracker/pricing.rb', line 23

def cost_for(provider:, model:, tokens:, pricing_mode: nil)
  Calculation.for(provider: provider, model: model, tokens: tokens, pricing_mode: pricing_mode).token_cost
end