lib/ruby/openai.rb in ruby-openai-2.3.0 vs lib/ruby/openai.rb in ruby-openai-3.0.0
- old
+ new
@@ -1,15 +1,47 @@
require "httparty"
+require "ruby/openai/client"
require "ruby/openai/engines"
require "ruby/openai/files"
require "ruby/openai/finetunes"
require "ruby/openai/images"
require "ruby/openai/models"
-require "ruby/openai/client"
require "ruby/openai/version"
-require "dotenv/load"
module Ruby
module OpenAI
class Error < StandardError; end
+ class ConfigurationError < Error; end
+
+ class Configuration
+ attr_writer :access_token
+ attr_accessor :api_version, :organization_id
+
+ DEFAULT_API_VERSION = "v1".freeze
+
+ def initialize
+ @access_token = nil
+ @api_version = DEFAULT_API_VERSION
+ @organization_id = nil
+ end
+
+ def access_token
+ return @access_token if @access_token
+
+ error_text = "OpenAI access token missing! See https://github.com/alexrudall/ruby-openai#usage"
+ raise ConfigurationError, error_text
+ end
+ end
+
+ class << self
+ attr_writer :configuration
+ end
+
+ def self.configuration
+ @configuration ||= OpenAI::Configuration.new
+ end
+
+ def self.configure
+ yield(configuration)
+ end
end
end