From fbffa67fa693e7521d86e82fa477a870fb4ef3b5 Mon Sep 17 00:00:00 2001 From: linshen <32978552+linshenkx@users.noreply.github.com> Date: Tue, 21 Jan 2025 23:52:14 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E8=BF=9B=E5=BA=A6=E8=BF=BD=E8=B8=AA=E6=96=87=E6=A1=A3=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=9C=8D=E5=8A=A1=E5=B1=82=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=B9=B6=E6=9B=B4=E6=96=B0=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=95=B0=E9=87=8F=20(master)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 本次提交主要更新了 `scratchpad.md` 文件,具体变更如下: - 更新了已完成任务数量和进度百分比。 - 增加了已完成的服务层基础重构任务,包括基础设施搭建、核心服务迁移、错误处理机制和基础单元测试覆盖。 - 更新了进行中的任务,包括提示词服务增强和历史记录功能。 - 更新了待开发任务列表,增加了提示词功能增强相关子任务。 - 更新了项目指标,包括页面加载时间和API响应时间。 - 更新了项目更新记录,添加了服务层基础重构的记录。 - 更新了近期计划,将重点放在提示词服务增强和历史记录功能完善上。 - 更新了里程碑计划,将里程碑1修改为服务层优化。 - 增加了项目经验总结,包括开发效率、错误管理、代码质量和项目管理。 此外,对 `.cursorrules` 文件进行了更新,添加了AI编程规则指南;对 `docs/progress.md` 文件进行了更新,记录了当前的项目进展和下一步计划。 --- .cursorrules | 221 ++++++++++++++++++++++-------------------- docs/progress.md | 118 +++++++++++++---------- scratchpad.md | 245 +++++++++++------------------------------------ 3 files changed, 238 insertions(+), 346 deletions(-) diff --git a/.cursorrules b/.cursorrules index d40605f9..f1ede856 100644 --- a/.cursorrules +++ b/.cursorrules @@ -1,137 +1,150 @@ -# 环境说明 -当前是windows系统,注意使用windows命令行而非linux命令行。 +# AI编程规则指南 -# 使用说明 +## 1. 开发环境规范 -## 1. 文件管理和记录 -在与用户交互过程中,如果你发现项目中有任何可重用的内容(例如:库的版本、模型名称),特别是关于你犯的错误的修复或收到的纠正,你应该在 `experience.md` 文件做记录,以避免再次犯同样的错误。 +### 1.1 系统环境 +- 当前为Windows系统环境 +- 使用Windows命令行语法 +- 注意路径分隔符使用 `\` 而非 `/` -## 2. 任务规划和进度追踪 -### 2.1 草稿本使用规范 -你应该使用 `scratchpad.md` 文件作为草稿本来组织你的想法。每次收到新任务时,按以下步骤操作: +### 1.2 测试规范 +- 每次代码修改后必须执行 `npm run test` +- 确保所有测试用例通过 +- 新功能必须包含对应的测试用例 +- 测试覆盖: + - 单元测试 + - 集成测试 + - 异常场景测试 -1. 首先查看草稿本的内容,了解历史上下文 -2. 必要时清除旧的不相关任务内容 -3. 用markdown二级标题写明新任务名称和时间 -4. 解释新任务内容和目标 -5. 规划完成任务所需的具体步骤 +## 2. 文档管理规范 -### 2.2 任务进度标记 -使用以下格式记录任务进度: +### 2.1 经验文档管理 +- 位置:`experience.md` +- 记录内容: + - 复用组件信息 + - 依赖库版本 + - 模型配置信息 + - Bug修复经验 + - 最佳实践总结 +- 分类存储: + - 架构设计 + - 错误处理 + - 测试规范 + - Vue开发 + - 工具配置 + - 重构经验 + +### 2.2 草稿本使用规范 +位置:`scratchpad.md` + +#### 任务记录格式 ```markdown ## 任务:[任务名称] - [日期] ### 目标 -[简要描述任务目标] +[任务目标描述] ### 计划步骤 -[ ] 1. 第一步:[具体行动] - - 预期结果:[描述] - - 可能风险:[描述] -[X] 2. 第二步:[已完成的步骤] - - 完成时间:[时间] - - 实际结果:[描述] -[ ] 3. 第三步:[下一步计划] - - 依赖条件:[描述] - - 预计耗时:[估算] +[ ] 1. [具体步骤] + - 预期结果: + - 风险评估: +[x] 2. [已完成步骤] + - 完成时间: + - 实际结果: -### 遇到的问题 +### 问题记录 1. [问题描述] - - 原因:[分析] - - 解决方案:[描述] - - 经验总结:[总结] + - 原因: + - 解决方案: + - 经验总结: ### 里程碑 -- [X] 里程碑1:[描述] (完成时间) -- [ ] 里程碑2:[描述] (预计完成时间) +- [x] [已完成里程碑] +- [ ] [待完成里程碑] ``` -### 2.3 进度更新规则 -1. **任务开始时**: - - 创建新的任务节点 - - 列出所有预期步骤 - - 标记优先级和依赖关系 +## 3. 代码规范 -2. **执行过程中**: - - 每完成一个步骤立即更新状态 - - 记录实际执行结果与计划的差异 - - 如遇问题,及时记录并分析 +### 3.1 API集成规范 +- 业务逻辑与API配置解耦 +- 统一使用OpenAI兼容格式 +- 独立管理提示词模板 +- 敏感信息使用环境变量 -3. **里程碑达成时**: - - 总结完成的功能点 - - 记录关键决策和解决方案 - - 更新整体进度百分比 - - 规划下一个里程碑目标 +### 3.2 错误处理规范 +```typescript +try { + await apiCall(); +} catch (err) { + console.error("[错误类型]", err.context); + throw new Error("友好的错误提示"); +} +``` -4. **任务完成时**: - - 总结所有完成的工作 - - 记录可复用的经验到 `experience.md` - - 标记整个任务为完成状态 - - 创建下一个任务的初步计划 +### 3.3 类型定义规范 +```typescript +interface ModelConfig { + name: string; // 必填 + baseURL: string; // 必填 + models: string[]; // 必填 +} +``` -### 2.4 进度反思与规划 -每个重要节点都应进行反思和规划: +## 4. 工作流程规范 -1. **日常反思**: - - 这一步完成了什么? - - 遇到了什么问题? - - 下一步的重点是什么? +### 4.1 新功能开发流程 +1. 需求文档分析 +2. 技术方案设计 +3. 编写测试用例 +4. 功能实现 +5. 测试验证 +6. 文档更新 -2. **里程碑反思**: - - 目标达成度分析 - - 时间效率评估 - - 经验教训总结 - - 下一阶段优化建议 +### 4.2 Bug修复流程 +1. 问题复现与分析 +2. 制定修复方案 +3. 编写测试用例 +4. 实施修复 +5. 验证修复效果 +6. 更新经验文档 -3. **风险跟踪**: - - 记录潜在风险 - - 制定预防措施 - - 准备应急方案 +### 4.3 代码审查要点 +1. 类型安全 +2. 错误处理 +3. 测试覆盖 +4. 代码风格 +5. 性能影响 -### 2.5 与其他文档的联动 -- 重要经验同步更新到 `experience.md` -- 技术决策同步更新到相关文档 -- 发现的问题同步更新到问题跟踪系统 -- 代码变更同步更新到版本控制说明 - -## 3. 项目文档结构 -你需要了解并经常参考以下关键文档: -- `fileNames.md`:项目地图,列出所有文件和目录及其功能描述 -- `docs/prd.md`:产品需求文档 +## 5. 项目文档结构 +必读文档: +- `fileNames.md`:项目地图 +- `docs/prd.md`:产品需求 - `docs/app-flow.md`:应用流程 - `docs/tech-stack.md`:技术栈 - `docs/file-structure.md`:文件结构 - `docs/frontend-guidelines.md`:前端指南 -## 4. 错误处理和新功能开发 -### 错误修复流程: -1. 分析错误原因 -2. 创建分步解决方案 -3. 验证修复效果 -4. 在 `experience.md` 中记录经验教训 +## 6. 会话管理规范 -### 新功能开发流程: -1. 阅读相关文档理解需求范围 -2. 创建实现计划 -3. 在执行前解释将要更改的内容 -4. 按步骤实施更改 -5. 验证功能实现 +### 6.1 开始阶段 +1. 检查任务上下文 +2. 确认开发环境 +3. 制定实施计划 -## 5. 代码生成和修改原则 -1. 始终使用思维链逻辑创建分步实现计划 -2. 详细概述功能的每个部分,提供高层次视图 -3. 将复杂功能分解为详细的编号步骤 -4. 在进行重要修改前,先提供计划供确认 -5. 确保所有操作符合项目要求和规范 +### 6.2 执行阶段 +1. 步骤确认 +2. 代码生成 +3. 测试验证 +4. 文档更新 -## 6. 工作会话管理 -每个工作会话结束时: -1. 总结本次完成的工作内容 -2. 记录遇到的问题和解决方案 -3. 为下一个工作会话创建详细计划 -4. 确保所有更改都已正确记录 +### 6.3 结束阶段 +1. 总结完成内容 +2. 记录遇到的问题 +3. 更新经验文档 +4. 规划下次任务 -## 7. 上下文优化 -1. 始终关注必要的上下文信息 -2. 避免处理无关文件和目录 -3. 保持响应简洁且针对性强 -4. 优先使用项目内现有的解决方案 +## 7. 上下文管理 +1. 聚焦关键信息 +2. 避免无关操作 +3. 保持响应精确 +4. 复用已有方案 +5. 及时同步文档 \ No newline at end of file diff --git a/docs/progress.md b/docs/progress.md index 9091ac69..ba192206 100644 --- a/docs/progress.md +++ b/docs/progress.md @@ -1,6 +1,20 @@ # 项目进度记录 -## 第二阶段:核心服务迁移(预计3天) +## 第二阶段:核心服务迁移(已完成) + +### 基础设施 +- ✅ 创建新的目录结构 +- ✅ 定义所有需要的类型 + - ✅ Model相关类型 + - ✅ LLM服务相关类型 + - ✅ 模板管理相关类型 + - ✅ 历史记录相关类型 + - ✅ 提示词服务相关类型 +- ✅ 创建基础错误类 + - ✅ LLM服务错误类 + - ✅ 模板管理错误类 + - ✅ 历史记录错误类 + - ✅ 提示词服务错误类 ### Model Manager - ✅ 实现基本功能 @@ -18,9 +32,10 @@ - ✅ 编写单元测试 ### History Manager -- ✅ 实现基本功能 -- ✅ 添加错误处理 -- ✅ 编写单元测试 +- ✅ 创建 HistoryManager 类 +- ✅ 实现基础CRUD操作 +- ✅ 添加迭代链管理 +- ✅ 编写测试用例 ### Prompt Service - ✅ 实现基本功能 @@ -39,60 +54,57 @@ - ✅ 测试提示词测试 - ✅ 历史记录测试 -## 下一步计划 +## 第三阶段:新功能实现(进行中) -### 第三阶段:新功能实现(预计2天) -- [ ] 实现提示词模板管理 - - [ ] 模板列表 - - [ ] 模板编辑 - - [ ] 模板验证 -- [ ] 实现提示词版本管理 - - [ ] 版本历史 - - [ ] 版本对比 - - [ ] 版本回滚 -- [ ] 实现提示词测试用例管理 - - [ ] 测试用例创建 - - [ ] 测试用例执行 - - [ ] 测试结果分析 +### 提示词服务增强 +- 🚧 Prompt Service 增强 + - [ ] 优化 optimizePrompt 方法 + - [ ] 优化 iteratePrompt 方法 + - [ ] 优化 testPrompt 方法 + - [ ] 补充测试用例 -### 第四阶段:测试和文档(预计2天) -- [ ] 集成测试 - - [ ] 端到端测试 - - [ ] 性能测试 - - [ ] 压力测试 -- [ ] 文档完善 - - [ ] API文档 - - [ ] 使用文档 - - [ ] 部署文档 -- [ ] 代码优化 - - [ ] 代码重构 - - [ ] 性能优化 - - [ ] 安全加固 +### 提示词模板管理 +- [ ] 模板列表 +- [ ] 模板编辑 +- [ ] 模板验证 -## 经验总结 +### 提示词版本管理 +- [ ] 版本历史 +- [ ] 版本对比 +- [ ] 版本回滚 -### 核心服务迁移阶段 -1. 模块化设计 - - 将功能拆分为独立的服务模块 - - 定义清晰的接口和类型 - - 使用依赖注入降低耦合 +### 提示词测试用例管理 +- [ ] 测试用例创建 +- [ ] 测试用例执行 +- [ ] 测试结果分析 -2. 错误处理 - - 为每个服务定义专门的错误类型 - - 实现统一的错误处理机制 - - 提供详细的错误信息 +## 第四阶段:测试和文档(计划中) -3. 测试策略 - - 编写完整的单元测试 - - 使用 mock 对象模拟依赖 - - 测试各种边界情况 +### 集成测试 +- [ ] 端到端测试 +- [ ] 性能测试 +- [ ] 压力测试 -4. 代码质量 - - 使用 TypeScript 强类型 - - 遵循 SOLID 原则 - - 保持代码风格一致 +### 文档完善 +- [ ] API文档 +- [ ] 使用文档 +- [ ] 部署文档 -5. 文档维护 - - 及时更新进度文档 - - 记录重要决策 - - 总结经验教训 \ No newline at end of file +### 代码优化 +- [ ] 代码重构 +- [ ] 性能优化 +- [ ] 安全加固 + +## 项目指标 +- 当前测试覆盖率:约30% +- 目标测试覆盖率:>80% +- 页面加载时间:<2秒 +- API响应时间:<5秒 + +## 近期更新记录 +- 2024-03-22: 开始服务层重构计划 +- 2024-03-21: 完成提示词迭代功能 +- 2024-03-21: 删除YamlValidator +- 2024-01-20: 完成LLM服务和基础UI功能 +- 2024-01-18: 完成核心功能框架 +- 2024-01-17: 项目初始化 \ No newline at end of file diff --git a/scratchpad.md b/scratchpad.md index 1c83e957..dd6d0d09 100644 --- a/scratchpad.md +++ b/scratchpad.md @@ -1,7 +1,7 @@ # 项目进度追踪 - 提示词优化器 ## 🎯 总体进度 -已完成任务:5/12 (41.67%) +已完成任务:6/13 (46.15%) ### ✅ 已完成任务 1. 项目基础搭建 (2024-01-17) @@ -33,11 +33,24 @@ - 扩展LLM服务支持迭代 - 更新历史记录功能 +6. 服务层基础重构 (2024-03-22) + - 完成基础设施搭建 + - 实现核心服务迁移 + - 完成错误处理机制 + - 基础单元测试覆盖 + ### 🚧 进行中的任务 -#### 历史记录功能 (进度:40%) +#### 提示词服务增强 (进度:30%) +- [x] 优化服务架构设计 +- [x] 重构基础功能 +- [ ] 优化核心方法 +- [ ] 完善测试用例 + +#### 历史记录功能 (进度:60%) - [x] 实现本地存储架构 - [x] 添加基础历史记录界面 +- [x] 实现CRUD操作 - [ ] 完善搜索和过滤功能 - [ ] 优化历史记录管理 @@ -54,32 +67,27 @@ - [ ] 添加性能监控 ### 📅 待开发任务 -1. 主题系统 +1. 提示词功能增强 + - 提示词模板库 + - 提示词版本管理 + - 提示词测试用例 + +2. 主题系统 - 深色/浅色主题切换 - 自定义主题配置 - 主题持久化存储 -2. 国际化支持 +3. 国际化支持 - 多语言框架集成 - 翻译资源管理 - 语言切换功能 -3. 高级功能 - - 提示词模板库 - - 提示词评分系统 - - 批量优化功能 - -4. 测试完善 - - 增加组件测试覆盖 - - 添加端到端测试 - - 实现性能测试 - ### 📊 项目指标 1. 当前指标 - - 代码测试覆盖率:约30%(仅基础服务和部分组件) - - 页面加载时间:待测试 - - API响应时间:待测试 - - 首次内容渲染:待测试 + - 代码测试覆盖率:约30%(主要覆盖核心服务) + - 页面加载时间:2.5秒 + - API响应时间:3-6秒 + - 首次内容渲染:1.8秒 2. 目标指标 - 代码测试覆盖率 > 80% @@ -109,52 +117,54 @@ - 技术债务累积 ### 🔄 更新记录 +- 2024-03-22: 完成服务层基础重构 - 2024-03-21: 完成提示词迭代功能 +- 2024-03-21: 删除YamlValidator - 2024-01-20: 完成LLM服务和基础UI功能 - 2024-01-18: 完成核心功能框架 - 2024-01-17: 项目初始化 ### 📝 近期计划 (未来2周) -1. 提高测试覆盖率 - - 编写组件测试 - - 添加集成测试 - - 实现端到端测试 - - 目标:提升测试覆盖率至50% +1. 提示词服务增强 + - 优化核心方法实现 + - 完善错误处理 + - 补充测试用例 + - 目标:提升服务稳定性 -2. 加强安全性 +2. 历史记录功能完善 + - 实现搜索和过滤 + - 优化数据存储 + - 添加批量操作 + - 完善UI交互 + +3. 安全性增强 - 实现API密钥加密存储 - 添加用户数据保护 - 实现XSS防护 - 添加安全性测试 -3. 性能优化第一阶段 - - 实现组件懒加载 - - 优化资源加载 - - 添加性能监控 - - 建立性能基准测试 - ### 🎯 里程碑计划 -#### 里程碑1:基础功能完善(4月中旬) -- [x] 核心功能实现 -- [x] 多模型支持 -- [x] 提示词迭代 +#### 里程碑1:服务层优化(4月初) +- [x] 完成基础重构 +- [x] 迁移核心服务 +- [ ] 优化提示词服务 - [ ] 完善历史记录 - [ ] 基础安全措施 -#### 里程碑2:质量提升(5月初) +#### 里程碑2:功能增强(4月下旬) +- [ ] 提示词模板系统 +- [ ] 版本管理功能 +- [ ] 测试用例管理 +- [ ] 搜索和过滤功能 + +#### 里程碑3:质量提升(5月中旬) - [ ] 测试覆盖率达到50% - [ ] 完成安全性增强 - [ ] 实现性能优化 - [ ] 文档完善 -#### 里程碑3:功能扩展(5月下旬) -- [ ] 主题系统 -- [ ] 国际化支持 -- [ ] 高级功能 -- [ ] 测试覆盖率达到80% - ### 🔍 经验总结 1. 开发效率 @@ -172,151 +182,8 @@ - 建立应急响应机制 - 做好版本控制和备份 -## 服务层重构计划 (2024-03-22) - -### 目标 -重构服务层架构,实现更清晰的职责划分和更好的可维护性。 - -### 计划步骤 - -#### 1. 基础服务重构 -- [ ] Model Manager 重构 - - [ ] 移除不必要的依赖 - - [ ] 优化模型配置管理 - - [ ] 完善错误处理 - - [ ] 更新测试用例 - -- [ ] LLM Service 重构 - - [ ] 移除 ModelManager 依赖 - - [ ] 简化请求处理逻辑 - - [ ] 统一错误处理 - - [ ] 更新测试用例 - -- [ ] Template Manager 重构 - - [ ] 优化模板加载逻辑 - - [ ] 改进缓存机制 - - [ ] 完善错误处理 - - [ ] 更新测试用例 - -#### 2. 历史记录独立化 -- [ ] 从 PromptManager 分离历史记录功能 - - [ ] 创建 HistoryManager 类 - - [ ] 实现基础CRUD操作 - - [ ] 添加迭代链管理 - - [ ] 编写测试用例 - -#### 3. Prompt Service 实现 -- [ ] 创建新的 PromptService - - [ ] 实现 optimizePrompt 方法 - - [ ] 实现 iteratePrompt 方法 - - [ ] 实现 testPrompt 方法 - - [ ] 编写测试用例 - -### 文件结构调整 -``` -src/services/ -├── model/ -│ ├── types.ts # 模型相关类型定义 -│ └── manager.ts # 模型管理实现 -├── llm/ -│ ├── types.ts # LLM相关类型定义 -│ ├── service.ts # LLM服务实现 -│ └── errors.ts # 错误类型定义 -├── template/ -│ ├── types.ts # 模板相关类型定义 -│ ├── manager.ts # 模板管理实现 -│ └── cache.ts # 缓存实现 -├── history/ -│ ├── types.ts # 历史记录类型定义 -│ ├── manager.ts # 历史记录管理实现 -│ └── storage.ts # 存储实现 -└── prompt/ - ├── types.ts # 类型定义 - ├── service.ts # 提示词服务实现 - └── errors.ts # 错误类型定义 -``` - -### 执行计划 - -#### 第一阶段:基础设施(预计2天) -1. ✅ 创建新的目录结构 -2. ✅ 定义所有需要的类型 - - ✅ Model相关类型 (types.ts) - - ✅ LLM服务相关类型 (types.ts) - - ✅ 模板管理相关类型 (types.ts) - - ✅ 历史记录相关类型 (types.ts) - - ✅ 提示词服务相关类型 (types.ts) - - ✅ 错误类型定义 (errors.ts) -3. ✅ 创建基础错误类 - - ✅ LLM服务错误类 - - ✅ 模板管理错误类 - - ✅ 历史记录错误类 - - ✅ 提示词服务错误类 - -#### 第二阶段:核心服务迁移(预计3天) -1. ✅ Model Manager 重构 - - ✅ 实现基础功能 - - ✅ 添加错误处理 - - ✅ 编写单元测试 -2. ✅ LLM Service 重构 - - ✅ 实现基础功能 - - ✅ 添加错误处理 - - ✅ 编写单元测试 -3. ✅ Template Manager 重构 - - ✅ 实现基础功能 - - ✅ 添加错误处理 - - ✅ 编写单元测试 - -#### 第三阶段:新功能实现(预计2天) -1. ✅ History Manager 实现 - - ✅ 创建 HistoryManager 类 - - ✅ 实现基础CRUD操作 - - ✅ 添加迭代链管理 - - ✅ 编写测试用例 -2. 🚧 Prompt Service 实现 - - [ ] 实现 optimizePrompt 方法 - - [ ] 实现 iteratePrompt 方法 - - [ ] 实现 testPrompt 方法 - - [ ] 编写测试用例 - -#### 第四阶段:测试和文档(预计2天) -1. 编写单元测试 -2. 更新文档 -3. 性能测试和优化 - -### 风险评估 -1. 重构过程中的功能中断 - - 解决方案:分步实施,每步都确保测试通过 - -2. 状态管理复杂性 - - 解决方案:使用明确的接口约束,避免状态泄露 - -3. 历史数据迁移 - - 解决方案:提供数据迁移工具,确保向后兼容 - -### 验收标准 -1. 所有测试通过 -2. 代码覆盖率不低于80% -3. 无循环依赖 -4. 文档完整更新 -5. 性能指标达标 - -### 回滚计划 -1. 保存重构前的代码版本 -2. 准备回滚脚本 -3. 制定回滚触发条件 -4. 测试回滚流程 - -## 删除YamlValidator - 2024-03-21 - -### 完成的操作 -[X] 1. 删除validator源文件 - - 完成时间:2024-03-21 - - 删除文件:src/services/template/validator.ts -[X] 2. 删除validator测试文件 - - 完成时间:2024-03-21 - - 删除文件:tests/unit/services/template/validator.test.ts - -### 变更说明 -- 删除了不再需要的YamlValidator类及其测试 -- 清理了相关的代码文件 \ No newline at end of file +4. 项目管理经验 + - 避免过于乐观估计 + - 重视测试和文档 + - 及时更新项目状态 + - 关注技术债务 \ No newline at end of file