334 lines
7.9 KiB
Markdown
334 lines
7.9 KiB
Markdown
# 项目状态清单
|
|
|
|
## ✅ 已完成
|
|
|
|
### 架构设计
|
|
- [x] 确定技术栈 (NestJS + Vue3 + Vercel AI SDK)
|
|
- [x] 设计 MVC 分层架构
|
|
- [x] 规划目录结构
|
|
- [x] 定义依赖注入策略
|
|
- [x] 设计双数据格式策略
|
|
|
|
### 共享层 (Shared)
|
|
- [x] SillyTavern 兼容类型定义 (`sillytavern.types.ts`)
|
|
- [x] WorldInfo (世界书)
|
|
- [x] CharacterCard (角色卡 V2/V3)
|
|
- [x] ChatLog (聊天记录 JSONL)
|
|
- [x] GenerationPreset (预设)
|
|
- [x] 项目内部扩展类型定义 (`internal.types.ts`)
|
|
- [x] 4种激活方式枚举 (PERMANENT, KEYWORD, RAG, LOGIC)
|
|
- [x] LogicExpression (逻辑表达式)
|
|
- [x] RAGConfig (RAG 配置)
|
|
- [x] OutputSchema (Vercel AI SDK 输出 schema)
|
|
- [x] Workflow (工作流定义)
|
|
- [x] 数据转换器 (`converters.ts`)
|
|
- [x] ST ↔ Internal 双向转换
|
|
- [x] 日期格式规范化
|
|
- [x] 激活类型推断
|
|
- [x] Zod Schemas 运行时验证
|
|
- [x] SillyTavern schemas
|
|
- [x] Internal schemas
|
|
|
|
### 后端 (Server)
|
|
- [x] NestJS 项目骨架
|
|
- [x] TypeScript 配置
|
|
- [x] 主入口文件 (`main.ts`)
|
|
- [x] 应用模块 (`app.module.ts`)
|
|
- [x] 核心基础设施
|
|
- [x] HTTP 异常过滤器
|
|
- [x] 日志拦截器
|
|
- [x] 响应拦截器
|
|
- [x] 业务模块占位
|
|
- [x] ChatModule
|
|
- [x] CharacterModule
|
|
- [x] LLMModule
|
|
- [x] ImportExportModule
|
|
- [x] WorkflowModule
|
|
- [x] 持久化层骨架
|
|
- [x] PersistenceModule
|
|
- [x] FileSystemRepository (占位)
|
|
|
|
### 前端 (Client)
|
|
- [x] Vue3 + Vite 项目骨架
|
|
- [x] TypeScript 配置
|
|
- [x] Vite 配置 (含代理)
|
|
- [x] 路由配置 (`router/index.ts`)
|
|
- [x] Pinia Store (`useAppStore.ts`)
|
|
- [x] 全局样式
|
|
- [x] CSS Reset
|
|
- [x] CSS Variables (主题系统)
|
|
- [x] 布局组件
|
|
- [x] MainLayout
|
|
- [x] TopBar (占位)
|
|
- [x] LeftPanel (占位)
|
|
- [x] CenterPanel (占位)
|
|
- [x] RightPanel (占位)
|
|
|
|
### DevOps
|
|
- [x] Docker Compose 配置
|
|
- [x] Backend Dockerfile (多阶段构建)
|
|
- [x] Frontend Dockerfile (多阶段构建 + Nginx)
|
|
- [x] Nginx 配置 (反向代理 + 静态资源)
|
|
- [x] .gitignore
|
|
- [x] .env.example
|
|
- [x] Monorepo package.json
|
|
|
|
### 文档
|
|
- [x] README.md (项目概览)
|
|
- [x] ARCHITECTURE.md (架构设计文档)
|
|
- [x] QUICKSTART.md (快速开始指南)
|
|
- [x] STATUS.md (本文件)
|
|
|
|
---
|
|
|
|
## 🚧 进行中
|
|
|
|
无 (当前处于架构搭建完成阶段)
|
|
|
|
---
|
|
|
|
## ⏳ 待实现
|
|
|
|
### 优先级 P0 (核心功能)
|
|
|
|
#### 后端实现
|
|
- [ ] **持久化层**
|
|
- [ ] FileSystemRepository 完整实现
|
|
- [ ] 文件路径管理工具
|
|
- [ ] 原子写入 (防止数据损坏)
|
|
- [ ] 自动备份机制
|
|
|
|
- [ ] **角色卡模块**
|
|
- [ ] CharacterController (CRUD 端点)
|
|
- [ ] CharacterService (业务逻辑)
|
|
- [ ] PNG 元数据解析 (嵌入/提取 JSON)
|
|
- [ ] 角色卡验证器
|
|
|
|
- [ ] **聊天模块**
|
|
- [ ] ChatController (CRUD 端点)
|
|
- [ ] ChatService (业务逻辑)
|
|
- [ ] JSONL 文件读写
|
|
- [ ] 消息 swipe 管理
|
|
- [ ] 聊天元数据管理
|
|
|
|
- [ ] **LLM 集成**
|
|
- [ ] Vercel AI SDK 配置
|
|
- [ ] LLMController (聊天端点)
|
|
- [ ] LLMService (流式响应)
|
|
- [ ] Provider Factory (OpenAI, Anthropic)
|
|
- [ ] Token 计数和限制
|
|
|
|
- [ ] **世界书模块**
|
|
- [ ] WorldInfoController
|
|
- [ ] WorldInfoService
|
|
- [ ] 激活策略实现
|
|
- [ ] KeywordActivationStrategy
|
|
- [ ] PermanentActivationStrategy
|
|
- [ ] RAGActivationStrategy
|
|
- [ ] LogicActivationStrategy
|
|
- [ ] 关键词匹配引擎
|
|
|
|
#### 前端实现
|
|
- [ ] **API 客户端**
|
|
- [ ] Axios 实例配置
|
|
- [ ] 请求/响应拦截器
|
|
- [ ] 错误处理
|
|
- [ ] API 方法封装
|
|
|
|
- [ ] **状态管理**
|
|
- [ ] useCharacterStore
|
|
- [ ] useChatStore
|
|
- [ ] useWorldInfoStore
|
|
- [ ] useLLMStore
|
|
|
|
- [ ] **TopBar 组件**
|
|
- [ ] 模型切换器
|
|
- [ ] 快速操作按钮
|
|
- [ ] 主题切换
|
|
|
|
- [ ] **LeftPanel 组件**
|
|
- [ ] CharacterList 组件
|
|
- [ ] 角色卡片展示
|
|
- [ ] 搜索和过滤
|
|
- [ ] 拖拽排序
|
|
- [ ] ChatHistory 组件
|
|
- [ ] 聊天列表
|
|
- [ ] 新建聊天
|
|
- [ ] 删除/重命名
|
|
|
|
- [ ] **CenterPanel 组件**
|
|
- [ ] MessageList 组件
|
|
- [ ] 消息渲染
|
|
- [ ] Swipe 功能
|
|
- [ ] 滚动加载
|
|
- [ ] ChatInput 组件
|
|
- [ ] 文本输入框
|
|
- [ ] 发送按钮
|
|
- [ ] 快捷命令
|
|
- [ ] 流式响应显示
|
|
|
|
- [ ] **RightPanel 组件**
|
|
- [ ] CharacterDetail 组件
|
|
- [ ] 角色信息编辑
|
|
- [ ] 头像上传
|
|
- [ ] 世界书绑定
|
|
- [ ] WorkflowEditor 组件 (基础版)
|
|
- [ ] 节点拖拽
|
|
- [ ] 连接线绘制
|
|
|
|
### 优先级 P1 (增强功能)
|
|
|
|
- [ ] **导入导出模块**
|
|
- [ ] SillyTavern 格式导入
|
|
- [ ] SillyTavern 格式导出
|
|
- [ ] 批量导入
|
|
- [ ] 数据迁移工具
|
|
|
|
- [ ] **工作流引擎**
|
|
- [ ] WorkflowService (执行引擎)
|
|
- [ ] 并行节点执行
|
|
- [ ] 条件分支
|
|
- [ ] 动态提示词拼接
|
|
|
|
- [ ] **RAG 库管理**
|
|
- [ ] RAGLibrary CRUD
|
|
- [ ] 文档上传和解析
|
|
- [ ] Embedding 生成
|
|
- [ ] 向量检索
|
|
|
|
- [ ] **预设管理**
|
|
- [ ] Preset CRUD
|
|
- [ ] 预设切换
|
|
- [ ] 采样参数 UI
|
|
|
|
- [ ] **通用组件库**
|
|
- [ ] BaseButton
|
|
- [ ] BaseIcon
|
|
- [ ] BaseModal
|
|
- [ ] BaseInput
|
|
- [ ] BaseSelect
|
|
|
|
### 优先级 P2 (优化和测试)
|
|
|
|
- [ ] **性能优化**
|
|
- [ ] 聊天列表虚拟滚动
|
|
- [ ] 图片懒加载
|
|
- [ ] API 响应缓存
|
|
- [ ] LLM 响应缓存
|
|
|
|
- [ ] **测试**
|
|
- [ ] 单元测试 (Jest)
|
|
- [ ] Services 测试
|
|
- [ ] Tools 测试
|
|
- [ ] Converters 测试
|
|
- [ ] 集成测试
|
|
- [ ] Controller + Service 测试
|
|
- [ ] E2E 测试 (Playwright)
|
|
- [ ] 关键用户流程
|
|
|
|
- [ ] **安全性**
|
|
- [ ] 输入 sanitization
|
|
- [ ] 文件上传扫描
|
|
- [ ] API 速率限制
|
|
- [ ] CORS 严格配置
|
|
|
|
- [ ] **错误处理**
|
|
- [ ] 全局错误边界
|
|
- [ ] 友好的错误提示
|
|
- [ ] 错误日志记录
|
|
|
|
- [ ] **文档**
|
|
- [ ] API 文档 (Swagger/OpenAPI)
|
|
- [ ] 用户手册
|
|
- [ ] 开发者贡献指南
|
|
|
|
### 优先级 P3 (额外功能)
|
|
|
|
- [ ] **国际化 (i18n)**
|
|
- [ ] 中文界面
|
|
- [ ] 英文界面
|
|
- [ ] 语言切换
|
|
|
|
- [ ] **主题系统**
|
|
- [ ] 暗色/亮色主题
|
|
- [ ] 自定义主题色
|
|
- [ ] 主题保存/加载
|
|
|
|
- [ ] **快捷键**
|
|
- [ ] 常用操作快捷键
|
|
- [ ] 快捷键自定义
|
|
|
|
- [ ] **插件系统**
|
|
- [ ] 插件加载器
|
|
- [ ] 插件 API
|
|
- [ ] 示例插件
|
|
|
|
---
|
|
|
|
## 📊 进度统计
|
|
|
|
| 类别 | 已完成 | 总数 | 完成率 |
|
|
|------|--------|------|--------|
|
|
| **架构设计** | 5 | 5 | 100% |
|
|
| **共享层** | 6 | 6 | 100% |
|
|
| **后端骨架** | 8 | 8 | 100% |
|
|
| **前端骨架** | 9 | 9 | 100% |
|
|
| **DevOps** | 7 | 7 | 100% |
|
|
| **文档** | 4 | 4 | 100% |
|
|
| **核心功能** | 0 | ~50 | 0% |
|
|
| **增强功能** | 0 | ~20 | 0% |
|
|
| **测试优化** | 0 | ~15 | 0% |
|
|
| **总计** | **39** | **~114** | **~34%** |
|
|
|
|
> 注: 当前处于**架构搭建完成**阶段,下一步开始实现核心业务逻辑。
|
|
|
|
---
|
|
|
|
## 🎯 下一个里程碑
|
|
|
|
**Milestone 1: 基础 CRUD (预计 2-3 周)**
|
|
- [ ] 完整的角色卡管理 (创建、读取、更新、删除)
|
|
- [ ] 基础的聊天功能 (发送消息、接收回复)
|
|
- [ ] 简单的 UI 界面 (可操作的组件)
|
|
- [ ] 本地文件系统持久化
|
|
|
|
**Milestone 2: LLM 集成 (预计 1-2 周)**
|
|
- [ ] Vercel AI SDK 集成
|
|
- [ ] 流式聊天响应
|
|
- [ ] 多 Provider 支持
|
|
|
|
**Milestone 3: 导入导出 (预计 1 周)**
|
|
- [ ] SillyTavern 格式兼容
|
|
- [ ] 数据转换器完善
|
|
|
|
**Milestone 4: 高级功能 (预计 3-4 周)**
|
|
- [ ] 世界书管理
|
|
- [ ] 工作流编辑器
|
|
- [ ] RAG 库
|
|
|
|
---
|
|
|
|
## 📝 开发笔记
|
|
|
|
### 当前状态
|
|
- ✅ 项目架构已搭建完成
|
|
- ✅ 所有占位文件已创建
|
|
- ✅ 类型定义完整
|
|
- ⏸️ 等待开始实现具体业务逻辑
|
|
|
|
### 已知问题
|
|
- 无 (尚未开始实现)
|
|
|
|
### 技术债务
|
|
- 无 (项目刚启动)
|
|
|
|
### 风险提示
|
|
1. **SillyTavern 格式兼容性**: 需要持续对照官方文档验证
|
|
2. **Vercel AI SDK v4**: 较新版本,可能需要探索最佳实践
|
|
3. **工作流引擎**: 复杂度较高,需要仔细设计
|
|
|
|
---
|
|
|
|
**最后更新**: 2026-04-24
|
|
**更新者**: AI Assistant
|