Class: Braintrust::Contrib::RubyOpenAI::Integration
- Inherits:
-
Object
- Object
- Braintrust::Contrib::RubyOpenAI::Integration
- Includes:
- Integration
- Defined in:
- lib/braintrust/contrib/ruby_openai/integration.rb
Overview
RubyOpenAI integration for automatic instrumentation. Instruments the alexrudall ruby-openai gem (not the official openai gem).
Constant Summary collapse
- MINIMUM_VERSION =
"7.0.0"- GEM_NAMES =
["ruby-openai"].freeze
- REQUIRE_PATHS =
["openai"].freeze
Class Method Summary collapse
-
.gem_names ⇒ Array<String>
Gem names this integration supports.
-
.integration_name ⇒ Symbol
Unique identifier for this integration.
-
.loaded? ⇒ Boolean
True if ruby-openai gem is available (not official openai gem).
-
.minimum_version ⇒ String
Minimum compatible version.
-
.patchers ⇒ Array<Class>
Lazy-load the patcher only when actually patching.
-
.require_paths ⇒ Array<String>
Require paths for auto-instrument detection.
Methods included from Integration
Class Method Details
.gem_names ⇒ Array<String>
Returns Gem names this integration supports.
25 26 27 |
# File 'lib/braintrust/contrib/ruby_openai/integration.rb', line 25 def self.gem_names GEM_NAMES end |
.integration_name ⇒ Symbol
Returns Unique identifier for this integration.
20 21 22 |
# File 'lib/braintrust/contrib/ruby_openai/integration.rb', line 20 def self.integration_name :ruby_openai end |
.loaded? ⇒ Boolean
Returns true if ruby-openai gem is available (not official openai gem).
40 41 42 43 44 45 46 |
# File 'lib/braintrust/contrib/ruby_openai/integration.rb', line 40 def self.loaded? # Check if ruby-openai gem is loaded (not the official openai gem). # Both gems use "require 'openai'", so we need to distinguish them. # # OpenAI::Internal is defined ONLY in the official OpenAI gem (defined?(::OpenAI::Client) && !defined?(::OpenAI::Internal)) ? true : false end |
.minimum_version ⇒ String
Returns Minimum compatible version.
35 36 37 |
# File 'lib/braintrust/contrib/ruby_openai/integration.rb', line 35 def self.minimum_version MINIMUM_VERSION end |
.patchers ⇒ Array<Class>
Lazy-load the patcher only when actually patching. This keeps the integration stub lightweight.
51 52 53 54 |
# File 'lib/braintrust/contrib/ruby_openai/integration.rb', line 51 def self.patchers require_relative "patcher" [ChatPatcher, ResponsesPatcher, ModerationsPatcher] end |
.require_paths ⇒ Array<String>
Returns Require paths for auto-instrument detection.
30 31 32 |
# File 'lib/braintrust/contrib/ruby_openai/integration.rb', line 30 def self.require_paths REQUIRE_PATHS end |