Class: Braintrust::Contrib::OpenAI::Integration
- Inherits:
-
Object
- Object
- Braintrust::Contrib::OpenAI::Integration
- Includes:
- Integration
- Defined in:
- lib/braintrust/contrib/openai/integration.rb
Overview
OpenAI integration for automatic instrumentation. Instruments the official openai gem (not ruby-openai).
Constant Summary collapse
- MINIMUM_VERSION =
"0.1.0"- GEM_NAMES =
["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 official openai gem is available.
-
.minimum_version ⇒ String
Minimum compatible version.
-
.patchers ⇒ 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/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/openai/integration.rb', line 20 def self.integration_name :openai end |
.loaded? ⇒ Boolean
Returns true if official openai gem is available.
40 41 42 43 44 45 46 |
# File 'lib/braintrust/contrib/openai/integration.rb', line 40 def self.loaded? # Check if the official openai gem is loaded (not ruby-openai). # The ruby-openai gem also uses "require 'openai'", so we need to distinguish them. # This module is defined ONLY in the official OpenAI gem defined?(::OpenAI::Internal) ? true : false end |
.minimum_version ⇒ String
Returns Minimum compatible version.
35 36 37 |
# File 'lib/braintrust/contrib/openai/integration.rb', line 35 def self.minimum_version MINIMUM_VERSION end |
.patchers ⇒ Class
Lazy-load the patcher only when actually patching. This keeps the integration stub lightweight.
51 52 53 54 |
# File 'lib/braintrust/contrib/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/openai/integration.rb', line 30 def self.require_paths REQUIRE_PATHS end |