Files
st-react/docs/功能模块梳理.md
2026-02-28 15:11:12 +08:00

368 lines
16 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 云酒馆 - 功能模块梳理
> 本文档梳理了云酒馆SillyTavern Cloud项目的完整功能模块分为**核心功能**(必须与原版酒馆兼容)和**扩展功能**(基于云端多用户场景的增强)两部分。
>
> 标记说明:✅ 已实现 | 🔧 部分实现 | ⬜ 待实现
---
## 一、核心功能模块(酒馆兼容)
### 1. 角色卡系统 (Character Card)
角色卡是酒馆的核心功能,必须完全兼容 SillyTavern V2 (chara_card_v2) 规范。
| 功能点 | 状态 | 说明 |
|--------|------|------|
| 角色卡 CRUD | ✅ | 创建、读取、更新、删除角色卡 |
| V2 规范字段支持 | ✅ | name, description, personality, scenario, first_mes, mes_example, creator_notes, system_prompt, post_history_instructions, tags, alternate_greetings |
| 角色头像 | ✅ | 头像上传与显示 |
| PNG 导入 | ✅ | 从 PNG 图片中提取嵌入的角色卡数据 (tEXt chunk) |
| JSON 导入/导出 | ✅ | 标准 JSON 格式导入导出 |
| PNG 导出 | ⬜ | 将角色卡数据嵌入 PNG 图片导出 |
| 角色书 (Character Book / Lorebook) | 🔧 | 数据模型已支持 characterBook 字段,但前端编辑器待完善 |
| 备选开场白 (Alternate Greetings) | 🔧 | 数据模型已支持前端切换UI待完善 |
| Extensions 扩展字段 | ✅ | JSON 扩展字段,兼容第三方扩展数据 |
| 角色卡搜索/筛选 | ✅ | 关键词搜索、标签筛选 |
| 批量管理 | 🔧 | 批量删除基础功能,批量导入待完善 |
### 2. 对话系统 (Conversation / Chat)
| 功能点 | 状态 | 说明 |
|--------|------|------|
| 创建对话 | ✅ | 选择角色卡后创建对话会话 |
| 对话列表 | ✅ | 按时间排序、分页加载 |
| 消息发送/接收 | ✅ | 用户输入消息,调用 AI API 获取回复 |
| 流式输出 (SSE Streaming) | ✅ | Server-Sent Events 实时流式显示 AI 回复 |
| 消息重新生成 (Regenerate) | ✅ | 重新生成最后一条 AI 回复 |
| 消息编辑 (Edit) | ⬜ | 编辑已发送的消息内容 |
| 消息删除 | 🔧 | 单条删除已支持,批量删除待实现 |
| 消息滑动 (Swipe) | ⬜ | 同一轮生成多个回复,左右滑动切换(酒馆核心交互) |
| 消息分支 (Branching) | ⬜ | 从任意消息节点创建分支对话 |
| 消息续写 (Continue) | ⬜ | 让 AI 继续上一条未完成的回复 |
| 停止生成 (Stop Generation) | ⬜ | 中途停止 AI 生成 |
| 对话历史导入/导出 | ⬜ | 导出为 JSON / JSONL 格式 |
| 对话标题自动生成 | ⬜ | 根据对话内容自动生成标题 |
| Token 计数显示 | 🔧 | 后端已统计,前端显示待完善 |
| 角色卡信息面板 | ✅ | 右侧面板显示当前角色信息 |
| 聊天背景 | ✅ | 支持自定义背景图片 |
| 主题颜色 | ✅ | 支持自定义主题色 |
### 3. AI 接口管理 (AI API Connection)
| 功能点 | 状态 | 说明 |
|--------|------|------|
| OpenAI API 兼容 | ✅ | 支持 OpenAI 及兼容接口(如各类中转站) |
| Anthropic (Claude) API | ✅ | 原生支持 Anthropic API 格式 |
| 自定义 API (Custom) | ✅ | 可配置任意 OpenAI 兼容的 BaseURL |
| API Key 管理 | ✅ | 加密存储,支持多个 API 配置 |
| 模型列表获取 | ✅ | 根据 API 配置动态获取可用模型 |
| 连接测试 | ✅ | 配置后可测试 API 连通性 |
| 多配置切换 | ✅ | 对话级别切换 AI 提供商和模型 |
| Google AI (Gemini) | ⬜ | 原版酒馆支持,待接入 |
| NovelAI | ⬜ | 原版酒馆支持,待接入 |
| Text Completion API | ⬜ | 原版酒馆支持 text completion 模式(非 chat |
| OpenRouter | ⬜ | 可通过 Custom API 实现,但缺少原生 model 路由支持 |
| Reverse Proxy 支持 | ⬜ | 原版酒馆的反向代理功能 |
### 4. 预设系统 (Presets / Sampler Settings)
| 功能点 | 状态 | 说明 |
|--------|------|------|
| 预设 CRUD | ✅ | 创建、编辑、删除预设 |
| 采样参数 | ✅ | temperature, top_p, top_k, frequency_penalty, presence_penalty |
| 高级采样参数 | ✅ | repetition_penalty, min_p, top_a |
| Max Tokens 设置 | ✅ | 最大生成长度限制 |
| 停止序列 (Stop Sequences) | ✅ | 自定义停止序列 |
| 系统提示词 (System Prompt) | ✅ | 预设级别系统提示词 |
| 默认预设 | ✅ | 设置默认预设 |
| 预设导入/导出 | ✅ | JSON 格式导入导出 |
| 指令模板 (Instruct Mode) | ⬜ | 原版酒馆核心功能:不同模型的 prompt 格式模板 (ChatML, Alpaca, Llama 等) |
| 上下文模板 (Context Template) | ⬜ | 控制角色卡各字段如何组装进 prompt |
| Prompt 排序 (Prompt Order) | ⬜ | 自定义 prompt 各部分的排列顺序 |
| Jailbreak Prompt | ⬜ | 越狱提示词NSFW unlock |
| Token Padding | ⬜ | Token 预留/填充策略 |
### 5. 世界信息/知识书 (World Info / Lorebook)
世界信息是酒馆的核心 RAG 系统,用于根据关键词动态注入背景知识。
| 功能点 | 状态 | 说明 |
|--------|------|------|
| 世界信息 CRUD | ⬜ | 创建、编辑、删除世界信息条目 |
| 关键词触发 (Keyword Trigger) | ⬜ | 消息中出现关键词时自动注入对应条目 |
| 正则匹配触发 | ⬜ | 支持正则表达式匹配触发 |
| 条件激活 (Conditional Activation) | ⬜ | 多条件组合激活策略 |
| 递归扫描 (Recursive Scanning) | ⬜ | 已触发条目内的关键词可继续触发其他条目 |
| 插入位置控制 | ⬜ | 控制条目注入到 prompt 的位置depth |
| 概率触发 | ⬜ | 条目以一定概率触发 |
| Token 预算 | ⬜ | 限制世界信息总 token 消耗 |
| 世界信息导入/导出 | ⬜ | 标准 JSON 格式 |
| 角色绑定 | ⬜ | 世界信息与角色卡绑定 |
| 全局世界信息 | ⬜ | 跨角色生效的全局世界信息 |
### 6. 群聊系统 (Group Chat)
| 功能点 | 状态 | 说明 |
|--------|------|------|
| 创建群聊 | ⬜ | 多个 AI 角色参与的群聊 |
| 角色轮转策略 | ⬜ | 自动/手动选择下一个发言角色 |
| 角色激活/禁用 | ⬜ | 动态控制群聊中角色是否参与 |
| 群聊设置 | ⬜ | 发言顺序、回复长度、触发条件等 |
| 群组角色管理 | ⬜ | 添加/移除群聊角色 |
### 7. 用户人设 (User Persona)
| 功能点 | 状态 | 说明 |
|--------|------|------|
| 人设创建/管理 | ⬜ | 创建多个用户人设档案 |
| 人设切换 | ⬜ | 在不同对话中使用不同人设 |
| 人设描述 | ⬜ | 用户角色的名称和描述,注入 prompt |
| 人设头像 | ⬜ | 用户人设的头像 |
| 默认人设 | ⬜ | 设置默认用户人设 |
---
## 二、Prompt 工程模块(酒馆兼容)
### 8. Prompt 构建系统
酒馆的 prompt 构建是其核心竞争力,必须完整兼容。
| 功能点 | 状态 | 说明 |
|--------|------|------|
| 主系统提示词 (Main System Prompt) | 🔧 | 预设中已支持,独立管理待完善 |
| NSFW 提示词 | ⬜ | NSFW 场景的系统提示词 |
| 角色卡提示词注入 | 🔧 | 基础注入已实现,完整排序策略待完善 |
| 作者注 (Author's Note) | ⬜ | 可在对话中途插入的引导提示 |
| 作者注深度控制 | ⬜ | 控制作者注在 prompt 中的插入位置 |
| 聊天历史截断 | ⬜ | 超出 token 限制时的截断策略 |
| 消息摘要 (Summarization) | ⬜ | 旧消息自动摘要压缩 |
| 自定义提示词排序 | ⬜ | 用户自定义 prompt 各部分的顺序 |
| 宏替换 (Macro Replacement) | ⬜ | `{{char}}`, `{{user}}`, `{{time}}` 等宏变量替换 |
---
## 三、用户系统模块(云端增强)
### 9. 认证与账户
| 功能点 | 状态 | 说明 |
|--------|------|------|
| 用户注册 | ✅ | 用户名 + 密码注册 |
| 用户登录 | ✅ | JWT Token 认证 |
| Token 刷新 | ✅ | 自动刷新过期 Token |
| 登出 | ✅ | 安全登出,清除会话 |
| 个人资料管理 | ✅ | 昵称、邮箱、手机、头像 |
| 修改密码 | ✅ | 旧密码验证后修改 |
| 会话管理 | ✅ | 记录登录 IP、设备信息 |
| 第三方登录 (OAuth) | ⬜ | GitHub、Google 登录UI 已预留) |
| 邮箱验证 | ⬜ | 注册邮箱验证 |
| 找回密码 | ⬜ | 通过邮箱找回密码 |
---
## 四、UI/UX 模块
### 10. 界面与交互
| 功能点 | 状态 | 说明 |
|--------|------|------|
| 深色主题 | ✅ | 默认深色主题OLED 优化 |
| Glassmorphism 设计风格 | ✅ | 毛玻璃效果 |
| 响应式布局 | ✅ | 适配桌面端和移动端 |
| 三栏聊天布局 | ✅ | 侧边栏 + 聊天区 + 角色面板 |
| 消息 Markdown 渲染 | 🔧 | 基础 Markdown 已支持,需增强 |
| 消息代码高亮 | ⬜ | 代码块语法高亮 |
| 聊天背景切换 | ✅ | 自定义上传背景图 |
| 预设背景图库 | ⬜ | 原版酒馆自带的背景图集 |
| 主题切换 (亮色/暗色) | ⬜ | 目前仅暗色主题 |
| 自定义 CSS | ⬜ | 原版酒馆支持用户自定义 CSS |
| 快捷键支持 | ⬜ | 发送消息、新建对话等快捷键 |
| 拖拽排序 | ⬜ | 对话列表、角色排序等拖拽操作 |
| 消息字数/Token 统计面板 | ⬜ | 实时显示 token 用量 |
---
## 五、数据管理模块
### 11. 数据导入导出
| 功能点 | 状态 | 说明 |
|--------|------|------|
| 角色卡 PNG 导入 | ✅ | 从 PNG 提取角色数据 |
| 角色卡 JSON 导入/导出 | ✅ | 标准 JSON 格式 |
| 角色卡 PNG 导出 | ⬜ | 将角色数据嵌入 PNG 导出 |
| 预设 JSON 导入/导出 | ✅ | 预设导入导出 |
| 对话历史导出 | ⬜ | 导出聊天记录 |
| 世界信息导入/导出 | ⬜ | Lorebook 导入导出 |
| CharacterHub 一键导入 | ⬜ | 从 chub.ai 直接导入角色 |
| 完整数据备份/恢复 | ⬜ | 用户全量数据导出与恢复 |
---
## 六、扩展功能模块(未来规划)
以下功能基于云端多用户场景,以及现代 AI 应用趋势进行规划。
### 12. 角色市场 (Character Market)
| 功能点 | 优先级 | 说明 |
|--------|--------|------|
| 公开角色浏览 | 🔧 高 | 已有基础页面,需完善筛选和分类 |
| 角色评分/评价 | ⬜ 高 | 用户对角色卡进行评分和评论 |
| 角色收藏 | ⬜ 高 | 收藏喜欢的角色卡 |
| 角色分类/标签 | 🔧 中 | 完善标签系统和分类导航 |
| 热门/推荐排行 | ⬜ 中 | 按使用量、收藏量、评分排序 |
| 角色创作者主页 | ⬜ 低 | 创作者的个人页面,展示其角色 |
| 角色版本管理 | ⬜ 低 | 角色卡的版本历史和回滚 |
### 13. 社区功能
| 功能点 | 优先级 | 说明 |
|--------|--------|------|
| 预设分享 | ⬜ 中 | 用户分享自己的预设配置 |
| 世界信息分享 | ⬜ 中 | 分享 Lorebook |
| 精彩对话分享 | ⬜ 低 | 分享有趣的对话片段 |
| 社区讨论 | ⬜ 低 | 角色卡下的评论区 |
### 14. 高级 AI 功能
| 功能点 | 优先级 | 说明 |
|--------|--------|------|
| 多模态支持 (Vision) | ⬜ 高 | 发送图片给支持视觉的模型 |
| TTS 语音合成 | ⬜ 中 | AI 回复转语音播放 |
| STT 语音输入 | ⬜ 中 | 语音转文字输入 |
| AI 图片生成 | ⬜ 中 | 集成 Stable Diffusion / DALL-E 在聊天中生成图片 |
| 向量数据库 (RAG) | ⬜ 中 | 更高级的知识检索增强生成 |
| 长期记忆 (Long-term Memory) | ⬜ 中 | 跨对话的角色记忆系统 |
| Function Calling / Tool Use | ⬜ 低 | AI 调用工具能力(天气、搜索等) |
| 多模型混合 (Model Routing) | ⬜ 低 | 不同场景自动选择合适模型 |
### 15. 插件/扩展系统
| 功能点 | 优先级 | 说明 |
|--------|--------|------|
| 插件接口定义 | ⬜ 中 | 标准化的插件 API |
| JS-Slash-Runner 兼容 | ⬜ 中 | 兼容原版酒馆的 slash 命令脚本 |
| 自定义 Regex 脚本 | ⬜ 中 | 正则替换脚本(对 AI 输出进行后处理) |
| 扩展商店 | ⬜ 低 | 在线安装/管理扩展 |
### 16. 用户积分系统 (Credits System)
云端多用户场景下的积分经济体系,用于激励用户参与和控制资源消耗。
| 功能点 | 优先级 | 说明 |
|--------|--------|------|
| **积分消耗** | | |
| 对话 Token 扣费 | ⬜ 高 | 根据 AI 调用的 Token 数量实时扣除积分 |
| 分级计费策略 | ⬜ 高 | 不同模型GPT-4、Claude、Gemini不同费率 |
| 余额不足提醒 | ⬜ 高 | 积分低于阈值时提醒用户充值 |
| 消费记录查询 | ⬜ 中 | 详细的积分消费明细时间、对话、Token、扣费 |
| 每日免费额度 | ⬜ 中 | 每日赠送基础免费 Token 额度 |
| **积分获取** | | |
| 每日签到 | ⬜ 高 | 连续签到获得积分奖励,断签重置 |
| 上传角色卡奖励 | ⬜ 高 | 上传公开角色卡获得积分(审核通过后发放) |
| 角色卡热度奖励 | ⬜ 中 | 角色被收藏/使用达到阈值时额外奖励 |
| 邀请好友 | ⬜ 中 | 邀请新用户注册获得积分 |
| 分享对话 | ⬜ 低 | 分享精彩对话片段获得积分 |
| 社区贡献 | ⬜ 低 | 评论、评分、反馈 Bug 等获得积分 |
| **积分管理** | | |
| 积分余额显示 | ⬜ 高 | 顶部导航栏实时显示当前积分 |
| 积分充值 | ⬜ 高 | 支持在线支付充值积分 |
| 积分套餐 | ⬜ 中 | 不同价格档位的积分包(充值越多单价越低) |
| 积分赠送 | ⬜ 低 | 用户之间转赠积分 |
| 积分有效期 | ⬜ 低 | 充值积分永久有效,赠送积分有效期限制 |
| **数据统计** | | |
| 积分流水账单 | ⬜ 中 | 收入/支出明细,支持导出 |
| Token 消耗统计 | ⬜ 中 | 按时间、模型、角色维度统计 Token 用量 |
| 积分排行榜 | ⬜ 低 | 展示积分最高的用户(可选匿名) |
### 17. 管理后台
| 功能点 | 优先级 | 说明 |
|--------|--------|------|
| 用户管理 | ⬜ 高 | 管理员管理所有用户 |
| 角色审核 | ⬜ 高 | 公开角色的审核机制 |
| 系统配置 | ⬜ 中 | 全局系统参数配置 |
| 数据统计仪表盘 | ⬜ 中 | 用户量、消息量、API 调用量等统计 |
| API 用量监控 | ⬜ 中 | Token 消耗监控和限额管理 |
| 积分系统管理 | ⬜ 中 | 积分费率配置、手动调整用户积分、积分流水监控 |
| 日志管理 | ⬜ 低 | 操作日志和错误日志 |
| 公告系统 | ⬜ 低 | 向用户发布系统公告 |
### 17. 性能与体验优化
| 功能点 | 优先级 | 说明 |
|--------|--------|------|
| 消息虚拟滚动 | ⬜ 高 | 大量消息时的渲染性能优化 |
| 离线缓存 (PWA) | ⬜ 中 | 支持离线访问已缓存的对话 |
| WebSocket 实时通信 | ⬜ 中 | 替代 SSE 的双向通信方案 |
| CDN 加速 | ⬜ 中 | 静态资源 CDN 分发 |
| 图片压缩/懒加载 | ⬜ 中 | 角色头像等图片优化 |
| 国际化 (i18n) | ⬜ 低 | 多语言支持 |
---
## 七、开发优先级建议
### 第一阶段核心兼容P0 - 当务之急)
> 确保与原版酒馆的核心功能对齐
1. **消息滑动 (Swipe)** - 酒馆标志性交互,用户期望最高
2. **世界信息/Lorebook** - 酒馆 RAG 核心,角色扮演深度的关键
3. **指令模板 (Instruct Mode)** - 不同模型的 prompt 格式适配
4. **上下文模板 (Context Template)** - 角色卡信息注入方式
5. **宏替换系统** - `{{char}}`, `{{user}}` 等变量替换
6. **用户人设 (Persona)** - 用户角色设定
7. **消息编辑** - 修改已发送消息
8. **消息续写 (Continue)** - 继续未完成的回复
9. **停止生成** - 中断 AI 生成
### 第二阶段功能完善P1
1. 群聊系统
2. 作者注 (Author's Note)
3. 自定义 Prompt 排序
4. 消息摘要/压缩
5. 角色卡 PNG 导出
6. 对话历史导出
7. 消息分支
8. Token 统计面板
### 第三阶段云端增强P2
1. 角色市场完善(评分、收藏、排行)
2. 管理后台
3. 多模态支持 (Vision)
4. 预设/世界信息分享
5. TTS/STT 语音功能
6. 完整数据备份/恢复
### 第四阶段生态扩展P3
1. 插件/扩展系统
2. AI 图片生成集成
3. 长期记忆系统
4. 社区功能
5. 国际化
6. PWA 离线支持
---
## 八、与原版酒馆的架构差异
| 维度 | 原版 SillyTavern | 云酒馆 |
|------|------------------|--------|
| 部署模式 | 本地单用户 | 云端多用户 |
| 前端 | jQuery + 原生 JS | React + TypeScript |
| 后端 | Node.js + Express | Go + Gin |
| 数据库 | 文件系统 (JSON/PNG) | PostgreSQL + GORM |
| 认证 | 简单密码/无认证 | JWT + 会话管理 |
| AI 调用 | 前端直连 / 后端代理 | 后端统一代理 |
| 数据存储 | 本地文件 | 数据库 + 对象存储 |
| 扩展机制 | iframe + 文件注入 | 插件 API (规划中) |
> **核心原则**:功能上完全兼容原版酒馆的角色卡规范和核心交互体验,架构上利用云端优势进行增强。