Module: Clacky::Server::ModelPrices
- Defined in:
- lib/clacky/server/model_prices.rb
Overview
GET /api/model_prices?models=a,b,c Resolves each model's input/output price (USD per 1M tokens) from Clacky::ModelPricing plus a cost ratio vs the baseline model, so the web UI never hardcodes prices - updating PRICING_TABLE is enough.
Constant Summary collapse
- BASELINE_MODEL =
"claude-sonnet-5"
Class Method Summary collapse
Class Method Details
.build(models_query, now: Time.now) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/clacky/server/model_prices.rb', line 12 def self.build(models_query, now: Time.now) names = (models_query || "").split(",").map(&:strip).reject(&:empty?) baseline = Clacky::ModelPricing.get_pricing(BASELINE_MODEL) base_total = baseline[:input][:default] + baseline[:output][:default] prices = {} names.each do |name| pricing = Clacky::ModelPricing.get_pricing(name) pricing = Clacky::ModelPricing.resolve_deepseek_tier(pricing, now) if pricing && pricing[:deepseek] next unless pricing pin = pricing[:input][:default] pout = pricing[:output][:default] prices[name] = { in: pin, out: pout, ratio: (pin + pout) / base_total } end { baseline: { model: BASELINE_MODEL, in: baseline[:input][:default], out: baseline[:output][:default] }, prices: prices } end |