Class: Ask::RAG::Loader::CSV
Overview
Loads a CSV file, producing one document per row.
Each document's content is the row's cell values joined by newlines. Metadata includes the source path and any identifying columns.
Instance Method Summary collapse
-
#initialize(content_columns: nil, metadata_columns: nil, separator: ",") ⇒ CSV
constructor
A new instance of CSV.
- #load(path) ⇒ Object
Methods inherited from Base
Constructor Details
#initialize(content_columns: nil, metadata_columns: nil, separator: ",") ⇒ CSV
Returns a new instance of CSV.
19 20 21 22 23 |
# File 'lib/ask/rag/loader/csv.rb', line 19 def initialize(content_columns: nil, metadata_columns: nil, separator: ",") @content_columns = content_columns @metadata_columns = @separator = separator end |
Instance Method Details
#load(path) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/ask/rag/loader/csv.rb', line 25 def load(path) docs = [] = { headers: true, col_sep: @separator } ::CSV.foreach(path, **) do |row| content = build_content(row) = (row, path) docs << Ask::Document.new(content: content, metadata: ) end docs end |