module Riffer::Rig::Commands::Model
Constants
- SAVE
Public Instance Methods
(env: Riffer::Rig::Env, auth_path: String, settings_path: String, ?sdk: singleton(Riffer::Rig::SDK)) → Riffer::Rig::Command
Source
# File lib/riffer/rig/commands/model.rb, line 13 def command(env:, auth_path:, settings_path:, sdk: Riffer::Rig::SDK) Riffer::Rig::Command.new( 'model', description: 'Switch the model for this session: /model provider/name, /model --save', extension: :core ) { |ctx| run(ctx, env:, auth_path:, settings_path:, sdk:) } end
@rbs env: Riffer::Rig::Env @rbs auth_path: String @rbs settings_path: String @rbs sdk: singleton(Riffer::Rig::SDK) @rbs return: Riffer::Rig::Command
(Riffer::Rig::Command::Context ctx, env: Riffer::Rig::Env, auth_path: String, settings_path: String, sdk: singleton(Riffer::Rig::SDK)) → void
Source
# File lib/riffer/rig/commands/model.rb, line 27 def run(ctx, env:, auth_path:, settings_path:, sdk:) words = ctx.args.split save = words.delete(SAVE) model = words.join(' ') if model.empty? return ctx.say("Model: #{ctx.runtime.model}") unless save refusal = Riffer::Rig::Settings::File.store_model(ctx.runtime.model, path: settings_path) return ctx.host.notify(refusal, level: :error) if refusal return ctx.say("Saved #{ctx.runtime.model} to #{settings_path}") end provider = Riffer::Rig::Settings::ModelOptions.provider_for(model) return ctx.say(hint) unless provider && Riffer::Providers::Repository.find(provider) return unless ready?(ctx, model, provider, env:, auth_path:, settings_path:, sdk:) ctx.runtime.model = model refusal = Riffer::Rig::Settings::File.store_model(model, path: settings_path) if save ctx.host.notify(refusal, level: :error) if refusal saved = save && !refusal ctx.say(saved ? "Model switched to #{model} and saved to #{settings_path}" : "Model switched to #{model}") end
@rbs ctx: Riffer::Rig::Command::Context @rbs env: Riffer::Rig::Env @rbs auth_path: String @rbs settings_path: String @rbs sdk: singleton(Riffer::Rig::SDK) @rbs return: void