Class: SmartCsvImport::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/smart_csv_import/configuration.rb

Constant Summary collapse

REVIEW_MODES =
%i[auto always skip].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/smart_csv_import/configuration.rb', line 20

def initialize
  @confidence_threshold = 0.80
  @batch_size = 500
  @storage_path = "tmp/smart_csv_import"
  @default_strategy = :vector
  @llm_model = "gpt-4o-mini"
  @embedding_model = "text-embedding-3-small"
  @async = false
  @value_hint_rows = 5
  @field_size_limit = 1_048_576
  @bad_row_limit = 0.10
  @chunk_size = 1000
  @review_mode = :skip
  @nil_values_matching = %w[#N/A #VALUE! #REF! #DIV/0! #NUM! #NAME? #NULL! NULL null N/A n/a nil Nil].freeze
  @logger = Logger.new($stdout)
end

Instance Attribute Details

#asyncObject

Returns the value of attribute async.



7
8
9
# File 'lib/smart_csv_import/configuration.rb', line 7

def async
  @async
end

#bad_row_limitObject

Returns the value of attribute bad_row_limit.



7
8
9
# File 'lib/smart_csv_import/configuration.rb', line 7

def bad_row_limit
  @bad_row_limit
end

#batch_sizeObject

Returns the value of attribute batch_size.



7
8
9
# File 'lib/smart_csv_import/configuration.rb', line 7

def batch_size
  @batch_size
end

#chunk_sizeObject

Returns the value of attribute chunk_size.



18
19
20
# File 'lib/smart_csv_import/configuration.rb', line 18

def chunk_size
  @chunk_size
end

#confidence_thresholdObject

Returns the value of attribute confidence_threshold.



7
8
9
# File 'lib/smart_csv_import/configuration.rb', line 7

def confidence_threshold
  @confidence_threshold
end

#default_strategyObject

Returns the value of attribute default_strategy.



7
8
9
# File 'lib/smart_csv_import/configuration.rb', line 7

def default_strategy
  @default_strategy
end

#embedding_modelObject

Returns the value of attribute embedding_model.



7
8
9
# File 'lib/smart_csv_import/configuration.rb', line 7

def embedding_model
  @embedding_model
end

#field_size_limitObject

Returns the value of attribute field_size_limit.



7
8
9
# File 'lib/smart_csv_import/configuration.rb', line 7

def field_size_limit
  @field_size_limit
end

#llm_modelObject

Returns the value of attribute llm_model.



7
8
9
# File 'lib/smart_csv_import/configuration.rb', line 7

def llm_model
  @llm_model
end

#loggerObject

Returns the value of attribute logger.



18
19
20
# File 'lib/smart_csv_import/configuration.rb', line 18

def logger
  @logger
end

#nil_values_matchingObject

Returns the value of attribute nil_values_matching.



18
19
20
# File 'lib/smart_csv_import/configuration.rb', line 18

def nil_values_matching
  @nil_values_matching
end

#review_modeObject

Returns the value of attribute review_mode.



18
19
20
# File 'lib/smart_csv_import/configuration.rb', line 18

def review_mode
  @review_mode
end

#storage_pathObject

Returns the value of attribute storage_path.



7
8
9
# File 'lib/smart_csv_import/configuration.rb', line 7

def storage_path
  @storage_path
end

#value_hint_rowsObject

Returns the value of attribute value_hint_rows.



7
8
9
# File 'lib/smart_csv_import/configuration.rb', line 7

def value_hint_rows
  @value_hint_rows
end

Instance Method Details

#nil_values_regexpObject



47
48
49
50
51
# File 'lib/smart_csv_import/configuration.rb', line 47

def nil_values_regexp
  return nil if nil_values_matching.nil? || nil_values_matching.empty?

  Regexp.union(nil_values_matching.map { |v| /\A#{Regexp.escape(v)}\z/ })
end