Class: Langfuse::Evaluators::ContainsEvaluator

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

Instance Method Summary collapse

Constructor Details

#initialize(name: 'contains', description: 'Contains evaluator', case_sensitive: false) ⇒ ContainsEvaluator

Returns a new instance of ContainsEvaluator.



102
103
104
105
# File 'lib/langfuse/evaluation.rb', line 102

def initialize(name: 'contains', description: 'Contains evaluator', case_sensitive: false)
  super(name: name, description: description)
  @case_sensitive = case_sensitive
end

Instance Method Details

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



107
108
109
110
111
112
113
114
115
116
117
118
# File 'lib/langfuse/evaluation.rb', line 107

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

  output_str = @case_sensitive ? output.to_s : output.to_s.downcase
  expected_str = @case_sensitive ? expected.to_s : expected.to_s.downcase

  score = output_str.include?(expected_str) ? 1 : 0
  create_score(
    value: score,
    comment: score == 1 ? 'Contains expected text' : 'Does not contain expected text'
  )
end