Class: RubyLLM::Contract::Eval::CaseScorer
- Inherits:
-
Object
- Object
- RubyLLM::Contract::Eval::CaseScorer
- Includes:
- ContractDetailBuilder, TraitEvaluator
- Defined in:
- lib/ruby_llm/contract/eval/case_scorer.rb
Instance Method Summary collapse
- #call(test_case:, step_result:) ⇒ Object
-
#initialize(step:, expectation_evaluator: ExpectationEvaluator.new) ⇒ CaseScorer
constructor
A new instance of CaseScorer.
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 |