Class: Rubygpt::Client::Configuration
- Inherits:
-
Object
- Object
- Rubygpt::Client::Configuration
- Defined in:
- lib/rubygpt/client/configuration.rb
Overview
Handles the configuration options when initializing a new Rubygpt::Client object
Defined Under Namespace
Classes: InvalidConfigurationError
Constant Summary collapse
- DEFAULT_API_URL =
The base URL for the OpenAI API
"https://api.openai.com/v1"
- DEFAULT_CONNECTION_ADAPTER =
:faraday
Instance Attribute Summary collapse
-
#api_key ⇒ Object
The API key to use for the client.
-
#api_url ⇒ Object
The API URL to use for the client.
-
#connection_adapter ⇒ Object
The connection adapter to use for the client Defaults to :faraday.
-
#model ⇒ Object
The GPT model to use for the client Sample values: gpt-4, gpt-4-turbo-preview, gpt-3.5-turbo, gpt-3.5-turbo-instruct Refer to platform.openai.com/docs/models.
-
#organization_id ⇒ Object
The OpenAI OrganizationID that will be sent when making requests (optional) platform.openai.com/docs/api-reference/organization-optional.
Class Method Summary collapse
-
.from(configuration_input) ⇒ Object
Initializes a new Rubygpt::Client::Configuration object from a hash or another Configuration object.
Instance Method Summary collapse
-
#initialize(options = {}) ⇒ Configuration
constructor
Initializes new Rubygpt::Client::Configuration object.
- #to_headers ⇒ Object
- #validate! ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ Configuration
Initializes new Rubygpt::Client::Configuration object
49 50 51 52 53 54 55 |
# File 'lib/rubygpt/client/configuration.rb', line 49 def initialize( = {}) @connection_adapter = [:connection_adapter] || DEFAULT_CONNECTION_ADAPTER @api_key = [:api_key] @api_url = [:api_url] || DEFAULT_API_URL @organization_id = [:organization_id] @model = [:model] end |
Instance Attribute Details
#api_key ⇒ Object
The API key to use for the client
26 27 28 |
# File 'lib/rubygpt/client/configuration.rb', line 26 def api_key @api_key end |
#api_url ⇒ Object
The API URL to use for the client
23 24 25 |
# File 'lib/rubygpt/client/configuration.rb', line 23 def api_url @api_url end |
#connection_adapter ⇒ Object
The connection adapter to use for the client Defaults to :faraday
20 21 22 |
# File 'lib/rubygpt/client/configuration.rb', line 20 def connection_adapter @connection_adapter end |
#model ⇒ Object
The GPT model to use for the client Sample values: gpt-4, gpt-4-turbo-preview, gpt-3.5-turbo, gpt-3.5-turbo-instruct Refer to platform.openai.com/docs/models
35 36 37 |
# File 'lib/rubygpt/client/configuration.rb', line 35 def model @model end |
#organization_id ⇒ Object
The OpenAI OrganizationID that will be sent when making requests (optional) platform.openai.com/docs/api-reference/organization-optional
30 31 32 |
# File 'lib/rubygpt/client/configuration.rb', line 30 def organization_id @organization_id end |
Class Method Details
.from(configuration_input) ⇒ Object
Initializes a new Rubygpt::Client::Configuration object from a hash or another Configuration object
8 9 10 11 12 13 14 |
# File 'lib/rubygpt/client/configuration.rb', line 8 def self.from(configuration_input) case configuration_input when Configuration then configuration_input when Hash, nil then Configuration.new(configuration_input || {}) else raise InvalidConfigurationError, "Invalid configuration provided for client." end end |
Instance Method Details
#to_headers ⇒ Object
62 63 64 65 66 67 |
# File 'lib/rubygpt/client/configuration.rb', line 62 def to_headers { "Authorization" => "Bearer #{api_key}", "OpenAI-Organization" => organization_id }.compact end |
#validate! ⇒ Object
57 58 59 60 |
# File 'lib/rubygpt/client/configuration.rb', line 57 def validate! raise(InvalidConfigurationError, "model is required") unless model raise(InvalidConfigurationError, "api_key is required") unless api_key end |