Class: SkillBench::Services::JsonFormatter
- Inherits:
-
Object
- Object
- SkillBench::Services::JsonFormatter
- Defined in:
- lib/skill_bench/services/json_formatter.rb
Overview
Formats evaluation results as JSON.
Constant Summary collapse
- EMPTY_USAGE =
Zeroed token usage used when a result carries no usage data.
{ prompt_tokens: 0, completion_tokens: 0, total_tokens: 0 }.freeze
Class Method Summary collapse
-
.format(result) ⇒ String
Format result as JSON.
-
.with_usage_fields(result) ⇒ Hash
Returns the result augmented with token/cost fields when missing.
Class Method Details
.format(result) ⇒ String
Format result as JSON.
Ensures top-level :tokens and :cost fields are always present (additive; existing keys are preserved) so JSON consumers see a stable shape.
19 20 21 |
# File 'lib/skill_bench/services/json_formatter.rb', line 19 def self.format(result) JSON.pretty_generate(with_usage_fields(result)) end |
.with_usage_fields(result) ⇒ Hash
Returns the result augmented with token/cost fields when missing.
27 28 29 30 31 32 33 |
# File 'lib/skill_bench/services/json_formatter.rb', line 27 def self.with_usage_fields(result) return result unless result.is_a?(Hash) tokens = result[:tokens] || result.dig(:response, :tokens) || EMPTY_USAGE cost = result.key?(:cost) ? result[:cost] : result.dig(:response, :cost) result.merge(tokens: tokens, cost: cost) end |