# todolist ## 实现 1. 从cherry-studio代码中,移植: “模型服务” “显示设置” “MCP” 模块,使用typescript+vue3实现。 ✅ 火山: https://ark.cn-beijing.volces.com/api/v3 853e780d-a789-42fc-8f9e-c6a8c3c97082 阿里 https://dashscope.aliyuncs.com/compatible-mode/v1 sk-2546da09b6d9471894aeb95278f96c11 3. 阿里模型直接使用,模型ID。 ✅ 以后再考虑不要使用接口去获取。(先跑通) 🚩 4. MCP 功能叠加。 ✅ ## 优化 该项目经过反复重构,重构过程关注功能实现,没有关注性能、结构合理性、和实现的优雅性。全量分析,提供优化点及思路。 **先优化,在做数据库改造**。 ### 重构进度 (2024-01-XX) #### Phase 1: 核心服务拆分 (Day 1-2) ✅ 已完成 - ✅ Step 1: 创建服务目录结构 `/web/src/services/chat/` - ✅ Step 2: 提取 MessageService - 消息 CRUD 操作(20+ 方法) - ✅ Step 3: 提取 ConversationService - 对话管理(10+ 方法) - ✅ Step 4: 创建统一日志系统 Logger (支持日志级别、命名空间、格式化) - ✅ Step 5: 创建错误处理体系 AppError (ValidationError, NetworkError, APIError, ServiceError, StorageError + ErrorHandler) - ✅ Step 6: 提取 StreamProcessor - 流式响应处理(性能监控、批量输出、工具集成) - ✅ Step 7: 提取 ToolExecutor - 工具调用执行(递归调用链、错误处理) - ✅ Step 8: 创建 ChatOrchestrator - 协调所有服务(话题管理、消息管理、流式发送、持久化 + togglePin/Favorite/Archive) - ✅ Step 9: 更新 chatStore 使用新服务(已完成:chatService → chatOrchestrator) - ⏸️ Step 10: 测试验证,确保无功能回归 **✅ Phase 1 重构完成!旧的 chatService.ts (1147行) 已完全被新架构替代。** **服务架构总结:** ``` ChatOrchestrator (协调器) ├── MessageService (消息 CRUD) ├── ConversationService (对话管理) ├── StreamProcessor (流式处理) └── ToolExecutor (工具执行) 工具层: ├── Logger (统一日志) └── AppError + ErrorHandler (错误处理) ``` #### Phase 2: 优化与集成 (Day 3-4) - ⏸️ 替换所有 console.log 为 logger - ⏸️ 实现虚拟滚动优化消息列表 - ⏸️ 添加数据库索引 - ⏸️ 优化重渲染 (shallowRef) #### Phase 3: 新功能开发 (Week 2+) - ⏸️ 在干净的架构上开发新功能 ## 问题 1. 优化消息交互。比如标题\内容超长怎么处理❓ 2. 上下文的问题?上下文由谁维护❓以及如何维护❓ 可以在cherry-studio中验证。 3. 大模型选择不知道是否生效? ✅ 4. 前端本地持久化(localStorage), 后端(Node/Express),不使用数据库,运行时内存保存。 Pinia store、localStorage、内存状态三处保存数据? 使用sqlite3 vs. better-sqlite3持久化?性能开销? 没有统一的数据源?