Class: Braintrust::Eval::Evaluator
- Inherits:
-
Object
- Object
- Braintrust::Eval::Evaluator
- Defined in:
- lib/braintrust/eval/evaluator.rb
Overview
Base class for evaluators. Subclass and override #task and #scorers, or instantiate directly with keyword arguments.
Evaluators are used with the dev server, which reports scorer names to the Braintrust UI. Always use named scorers (via Scorer.new or subclass) so they display meaningfully.
Instance Attribute Summary collapse
-
#parameters ⇒ Object
Returns the value of attribute parameters.
-
#scorers ⇒ Object
Returns the value of attribute scorers.
-
#task ⇒ Object
Returns the value of attribute task.
Instance Method Summary collapse
-
#initialize(task: nil, scorers: [], parameters: {}) ⇒ Evaluator
constructor
A new instance of Evaluator.
-
#run(cases, on_progress: nil, quiet: false, project: nil, experiment: nil, project_id: nil, dataset: nil, scorers: nil, parent: nil, state: nil, update: false, tracer_provider: nil, parameters: nil) ⇒ Result
Run this evaluator against the given cases.
-
#validate! ⇒ Object
Validate that the evaluator has required fields set.
Constructor Details
#initialize(task: nil, scorers: [], parameters: {}) ⇒ Evaluator
Returns a new instance of Evaluator.
45 46 47 48 49 |
# File 'lib/braintrust/eval/evaluator.rb', line 45 def initialize(task: nil, scorers: [], parameters: {}) @task = task @scorers = scorers @parameters = parameters end |
Instance Attribute Details
#parameters ⇒ Object
Returns the value of attribute parameters.
43 44 45 |
# File 'lib/braintrust/eval/evaluator.rb', line 43 def parameters @parameters end |
#scorers ⇒ Object
Returns the value of attribute scorers.
43 44 45 |
# File 'lib/braintrust/eval/evaluator.rb', line 43 def scorers @scorers end |
#task ⇒ Object
Returns the value of attribute task.
43 44 45 |
# File 'lib/braintrust/eval/evaluator.rb', line 43 def task @task end |
Instance Method Details
#run(cases, on_progress: nil, quiet: false, project: nil, experiment: nil, project_id: nil, dataset: nil, scorers: nil, parent: nil, state: nil, update: false, tracer_provider: nil, parameters: nil) ⇒ Result
Run this evaluator against the given cases. Delegates to Braintrust::Eval.run with the evaluator’s task and scorers.
76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/braintrust/eval/evaluator.rb', line 76 def run(cases, on_progress: nil, quiet: false, project: nil, experiment: nil, project_id: nil, dataset: nil, scorers: nil, parent: nil, state: nil, update: false, tracer_provider: nil, parameters: nil) all_scorers = scorers ? self.scorers + scorers : self.scorers Braintrust::Eval.run( task: task, scorers: all_scorers, cases: cases, dataset: dataset, project: project, experiment: experiment, project_id: project_id, parent: parent, on_progress: on_progress, quiet: quiet, state: state, update: update, tracer_provider: tracer_provider, parameters: parameters ) end |
#validate! ⇒ Object
Validate that the evaluator has required fields set.
53 54 55 56 57 58 |
# File 'lib/braintrust/eval/evaluator.rb', line 53 def validate! raise ArgumentError, "task is required" unless task unless task.respond_to?(:call) raise ArgumentError, "task must be callable (respond to :call)" end end |