Class: Llmemory::NoiseFilter

Inherits:
Object
  • Object
show all
Defined in:
lib/llmemory/noise_filter.rb

Constant Summary collapse

NO_REPLY_MARKER =
"NO_REPLY"
DEFAULT_MIN_CHARS =
10

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(min_chars: nil, enabled: true) ⇒ NoiseFilter

Returns a new instance of NoiseFilter.



8
9
10
11
# File 'lib/llmemory/noise_filter.rb', line 8

def initialize(min_chars: nil, enabled: true)
  @min_chars = min_chars || Llmemory.configuration.noise_filter_min_chars
  @enabled = enabled
end

Class Method Details

.filter?(conversation_text) ⇒ Boolean

Returns:

  • (Boolean)


30
31
32
33
34
# File 'lib/llmemory/noise_filter.rb', line 30

def self.filter?(conversation_text)
  return conversation_text.to_s unless Llmemory.configuration.noise_filter_enabled

  new.filter(conversation_text)
end

Instance Method Details

#filter(conversation_text) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/llmemory/noise_filter.rb', line 13

def filter(conversation_text)
  return conversation_text.to_s unless @enabled

  lines = conversation_text.to_s.split("\n")
  seen = {}
  filtered = lines.select do |line|
    next false if line.strip.length < @min_chars
    next false if line.include?(NO_REPLY_MARKER)
    next false if seen[line.strip]

    seen[line.strip] = true
    true
  end

  filtered.join("\n").strip
end