Class: RubyLLM::Contract::Eval::CaseScorer

Inherits:
Object
  • Object
show all
Includes:
ContractDetailBuilder, TraitEvaluator
Defined in:
lib/ruby_llm/contract/eval/case_scorer.rb

Instance Method Summary collapse

Constructor Details

#initialize(step:, expectation_evaluator: ExpectationEvaluator.new) ⇒ CaseScorer

Returns a new instance of CaseScorer.



10
11
12
13
# File 'lib/ruby_llm/contract/eval/case_scorer.rb', line 10

def initialize(step:, expectation_evaluator: ExpectationEvaluator.new)
  @step = step
  @expectation_evaluator = expectation_evaluator
end

Instance Method Details

#call(test_case:, step_result:) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/ruby_llm/contract/eval/case_scorer.rb', line 15

def call(test_case:, step_result:)
  return contract_failure(step_result) unless step_result.ok?

  if test_case.evaluator
    evaluate_with_custom(test_case, step_result)
  elsif test_case.expected_traits
    evaluate_traits(step_result, test_case)
  elsif !test_case.expected.nil?
    evaluate_expected(test_case, step_result)
  else
    evaluate_contract_only
  end
end