Skip to main content

后台总览

Aivory 的绝大部分运营配置都在管理后台完成:上游渠道与模型、用户与配额、积分与兑换码、内容审核、备份迁移、用量报表等,全部存储在数据库中,保存后即对后续请求生效,无需重启服务。本页介绍后台的进入方式、左侧导航结构,以及权限模型。

进入方式

后台入口有两个,均要求当前账号的角色为 admin:

入口说明
侧栏账号菜单点击聊天界面左下角的账号头像,菜单中的「管理后台」项(盾形图标)仅对管理员可见
直接访问 /admin浏览器地址栏输入 https://你的域名/admin,会自动跳转到「系统 > 全局设置」页

非管理员账号访问任何 /admin 路径都会被直接重定向回首页,页面本身不会渲染,对应的管理 API 也不会被调用。后台左上角的「返回聊天」按钮可随时回到主界面。

移动端访问时,左侧导航收纳进汉堡菜单,点击后从左侧滑出,功能与桌面端一致。

第一个管理员从哪里来

全新部署(用户数为 0)时,访问站点会自动进入首启设置页 /setup,在这里填写邮箱、名字、密码(至少 8 个字符)创建的第一个账号即成为管理员,并自动登录(免邮箱验证)。一旦系统中存在任何账号,/setup 即永久失效(返回 409)。详见首次运行

导航结构一览

左侧导航是 6 个扁平菜单项,每一项聚合若干相关页面;进入后通过内容区顶部的二级标签页切换。下表列出全部页面及其职责:

菜单二级标签路径职责手册
系统全局设置/admin/settings默认/任务/审校模型、上下文压缩、注册开关、每日限额、SMTP站点设置
系统登录方式/admin/oauthOAuth 第三方登录提供商配置站点设置
系统内容审核/admin/moderation全局违规关键词、审核模型、拦截提示语渠道与模型
系统公告/admin/announcement面向全站用户的公告发布站点设置
系统备份与迁移/admin/backup完整库备份 ZIP、站点配置 JSON 导出/导入备份与迁移
模型渠道/admin/channels上游 API 渠道:Base URL + API Key + 协议类型渠道与模型
模型模型/admin/models模型的创建、启停、能力位、定价、按组配额渠道与模型
能力技能/admin/skills管理员维护的技能包,模型按需加载渠道与模型
能力图片风格/admin/image-styles绘图模式的官方风格预设图片生成
能力工具/admin/tools搜索后端、沙箱地址等工具调用配置沙箱部署
能力文档/admin/documents嵌入模型、MinerU 解析、RAG 注入参数、上传限额知识库
能力语音/admin/audio语音相关配置站点设置
用户用户/admin/users搜索、建号、改角色、重置密码、封禁、对话钻取用户、配额与积分
用户用户组/admin/user-groups会员等级:价格、功能、时效积分发放用户、配额与积分
用户兑换码/admin/redeem-codes批量生成兑换码,授予用户组与有效期用户、配额与积分
工作空间工作空间/admin/workspaces团队共享空间的总览与治理工作空间
数据用量/admin/usage逐条 API 调用记录:筛选、排错、删除用量与分析
数据分析/admin/analytics整体使用趋势:总体、分模型、分用户用量与分析

几点导航行为说明:

  • 侧栏项与二级标签按路径前缀高亮:进入深层页面(如某用户的对话记录 /admin/users/:id/conversations,或某模型的设置页 /admin/models/:id)时,所属大类和标签仍保持高亮。
  • 「模型标签」管理页(/admin/model-tags)从模型列表或模型编辑页进入,归属「模型 > 模型」标签。
  • 切换标签只刷新内容区,侧栏与标签栏保持不动。

初始配置动线

一个全新站点的最短配置路径:

  1. 完成 /setup 首启设置,获得管理员账号。
  2. 进入「模型 > 渠道」,添加上游渠道(类型 + Base URL + API Key)。
  3. 进入「模型 > 模型」,在渠道下创建模型(上游模型 ID、名称、定价、能力位),启用后即出现在所有用户的模型选择器中。
  4. 进入「系统 > 全局设置」,指定默认对话模型与任务模型;若要使用知识库,再到「能力 > 文档」指定嵌入模型。

详细步骤见渠道与模型首次运行。若是从旧实例迁移,直接在「系统 > 备份与迁移」导入完整备份,见备份与迁移

权限模型

角色

Aivory 只有两种角色,存储在用户记录的 role 字段:

角色权限
user普通用户:聊天、知识库、项目、订阅页等全部前台功能
adminuser 基础上增加整个管理后台与全部 /api/admin/* 接口

管理员数量不限:可以在「用户 > 用户」页把任何账号的角色改为「管理员」,也可以在新建用户时直接指定角色。后台接口逐一经过 admin 角色校验,前端的路由守卫只是第一道门。

唯一性与自我保护

  • 首启设置页 /setup 只在用户数为 0 时可用,创建的账号自动成为第一个管理员;此后 /setup 永久返回 409,不可能再通过它产生账号。
  • 管理员不能修改自己的角色:编辑自己账号时角色下拉被禁用。这保证了系统总有至少一个管理员,不会被误操作锁死。
  • 管理员不能封禁或删除自己:用户列表中对自己那一行,封禁与删除按钮均不可用。

封禁的实时性

封禁一个用户是即时全局生效的,不依赖 token 过期:

  1. 用户状态写为 banned,同时该用户的 token 版本号自增;
  2. 之后的每个请求在中间件比对 token 版本号,旧 token 立即失效;
  3. 该用户进行中的生成会被广播消息取消,流式回复即时断开;
  4. refresh token 被删除,无法再换发新的 access token。

同一机制也用于「改密后失效全部会话」等场景。操作入口见用户、配额与积分

管理员查看用户数据是只读的

管理员可以从用户列表钻取查看任意用户的对话记录、项目、知识库与生成图库(用于滥用排查与工单支持),但这些页面不渲染任何编辑、重生成、删除消息的入口:看与动在界面层严格分开,管理员要发消息只能用自己的会话。

配置即时生效

后台可配置的内容(渠道密钥、模型、工具、RAG、存储等)都是热更新的:保存后下一次请求即按新配置执行,不需要重启容器。少数例外(如 JWT_SECRET 等环境变量)见核心环境变量