Class: Langfuse::Evaluators::SimilarityEvaluator

Inherits:
BaseEvaluator show all
Defined in:
lib/langfuse/evaluation.rb

Instance Method Summary collapse

Constructor Details

#initialize(name: 'similarity', description: 'Similarity evaluator') ⇒ SimilarityEvaluator

Returns a new instance of SimilarityEvaluator.



171
172
173
# File 'lib/langfuse/evaluation.rb', line 171

def initialize(name: 'similarity', description: 'Similarity evaluator')
  super(name: name, description: description)
end

Instance Method Details

#evaluate(input, output, expected: nil, context: nil) ⇒ Object



175
176
177
178
179
180
181
182
183
184
185
186
# File 'lib/langfuse/evaluation.rb', line 175

def evaluate(input, output, expected: nil, context: nil)
  return create_score(value: 0, comment: 'No expected value provided') unless expected

  # Simple character-based similarity (Levenshtein distance)
  similarity = calculate_similarity(output.to_s, expected.to_s)

  create_score(
    value: similarity,
    data_type: 'NUMERIC',
    comment: "Similarity: #{(similarity * 100).round(2)}%"
  )
end