Class: Rach::Provider::OpenAI
Class Method Summary collapse
Instance Method Summary collapse
- #chat(**parameters) ⇒ Object
-
#initialize(access_token: nil, logger: nil, **kwargs) ⇒ OpenAI
constructor
A new instance of OpenAI.
Methods inherited from Base
Constructor Details
#initialize(access_token: nil, logger: nil, **kwargs) ⇒ OpenAI
Returns a new instance of OpenAI.
5 6 7 8 |
# File 'lib/rach/provider/openai.rb', line 5 def initialize(access_token: nil, logger: nil, **kwargs) @client = create_client(access_token, **kwargs) @logger = logger end |
Class Method Details
.supports?(model) ⇒ Boolean
31 32 33 |
# File 'lib/rach/provider/openai.rb', line 31 def self.supports?(model) model.start_with?("gpt", "o1") end |
Instance Method Details
#chat(**parameters) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/rach/provider/openai.rb', line 10 def chat(**parameters) parameters = convert_params(parameters) raw_response = @client.chat(**parameters) if @logger @logger.info("Request to OpenAI: #{JSON.pretty_generate(parameters)}") @logger.info("Response: #{JSON.pretty_generate(raw_response)}") end Response.new( id: raw_response["id"], model: raw_response["model"], created_at: Time.at(raw_response["created"]), content: raw_response.dig("choices", 0, "message", "content"), tool_calls: raw_response.dig("choices", 0, "message", "tool_calls"), usage: raw_response["usage"], system_fingerprint: raw_response["system_fingerprint"], raw_response: raw_response ) end |