Module: RubyLLM::Tribunal::Reporter

Defined in:
lib/ruby_llm/tribunal/reporter.rb

Overview

Base module for eval result reporters.

Results structure:

{
summary: {
  total: Integer,
  passed: Integer,
  failed: Integer,
  pass_rate: Float,
  duration_ms: Integer
},
metrics: { Symbol => { passed: Integer, total: Integer } },
cases: [{ input:, status:, failures:, results:, duration_ms: }]
}

Class Method Summary collapse

Class Method Details

.available_formatsArray<Symbol>

Available reporter formats.

Returns:

  • (Array<Symbol>)


43
44
45
# File 'lib/ruby_llm/tribunal/reporter.rb', line 43

def self.available_formats
  i[console text json html github junit]
end

.format(results, format = :console) ⇒ String

Formats results using the specified reporter.

Parameters:

  • results (Hash)

    Evaluation results

  • format (String, Symbol) (defaults to: :console)

    Output format

Returns:

  • (String)

    Formatted output



25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/ruby_llm/tribunal/reporter.rb', line 25

def self.format(results, format = :console)
  reporter_class = case format.to_sym
                   when :console then Reporters::Console
                   when :text then Reporters::Text
                   when :json then Reporters::JSON
                   when :html then Reporters::HTML
                   when :github then Reporters::GitHub
                   when :junit then Reporters::JUnit
                   else
                     raise ArgumentError, "Unknown format: #{format}"
                   end

  reporter_class.format(results)
end