Class: Phronomy::Testing::Eval::Metrics
- Inherits:
-
Object
- Object
- Phronomy::Testing::Eval::Metrics
- Defined in:
- lib/phronomy/testing/eval/metrics.rb
Instance Method Summary collapse
- #average_latency_ms ⇒ Object
- #average_score ⇒ Object
-
#initialize(results) ⇒ Metrics
constructor
A new instance of Metrics.
- #pass_rate ⇒ Object
- #to_h ⇒ Object
- #total_usage ⇒ Object
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_ms ⇒ Object
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_score ⇒ Object
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_rate ⇒ Object
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_h ⇒ Object
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_usage ⇒ Object
21 22 23 |
# File 'lib/phronomy/testing/eval/metrics.rb', line 21 def total_usage @results.map(&:usage).compact.reduce(Phronomy::TokenUsage.zero, :+) end |