UNPKG

mongodb-rag-core

Version:

Common elements used by MongoDB Chatbot Framework components.

43 lines 1.76 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getConversationEvalCasesFromCSV = void 0; const csv_1 = require("csv"); const fs_1 = __importDefault(require("fs")); const getConversationEvalCasesFromCSV = async (csvFilePath, transform) => { const records = []; const parser = fs_1.default.createReadStream(csvFilePath).pipe((0, csv_1.parse)({ columns: true, // Treat first line as header row skip_empty_lines: true, // Skip empty lines trim: true, // Trim whitespace from fields })); for await (const record of parser) { const { Question: question, "Ideal Answer": idealAnswer, "Expected sources (comma separated URLs)": expectedSources, } = record; const formattedRecord = { name: question, messages: [ { role: "user", content: question, }, ], reference: idealAnswer, expectedLinks: expectedSources ? expectedSources // Split by one or more whitespace characters or commas (some entries may have commas, some may not) .split(/[\s,]+/) .map((link) => link.trim()) .filter((link) => link.length > 0) : [], }; records.push(formattedRecord); } if (transform) { return transform(records); } return records; }; exports.getConversationEvalCasesFromCSV = getConversationEvalCasesFromCSV; //# sourceMappingURL=getConversationEvalCasesFromCSV.js.map