Class: RubyLLM::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby_llm/configuration.rb

Overview

Global configuration for RubyLLM

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



59
60
61
62
63
64
# File 'lib/ruby_llm/configuration.rb', line 59

def initialize
  self.class.send(:defaults).each do |key, default|
    value = default.respond_to?(:call) ? instance_exec(&default) : default
    public_send("#{key}=", value)
  end
end

Class Method Details

.option(key, default = nil) ⇒ Object

Declare a single configuration option.



8
9
10
11
12
13
14
15
# File 'lib/ruby_llm/configuration.rb', line 8

def option(key, default = nil)
  key = key.to_sym
  return if options.include?(key)

  send(:attr_accessor, key)
  option_keys << key
  defaults[key] = default
end

.optionsObject



21
22
23
# File 'lib/ruby_llm/configuration.rb', line 21

def options
  option_keys.dup
end

.register_provider_options(options) ⇒ Object



17
18
19
# File 'lib/ruby_llm/configuration.rb', line 17

def register_provider_options(options)
  Array(options).each { |key| option(key, nil) }
end

Instance Method Details

#instance_variablesObject



66
67
68
# File 'lib/ruby_llm/configuration.rb', line 66

def instance_variables
  super.reject { |ivar| ivar.to_s.match?(/_id|_key|_secret|_token$/) }
end

#log_regexp_timeout=(value) ⇒ Object



70
71
72
73
74
75
76
77
78
79
# File 'lib/ruby_llm/configuration.rb', line 70

def log_regexp_timeout=(value)
  if value.nil?
    @log_regexp_timeout = nil
  elsif Regexp.respond_to?(:timeout)
    @log_regexp_timeout = value
  else
    RubyLLM.logger.warn("log_regexp_timeout is not supported on Ruby #{RUBY_VERSION}")
    @log_regexp_timeout = value
  end
end