mongodb-rag-core
Version:
Common elements used by MongoDB Chatbot Framework components.
43 lines • 1.76 kB
JavaScript
;
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