Class: ReveAI::Configuration

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

Overview

Configuration settings for the ReveAI client.

Stores API credentials and connection settings. Can be configured globally via configure or per-instance when creating a Client.

Examples:

Global configuration

ReveAI.configure do |config|
  config.api_key = ENV["REVE_AI_API_KEY"]
  config.timeout = 120
  config.debug = true
end

Environment variable

# Set REVE_AI_API_KEY environment variable
export REVE_AI_API_KEY="your-api-key"

# API key is automatically loaded
client = ReveAI::Client.new

See Also:

Constant Summary collapse

DEFAULT_BASE_URL =

Returns Default base URL for the Reve API.

Returns:

  • Default base URL for the Reve API

"https://api.reve.com"
DEFAULT_TIMEOUT =

Returns Default request timeout in seconds (2 minutes for image generation).

Returns:

  • Default request timeout in seconds (2 minutes for image generation)

120
DEFAULT_OPEN_TIMEOUT =

Returns Default connection open timeout in seconds.

Returns:

  • Default connection open timeout in seconds

30
DEFAULT_MAX_RETRIES =

Returns Default number of retry attempts for failed requests.

Returns:

  • Default number of retry attempts for failed requests

2
VALID_ASPECT_RATIOS =

Returns Valid aspect ratios for image generation.

Returns:

  • Valid aspect ratios for image generation

%w[16:9 9:16 3:2 2:3 4:3 3:4 1:1].freeze
MAX_PROMPT_LENGTH =

Returns Maximum allowed prompt length in characters.

Returns:

  • Maximum allowed prompt length in characters

2560
MAX_REFERENCE_IMAGES =

Returns Maximum number of reference images for remix operations.

Returns:

  • Maximum number of reference images for remix operations

6

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Creates a new configuration with default values.

Automatically loads API key from the REVE_AI_API_KEY environment variable if present.

Examples:

config = ReveAI::Configuration.new
config.api_key = "your-api-key"
config.timeout = 60


76
77
78
79
80
81
82
83
84
# File 'lib/reve_ai/configuration.rb', line 76

def initialize
  @api_key = ENV.fetch("REVE_AI_API_KEY", nil)
  @base_url = DEFAULT_BASE_URL
  @timeout = DEFAULT_TIMEOUT
  @open_timeout = DEFAULT_OPEN_TIMEOUT
  @max_retries = DEFAULT_MAX_RETRIES
  @logger = nil
  @debug = false
end

Instance Attribute Details

#api_keyString?

Returns Reve API key for authentication.

Returns:

  • Reve API key for authentication



47
48
49
# File 'lib/reve_ai/configuration.rb', line 47

def api_key
  @api_key
end

#base_urlString

Returns Base URL for API requests (defaults to api.reve.com).

Returns:



50
51
52
# File 'lib/reve_ai/configuration.rb', line 50

def base_url
  @base_url
end

#debugBoolean

Returns Enable debug logging of HTTP requests/responses.

Returns:

  • Enable debug logging of HTTP requests/responses



65
66
67
# File 'lib/reve_ai/configuration.rb', line 65

def debug
  @debug
end

#loggerLogger?

Returns Logger instance for debug output.

Returns:

  • Logger instance for debug output



62
63
64
# File 'lib/reve_ai/configuration.rb', line 62

def logger
  @logger
end

#max_retriesInteger

Returns Number of retry attempts for transient failures.

Returns:

  • Number of retry attempts for transient failures



59
60
61
# File 'lib/reve_ai/configuration.rb', line 59

def max_retries
  @max_retries
end

#open_timeoutInteger

Returns Connection open timeout in seconds.

Returns:

  • Connection open timeout in seconds



56
57
58
# File 'lib/reve_ai/configuration.rb', line 56

def open_timeout
  @open_timeout
end

#timeoutInteger

Returns Request timeout in seconds.

Returns:

  • Request timeout in seconds



53
54
55
# File 'lib/reve_ai/configuration.rb', line 53

def timeout
  @timeout
end

Instance Method Details

#valid?Boolean

Checks if the configuration has a valid API key.

Examples:

config = ReveAI::Configuration.new
config.valid? # => false

config.api_key = "your-key"
config.valid? # => true

Returns:

  • true if api_key is present and not empty



96
97
98
# File 'lib/reve_ai/configuration.rb', line 96

def valid?
  !api_key.nil? && !api_key.empty?
end