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.



173
174
175
# File 'lib/langfuse/evaluation.rb', line 173

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

Instance Method Details

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



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

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