Class: Paid::Tracing::Wrappers::PaidOpenAI

Inherits:
Object
  • Object
show all
Defined in:
lib/paid_ruby/tracing/wrappers/open_ai_wrapper.rb

Overview

A wrapper around the OpenAI::Client that provides automatic tracing for API calls.

Defined Under Namespace

Classes: ImagesWrapper

Instance Method Summary collapse

Constructor Details

#initialize(openai_client:) ⇒ PaidOpenAI

Returns a new instance of PaidOpenAI.



11
12
13
14
# File 'lib/paid_ruby/tracing/wrappers/open_ai_wrapper.rb', line 11

def initialize(openai_client:)
  @openai_client = openai_client
  @tracer = OpenTelemetry.tracer_provider.tracer("paid.ruby")
end

Instance Method Details

#chat(parameters:) ⇒ Object

Wraps the OpenAI#chat method to create a child span.



17
18
19
20
21
# File 'lib/paid_ruby/tracing/wrappers/open_ai_wrapper.rb', line 17

def chat(parameters:)
  wrap_call(operation: "chat", model: parameters[:model]) do
    @openai_client.chat(parameters: parameters)
  end
end

#embeddings(parameters:) ⇒ Object

Wraps the OpenAI#embeddings method to create a child span.



24
25
26
27
28
# File 'lib/paid_ruby/tracing/wrappers/open_ai_wrapper.rb', line 24

def embeddings(parameters:)
  wrap_call(operation: "embeddings", model: parameters[:model]) do
    @openai_client.embeddings(parameters: parameters)
  end
end

#imagesObject

Returns a wrapper for the images API.



31
32
33
# File 'lib/paid_ruby/tracing/wrappers/open_ai_wrapper.rb', line 31

def images
  ImagesWrapper.new(openai_client: @openai_client, tracer: @tracer)
end