Class: AIA::ConfigurationDirectives
- Inherits:
-
Directive
- Object
- PM::Directive
- Directive
- AIA::ConfigurationDirectives
show all
- Defined in:
- lib/aia/directives/configuration_directives.rb
Constant Summary
Constants inherited
from Directive
Directive::DIRECTIVE_PREFIX
Instance Method Summary
collapse
Methods inherited from Directive
build_dispatch_block, help
Instance Method Details
#config(args = [], context_manager = nil) ⇒ Object
Also known as:
cfg
6
7
8
9
10
11
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
37
38
39
40
|
# File 'lib/aia/directives/configuration_directives.rb', line 6
def config(args = [], context_manager = nil)
args = Array(args)
if args.empty?
ap AIA.config.to_h
""
elsif args.length == 1
config_item = args.first
local_cfg = {}
if AIA.config.respond_to?(config_item)
local_cfg[config_item] = AIA.config.send(config_item)
else
local_cfg[config_item] = nil
end
ap local_cfg
""
else
config_item = args.shift
boolean = AIA.respond_to?("#{config_item}?")
new_value = args.join(' ').gsub('=', '').strip
if boolean
new_value = %w[true t yes y on 1 yea yeah yep yup].include?(new_value.downcase)
end
setter = "#{config_item}="
if AIA.config.respond_to?(setter)
AIA.config.send(setter, new_value)
else
warn "Warning: Unknown config option '#{config_item}'"
AIA::LoggerManager.aia_logger.warn("Unknown config option '#{config_item}'")
end
""
end
end
|
#model(args, context_manager = nil) ⇒ Object
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
# File 'lib/aia/directives/configuration_directives.rb', line 44
def model(args, context_manager = nil)
if args.empty?
puts
models = AIA.config.models
if models.size == 1
puts "Current Model:"
puts "=============="
puts AIA.client.model.to_h.pretty_inspect
else
puts "Multi-Model Configuration:"
puts "=========================="
puts "Model count: #{models.size}"
first_model = models.first.respond_to?(:name) ? models.first.name : models.first.to_s
puts "Primary model: #{first_model} (used for consensus when --consensus flag is enabled)"
consensus = AIA.config.flags.consensus
puts "Consensus mode: #{consensus.nil? ? 'auto-detect (disabled by default)' : consensus}"
puts
puts "Model Details:"
puts "-" * 50
models.each_with_index do |model_spec, index|
model_name = model_spec.respond_to?(:name) ? model_spec.name : model_spec.to_s
puts "#{index + 1}. #{model_name}#{index == 0 ? ' (primary)' : ''}"
begin
model_info = RubyLLM::Models.find(model_name)
if model_info
puts " Provider: #{model_info.provider || 'Unknown'}"
puts " Context window: #{model_info.context_window || 'Unknown'}"
puts " Input cost: $#{model_info.input_cost || 'Unknown'}"
puts " Output cost: $#{model_info.output_cost || 'Unknown'}"
puts " Mode: #{model_info.modalities || 'Unknown'}"
puts " Capabilities: #{(model_info.capabilities || []).join(', ')}" if model_info.capabilities&.any?
else
puts " Details: Model not found in registry"
end
rescue StandardError => e
puts " Details: Unable to fetch (#{e.class.name}: #{e.message})"
end
puts
end
end
puts
else
model_names = args.join(' ').split(',').map(&:strip).reject(&:empty?)
AIA.config.models = AIA::Config::TO_MODEL_SPECS.call(model_names)
AIA.client = AIA.client.class.new
end
''
end
|
#temperature(args, context_manager = nil) ⇒ Object
Also known as:
temp
98
99
100
|
# File 'lib/aia/directives/configuration_directives.rb', line 98
def temperature(args, context_manager = nil)
config(args.prepend('temperature'), context_manager)
end
|
#top_p(args, context_manager = nil) ⇒ Object
Also known as:
topp
104
105
106
|
# File 'lib/aia/directives/configuration_directives.rb', line 104
def top_p(args, context_manager = nil)
config(args.prepend('top_p'), context_manager)
end
|