Class: Ace::Support::Models::CLI::Commands::ModelsSubcommands::Cost

Inherits:
Cli::Command
  • Object
show all
Includes:
Cli::Base
Defined in:
lib/ace/support/models/cli/commands/models/cost.rb

Overview

Show pricing for a model

Instance Method Summary collapse

Instance Method Details

#call(model_id:, **options) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/ace/support/models/cli/commands/models/cost.rb', line 29

def call(model_id:, **options)
  calculator = Molecules::CostCalculator.new
  result = calculator.calculate(
    model_id,
    input_tokens: options[:input],
    output_tokens: options[:output],
    reasoning_tokens: options[:reasoning]
  )

  if options[:json]
    puts JSON.pretty_generate(result)
  else
    puts calculator.format(result)
  end
rescue ProviderNotFoundError, ModelNotFoundError => e
  raise Ace::Support::Cli::Error.new(e.message)
rescue CacheError => e
  raise Ace::Support::Cli::Error.new(e.message)
end