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:

  • (String)

    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:

  • (Integer)

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

120
DEFAULT_OPEN_TIMEOUT =

Returns Default connection open timeout in seconds.

Returns:

  • (Integer)

    Default connection open timeout in seconds

30
DEFAULT_MAX_RETRIES =

Returns Default number of retry attempts for failed requests.

Returns:

  • (Integer)

    Default number of retry attempts for failed requests

2
VALID_ASPECT_RATIOS =

Returns Valid aspect ratios for legacy v1 image generation.

Returns:

  • (Array<String>)

    Valid aspect ratios for legacy v1 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:

  • (Integer)

    Maximum allowed prompt length in characters

2560
MAX_REFERENCE_IMAGES =

Returns Maximum number of reference images for remix operations.

Returns:

  • (Integer)

    Maximum number of reference images for remix operations

6
ASPECT_RATIOS =

Returns Valid aspect ratios for image generation.

Returns:

  • (Array<String>)

    Valid aspect ratios for image generation

%w[4:1 3:1 21:9 2:1 17:9 16:9 3:2 4:3 5:4 1:1 4:5 3:4 2:3 9:16 1:2 1:3 1:4 auto].freeze
V2_MAX_PROMPT_LENGTH =

Returns Maximum allowed prompt length in characters for v2 endpoints.

Returns:

  • (Integer)

    Maximum allowed prompt length in characters for v2 endpoints

4000
V2_MAX_REFERENCES =

Returns Maximum number of references for v2 create operations.

Returns:

  • (Integer)

    Maximum number of references for v2 create operations

8

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


85
86
87
88
89
90
91
92
93
# File 'lib/reve_ai/configuration.rb', line 85

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:

  • (String, nil)

    Reve API key for authentication



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

def api_key
  @api_key
end

#base_urlString

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

Returns:



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

def base_url
  @base_url
end

#debugBoolean

Returns Enable debug logging of HTTP requests/responses.

Returns:

  • (Boolean)

    Enable debug logging of HTTP requests/responses



74
75
76
# File 'lib/reve_ai/configuration.rb', line 74

def debug
  @debug
end

#loggerLogger?

Returns Logger instance for debug output.

Returns:

  • (Logger, nil)

    Logger instance for debug output



71
72
73
# File 'lib/reve_ai/configuration.rb', line 71

def logger
  @logger
end

#max_retriesInteger

Returns Number of retry attempts for transient failures.

Returns:

  • (Integer)

    Number of retry attempts for transient failures



68
69
70
# File 'lib/reve_ai/configuration.rb', line 68

def max_retries
  @max_retries
end

#open_timeoutInteger

Returns Connection open timeout in seconds.

Returns:

  • (Integer)

    Connection open timeout in seconds



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

def open_timeout
  @open_timeout
end

#timeoutInteger

Returns Request timeout in seconds.

Returns:

  • (Integer)

    Request timeout in seconds



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

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:

  • (Boolean)

    true if api_key is present and not empty



105
106
107
# File 'lib/reve_ai/configuration.rb', line 105

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