class OpenAI::Client
def assistants
def assistants @assistants ||= OpenAI::Assistants.new(client: self) end
def audio
def audio @audio ||= OpenAI::Audio.new(client: self) end
def azure?
def azure? @api_type&.to_sym == :azure end
def batches
def batches @batches ||= OpenAI::Batches.new(client: self) end
def beta(apis)
def beta(apis) dup.tap do |client| client.add_headers("OpenAI-Beta": apis.map { |k, v| "#{k}=#{v}" }.join(";")) end end
def chat(parameters: {})
def chat(parameters: {}) json_post(path: "/chat/completions", parameters: parameters) end
def completions(parameters: {})
def completions(parameters: {}) json_post(path: "/completions", parameters: parameters) end
def embeddings(parameters: {})
def embeddings(parameters: {}) json_post(path: "/embeddings", parameters: parameters) end
def files
def files @files ||= OpenAI::Files.new(client: self) end
def finetunes
def finetunes @finetunes ||= OpenAI::Finetunes.new(client: self) end
def images
def images @images ||= OpenAI::Images.new(client: self) end
def initialize(config = {}, &faraday_middleware)
def initialize(config = {}, &faraday_middleware) CONFIG_KEYS.each do |key| # Set instance variables like api_type & access_token. Fall back to global config # if not present. instance_variable_set( "@#{key}", config[key].nil? ? OpenAI.configuration.send(key) : config[key] ) end @faraday_middleware = faraday_middleware end
def inspect
def inspect vars = instance_variables.map do |var| value = instance_variable_get(var) SENSITIVE_ATTRIBUTES.include?(var) ? "#{var}=[REDACTED]" : "#{var}=#{value.inspect}" end "#<#{self.class}:#{object_id} #{vars.join(', ')}>" end
def messages
def messages @messages ||= OpenAI::Messages.new(client: self) end
def models
def models @models ||= OpenAI::Models.new(client: self) end
def moderations(parameters: {})
def moderations(parameters: {}) json_post(path: "/moderations", parameters: parameters) end
def run_steps
def run_steps @run_steps ||= OpenAI::RunSteps.new(client: self) end
def runs
def runs @runs ||= OpenAI::Runs.new(client: self) end
def threads
def threads @threads ||= OpenAI::Threads.new(client: self) end
def vector_store_file_batches
def vector_store_file_batches @vector_store_file_batches ||= OpenAI::VectorStoreFileBatches.new(client: self) end
def vector_store_files
def vector_store_files @vector_store_files ||= OpenAI::VectorStoreFiles.new(client: self) end
def vector_stores
def vector_stores @vector_stores ||= OpenAI::VectorStores.new(client: self) end