7.4 KiB
7.4 KiB
云酒馆项目进度管理
项目定位:面向普通用户的类酒馆 AI 角色对话平台 核心理念:让不懂代码的用户也能轻松导入角色卡、配置 AI、与角色对话 技术栈:Go (Gin + GORM) + Vue 3 (Element Plus) + PostgreSQL 开始日期:2026-02-10 当前状态:阶段四 AI 对话核心功能已完成 P0
📊 总体进度
| 阶段 | 进度 | 状态 |
|---|---|---|
| 一、基础设施 | 100% | 🟢 已完成 |
| 二、用户系统 | 100% | 🟢 已完成 |
| 三、角色卡管理 | 100% | 🟢 已完成 |
| 四、AI 接入与对话(核心) | 80% | 🟡 P0 已完成 |
| 五、用户体验优化 | 0% | ⚪ 未开始 |
| 六、部署上线 | 0% | ⚪ 未开始 |
🎯 普通用户最小功能集
一个普通用户打开这个平台,最基本的使用流程:
注册/登录 → 浏览角色广场 → 选择/导入角色卡 → 配置 AI 接口 → 开始对话
必须有(MVP)
| 功能 | 说明 | 后端 | 前端 |
|---|---|---|---|
| 注册/登录 | 邮箱注册 | ✅ 已完成 | ✅ 已完成 |
| 角色广场 | 浏览公开角色卡 | ✅ 已完成 | ✅ 已完成 |
| 导入角色卡 | 支持 PNG 卡片和 JSON | ✅ 已完成 | ✅ 已完成 |
| 创建角色卡 | 简易表单创建 | ✅ 已完成 | ✅ 已完成 |
| 配置 AI 接口 | 填 API Key + 选模型 | ✅ 已完成 | ✅ 已完成 |
| AI 对话 | 与角色卡聊天(SSE 流式) | ✅ 已完成 | ✅ 已完成 |
| 对话记录 | 查看历史、多轮对话 | ✅ 已完成 | ✅ 已完成 |
第二优先级
| 功能 | 说明 | 后端 | 前端 |
|---|---|---|---|
| 世界书 | 角色背景设定增强 | ✅ 已完成 | ✅ 已完成 |
| 预设管理 | AI 参数预设(温度等) | 🔸 模型已有 | ❌ 待开发 |
| 收藏角色 | 收藏喜欢的角色 | 🔸 模型已有 | ❌ 待开发 |
| 消息重新生成 | 不满意可重新生成回复 | ✅ 后端已有 | ❌ 待开发 |
| 消息编辑 | 编辑已发送的消息 | ✅ 后端已有 | ❌ 待开发 |
后续增强(不急)
| 功能 | 说明 | 状态 |
|---|---|---|
| 正则脚本 | 高级文本处理 | ✅ 已完成(保留) |
| 扩展系统 | SillyTavern 扩展兼容 | ✅ 已完成(保留) |
| 群聊 | 多角色群聊 | 模型已有 |
| 向量记忆 | 长期记忆增强 | 模型已有 |
| 数据导入导出 | 从原版酒馆迁移数据 | 未开始 |
🟢 阶段一:基础设施(已完成)
- 数据库设计:13张核心表(用户、角色卡、对话、消息、世界书、扩展等)
- Go 后端框架搭建:GVA 框架 + 分层架构
- Vue 3 前端项目初始化:Element Plus + UnoCSS + TypeScript
- JWT 认证中间件
- CORS 跨域配置
- Swagger API 文档
🟢 阶段二:用户系统(已完成)
- 用户注册/登录/登出
- Token 刷新机制
- 用户信息获取与更新
- 密码修改
- 前端登录/注册页面
🟢 阶段三:角色卡管理(已完成)
- 角色卡 CRUD(创建、编辑、删除)
- PNG 卡片导入(SillyTavern V1/V2 格式)
- JSON 格式导入导出
- 公开/私密切换
- 角色广场(公开角色列表 + 搜索排序)
- 我的角色卡列表
- 角色详情页
🟡 阶段四:AI 接入与对话(核心 — P0 已完成)
这是整个平台最核心的功能。P0 核心功能已全部实现。
4.1 AI 提供商配置 ✅
-
T4.1.1 后端:AI 提供商管理 API
- 提供商 CRUD(OpenAI/兼容、Claude、Gemini、自定义)
- API Key 加密存储(XOR 混淆)
- 模型管理(预设常见模型 + 自定义添加,支持 chat/image_gen 类型)
- 连通性测试接口(OpenAI /models、Claude /messages、Gemini /models)
- 设为默认提供商
- 文件:
server/service/app/provider.go、server/api/v1/app/provider.go、server/router/app/provider.go
-
T4.1.2 前端:AI 配置页面
- 可视化平台选择器(OpenAI/Claude/Gemini/自定义 四选一)
- 简洁配置表单:选平台 → 填 Key → 填地址 → 测试连接
- 模型卡片管理(预设快捷添加 + 手动添加)
- 提供商卡片列表展示
- 文件:
web-app-vue/src/views/provider/ProviderList.vue、ProviderDialog.vue、ModelDialog.vue
4.2 对话核心功能 ✅
-
T4.2.1 后端:对话管理 API
- 创建对话(选角色卡 → 自动发送首条消息)
- 对话列表(按最近活跃排序,含最后一条消息预览)
- 对话详情(加载全部历史消息)
- 删除对话
- 文件:
server/service/app/chat.go、server/api/v1/app/chat.go、server/router/app/chat.go
-
T4.2.2 后端:消息发送与 AI 回复
- 统一多提供商 AI 客户端(OpenAI/Claude/Gemini)
- SSE 流式响应(基于 Go channel)
- Prompt 构建(系统提示 + 角色卡描述/性格/场景/示例消息 + 历史消息)
- Token 计数记录
- 文件:
server/service/app/ai_client.go
-
T4.2.3 后端:消息操作
- 消息编辑 API
- 消息删除 API
- 重新生成(Regenerate)后端接口已准备
- 文件:同
chat.go
4.3 对话前端页面 ✅
-
T4.3.1 对话列表页
- 角色头像 + 角色名 + 最后一条消息预览 + 时间
- 新建对话入口(弹窗选角色卡)
- 对话删除
- 文件:
web-app-vue/src/views/chat/ChatList.vue
-
T4.3.2 聊天界面
- 消息气泡样式(用户蓝色/角色灰色)
- 输入框 + 发送按钮(Enter 发送、Shift+Enter 换行)
- SSE 流式打字效果(逐字显示 AI 回复)
- 角色头像和名称
- 加载历史消息 + 自动滚动到底部
- 简单 Markdown 渲染(粗体、斜体、代码、换行)
- 文件:
web-app-vue/src/views/chat/ChatView.vue
-
T4.3.3 对话增强(P1,待开发)
- 前端重新生成按钮
- 前端消息编辑 UI
- 复制消息
- 清空对话
⚪ 阶段五:用户体验优化
- 预设管理("创意/平衡/精确"快捷预设)
- 角色卡收藏
- 移动端适配
- 深色/浅色主题
- 消息 Markdown 渲染
- 头像上传
⚪ 阶段六:部署上线
- Docker 容器化
- Nginx 反向代理 + HTTPS
- 数据库备份策略
- 监控与日志
📦 已完成但暂不在主线的功能(代码保留)
| 功能 | 后端 | 前端 | 备注 |
|---|---|---|---|
| 世界书管理 | ✅ | ✅ | 完整 CRUD + 条目管理 |
| 正则脚本 | ✅ | ✅ | 完整正则验证和管理 |
| 扩展系统 | ✅ | ✅ | 安装/启用/设置/资源管理 |
| 扩展运行时 | ✅ | ✅ | SillyTavern 兼容层 + Shim |
| 邮件插件 | ✅ | ✅ | 邮件发送功能 |
📅 开发优先级
P0(必须,阻塞上线):
AI 提供商配置 → 对话功能 → 聊天界面 → Prompt 构建
P1(重要,上线后快速补充):
消息重新生成 → 消息编辑 → 预设管理 → 收藏功能
P2(后续增强):
群聊 → 向量记忆 → 数据迁移 → 扩展系统