Class: Braintrust::Scorer::Block

Inherits:
Object
  • Object
show all
Includes:
Braintrust::Scorer
Defined in:
lib/braintrust/scorer.rb

Overview

Block-based scorer. Stores a Proc and delegates #call to it. Includes Scorer so it satisfies Scorer === checks (e.g. in Context::Factory). Exposes #call_parameters so KeywordFilter can introspect the block’s declared kwargs rather than Block#call’s **kwargs signature.

Constant Summary

Constants included from Braintrust::Scorer

DEFAULT_NAME

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Braintrust::Scorer

included, new

Constructor Details

#initialize(name: DEFAULT_NAME, &block) ⇒ Block

Returns a new instance of Block.

Parameters:

  • name (String) (defaults to: DEFAULT_NAME)

    scorer name

  • block (Proc)

    scoring implementation



123
124
125
126
# File 'lib/braintrust/scorer.rb', line 123

def initialize(name: DEFAULT_NAME, &block)
  @name = name
  @block = wrap_block(block)
end

Instance Attribute Details

#nameString (readonly)

Returns:

  • (String)


119
120
121
# File 'lib/braintrust/scorer.rb', line 119

def name
  @name
end

Instance Method Details

#call(**kwargs) ⇒ Array<Hash>

Returns normalized score results.

Parameters:

  • kwargs (Hash)

    keyword arguments (filtered by KeywordFilter)

Returns:

  • (Array<Hash>)

    normalized score results



130
131
132
# File 'lib/braintrust/scorer.rb', line 130

def call(**kwargs)
  @block.call(**kwargs)
end

#call_parametersArray<Array>

Exposes the block’s parameter list so KeywordFilter can filter kwargs to match the block’s declared keywords.

Returns:

  • (Array<Array>)

    parameter list from Proc#parameters



137
138
139
# File 'lib/braintrust/scorer.rb', line 137

def call_parameters
  @block.parameters
end