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