# 云酒馆 - 功能模块梳理 > 本文档梳理了云酒馆(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 (规划中) | > **核心原则**:功能上完全兼容原版酒馆的角色卡规范和核心交互体验,架构上利用云端优势进行增强。