Class: EvaluationMetric

Inherits:
ApplicationRecord
  • Object
show all
Defined in:
lib/generators/decision_agent/install/templates/evaluation_metric.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.average_score_by_evaluator(time_range: 3600) ⇒ Object

Aggregation helpers



15
16
17
18
19
20
# File 'lib/generators/decision_agent/install/templates/evaluation_metric.rb', line 15

def self.average_score_by_evaluator(time_range: 3600)
  recent(time_range)
    .where.not(score: nil)
    .group(:evaluator_name)
    .average(:score)
end

.count_by_evaluator(time_range: 3600) ⇒ Object



29
30
31
32
33
# File 'lib/generators/decision_agent/install/templates/evaluation_metric.rb', line 29

def self.count_by_evaluator(time_range: 3600)
  recent(time_range)
    .group(:evaluator_name)
    .count
end

.success_rate_by_evaluator(time_range: 3600) ⇒ Object



22
23
24
25
26
27
# File 'lib/generators/decision_agent/install/templates/evaluation_metric.rb', line 22

def self.success_rate_by_evaluator(time_range: 3600)
  recent(time_range)
    .where.not(success: nil)
    .group(:evaluator_name)
    .select("evaluator_name, AVG(CASE WHEN success THEN 1.0 ELSE 0.0 END) as success_rate")
end

Instance Method Details

#parsed_detailsObject

Parse JSON details field



36
37
38
39
40
41
42
# File 'lib/generators/decision_agent/install/templates/evaluation_metric.rb', line 36

def parsed_details
  return {} if details.nil?

  JSON.parse(details, symbolize_names: true)
rescue JSON::ParserError
  {}
end