Class: Braintrust::Contrib::RubyLLM::Integration

Inherits:
Object
  • Object
show all
Includes:
Integration
Defined in:
lib/braintrust/contrib/ruby_llm/integration.rb

Overview

RubyLLM integration for automatic instrumentation. Instruments the crmne/ruby_llm gem.

Constant Summary collapse

MINIMUM_VERSION =
"1.8.0"
GEM_NAMES =
["ruby_llm"].freeze
REQUIRE_PATHS =
["ruby_llm"].freeze

Class Method Summary collapse

Methods included from Integration

included

Class Method Details

.gem_namesArray<String>

Returns Gem names this integration supports.

Returns:

  • (Array<String>)

    Gem names this integration supports



25
26
27
# File 'lib/braintrust/contrib/ruby_llm/integration.rb', line 25

def self.gem_names
  GEM_NAMES
end

.integration_nameSymbol

Returns Unique identifier for this integration.

Returns:

  • (Symbol)

    Unique identifier for this integration



20
21
22
# File 'lib/braintrust/contrib/ruby_llm/integration.rb', line 20

def self.integration_name
  :ruby_llm
end

.loaded?Boolean

Returns true if ruby_llm gem is available.

Returns:

  • (Boolean)

    true if ruby_llm gem is available



40
41
42
# File 'lib/braintrust/contrib/ruby_llm/integration.rb', line 40

def self.loaded?
  defined?(::RubyLLM::Chat) ? true : false
end

.minimum_versionString

Returns Minimum compatible version.

Returns:

  • (String)

    Minimum compatible version



35
36
37
# File 'lib/braintrust/contrib/ruby_llm/integration.rb', line 35

def self.minimum_version
  MINIMUM_VERSION
end

.patchersArray<Class>

Lazy-load the patcher only when actually patching. This keeps the integration stub lightweight.

Returns:

  • (Array<Class>)

    The patcher classes



47
48
49
50
# File 'lib/braintrust/contrib/ruby_llm/integration.rb', line 47

def self.patchers
  require_relative "patcher"
  [ChatPatcher]
end

.require_pathsArray<String>

Returns Require paths for auto-instrument detection.

Returns:

  • (Array<String>)

    Require paths for auto-instrument detection



30
31
32
# File 'lib/braintrust/contrib/ruby_llm/integration.rb', line 30

def self.require_paths
  REQUIRE_PATHS
end