Files
sillytavern-repalice/STATUS.md
2026-04-24 01:45:41 +08:00

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