Sha256: 0a41d42129f88a6a136bb20cdc058d1b4b8560d9a0d2fefbe04e6e5ee63f547c
Contents?: true
Size: 1.99 KB
Versions: 3
Compression:
Stored size: 1.99 KB
Contents
module OpenAI class Client URI_BASE = "https://api.openai.com/".freeze def initialize(access_token: nil, organization_id: nil) Ruby::OpenAI.configuration.access_token = access_token if access_token Ruby::OpenAI.configuration.organization_id = organization_id if organization_id end def completions(parameters: {}) OpenAI::Client.json_post(path: "/completions", parameters: parameters) end def edits(parameters: {}) OpenAI::Client.json_post(path: "/edits", parameters: parameters) end def embeddings(parameters: {}) OpenAI::Client.json_post(path: "/embeddings", parameters: parameters) end def files @files ||= OpenAI::Files.new end def finetunes @finetunes ||= OpenAI::Finetunes.new end def images @images ||= OpenAI::Images.new end def models @models ||= OpenAI::Models.new end def moderations(parameters: {}) OpenAI::Client.json_post(path: "/moderations", parameters: parameters) end def self.get(path:) HTTParty.get( uri(path: path), headers: headers ) end def self.json_post(path:, parameters:) HTTParty.post( uri(path: path), headers: headers, body: parameters&.to_json ) end def self.multipart_post(path:, parameters: nil) HTTParty.post( uri(path: path), headers: headers.merge({ "Content-Type" => "multipart/form-data" }), body: parameters ) end def self.delete(path:) HTTParty.delete( uri(path: path), headers: headers ) end private_class_method def self.uri(path:) URI_BASE + Ruby::OpenAI.configuration.api_version + path end private_class_method def self.headers { "Content-Type" => "application/json", "Authorization" => "Bearer #{Ruby::OpenAI.configuration.access_token}", "OpenAI-Organization" => Ruby::OpenAI.configuration.organization_id } end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
ruby-openai-3.2.0 | lib/ruby/openai/client.rb |
ruby-openai-3.1.0 | lib/ruby/openai/client.rb |
ruby-openai-3.0.3 | lib/ruby/openai/client.rb |