Class: SkillBench::Services::TrendRecorderService
- Inherits:
-
Object
- Object
- SkillBench::Services::TrendRecorderService
- Defined in:
- lib/skill_bench/services/trend_recorder_service.rb
Overview
Records evaluation results and computes trends.
Class Method Summary collapse
-
.call(result, eval_name, skill_names) ⇒ Hash
Records evaluation results and computes trends.
Instance Method Summary collapse
-
#call ⇒ Hash
Records evaluation results and computes trends.
-
#initialize(result, eval_name, skill_names) ⇒ TrendRecorderService
constructor
A new instance of TrendRecorderService.
Constructor Details
#initialize(result, eval_name, skill_names) ⇒ TrendRecorderService
Returns a new instance of TrendRecorderService.
22 23 24 25 26 |
# File 'lib/skill_bench/services/trend_recorder_service.rb', line 22 def initialize(result, eval_name, skill_names) @result = result @eval_name = eval_name @skill_names = skill_names end |
Class Method Details
.call(result, eval_name, skill_names) ⇒ Hash
Records evaluation results and computes trends.
15 16 17 |
# File 'lib/skill_bench/services/trend_recorder_service.rb', line 15 def self.call(result, eval_name, skill_names) new(result, eval_name, skill_names).call end |
Instance Method Details
#call ⇒ Hash
Records evaluation results and computes trends.
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/skill_bench/services/trend_recorder_service.rb', line 31 def call tracker = TrendTracker.new enriched = @result.merge(eval_name: @eval_name, skill_names: @skill_names) trend = tracker.trend_for(enriched) record_result = tracker.record(enriched) record_success = record_result.is_a?(Hash) && record_result[:success] unless record_success = if record_result.is_a?(Hash) record_result.dig(:response, :error, :message) || record_result.dig(:error, :message) || 'Unknown error' else 'Unexpected record response' end SkillBench::ErrorLogger.log_error( StandardError.new(), "Trend tracking record failed for eval #{@eval_name}" ) return { success: false, response: { error: { message: "Trend tracking record failed: #{}", record_result: record_result } } } end { success: true, trend: trend } rescue StandardError => e SkillBench::ErrorLogger.log_error(e, 'Trend tracking failed') { success: false, response: { error: { message: e. } } } end |