Class: Phronomy::Testing::Eval::Metrics

Inherits:
Object
  • Object
show all
Defined in:
lib/phronomy/testing/eval/metrics.rb

Instance Method Summary collapse

Constructor Details

#initialize(results) ⇒ Metrics

Returns a new instance of Metrics.



7
8
9
# File 'lib/phronomy/testing/eval/metrics.rb', line 7

def initialize(results)
  @results = results
end

Instance Method Details

#average_latency_msObject



25
26
27
28
# File 'lib/phronomy/testing/eval/metrics.rb', line 25

def average_latency_ms
  return 0.0 if @results.empty?
  @results.sum(&:latency_ms).to_f / @results.size
end

#average_scoreObject



16
17
18
19
# File 'lib/phronomy/testing/eval/metrics.rb', line 16

def average_score
  return 0.0 if @results.empty?
  @results.sum(&:score) / @results.size
end

#pass_rateObject



11
12
13
14
# File 'lib/phronomy/testing/eval/metrics.rb', line 11

def pass_rate
  return 0.0 if @results.empty?
  @results.count(&:pass?).to_f / @results.size
end

#to_hObject



30
31
32
33
34
35
36
37
38
39
# File 'lib/phronomy/testing/eval/metrics.rb', line 30

def to_h
  {
    total: @results.size,
    pass_count: @results.count(&:pass?),
    pass_rate: pass_rate,
    average_score: average_score,
    total_usage: total_usage.to_h,
    average_latency_ms: average_latency_ms
  }
end

#total_usageObject



21
22
23
# File 'lib/phronomy/testing/eval/metrics.rb', line 21

def total_usage
  @results.map(&:usage).compact.reduce(Phronomy::TokenUsage.zero, :+)
end