Class: Payloop::Wrappers::OpenAI

Inherits:
Object
  • Object
show all
Defined in:
lib/payloop/wrappers/openai.rb

Overview

Wrapper for OpenAI Ruby client (ruby-openai gem)

Instance Method Summary collapse

Constructor Details

#initialize(config, collector, sentinel = nil) ⇒ OpenAI

Returns a new instance of OpenAI.



9
10
11
12
13
# File 'lib/payloop/wrappers/openai.rb', line 9

def initialize(config, collector, sentinel = nil)
  @config = config
  @collector = collector
  @sentinel = sentinel
end

Instance Method Details

#register(client) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/payloop/wrappers/openai.rb', line 15

def register(client)
  validate_client!(client)

  # Prevent double registration
  return client if client.instance_variable_defined?(:@payloop_registered)

  # Store references in client instance
  client.instance_variable_set(:@payloop_config, @config)
  client.instance_variable_set(:@payloop_collector, @collector)
  client.instance_variable_set(:@payloop_sentinel, @sentinel)
  client.instance_variable_set(:@payloop_registered, true)

  # Wrap the chat method
  wrap_chat_method(client)

  # Wrap responses.create if the client supports the Responses API (ruby-openai >= 8.0)
  wrap_responses_method(client) if client.respond_to?(:responses)

  client
end