UNPKG

ai-knowledge

Version:

ai-knowledge

45 lines (43 loc) 1.5 kB
const path = require('path'); const { getAllFiles, isSupportedFile } = require('../utils/fileUtils'); const { loadFile } = require('./fileLoader'); const { v4: uuidv4 } = require('uuid'); /** * 加载目录中的所有文件到知识库 */ async function loadDirectory(ragApplication, directoryPath, options = {}) { try { console.log(`Processing directory: ${directoryPath}`); const { forceReload = false, filter = isSupportedFile } = options; // 获取所有文件 const allFiles = getAllFiles(directoryPath); // 过滤支持的文件 const filesToProcess = allFiles.filter(filter); const taskIds = []; // 将每个文件添加到队列中 for (const file of filesToProcess) { // loadFile 函数内部会将任务添加到队列 const result = await loadFile(ragApplication, file, forceReload); taskIds.push(result.taskId); } return { success: true, source: directoryPath, type: 'directory', status: 'queued', taskIds: taskIds }; } catch (error) { console.error(`Error loading directory ${directoryPath}:`, error); return { success: false, source: directoryPath, type: 'directory', error: error.message }; } } module.exports = { loadDirectory };