Class: LangsmithrbRails::CustomRedactor

Inherits:
Object
  • Object
show all
Defined in:
lib/generators/langsmithrb_rails/privacy/templates/custom_redactor.rb

Overview

Custom redactor for PII in LangSmith traces

Instance Method Summary collapse

Constructor Details

#initialize(config = {}) ⇒ CustomRedactor

Initialize the redactor with configuration



8
9
10
11
# File 'lib/generators/langsmithrb_rails/privacy/templates/custom_redactor.rb', line 8

def initialize(config = {})
  @config = config || {}
  @base_redactor = LangsmithrbRails::Redactor.new(config)
end

Instance Method Details

#redact(text) ⇒ String

Redact PII from text



16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/generators/langsmithrb_rails/privacy/templates/custom_redactor.rb', line 16

def redact(text)
  return text unless text.is_a?(String)
  
  # First apply the base redactor
  result = @base_redactor.redact(text)
  
  # Then apply custom patterns
  custom_patterns.each do |pattern_name, pattern|
    result = apply_pattern(result, pattern_name, pattern)
  end
  
  result
end

#redact_data(data) ⇒ Hash, Array

Redact PII from a hash or array



33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/generators/langsmithrb_rails/privacy/templates/custom_redactor.rb', line 33

def redact_data(data)
  case data
  when String
    redact(data)
  when Hash
    redact_hash(data)
  when Array
    redact_array(data)
  else
    data
  end
end