Class: Geminize::Configuration
- Inherits:
-
Object
- Object
- Geminize::Configuration
- Includes:
- Singleton
- Defined in:
- lib/geminize/configuration.rb
Overview
Handles configuration options for the Geminize gem
Constant Summary collapse
- API_BASE_URL =
Base URL for the Google Gemini API
"https://generativelanguage.googleapis.com"- DEFAULT_API_VERSION =
Default API version
"v1beta"- DEFAULT_MODEL =
Default model
"gemini-2.0-flash"- DEFAULT_EMBEDDING_MODEL =
Default embedding model
"gemini-embedding-exp-03-07"- DEFAULT_TIMEOUT =
Default timeout values (in seconds)
30- DEFAULT_OPEN_TIMEOUT =
10- DEFAULT_STREAMING_TIMEOUT =
300- DEFAULT_ON_DATA_TIMEOUT =
60
Instance Attribute Summary collapse
-
#api_key ⇒ String?
API key for accessing the Gemini API.
-
#api_version ⇒ String
API version to use.
-
#default_embedding_model ⇒ String
Default embedding model to use if not specified in embedding requests.
-
#default_model ⇒ String
Default model to use if not specified in requests.
- #log_requests ⇒ Boolean
-
#on_data_timeout ⇒ Integer
Timeout between data chunks in streaming responses.
-
#open_timeout ⇒ Integer
Connection open timeout in seconds.
-
#streaming_timeout ⇒ Integer
Streaming request timeout in seconds.
-
#timeout ⇒ Integer
Request timeout in seconds.
Instance Method Summary collapse
-
#api_base_url ⇒ String
Get the base URL for the Gemini API.
-
#initialize ⇒ Configuration
constructor
Initialize with default configuration values.
-
#reset!
Reset configuration to default values.
-
#validate! ⇒ Boolean
Validates the current configuration.
Constructor Details
#initialize ⇒ Configuration
Initialize with default configuration values
64 65 66 |
# File 'lib/geminize/configuration.rb', line 64 def initialize reset! end |
Instance Attribute Details
#api_key ⇒ String?
API key for accessing the Gemini API
30 31 32 |
# File 'lib/geminize/configuration.rb', line 30 def api_key @api_key end |
#api_version ⇒ String
API version to use
34 35 36 |
# File 'lib/geminize/configuration.rb', line 34 def api_version @api_version end |
#default_embedding_model ⇒ String
Default embedding model to use if not specified in embedding requests
42 43 44 |
# File 'lib/geminize/configuration.rb', line 42 def end |
#default_model ⇒ String
Default model to use if not specified in requests
38 39 40 |
# File 'lib/geminize/configuration.rb', line 38 def default_model @default_model end |
#log_requests ⇒ Boolean
61 62 63 |
# File 'lib/geminize/configuration.rb', line 61 def log_requests @log_requests end |
#on_data_timeout ⇒ Integer
Timeout between data chunks in streaming responses
58 59 60 |
# File 'lib/geminize/configuration.rb', line 58 def on_data_timeout @on_data_timeout end |
#open_timeout ⇒ Integer
Connection open timeout in seconds
50 51 52 |
# File 'lib/geminize/configuration.rb', line 50 def open_timeout @open_timeout end |
#streaming_timeout ⇒ Integer
Streaming request timeout in seconds
54 55 56 |
# File 'lib/geminize/configuration.rb', line 54 def streaming_timeout @streaming_timeout end |
#timeout ⇒ Integer
Request timeout in seconds
46 47 48 |
# File 'lib/geminize/configuration.rb', line 46 def timeout @timeout end |
Instance Method Details
#api_base_url ⇒ String
Get the base URL for the Gemini API
84 85 86 |
# File 'lib/geminize/configuration.rb', line 84 def api_base_url API_BASE_URL end |
#reset!
This method returns an undefined value.
Reset configuration to default values
70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/geminize/configuration.rb', line 70 def reset! @api_key = ENV["GEMINI_API_KEY"] @api_version = ENV["GEMINI_API_VERSION"] || DEFAULT_API_VERSION @default_model = ENV["GEMINI_MODEL"] || DEFAULT_MODEL = ENV["GEMINI_EMBEDDING_MODEL"] || DEFAULT_EMBEDDING_MODEL @timeout = DEFAULT_TIMEOUT @open_timeout = DEFAULT_OPEN_TIMEOUT @streaming_timeout = DEFAULT_STREAMING_TIMEOUT @on_data_timeout = DEFAULT_ON_DATA_TIMEOUT @log_requests = false end |
#validate! ⇒ Boolean
Validates the current configuration
91 92 93 94 95 96 |
# File 'lib/geminize/configuration.rb', line 91 def validate! raise ConfigurationError, "API key must be set" if @api_key.nil? || @api_key.empty? raise ConfigurationError, "API version must be set" if @api_version.nil? || @api_version.empty? true end |