Class: RubyPi::Configuration

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

Overview

Holds all configurable settings for the RubyPi framework.

Examples:

Setting API keys and retry behavior

RubyPi.configure do |config|
  config.gemini_api_key   = ENV["GEMINI_API_KEY"]
  config.anthropic_api_key = ENV["ANTHROPIC_API_KEY"]
  config.openai_api_key   = ENV["OPENAI_API_KEY"]
  config.max_retries      = 5
  config.retry_base_delay = 2.0
end

Per-agent configuration override

custom_config = RubyPi::Configuration.new
custom_config.openai_api_key = "per-agent-key"
agent = RubyPi::Agent.new(system_prompt: "...", model: model, config: custom_config)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Initializes a new Configuration with sensible defaults.



67
68
69
# File 'lib/ruby_pi/configuration.rb', line 67

def initialize
  set_defaults
end

Instance Attribute Details

#anthropic_api_keyString?

Returns API key for Anthropic Claude.

Returns:

  • (String, nil)

    API key for Anthropic Claude



34
35
36
# File 'lib/ruby_pi/configuration.rb', line 34

def anthropic_api_key
  @anthropic_api_key
end

#default_anthropic_modelString

Returns Default model name for Anthropic provider.

Returns:

  • (String)

    Default model name for Anthropic provider



58
59
60
# File 'lib/ruby_pi/configuration.rb', line 58

def default_anthropic_model
  @default_anthropic_model
end

#default_gemini_modelString

Returns Default model name for Gemini provider.

Returns:

  • (String)

    Default model name for Gemini provider



55
56
57
# File 'lib/ruby_pi/configuration.rb', line 55

def default_gemini_model
  @default_gemini_model
end

#default_openai_modelString

Returns Default model name for OpenAI provider.

Returns:

  • (String)

    Default model name for OpenAI provider



61
62
63
# File 'lib/ruby_pi/configuration.rb', line 61

def default_openai_model
  @default_openai_model
end

#gemini_api_keyString?

Returns API key for Google Gemini.

Returns:

  • (String, nil)

    API key for Google Gemini



31
32
33
# File 'lib/ruby_pi/configuration.rb', line 31

def gemini_api_key
  @gemini_api_key
end

#loggerLogger?

Returns Logger instance for debug output.

Returns:

  • (Logger, nil)

    Logger instance for debug output



64
65
66
# File 'lib/ruby_pi/configuration.rb', line 64

def logger
  @logger
end

#max_retriesInteger

Returns Maximum number of retry attempts for transient errors (default: 3).

Returns:

  • (Integer)

    Maximum number of retry attempts for transient errors (default: 3)



40
41
42
# File 'lib/ruby_pi/configuration.rb', line 40

def max_retries
  @max_retries
end

#open_timeoutInteger

Returns HTTP connection open timeout in seconds (default: 10).

Returns:

  • (Integer)

    HTTP connection open timeout in seconds (default: 10)



52
53
54
# File 'lib/ruby_pi/configuration.rb', line 52

def open_timeout
  @open_timeout
end

#openai_api_keyString?

Returns API key for OpenAI.

Returns:

  • (String, nil)

    API key for OpenAI



37
38
39
# File 'lib/ruby_pi/configuration.rb', line 37

def openai_api_key
  @openai_api_key
end

#request_timeoutInteger

Returns HTTP request timeout in seconds (default: 120).

Returns:

  • (Integer)

    HTTP request timeout in seconds (default: 120)



49
50
51
# File 'lib/ruby_pi/configuration.rb', line 49

def request_timeout
  @request_timeout
end

#retry_base_delayFloat

Returns Base delay in seconds for exponential backoff (default: 1.0).

Returns:

  • (Float)

    Base delay in seconds for exponential backoff (default: 1.0)



43
44
45
# File 'lib/ruby_pi/configuration.rb', line 43

def retry_base_delay
  @retry_base_delay
end

#retry_max_delayFloat

Returns Maximum delay in seconds between retries (default: 30.0).

Returns:

  • (Float)

    Maximum delay in seconds between retries (default: 30.0)



46
47
48
# File 'lib/ruby_pi/configuration.rb', line 46

def retry_max_delay
  @retry_max_delay
end

Instance Method Details

#reset!void

This method returns an undefined value.

Resets all configuration options to their default values. Uses the shared set_defaults method to avoid calling initialize directly.



75
76
77
# File 'lib/ruby_pi/configuration.rb', line 75

def reset!
  set_defaults
end