class Riffer::Evals::RunResult
rbs_inline: enabled
Attributes
Public Class Methods
Source
# File lib/riffer/evals/run_result.rb, line 9 def initialize(scenario_results:) @scenario_results = scenario_results end
Public Instance Methods
Source
# File lib/riffer/evals/run_result.rb, line 42 def evaluator_token_usage scenario_results.filter_map(&:evaluator_token_usage).reduce(:+) end
Source
# File lib/riffer/evals/run_result.rb, line 15 def scores return {} if scenario_results.empty? totals = Hash.new(0.0) counts = Hash.new(0) scenario_results.each do |scenario| scenario.scores.each do |evaluator, score| totals[evaluator] += score counts[evaluator] += 1 end end averages = {} #: Hash[singleton(Riffer::Evals::Evaluator), Float] totals.each_with_object(averages) do |(evaluator, total), hash| hash[evaluator] = total / counts[evaluator] end end
Source
# File lib/riffer/evals/run_result.rb, line 48 def to_h { scores: scores.transform_keys(&:name), scenario_results: scenario_results.map(&:to_h), token_usage: token_usage&.to_h, evaluator_token_usage: evaluator_token_usage&.to_h, } end
Source
# File lib/riffer/evals/run_result.rb, line 36 def token_usage scenario_results.filter_map(&:token_usage).reduce(:+) end