{"owner":"ConardLi","repo":"easy-dataset","hasSkills":true,"totalSkillsCount":3,"totalTokensCount":4342,"categories":["project-spec","windsurf-rule","root-instruction"],"hasMcp":false,"mcpConfig":null,"found":["ARCHITECTURE.md",".windsurfrules","AGENTS.md"],"skills":{"ARCHITECTURE.md":"# Easy DataSet 项目架构设计\n\n## 项目概述\n\nEasy DataSet 是一个用于创建大模型微调数据集的应用程序。用户可以上传文本文件，系统会自动分割文本并生成问题，最终生成用于微调的数据集。\n\n## 技术栈\n\n- **前端框架**: Next.js 14 (App Router)\n- **UI 框架**: Material-UI (MUI)\n- **数据存储**: fs 文件系统模拟数据库\n- **开发语言**: JavaScript\n\n## 目录结构\n\n```\neasy-dataset/\n├── app/                      # Next.js 应用目录\n│   ├── api/                 # API 路由\n│   │   └── projects/       # 项目相关 API\n│   ├── projects/           # 项目相关页面\n│   │   ├── [projectId]/    # 项目详情页面\n│   └── page.js            # 主页\n├── components/             # React 组件\n│   ├── home/              # 主页相关组件\n│   │   ├── HeroSection.js\n│   │   ├── ProjectList.js\n│   │   └── StatsCard.js\n│   ├── Navbar.js          # 导航栏组件\n│   └── CreateProjectDialog.js\n├── lib/                    # 工具库\n│   └── db/                # 数据库模块\n│       ├── base.js        # 基础工具函数\n│       ├── projects.js    # 项目管理\n│       ├── texts.js       # 文本处理\n│       ├── datasets.js    # 数据集管理\n│       └── index.js       # 模块导出\n├── styles/                # 样式文件\n│   └── home.js           # 主页样式\n└── local-db/             # 本地数据库目录\n```\n\n## 核心模块设计\n\n### 1. 数据库模块 (`lib/db/`)\n\n#### base.js\n\n- 提供基础的文件操作功能\n- 确保数据库目录存在\n- 读写 JSON 文件的工具函数\n\n#### projects.js\n\n- 项目的 CRUD 操作\n- 项目配置管理\n- 项目目录结构维护\n\n#### texts.js\n\n- 文献处理功能\n- 文本片段存储和检索\n- 文件上传处理\n\n#### datasets.js\n\n- 数据集生成和管理\n- 问题列表管理\n- 标签树管理\n\n### 2. 前端组件 (`components/`)\n\n#### Navbar.js\n\n- 顶部导航栏\n- 项目切换\n- 模型选择\n- 主题切换\n\n#### home/ 目录组件\n\n- HeroSection.js: 主页顶部展示区\n- ProjectList.js: 项目列表展示\n- StatsCard.js: 数据统计展示\n- CreateProjectDialog.js: 创建项目的对话框\n\n### 3. 页面路由 (`app/`)\n\n#### 主页 (`page.js`)\n\n- 项目列表展示\n- 创建项目入口\n- 数据统计展示\n\n#### 项目详情页 (`projects/[projectId]/`)\n\n- text-split/: 文献处理页面\n- questions/: 问题列表页面\n- datasets/: 数据集页面\n- settings/: 项目设置页面\n\n#### API 路由 (`api/`)\n\n- projects/: 项目管理 API\n- texts/: 文本处理 API\n- questions/: 问题生成 API\n- datasets/: 数据集管理 API\n\n## 数据流设计\n\n### 项目创建流程\n\n1. 用户通过主页或导航栏创建新项目\n2. 填写项目基本信息（名称、描述）\n3. 系统创建项目目录和初始配置文件\n4. 重定向到项目详情页\n\n### 文献处理流程\n\n1. 用户上传 Markdown 文件\n2. 系统保存原始文件到项目目录\n3. 调用文本分割服务，生成片段和目录结构\n4. 展示分割结果和提取的目录\n\n### 问题生成流程\n\n1. 用户选择需要生成问题的文本片段\n2. 系统调用大模型API生成问题\n3. 保存问题到问题列表和标签树\n\n### 数据集生成流程\n\n1. 用户选择需要生成答案的问题\n2. 系统调用大模型API生成答案\n3. 保存数据集结果\n4. 提供导出功能\n\n## 模型配置\n\n支持多种大模型提供商配置：\n\n- Ollama\n- OpenAI\n- 硅基流动\n- 深度求索\n- 智谱AI\n\n每个提供商支持配置：\n\n- API 地址\n- API 密钥\n- 模型名称\n\n## 未来扩展方向\n\n1. 支持更多文件格式（PDF、DOC等）\n2. 增加数据集质量评估功能\n3. 添加数据集版本管理\n4. 实现团队协作功能\n5. 增加更多数据集导出格式\n\n## 国际化处理\n\n### 技术选型\n\n- **国际化库**: i18next + react-i18next\n- **语言检测**: i18next-browser-languagedetector\n- **支持语言**: 英文(en)、简体中文(zh-CN)\n\n### 目录结构\n\n```\neasy-dataset/\n├── locales/              # 国际化资源目录\n│   ├── en/              # 英文翻译\n│   │   └── translation.json\n│   ├── zh-CN/           # 中文翻译\n│   │   └── translation.json\n│   └── pt-BR/           # 中文翻译\n│       └── translation.json\n├── lib/\n│   └── i18n.js          # i18next 配置\n```\n",".windsurfrules":"# Easy DataSet 项目架构设计\n\n## 项目概述\n\nEasy DataSet 是一个用于创建大模型微调数据集的应用程序。用户可以上传文本文件，系统会自动分割文本并生成问题，最终生成用于微调的数据集。\n\n## 技术栈\n\n- **前端框架**: Next.js 14 (App Router)\n- **UI 框架**: Material-UI (MUI)\n- **数据存储**: fs 文件系统模拟数据库\n- **开发语言**: JavaScript\n- **依赖管理**: pnpm\n\n## 目录结构\n\n```\neasy-dataset/\n├── app/                      # Next.js 应用目录\n│   ├── api/                 # API 路由\n│   │   └── projects/       # 项目相关 API\n│   ├── projects/           # 项目相关页面\n│   │   ├── [projectId]/    # 项目详情页面\n│   └── page.js            # 主页\n├── components/             # React 组件\n│   ├── home/              # 主页相关组件\n│   │   ├── HeroSection.js\n│   │   ├── ProjectList.js\n│   │   └── StatsCard.js\n│   ├── Navbar.js          # 导航栏组件\n│   └── CreateProjectDialog.js\n├── lib/                    # 工具库\n│   └── db/                # 数据库模块\n│       ├── base.js        # 基础工具函数\n│       ├── projects.js    # 项目管理\n│       ├── texts.js       # 文本处理\n│       ├── datasets.js    # 数据集管理\n│       └── index.js       # 模块导出\n├── styles/                # 样式文件\n│   └── home.js           # 主页样式\n└── local-db/             # 本地数据库目录\n```\n\n## 核心模块设计\n\n### 1. 数据库模块 (`lib/db/`)\n\n#### base.js\n- 提供基础的文件操作功能\n- 确保数据库目录存在\n- 读写 JSON 文件的工具函数\n\n#### projects.js\n- 项目的 CRUD 操作\n- 项目配置管理\n- 项目目录结构维护\n\n#### texts.js\n- 文献处理功能\n- 文本片段存储和检索\n- 文件上传处理\n\n#### datasets.js\n- 数据集生成和管理\n- 问题列表管理\n- 标签树管理\n\n### 2. 前端组件 (`components/`)\n\n#### Navbar.js\n- 顶部导航栏\n- 项目切换\n- 模型选择\n- 主题切换\n\n#### home/ 目录组件\n- HeroSection.js: 主页顶部展示区\n- ProjectList.js: 项目列表展示\n- StatsCard.js: 数据统计展示\n- CreateProjectDialog.js: 创建项目的对话框\n\n### 3. 页面路由 (`app/`)\n\n#### 主页 (`page.js`)\n- 项目列表展示\n- 创建项目入口\n- 数据统计展示\n\n#### 项目详情页 (`projects/[projectId]/`)\n- text-split/: 文献处理页面\n- questions/: 问题列表页面\n- datasets/: 数据集页面\n- settings/: 项目设置页面\n\n#### API 路由 (`api/`)\n- projects/: 项目管理 API\n- texts/: 文本处理 API\n- questions/: 问题生成 API\n- datasets/: 数据集管理 API\n\n## 数据流设计\n\n### 项目创建流程\n1. 用户通过主页或导航栏创建新项目\n2. 填写项目基本信息（名称、描述）\n3. 系统创建项目目录和初始配置文件\n4. 重定向到项目详情页\n\n### 文献处理流程\n1. 用户上传 Markdown 文件\n2. 系统保存原始文件到项目目录\n3. 调用文本分割服务，生成片段和目录结构\n4. 展示分割结果和提取的目录\n\n### 问题生成流程\n1. 用户选择需要生成问题的文本片段\n2. 系统调用大模型API生成问题\n3. 保存问题到问题列表和标签树\n\n### 数据集生成流程\n1. 用户选择需要生成答案的问题\n2. 系统调用大模型API生成答案\n3. 保存数据集结果\n4. 提供导出功能\n","AGENTS.md":"# Easy Dataset Agent 指南\n\n## 项目概述\n\nEasy Dataset 是一个专为大型语言模型（LLM）微调数据集创建而设计的应用程序。它提供完整的workflow，从文档处理到数据集导出，支持多种文件格式和AI模型。\n\n## 技术栈\n\n- **前端**: Next.js 14 (App Router), React 18, Material-UI v5\n- **后端**: Node.js, Prisma ORM, SQLite\n- **AI集成**: OpenAI API, Ollama, 智谱AI, OpenRouter\n- **桌面应用**: Electron\n- **国际化**: i18next\n- **构建工具**: npm/pnpm, Electron Builder\n\n## 核心架构\n\n### 1. 数据流架构\n\n```\n文档上传 → 文本分割 → 问题生成 → 答案生成 → 数据集导出\n    ↓           ↓          ↓          ↓          ↓\n文件处理    智能分块    LLM生成    LLM生成    格式转换\n```\n\n### 2. 模块结构\n\n```\nlib/\n├── api/          # API接口层\n├── db/           # 数据访问层\n├── file/         # 文件处理模块\n├── llm/          # AI模型集成\n├── services/     # 业务逻辑层\n└── util/         # 工具函数\n```\n\n## 开发指南\n\n### 环境设置\n\n```bash\n# 安装依赖\nnpm install\n\n# 数据库初始化\nnpm run db:push\n\n# 开发模式\nnpm run dev\n\n# 构建\nnpm run build\n```\n\n### 代码规范\n\n- 使用ES6+语法\n- 模块化开发\n- 异步操作使用async/await\n- 错误处理使用try/catch\n- 注释使用JSDoc格式\n\n### 重要文件路径\n\n- **主入口**: `app/page.js`\n- **项目路由**: `app/projects/[projectId]/`\n- **API路由**: `app/api/`\n- **LLM核心**: `lib/llm/core/index.js`\n- **任务处理**: `lib/services/tasks/`\n\n## 功能模块详解\n\n### 1. 文档处理模块 (`lib/file/`)\n\n- **支持的格式**: PDF, Markdown, DOCX, EPUB, TXT\n- **核心功能**:\n  - 智能文本分割\n  - 目录结构提取\n  - 自定义分隔符分块\n  - 多语言支持\n\n### 2. AI模型集成 (`lib/llm/`)\n\n- **支持的提供商**:\n  - OpenAI (GPT系列)\n  - Ollama (本地模型)\n  - 智谱AI (GLM系列)\n  - OpenRouter (多模型聚合)\n- **功能特性**:\n  - 统一API接口\n  - 流式输出支持\n  - 多语言提示词\n  - 错误重试机制\n\n### 3. 任务系统 (`lib/services/tasks/`)\n\n- **任务类型**:\n  - 文件处理任务\n  - 问题生成任务\n  - 答案生成任务\n  - 数据清洗任务\n- **状态管理**: 待处理、处理中、完成、失败\n\n### 4. 数据管理 (`lib/db/`)\n\n- **数据模型**:\n  - Project (项目)\n  - Text/Chunk (文本块)\n  - Question (问题)\n  - Dataset (数据集)\n  - Tag (标签)\n\n## 常用开发任务\n\n### 添加新的AI模型提供商\n\n1. 在 `lib/llm/core/providers/` 创建新的provider文件\n2. 实现基础接口 (generate, streamGenerate)\n3. 在 `lib/llm/core/index.js` 中注册provider\n4. 更新配置文件和UI界面\n\n### 添加新的文件格式支持\n\n1. 在 `lib/file/file-process/` 创建格式处理器\n2. 实现内容提取和文本转换逻辑\n3. 更新文件类型检测和验证\n4. 添加相应的UI组件\n\n### 自定义提示词模板\n\n1. 在 `lib/llm/prompts/` 创建新的提示词文件\n2. 使用i18n支持多语言\n3. 在设置界面添加配置选项\n4. 测试不同模型的效果\n\n### 添加新的导出格式\n\n1. 在 `components/export/` 创建新的导出组件\n2. 实现数据格式转换逻辑\n3. 更新导出对话框界面\n4. 添加格式验证和错误处理\n\n## 调试技巧\n\n### 1. 数据库调试\n\n```bash\n# 打开Prisma Studio\nnpm run db:studio\n\n# 查看数据库文件\nsqlite3 prisma/db.sqlite\n```\n\n### 2. LLM API调试\n\n```javascript\n// 在lib/llm/core/index.js中添加日志\nconsole.log('LLM Request:', { provider, model, prompt });\nconsole.log('LLM Response:', response);\n```\n\n### 3. 文件处理调试\n\n```javascript\n// 在lib/file/中添加调试信息\nconsole.log('File processing:', fileName, fileType);\nconsole.log('Text chunks:', chunks.length, chunks[0]);\n```\n\n## 性能优化建议\n\n### 1. 文件处理优化\n\n- 大文件分片处理\n- 异步并发处理\n- 内存使用监控\n- 进度条显示\n\n### 2. LLM调用优化\n\n- 请求缓存机制\n- 批量处理请求\n- 重试策略优化\n- 并发数控制\n\n### 3. 前端性能优化\n\n- 组件懒加载\n- 虚拟滚动列表\n- 图片懒加载\n- 代码分割\n\n## 常见问题解决\n\n### 1. 数据库相关问题\n\n- **问题**: 数据库连接失败\n- **解决**: 检查prisma配置，确保数据库文件存在\n\n### 2. LLM API相关问题\n\n- **问题**: API调用超时\n- **解决**: 调整超时时间，检查网络连接，增加重试机制\n\n### 3. 文件处理问题\n\n- **问题**: 大文件处理内存溢出\n- **解决**: 使用流式处理，分块读取，增加内存限制\n\n### 4. Electron打包问题\n\n- **问题**: 打包后应用无法启动\n- **解决**: 检查依赖项配置，确保native模块正确打包\n\n## 部署指南\n\n### Docker部署\n\n```bash\n# 构建镜像\ndocker build -t easy-dataset .\n\n# 运行容器\ndocker run -d -p 1717:1717 -v ./local-db:/app/local-db easy-dataset\n```\n\n### 桌面应用构建\n\n```bash\n# 构建各平台安装包\nnpm run electron-build-mac    # macOS\nnpm run electron-build-win    # Windows\nnpm run electron-build-linux  # Linux\n```\n\n## 贡献指南\n\n### 提交规范\n\n- 使用conventional commits格式\n- 提交前运行lint检查\n- 更新相关文档\n- 添加测试用例\n\n### 分支策略\n\n- `main`: 主分支，稳定版本\n- `dev`: 开发分支，集成新功能\n- `feature/*`: 功能分支\n- `fix/*`: 修复分支\n\n---\n"},"files":{"ARCHITECTURE.md":"# Easy DataSet 项目架构设计\n\n## 项目概述\n\nEasy DataSet 是一个用于创建大模型微调数据集的应用程序。用户可以上传文本文件，系统会自动分割文本并生成问题，最终生成用于微调的数据集。\n\n## 技术栈\n\n- **前端框架**: Next.js 14 (App Router)\n- **UI 框架**: Material-UI (MUI)\n- **数据存储**: fs 文件系统模拟数据库\n- **开发语言**: JavaScript\n\n## 目录结构\n\n```\neasy-dataset/\n├── app/                      # Next.js 应用目录\n│   ├── api/                 # API 路由\n│   │   └── projects/       # 项目相关 API\n│   ├── projects/           # 项目相关页面\n│   │   ├── [projectId]/    # 项目详情页面\n│   └── page.js            # 主页\n├── components/             # React 组件\n│   ├── home/              # 主页相关组件\n│   │   ├── HeroSection.js\n│   │   ├── ProjectList.js\n│   │   └── StatsCard.js\n│   ├── Navbar.js          # 导航栏组件\n│   └── CreateProjectDialog.js\n├── lib/                    # 工具库\n│   └── db/                # 数据库模块\n│       ├── base.js        # 基础工具函数\n│       ├── projects.js    # 项目管理\n│       ├── texts.js       # 文本处理\n│       ├── datasets.js    # 数据集管理\n│       └── index.js       # 模块导出\n├── styles/                # 样式文件\n│   └── home.js           # 主页样式\n└── local-db/             # 本地数据库目录\n```\n\n## 核心模块设计\n\n### 1. 数据库模块 (`lib/db/`)\n\n#### base.js\n\n- 提供基础的文件操作功能\n- 确保数据库目录存在\n- 读写 JSON 文件的工具函数\n\n#### projects.js\n\n- 项目的 CRUD 操作\n- 项目配置管理\n- 项目目录结构维护\n\n#### texts.js\n\n- 文献处理功能\n- 文本片段存储和检索\n- 文件上传处理\n\n#### datasets.js\n\n- 数据集生成和管理\n- 问题列表管理\n- 标签树管理\n\n### 2. 前端组件 (`components/`)\n\n#### Navbar.js\n\n- 顶部导航栏\n- 项目切换\n- 模型选择\n- 主题切换\n\n#### home/ 目录组件\n\n- HeroSection.js: 主页顶部展示区\n- ProjectList.js: 项目列表展示\n- StatsCard.js: 数据统计展示\n- CreateProjectDialog.js: 创建项目的对话框\n\n### 3. 页面路由 (`app/`)\n\n#### 主页 (`page.js`)\n\n- 项目列表展示\n- 创建项目入口\n- 数据统计展示\n\n#### 项目详情页 (`projects/[projectId]/`)\n\n- text-split/: 文献处理页面\n- questions/: 问题列表页面\n- datasets/: 数据集页面\n- settings/: 项目设置页面\n\n#### API 路由 (`api/`)\n\n- projects/: 项目管理 API\n- texts/: 文本处理 API\n- questions/: 问题生成 API\n- datasets/: 数据集管理 API\n\n## 数据流设计\n\n### 项目创建流程\n\n1. 用户通过主页或导航栏创建新项目\n2. 填写项目基本信息（名称、描述）\n3. 系统创建项目目录和初始配置文件\n4. 重定向到项目详情页\n\n### 文献处理流程\n\n1. 用户上传 Markdown 文件\n2. 系统保存原始文件到项目目录\n3. 调用文本分割服务，生成片段和目录结构\n4. 展示分割结果和提取的目录\n\n### 问题生成流程\n\n1. 用户选择需要生成问题的文本片段\n2. 系统调用大模型API生成问题\n3. 保存问题到问题列表和标签树\n\n### 数据集生成流程\n\n1. 用户选择需要生成答案的问题\n2. 系统调用大模型API生成答案\n3. 保存数据集结果\n4. 提供导出功能\n\n## 模型配置\n\n支持多种大模型提供商配置：\n\n- Ollama\n- OpenAI\n- 硅基流动\n- 深度求索\n- 智谱AI\n\n每个提供商支持配置：\n\n- API 地址\n- API 密钥\n- 模型名称\n\n## 未来扩展方向\n\n1. 支持更多文件格式（PDF、DOC等）\n2. 增加数据集质量评估功能\n3. 添加数据集版本管理\n4. 实现团队协作功能\n5. 增加更多数据集导出格式\n\n## 国际化处理\n\n### 技术选型\n\n- **国际化库**: i18next + react-i18next\n- **语言检测**: i18next-browser-languagedetector\n- **支持语言**: 英文(en)、简体中文(zh-CN)\n\n### 目录结构\n\n```\neasy-dataset/\n├── locales/              # 国际化资源目录\n│   ├── en/              # 英文翻译\n│   │   └── translation.json\n│   ├── zh-CN/           # 中文翻译\n│   │   └── translation.json\n│   └── pt-BR/           # 中文翻译\n│       └── translation.json\n├── lib/\n│   └── i18n.js          # i18next 配置\n```\n",".windsurfrules":"# Easy DataSet 项目架构设计\n\n## 项目概述\n\nEasy DataSet 是一个用于创建大模型微调数据集的应用程序。用户可以上传文本文件，系统会自动分割文本并生成问题，最终生成用于微调的数据集。\n\n## 技术栈\n\n- **前端框架**: Next.js 14 (App Router)\n- **UI 框架**: Material-UI (MUI)\n- **数据存储**: fs 文件系统模拟数据库\n- **开发语言**: JavaScript\n- **依赖管理**: pnpm\n\n## 目录结构\n\n```\neasy-dataset/\n├── app/                      # Next.js 应用目录\n│   ├── api/                 # API 路由\n│   │   └── projects/       # 项目相关 API\n│   ├── projects/           # 项目相关页面\n│   │   ├── [projectId]/    # 项目详情页面\n│   └── page.js            # 主页\n├── components/             # React 组件\n│   ├── home/              # 主页相关组件\n│   │   ├── HeroSection.js\n│   │   ├── ProjectList.js\n│   │   └── StatsCard.js\n│   ├── Navbar.js          # 导航栏组件\n│   └── CreateProjectDialog.js\n├── lib/                    # 工具库\n│   └── db/                # 数据库模块\n│       ├── base.js        # 基础工具函数\n│       ├── projects.js    # 项目管理\n│       ├── texts.js       # 文本处理\n│       ├── datasets.js    # 数据集管理\n│       └── index.js       # 模块导出\n├── styles/                # 样式文件\n│   └── home.js           # 主页样式\n└── local-db/             # 本地数据库目录\n```\n\n## 核心模块设计\n\n### 1. 数据库模块 (`lib/db/`)\n\n#### base.js\n- 提供基础的文件操作功能\n- 确保数据库目录存在\n- 读写 JSON 文件的工具函数\n\n#### projects.js\n- 项目的 CRUD 操作\n- 项目配置管理\n- 项目目录结构维护\n\n#### texts.js\n- 文献处理功能\n- 文本片段存储和检索\n- 文件上传处理\n\n#### datasets.js\n- 数据集生成和管理\n- 问题列表管理\n- 标签树管理\n\n### 2. 前端组件 (`components/`)\n\n#### Navbar.js\n- 顶部导航栏\n- 项目切换\n- 模型选择\n- 主题切换\n\n#### home/ 目录组件\n- HeroSection.js: 主页顶部展示区\n- ProjectList.js: 项目列表展示\n- StatsCard.js: 数据统计展示\n- CreateProjectDialog.js: 创建项目的对话框\n\n### 3. 页面路由 (`app/`)\n\n#### 主页 (`page.js`)\n- 项目列表展示\n- 创建项目入口\n- 数据统计展示\n\n#### 项目详情页 (`projects/[projectId]/`)\n- text-split/: 文献处理页面\n- questions/: 问题列表页面\n- datasets/: 数据集页面\n- settings/: 项目设置页面\n\n#### API 路由 (`api/`)\n- projects/: 项目管理 API\n- texts/: 文本处理 API\n- questions/: 问题生成 API\n- datasets/: 数据集管理 API\n\n## 数据流设计\n\n### 项目创建流程\n1. 用户通过主页或导航栏创建新项目\n2. 填写项目基本信息（名称、描述）\n3. 系统创建项目目录和初始配置文件\n4. 重定向到项目详情页\n\n### 文献处理流程\n1. 用户上传 Markdown 文件\n2. 系统保存原始文件到项目目录\n3. 调用文本分割服务，生成片段和目录结构\n4. 展示分割结果和提取的目录\n\n### 问题生成流程\n1. 用户选择需要生成问题的文本片段\n2. 系统调用大模型API生成问题\n3. 保存问题到问题列表和标签树\n\n### 数据集生成流程\n1. 用户选择需要生成答案的问题\n2. 系统调用大模型API生成答案\n3. 保存数据集结果\n4. 提供导出功能\n","AGENTS.md":"# Easy Dataset Agent 指南\n\n## 项目概述\n\nEasy Dataset 是一个专为大型语言模型（LLM）微调数据集创建而设计的应用程序。它提供完整的workflow，从文档处理到数据集导出，支持多种文件格式和AI模型。\n\n## 技术栈\n\n- **前端**: Next.js 14 (App Router), React 18, Material-UI v5\n- **后端**: Node.js, Prisma ORM, SQLite\n- **AI集成**: OpenAI API, Ollama, 智谱AI, OpenRouter\n- **桌面应用**: Electron\n- **国际化**: i18next\n- **构建工具**: npm/pnpm, Electron Builder\n\n## 核心架构\n\n### 1. 数据流架构\n\n```\n文档上传 → 文本分割 → 问题生成 → 答案生成 → 数据集导出\n    ↓           ↓          ↓          ↓          ↓\n文件处理    智能分块    LLM生成    LLM生成    格式转换\n```\n\n### 2. 模块结构\n\n```\nlib/\n├── api/          # API接口层\n├── db/           # 数据访问层\n├── file/         # 文件处理模块\n├── llm/          # AI模型集成\n├── services/     # 业务逻辑层\n└── util/         # 工具函数\n```\n\n## 开发指南\n\n### 环境设置\n\n```bash\n# 安装依赖\nnpm install\n\n# 数据库初始化\nnpm run db:push\n\n# 开发模式\nnpm run dev\n\n# 构建\nnpm run build\n```\n\n### 代码规范\n\n- 使用ES6+语法\n- 模块化开发\n- 异步操作使用async/await\n- 错误处理使用try/catch\n- 注释使用JSDoc格式\n\n### 重要文件路径\n\n- **主入口**: `app/page.js`\n- **项目路由**: `app/projects/[projectId]/`\n- **API路由**: `app/api/`\n- **LLM核心**: `lib/llm/core/index.js`\n- **任务处理**: `lib/services/tasks/`\n\n## 功能模块详解\n\n### 1. 文档处理模块 (`lib/file/`)\n\n- **支持的格式**: PDF, Markdown, DOCX, EPUB, TXT\n- **核心功能**:\n  - 智能文本分割\n  - 目录结构提取\n  - 自定义分隔符分块\n  - 多语言支持\n\n### 2. AI模型集成 (`lib/llm/`)\n\n- **支持的提供商**:\n  - OpenAI (GPT系列)\n  - Ollama (本地模型)\n  - 智谱AI (GLM系列)\n  - OpenRouter (多模型聚合)\n- **功能特性**:\n  - 统一API接口\n  - 流式输出支持\n  - 多语言提示词\n  - 错误重试机制\n\n### 3. 任务系统 (`lib/services/tasks/`)\n\n- **任务类型**:\n  - 文件处理任务\n  - 问题生成任务\n  - 答案生成任务\n  - 数据清洗任务\n- **状态管理**: 待处理、处理中、完成、失败\n\n### 4. 数据管理 (`lib/db/`)\n\n- **数据模型**:\n  - Project (项目)\n  - Text/Chunk (文本块)\n  - Question (问题)\n  - Dataset (数据集)\n  - Tag (标签)\n\n## 常用开发任务\n\n### 添加新的AI模型提供商\n\n1. 在 `lib/llm/core/providers/` 创建新的provider文件\n2. 实现基础接口 (generate, streamGenerate)\n3. 在 `lib/llm/core/index.js` 中注册provider\n4. 更新配置文件和UI界面\n\n### 添加新的文件格式支持\n\n1. 在 `lib/file/file-process/` 创建格式处理器\n2. 实现内容提取和文本转换逻辑\n3. 更新文件类型检测和验证\n4. 添加相应的UI组件\n\n### 自定义提示词模板\n\n1. 在 `lib/llm/prompts/` 创建新的提示词文件\n2. 使用i18n支持多语言\n3. 在设置界面添加配置选项\n4. 测试不同模型的效果\n\n### 添加新的导出格式\n\n1. 在 `components/export/` 创建新的导出组件\n2. 实现数据格式转换逻辑\n3. 更新导出对话框界面\n4. 添加格式验证和错误处理\n\n## 调试技巧\n\n### 1. 数据库调试\n\n```bash\n# 打开Prisma Studio\nnpm run db:studio\n\n# 查看数据库文件\nsqlite3 prisma/db.sqlite\n```\n\n### 2. LLM API调试\n\n```javascript\n// 在lib/llm/core/index.js中添加日志\nconsole.log('LLM Request:', { provider, model, prompt });\nconsole.log('LLM Response:', response);\n```\n\n### 3. 文件处理调试\n\n```javascript\n// 在lib/file/中添加调试信息\nconsole.log('File processing:', fileName, fileType);\nconsole.log('Text chunks:', chunks.length, chunks[0]);\n```\n\n## 性能优化建议\n\n### 1. 文件处理优化\n\n- 大文件分片处理\n- 异步并发处理\n- 内存使用监控\n- 进度条显示\n\n### 2. LLM调用优化\n\n- 请求缓存机制\n- 批量处理请求\n- 重试策略优化\n- 并发数控制\n\n### 3. 前端性能优化\n\n- 组件懒加载\n- 虚拟滚动列表\n- 图片懒加载\n- 代码分割\n\n## 常见问题解决\n\n### 1. 数据库相关问题\n\n- **问题**: 数据库连接失败\n- **解决**: 检查prisma配置，确保数据库文件存在\n\n### 2. LLM API相关问题\n\n- **问题**: API调用超时\n- **解决**: 调整超时时间，检查网络连接，增加重试机制\n\n### 3. 文件处理问题\n\n- **问题**: 大文件处理内存溢出\n- **解决**: 使用流式处理，分块读取，增加内存限制\n\n### 4. Electron打包问题\n\n- **问题**: 打包后应用无法启动\n- **解决**: 检查依赖项配置，确保native模块正确打包\n\n## 部署指南\n\n### Docker部署\n\n```bash\n# 构建镜像\ndocker build -t easy-dataset .\n\n# 运行容器\ndocker run -d -p 1717:1717 -v ./local-db:/app/local-db easy-dataset\n```\n\n### 桌面应用构建\n\n```bash\n# 构建各平台安装包\nnpm run electron-build-mac    # macOS\nnpm run electron-build-win    # Windows\nnpm run electron-build-linux  # Linux\n```\n\n## 贡献指南\n\n### 提交规范\n\n- 使用conventional commits格式\n- 提交前运行lint检查\n- 更新相关文档\n- 添加测试用例\n\n### 分支策略\n\n- `main`: 主分支，稳定版本\n- `dev`: 开发分支，集成新功能\n- `feature/*`: 功能分支\n- `fix/*`: 修复分支\n\n---\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","rawUrl":"https://raw.githubusercontent.com/ConardLi/easy-dataset/HEAD/AGENTS.md","title":"AI Agent Protocol & Instructions","category":"root-instruction","format":"markdown","content":"# Easy Dataset Agent 指南\n\n## 项目概述\n\nEasy Dataset 是一个专为大型语言模型（LLM）微调数据集创建而设计的应用程序。它提供完整的workflow，从文档处理到数据集导出，支持多种文件格式和AI模型。\n\n## 技术栈\n\n- **前端**: Next.js 14 (App Router), React 18, Material-UI v5\n- **后端**: Node.js, Prisma ORM, SQLite\n- **AI集成**: OpenAI API, Ollama, 智谱AI, OpenRouter\n- **桌面应用**: Electron\n- **国际化**: i18next\n- **构建工具**: npm/pnpm, Electron Builder\n\n## 核心架构\n\n### 1. 数据流架构\n\n```\n文档上传 → 文本分割 → 问题生成 → 答案生成 → 数据集导出\n    ↓           ↓          ↓          ↓          ↓\n文件处理    智能分块    LLM生成    LLM生成    格式转换\n```\n\n### 2. 模块结构\n\n```\nlib/\n├── api/          # API接口层\n├── db/           # 数据访问层\n├── file/         # 文件处理模块\n├── llm/          # AI模型集成\n├── services/     # 业务逻辑层\n└── util/         # 工具函数\n```\n\n## 开发指南\n\n### 环境设置\n\n```bash\n# 安装依赖\nnpm install\n\n# 数据库初始化\nnpm run db:push\n\n# 开发模式\nnpm run dev\n\n# 构建\nnpm run build\n```\n\n### 代码规范\n\n- 使用ES6+语法\n- 模块化开发\n- 异步操作使用async/await\n- 错误处理使用try/catch\n- 注释使用JSDoc格式\n\n### 重要文件路径\n\n- **主入口**: `app/page.js`\n- **项目路由**: `app/projects/[projectId]/`\n- **API路由**: `app/api/`\n- **LLM核心**: `lib/llm/core/index.js`\n- **任务处理**: `lib/services/tasks/`\n\n## 功能模块详解\n\n### 1. 文档处理模块 (`lib/file/`)\n\n- **支持的格式**: PDF, Markdown, DOCX, EPUB, TXT\n- **核心功能**:\n  - 智能文本分割\n  - 目录结构提取\n  - 自定义分隔符分块\n  - 多语言支持\n\n### 2. AI模型集成 (`lib/llm/`)\n\n- **支持的提供商**:\n  - OpenAI (GPT系列)\n  - Ollama (本地模型)\n  - 智谱AI (GLM系列)\n  - OpenRouter (多模型聚合)\n- **功能特性**:\n  - 统一API接口\n  - 流式输出支持\n  - 多语言提示词\n  - 错误重试机制\n\n### 3. 任务系统 (`lib/services/tasks/`)\n\n- **任务类型**:\n  - 文件处理任务\n  - 问题生成任务\n  - 答案生成任务\n  - 数据清洗任务\n- **状态管理**: 待处理、处理中、完成、失败\n\n### 4. 数据管理 (`lib/db/`)\n\n- **数据模型**:\n  - Project (项目)\n  - Text/Chunk (文本块)\n  - Question (问题)\n  - Dataset (数据集)\n  - Tag (标签)\n\n## 常用开发任务\n\n### 添加新的AI模型提供商\n\n1. 在 `lib/llm/core/providers/` 创建新的provider文件\n2. 实现基础接口 (generate, streamGenerate)\n3. 在 `lib/llm/core/index.js` 中注册provider\n4. 更新配置文件和UI界面\n\n### 添加新的文件格式支持\n\n1. 在 `lib/file/file-process/` 创建格式处理器\n2. 实现内容提取和文本转换逻辑\n3. 更新文件类型检测和验证\n4. 添加相应的UI组件\n\n### 自定义提示词模板\n\n1. 在 `lib/llm/prompts/` 创建新的提示词文件\n2. 使用i18n支持多语言\n3. 在设置界面添加配置选项\n4. 测试不同模型的效果\n\n### 添加新的导出格式\n\n1. 在 `components/export/` 创建新的导出组件\n2. 实现数据格式转换逻辑\n3. 更新导出对话框界面\n4. 添加格式验证和错误处理\n\n## 调试技巧\n\n### 1. 数据库调试\n\n```bash\n# 打开Prisma Studio\nnpm run db:studio\n\n# 查看数据库文件\nsqlite3 prisma/db.sqlite\n```\n\n### 2. LLM API调试\n\n```javascript\n// 在lib/llm/core/index.js中添加日志\nconsole.log('LLM Request:', { provider, model, prompt });\nconsole.log('LLM Response:', response);\n```\n\n### 3. 文件处理调试\n\n```javascript\n// 在lib/file/中添加调试信息\nconsole.log('File processing:', fileName, fileType);\nconsole.log('Text chunks:', chunks.length, chunks[0]);\n```\n\n## 性能优化建议\n\n### 1. 文件处理优化\n\n- 大文件分片处理\n- 异步并发处理\n- 内存使用监控\n- 进度条显示\n\n### 2. LLM调用优化\n\n- 请求缓存机制\n- 批量处理请求\n- 重试策略优化\n- 并发数控制\n\n### 3. 前端性能优化\n\n- 组件懒加载\n- 虚拟滚动列表\n- 图片懒加载\n- 代码分割\n\n## 常见问题解决\n\n### 1. 数据库相关问题\n\n- **问题**: 数据库连接失败\n- **解决**: 检查prisma配置，确保数据库文件存在\n\n### 2. LLM API相关问题\n\n- **问题**: API调用超时\n- **解决**: 调整超时时间，检查网络连接，增加重试机制\n\n### 3. 文件处理问题\n\n- **问题**: 大文件处理内存溢出\n- **解决**: 使用流式处理，分块读取，增加内存限制\n\n### 4. Electron打包问题\n\n- **问题**: 打包后应用无法启动\n- **解决**: 检查依赖项配置，确保native模块正确打包\n\n## 部署指南\n\n### Docker部署\n\n```bash\n# 构建镜像\ndocker build -t easy-dataset .\n\n# 运行容器\ndocker run -d -p 1717:1717 -v ./local-db:/app/local-db easy-dataset\n```\n\n### 桌面应用构建\n\n```bash\n# 构建各平台安装包\nnpm run electron-build-mac    # macOS\nnpm run electron-build-win    # Windows\nnpm run electron-build-linux  # Linux\n```\n\n## 贡献指南\n\n### 提交规范\n\n- 使用conventional commits格式\n- 提交前运行lint检查\n- 更新相关文档\n- 添加测试用例\n\n### 分支策略\n\n- `main`: 主分支，稳定版本\n- `dev`: 开发分支，集成新功能\n- `feature/*`: 功能分支\n- `fix/*`: 修复分支\n\n---\n","isInternal":false,"tokens":1853,"sizeBytes":5392},{"name":"ARCHITECTURE.md","path":"ARCHITECTURE.md","rawUrl":"https://raw.githubusercontent.com/ConardLi/easy-dataset/HEAD/ARCHITECTURE.md","title":"System Architecture & Module Boundaries","category":"project-spec","format":"markdown","content":"# Easy DataSet 项目架构设计\n\n## 项目概述\n\nEasy DataSet 是一个用于创建大模型微调数据集的应用程序。用户可以上传文本文件，系统会自动分割文本并生成问题，最终生成用于微调的数据集。\n\n## 技术栈\n\n- **前端框架**: Next.js 14 (App Router)\n- **UI 框架**: Material-UI (MUI)\n- **数据存储**: fs 文件系统模拟数据库\n- **开发语言**: JavaScript\n\n## 目录结构\n\n```\neasy-dataset/\n├── app/                      # Next.js 应用目录\n│   ├── api/                 # API 路由\n│   │   └── projects/       # 项目相关 API\n│   ├── projects/           # 项目相关页面\n│   │   ├── [projectId]/    # 项目详情页面\n│   └── page.js            # 主页\n├── components/             # React 组件\n│   ├── home/              # 主页相关组件\n│   │   ├── HeroSection.js\n│   │   ├── ProjectList.js\n│   │   └── StatsCard.js\n│   ├── Navbar.js          # 导航栏组件\n│   └── CreateProjectDialog.js\n├── lib/                    # 工具库\n│   └── db/                # 数据库模块\n│       ├── base.js        # 基础工具函数\n│       ├── projects.js    # 项目管理\n│       ├── texts.js       # 文本处理\n│       ├── datasets.js    # 数据集管理\n│       └── index.js       # 模块导出\n├── styles/                # 样式文件\n│   └── home.js           # 主页样式\n└── local-db/             # 本地数据库目录\n```\n\n## 核心模块设计\n\n### 1. 数据库模块 (`lib/db/`)\n\n#### base.js\n\n- 提供基础的文件操作功能\n- 确保数据库目录存在\n- 读写 JSON 文件的工具函数\n\n#### projects.js\n\n- 项目的 CRUD 操作\n- 项目配置管理\n- 项目目录结构维护\n\n#### texts.js\n\n- 文献处理功能\n- 文本片段存储和检索\n- 文件上传处理\n\n#### datasets.js\n\n- 数据集生成和管理\n- 问题列表管理\n- 标签树管理\n\n### 2. 前端组件 (`components/`)\n\n#### Navbar.js\n\n- 顶部导航栏\n- 项目切换\n- 模型选择\n- 主题切换\n\n#### home/ 目录组件\n\n- HeroSection.js: 主页顶部展示区\n- ProjectList.js: 项目列表展示\n- StatsCard.js: 数据统计展示\n- CreateProjectDialog.js: 创建项目的对话框\n\n### 3. 页面路由 (`app/`)\n\n#### 主页 (`page.js`)\n\n- 项目列表展示\n- 创建项目入口\n- 数据统计展示\n\n#### 项目详情页 (`projects/[projectId]/`)\n\n- text-split/: 文献处理页面\n- questions/: 问题列表页面\n- datasets/: 数据集页面\n- settings/: 项目设置页面\n\n#### API 路由 (`api/`)\n\n- projects/: 项目管理 API\n- texts/: 文本处理 API\n- questions/: 问题生成 API\n- datasets/: 数据集管理 API\n\n## 数据流设计\n\n### 项目创建流程\n\n1. 用户通过主页或导航栏创建新项目\n2. 填写项目基本信息（名称、描述）\n3. 系统创建项目目录和初始配置文件\n4. 重定向到项目详情页\n\n### 文献处理流程\n\n1. 用户上传 Markdown 文件\n2. 系统保存原始文件到项目目录\n3. 调用文本分割服务，生成片段和目录结构\n4. 展示分割结果和提取的目录\n\n### 问题生成流程\n\n1. 用户选择需要生成问题的文本片段\n2. 系统调用大模型API生成问题\n3. 保存问题到问题列表和标签树\n\n### 数据集生成流程\n\n1. 用户选择需要生成答案的问题\n2. 系统调用大模型API生成答案\n3. 保存数据集结果\n4. 提供导出功能\n\n## 模型配置\n\n支持多种大模型提供商配置：\n\n- Ollama\n- OpenAI\n- 硅基流动\n- 深度求索\n- 智谱AI\n\n每个提供商支持配置：\n\n- API 地址\n- API 密钥\n- 模型名称\n\n## 未来扩展方向\n\n1. 支持更多文件格式（PDF、DOC等）\n2. 增加数据集质量评估功能\n3. 添加数据集版本管理\n4. 实现团队协作功能\n5. 增加更多数据集导出格式\n\n## 国际化处理\n\n### 技术选型\n\n- **国际化库**: i18next + react-i18next\n- **语言检测**: i18next-browser-languagedetector\n- **支持语言**: 英文(en)、简体中文(zh-CN)\n\n### 目录结构\n\n```\neasy-dataset/\n├── locales/              # 国际化资源目录\n│   ├── en/              # 英文翻译\n│   │   └── translation.json\n│   ├── zh-CN/           # 中文翻译\n│   │   └── translation.json\n│   └── pt-BR/           # 中文翻译\n│       └── translation.json\n├── lib/\n│   └── i18n.js          # i18next 配置\n```\n","isInternal":false,"tokens":1420,"sizeBytes":4536},{"name":".windsurfrules","path":".windsurfrules","rawUrl":"https://raw.githubusercontent.com/ConardLi/easy-dataset/HEAD/.windsurfrules","title":"Windsurf Cascade Agent Rules","category":"windsurf-rule","format":"markdown","content":"# Easy DataSet 项目架构设计\n\n## 项目概述\n\nEasy DataSet 是一个用于创建大模型微调数据集的应用程序。用户可以上传文本文件，系统会自动分割文本并生成问题，最终生成用于微调的数据集。\n\n## 技术栈\n\n- **前端框架**: Next.js 14 (App Router)\n- **UI 框架**: Material-UI (MUI)\n- **数据存储**: fs 文件系统模拟数据库\n- **开发语言**: JavaScript\n- **依赖管理**: pnpm\n\n## 目录结构\n\n```\neasy-dataset/\n├── app/                      # Next.js 应用目录\n│   ├── api/                 # API 路由\n│   │   └── projects/       # 项目相关 API\n│   ├── projects/           # 项目相关页面\n│   │   ├── [projectId]/    # 项目详情页面\n│   └── page.js            # 主页\n├── components/             # React 组件\n│   ├── home/              # 主页相关组件\n│   │   ├── HeroSection.js\n│   │   ├── ProjectList.js\n│   │   └── StatsCard.js\n│   ├── Navbar.js          # 导航栏组件\n│   └── CreateProjectDialog.js\n├── lib/                    # 工具库\n│   └── db/                # 数据库模块\n│       ├── base.js        # 基础工具函数\n│       ├── projects.js    # 项目管理\n│       ├── texts.js       # 文本处理\n│       ├── datasets.js    # 数据集管理\n│       └── index.js       # 模块导出\n├── styles/                # 样式文件\n│   └── home.js           # 主页样式\n└── local-db/             # 本地数据库目录\n```\n\n## 核心模块设计\n\n### 1. 数据库模块 (`lib/db/`)\n\n#### base.js\n- 提供基础的文件操作功能\n- 确保数据库目录存在\n- 读写 JSON 文件的工具函数\n\n#### projects.js\n- 项目的 CRUD 操作\n- 项目配置管理\n- 项目目录结构维护\n\n#### texts.js\n- 文献处理功能\n- 文本片段存储和检索\n- 文件上传处理\n\n#### datasets.js\n- 数据集生成和管理\n- 问题列表管理\n- 标签树管理\n\n### 2. 前端组件 (`components/`)\n\n#### Navbar.js\n- 顶部导航栏\n- 项目切换\n- 模型选择\n- 主题切换\n\n#### home/ 目录组件\n- HeroSection.js: 主页顶部展示区\n- ProjectList.js: 项目列表展示\n- StatsCard.js: 数据统计展示\n- CreateProjectDialog.js: 创建项目的对话框\n\n### 3. 页面路由 (`app/`)\n\n#### 主页 (`page.js`)\n- 项目列表展示\n- 创建项目入口\n- 数据统计展示\n\n#### 项目详情页 (`projects/[projectId]/`)\n- text-split/: 文献处理页面\n- questions/: 问题列表页面\n- datasets/: 数据集页面\n- settings/: 项目设置页面\n\n#### API 路由 (`api/`)\n- projects/: 项目管理 API\n- texts/: 文本处理 API\n- questions/: 问题生成 API\n- datasets/: 数据集管理 API\n\n## 数据流设计\n\n### 项目创建流程\n1. 用户通过主页或导航栏创建新项目\n2. 填写项目基本信息（名称、描述）\n3. 系统创建项目目录和初始配置文件\n4. 重定向到项目详情页\n\n### 文献处理流程\n1. 用户上传 Markdown 文件\n2. 系统保存原始文件到项目目录\n3. 调用文本分割服务，生成片段和目录结构\n4. 展示分割结果和提取的目录\n\n### 问题生成流程\n1. 用户选择需要生成问题的文本片段\n2. 系统调用大模型API生成问题\n3. 保存问题到问题列表和标签树\n\n### 数据集生成流程\n1. 用户选择需要生成答案的问题\n2. 系统调用大模型API生成答案\n3. 保存数据集结果\n4. 提供导出功能\n","isInternal":false,"tokens":1069,"sizeBytes":3543}],"systemPromptSnippet":"<yakaai_skills repo=\"ConardLi/easy-dataset\">\n<!-- File: AGENTS.md (Tokens: ~1853 | Category: root-instruction) -->\n# Easy Dataset Agent 指南\n\n## 项目概述\n\nEasy Dataset 是一个专为大型语言模型（LLM）微调数据集创建而设计的应用程序。它提供完整的workflow，从文档处理到数据集导出，支持多种文件格式和AI模型。\n\n## 技术栈\n\n- **前端**: Next.js 14 (App Router), React 18, Material-UI v5\n- **后端**: Node.js, Prisma ORM, SQLite\n- **AI集成**: OpenAI API, Ollama, 智谱AI, OpenRouter\n- **桌面应用**: Electron\n- **国际化**: i18next\n- **构建工具**: npm/pnpm, Electron Builder\n\n## 核心架构\n\n### 1. 数据流架构\n\n```\n文档上传 → 文本分割 → 问题生成 → 答案生成 → 数据集导出\n    ↓           ↓          ↓          ↓          ↓\n文件处理    智能分块    LLM生成    LLM生成    格式转换\n```\n\n### 2. 模块结构\n\n```\nlib/\n├── api/          # API接口层\n├── db/           # 数据访问层\n├── file/         # 文件处理模块\n├── llm/          # AI模型集成\n├── services/     # 业务逻辑层\n└── util/         # 工具函数\n```\n\n## 开发指南\n\n### 环境设置\n\n```bash\n# 安装依赖\nnpm install\n\n# 数据库初始化\nnpm run db:push\n\n# 开发模式\nnpm run dev\n\n# 构建\nnpm run build\n```\n\n### 代码规范\n\n- 使用ES6+语法\n- 模块化开发\n- 异步操作使用async/await\n- 错误处理使用try/catch\n- 注释使用JSDoc格式\n\n### 重要文件路径\n\n- **主入口**: `app/page.js`\n- **项目路由**: `app/projects/[projectId]/`\n- **API路由**: `app/api/`\n- **LLM核心**: `lib/llm/core/index.js`\n- **任务处理**: `lib/services/tasks/`\n\n## 功能模块详解\n\n### 1. 文档处理模块 (`lib/file/`)\n\n- **支持的格式**: PDF, Markdown, DOCX, EPUB, TXT\n- **核心功能**:\n  - 智能文本分割\n  - 目录结构提取\n  - 自定义分隔符分块\n  - 多语言支持\n\n### 2. AI模型集成 (`lib/llm/`)\n\n- **支持的提供商**:\n  - OpenAI (GPT系列)\n  - Ollama (本地模型)\n  - 智谱AI (GLM系列)\n  - OpenRouter (多模型聚合)\n- **功能特性**:\n  - 统一API接口\n  - 流式输出支持\n  - 多语言提示词\n  - 错误重试机制\n\n### 3. 任务系统 (`lib/services/tasks/`)\n\n- **任务类型**:\n  - 文件处理任务\n  - 问题生成任务\n  - 答案生成任务\n  - 数据清洗任务\n- **状态管理**: 待处理、处理中、完成、失败\n\n### 4. 数据管理 (`lib/db/`)\n\n- **数据模型**:\n  - Project (项目)\n  - Text/Chunk (文本块)\n  - Question (问题)\n  - Dataset (数据集)\n  - Tag (标签)\n\n## 常用开发任务\n\n### 添加新的AI模型提供商\n\n1. 在 `lib/llm/core/providers/` 创建新的provider文件\n2. 实现基础接口 (generate, streamGenerate)\n3. 在 `lib/llm/core/index.js` 中注册provider\n4. 更新配置文件和UI界面\n\n### 添加新的文件格式支持\n\n1. 在 `lib/file/file-process/` 创建格式处理器\n2. 实现内容提取和文本转换逻辑\n3. 更新文件类型检测和验证\n4. 添加相应的UI组件\n\n### 自定义提示词模板\n\n1. 在 `lib/llm/prompts/` 创建新的提示词文件\n2. 使用i18n支持多语言\n3. 在设置界面添加配置选项\n4. 测试不同模型的效果\n\n### 添加新的导出格式\n\n1. 在 `components/export/` 创建新的导出组件\n2. 实现数据格式转换逻辑\n3. 更新导出对话框界面\n4. 添加格式验证和错误处理\n\n## 调试技巧\n\n### 1. 数据库调试\n\n```bash\n# 打开Prisma Studio\nnpm run db:studio\n\n# 查看数据库文件\nsqlite3 prisma/db.sqlite\n```\n\n### 2. LLM API调试\n\n```javascript\n// 在lib/llm/core/index.js中添加日志\nconsole.log('LLM Request:', { provider, model, prompt });\nconsole.log('LLM Response:', response);\n```\n\n### 3. 文件处理调试\n\n```javascript\n// 在lib/file/中添加调试信息\nconsole.log('File processing:', fileName, fileType);\nconsole.log('Text chunks:', chunks.length, chunks[0]);\n```\n\n## 性能优化建议\n\n### 1. 文件处理优化\n\n- 大文件分片处理\n- 异步并发处理\n- 内存使用监控\n- 进度条显示\n\n### 2. LLM调用优化\n\n- 请求缓存机制\n- 批量处理请求\n- 重试策略优化\n- 并发数控制\n\n### 3. 前端性能优化\n\n- 组件懒加载\n- 虚拟滚动列表\n- 图片懒加载\n- 代码分割\n\n## 常见问题解决\n\n### 1. 数据库相关问题\n\n- **问题**: 数据库连接失败\n- **解决**: 检查prisma配置，确保数据库文件存在\n\n### 2. LLM API相关问题\n\n- **问题**: API调用超时\n- **解决**: 调整超时时间，检查网络连接，增加重试机制\n\n### 3. 文件处理问题\n\n- **问题**: 大文件处理内存溢出\n- **解决**: 使用流式处理，分块读取，增加内存限制\n\n### 4. Electron打包问题\n\n- **问题**: 打包后应用无法启动\n- **解决**: 检查依赖项配置，确保native模块正确打包\n\n## 部署指南\n\n### Docker部署\n\n```bash\n# 构建镜像\ndocker build -t easy-dataset .\n\n# 运行容器\ndocker run -d -p 1717:1717 -v ./local-db:/app/local-db easy-dataset\n```\n\n### 桌面应用构建\n\n```bash\n# 构建各平台安装包\nnpm run electron-build-mac    # macOS\nnpm run electron-build-win    # Windows\nnpm run electron-build-linux  # Linux\n```\n\n## 贡献指南\n\n### 提交规范\n\n- 使用conventional commits格式\n- 提交前运行lint检查\n- 更新相关文档\n- 添加测试用例\n\n### 分支策略\n\n- `main`: 主分支，稳定版本\n- `dev`: 开发分支，集成新功能\n- `feature/*`: 功能分支\n- `fix/*`: 修复分支\n\n---\n\n<!-- File: ARCHITECTURE.md (Tokens: ~1420 | Category: project-spec) -->\n# Easy DataSet 项目架构设计\n\n## 项目概述\n\nEasy DataSet 是一个用于创建大模型微调数据集的应用程序。用户可以上传文本文件，系统会自动分割文本并生成问题，最终生成用于微调的数据集。\n\n## 技术栈\n\n- **前端框架**: Next.js 14 (App Router)\n- **UI 框架**: Material-UI (MUI)\n- **数据存储**: fs 文件系统模拟数据库\n- **开发语言**: JavaScript\n\n## 目录结构\n\n```\neasy-dataset/\n├── app/                      # Next.js 应用目录\n│   ├── api/                 # API 路由\n│   │   └── projects/       # 项目相关 API\n│   ├── projects/           # 项目相关页面\n│   │   ├── [projectId]/    # 项目详情页面\n│   └── page.js            # 主页\n├── components/             # React 组件\n│   ├── home/              # 主页相关组件\n│   │   ├── HeroSection.js\n│   │   ├── ProjectList.js\n│   │   └── StatsCard.js\n│   ├── Navbar.js          # 导航栏组件\n│   └── CreateProjectDialog.js\n├── lib/                    # 工具库\n│   └── db/                # 数据库模块\n│       ├── base.js        # 基础工具函数\n│       ├── projects.js    # 项目管理\n│       ├── texts.js       # 文本处理\n│       ├── datasets.js    # 数据集管理\n│       └── index.js       # 模块导出\n├── styles/                # 样式文件\n│   └── home.js           # 主页样式\n└── local-db/             # 本地数据库目录\n```\n\n## 核心模块设计\n\n### 1. 数据库模块 (`lib/db/`)\n\n#### base.js\n\n- 提供基础的文件操作功能\n- 确保数据库目录存在\n- 读写 JSON 文件的工具函数\n\n#### projects.js\n\n- 项目的 CRUD 操作\n- 项目配置管理\n- 项目目录结构维护\n\n#### texts.js\n\n- 文献处理功能\n- 文本片段存储和检索\n- 文件上传处理\n\n#### datasets.js\n\n- 数据集生成和管理\n- 问题列表管理\n- 标签树管理\n\n### 2. 前端组件 (`components/`)\n\n#### Navbar.js\n\n- 顶部导航栏\n- 项目切换\n- 模型选择\n- 主题切换\n\n#### home/ 目录组件\n\n- HeroSection.js: 主页顶部展示区\n- ProjectList.js: 项目列表展示\n- StatsCard.js: 数据统计展示\n- CreateProjectDialog.js: 创建项目的对话框\n\n### 3. 页面路由 (`app/`)\n\n#### 主页 (`page.js`)\n\n- 项目列表展示\n- 创建项目入口\n- 数据统计展示\n\n#### 项目详情页 (`projects/[projectId]/`)\n\n- text-split/: 文献处理页面\n- questions/: 问题列表页面\n- datasets/: 数据集页面\n- settings/: 项目设置页面\n\n#### API 路由 (`api/`)\n\n- projects/: 项目管理 API\n- texts/: 文本处理 API\n- questions/: 问题生成 API\n- datasets/: 数据集管理 API\n\n## 数据流设计\n\n### 项目创建流程\n\n1. 用户通过主页或导航栏创建新项目\n2. 填写项目基本信息（名称、描述）\n3. 系统创建项目目录和初始配置文件\n4. 重定向到项目详情页\n\n### 文献处理流程\n\n1. 用户上传 Markdown 文件\n2. 系统保存原始文件到项目目录\n3. 调用文本分割服务，生成片段和目录结构\n4. 展示分割结果和提取的目录\n\n### 问题生成流程\n\n1. 用户选择需要生成问题的文本片段\n2. 系统调用大模型API生成问题\n3. 保存问题到问题列表和标签树\n\n### 数据集生成流程\n\n1. 用户选择需要生成答案的问题\n2. 系统调用大模型API生成答案\n3. 保存数据集结果\n4. 提供导出功能\n\n## 模型配置\n\n支持多种大模型提供商配置：\n\n- Ollama\n- OpenAI\n- 硅基流动\n- 深度求索\n- 智谱AI\n\n每个提供商支持配置：\n\n- API 地址\n- API 密钥\n- 模型名称\n\n## 未来扩展方向\n\n1. 支持更多文件格式（PDF、DOC等）\n2. 增加数据集质量评估功能\n3. 添加数据集版本管理\n4. 实现团队协作功能\n5. 增加更多数据集导出格式\n\n## 国际化处理\n\n### 技术选型\n\n- **国际化库**: i18next + react-i18next\n- **语言检测**: i18next-browser-languagedetector\n- **支持语言**: 英文(en)、简体中文(zh-CN)\n\n### 目录结构\n\n```\neasy-dataset/\n├── locales/              # 国际化资源目录\n│   ├── en/              # 英文翻译\n│   │   └── translation.json\n│   ├── zh-CN/           # 中文翻译\n│   │   └── translation.json\n│   └── pt-BR/           # 中文翻译\n│       └── translation.json\n├── lib/\n│   └── i18n.js          # i18next 配置\n```\n\n<!-- File: .windsurfrules (Tokens: ~1069 | Category: windsurf-rule) -->\n# Easy DataSet 项目架构设计\n\n## 项目概述\n\nEasy DataSet 是一个用于创建大模型微调数据集的应用程序。用户可以上传文本文件，系统会自动分割文本并生成问题，最终生成用于微调的数据集。\n\n## 技术栈\n\n- **前端框架**: Next.js 14 (App Router)\n- **UI 框架**: Material-UI (MUI)\n- **数据存储**: fs 文件系统模拟数据库\n- **开发语言**: JavaScript\n- **依赖管理**: pnpm\n\n## 目录结构\n\n```\neasy-dataset/\n├── app/                      # Next.js 应用目录\n│   ├── api/                 # API 路由\n│   │   └── projects/       # 项目相关 API\n│   ├── projects/           # 项目相关页面\n│   │   ├── [projectId]/    # 项目详情页面\n│   └── page.js            # 主页\n├── components/             # React 组件\n│   ├── home/              # 主页相关组件\n│   │   ├── HeroSection.js\n│   │   ├── ProjectList.js\n│   │   └── StatsCard.js\n│   ├── Navbar.js          # 导航栏组件\n│   └── CreateProjectDialog.js\n├── lib/                    # 工具库\n│   └── db/                # 数据库模块\n│       ├── base.js        # 基础工具函数\n│       ├── projects.js    # 项目管理\n│       ├── texts.js       # 文本处理\n│       ├── datasets.js    # 数据集管理\n│       └── index.js       # 模块导出\n├── styles/                # 样式文件\n│   └── home.js           # 主页样式\n└── local-db/             # 本地数据库目录\n```\n\n## 核心模块设计\n\n### 1. 数据库模块 (`lib/db/`)\n\n#### base.js\n- 提供基础的文件操作功能\n- 确保数据库目录存在\n- 读写 JSON 文件的工具函数\n\n#### projects.js\n- 项目的 CRUD 操作\n- 项目配置管理\n- 项目目录结构维护\n\n#### texts.js\n- 文献处理功能\n- 文本片段存储和检索\n- 文件上传处理\n\n#### datasets.js\n- 数据集生成和管理\n- 问题列表管理\n- 标签树管理\n\n### 2. 前端组件 (`components/`)\n\n#### Navbar.js\n- 顶部导航栏\n- 项目切换\n- 模型选择\n- 主题切换\n\n#### home/ 目录组件\n- HeroSection.js: 主页顶部展示区\n- ProjectList.js: 项目列表展示\n- StatsCard.js: 数据统计展示\n- CreateProjectDialog.js: 创建项目的对话框\n\n### 3. 页面路由 (`app/`)\n\n#### 主页 (`page.js`)\n- 项目列表展示\n- 创建项目入口\n- 数据统计展示\n\n#### 项目详情页 (`projects/[projectId]/`)\n- text-split/: 文献处理页面\n- questions/: 问题列表页面\n- datasets/: 数据集页面\n- settings/: 项目设置页面\n\n#### API 路由 (`api/`)\n- projects/: 项目管理 API\n- texts/: 文本处理 API\n- questions/: 问题生成 API\n- datasets/: 数据集管理 API\n\n## 数据流设计\n\n### 项目创建流程\n1. 用户通过主页或导航栏创建新项目\n2. 填写项目基本信息（名称、描述）\n3. 系统创建项目目录和初始配置文件\n4. 重定向到项目详情页\n\n### 文献处理流程\n1. 用户上传 Markdown 文件\n2. 系统保存原始文件到项目目录\n3. 调用文本分割服务，生成片段和目录结构\n4. 展示分割结果和提取的目录\n\n### 问题生成流程\n1. 用户选择需要生成问题的文本片段\n2. 系统调用大模型API生成问题\n3. 保存问题到问题列表和标签树\n\n### 数据集生成流程\n1. 用户选择需要生成答案的问题\n2. 系统调用大模型API生成答案\n3. 保存数据集结果\n4. 提供导出功能\n</yakaai_skills>"}