# 数据存储地图

# 1. 三类存储

flowchart LR
    A[SQLite 数据库] --- A1[聊天/消息/朋友圈/世界书/预设/挂载/KV/LivePage/MCP]
    B[SharedPreferences] --- B1[API配置/角色列表/面具/注入提示词/知识书元数据/各类设置项]
    C[应用文档目录文件] --- C1[头像与背景等媒体/知识书向量数据/历史归档/导出文件]

# 2. SQLite 主要表

存什么 备注
chats 对话元数据 + 配置 JSON(含角色快照、API 快照、各类开关) 对话是快照制:创建时拷贝角色/API 配置,之后改角色不影响旧对话
messages 消息正文 全文检索走 fts_messages 虚拟表
moments / moment_* 朋友圈动态、配图、点赞、评论
worldbooks 世界书(条目为 JSON 列) 时效状态(sticky/cooldown)与宏变量在 kvdata
presets / preset_mounts 预设与各作用域挂载栈 删除预设会级联清挂载
kvdata 记事本条目、宏变量、世界书时效状态等键值 按对话/分类组织
live_pages / mcp_servers LivePage 页面、MCP 服务器配置

# 3. SharedPreferences(键值配置)

API 配置列表(含密钥,仅本机)、角色配置列表、面具列表、注入提示词、知识书元数据、全局聊天设置(历史条数/最大上行字数/相似度阈值/请求超时等)、主题与界面偏好、悬浮球手势设置、朋友圈自动生成配置等。

# 4. 常见问答依据

  • 「备份与恢复」(设置 → 备份与恢复)覆盖数据库与配置;恢复后建议重启应用。
  • 「删除角色会删对话吗?」 不会——对话持有角色快照,独立存在;但新对话无法再选到该角色。
  • 「密钥安全吗?」 API 密钥只存在本机 SharedPreferences,不进备份分享文件、不进预设(预设只存 API 配置的引用 ID)。
  • 「换手机怎么迁移?」 用备份与恢复导出/导入;媒体文件(头像/背景)在应用文档目录,随备份打包。