UNPKG

@langchain/community

Version:
61 lines (60 loc) 2.62 kB
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const require_runtime = require("../../_virtual/_rolldown/runtime.cjs"); let _langchain_classic_document_loaders_fs_text = require("@langchain/classic/document_loaders/fs/text"); //#region src/document_loaders/fs/csv.ts var csv_exports = /* @__PURE__ */ require_runtime.__exportAll({ CSVLoader: () => CSVLoader }); /** * A class that extends the TextLoader class. It represents a document * loader that loads documents from a CSV file. It has a constructor that * takes a `filePathOrBlob` parameter representing the path to the CSV * file or a Blob object, and an optional `options` parameter of type * `CSVLoaderOptions` or a string representing the column to use as the * document's pageContent. */ var CSVLoader = class extends _langchain_classic_document_loaders_fs_text.TextLoader { options = {}; constructor(filePathOrBlob, options) { super(filePathOrBlob); if (typeof options === "string") this.options = { column: options }; else this.options = options ?? this.options; } /** * A protected method that parses the raw CSV data and returns an array of * strings representing the pageContent of each document. It uses the * `dsvFormat` function from the `d3-dsv` module to parse the CSV data. If * the `column` option is specified, it checks if the column exists in the * CSV file and returns the values of that column as the pageContent. If * the `column` option is not specified, it converts each row of the CSV * data into key/value pairs and joins them with newline characters. * @param raw The raw CSV data to be parsed. * @returns An array of strings representing the pageContent of each document. */ async parse(raw) { const { column, separator = "," } = this.options; const { dsvFormat } = await CSVLoaderImports(); const parsed = dsvFormat(separator).parse(raw.trim()); if (column !== void 0) { if (!parsed.columns.includes(column)) throw new Error(`Column ${column} not found in CSV file.`); return parsed.map((row) => row[column]); } return parsed.map((row) => Object.keys(row).map((key) => `${key.trim()}: ${row[key]?.trim()}`).join("\n")); } }; async function CSVLoaderImports() { try { const { dsvFormat } = await import("d3-dsv"); return { dsvFormat }; } catch (e) { console.error(e); throw new Error("Please install d3-dsv as a dependency with, e.g. `pnpm install d3-dsv@2`"); } } //#endregion exports.CSVLoader = CSVLoader; Object.defineProperty(exports, "csv_exports", { enumerable: true, get: function() { return csv_exports; } }); //# sourceMappingURL=csv.cjs.map