用户、配额与积分
本页覆盖「用户」大类下的三个标签页:用户(/admin/users)、用户组(/admin/user-groups)、兑换码(/admin/redeem-codes),以及与之联动的按组模型配额、积分系统和每日限额。
用户管理
列表与搜索
- 搜索:按名称或邮箱模糊搜索,输入停止 400 ms 后自动提交(服务端过滤,大用户量下依然完整)。
- 分页:服务端分页,每页 50 条。
- 在线状态:每行左侧的圆点,绿色表示在线。判定标准:最近 5 分钟内发起过带认证的请求(活跃时间最多每分钟刷新一次)。离线用户显示「上次在线」时间,从未登录的显示「从未登录」。
- 行内徽章:角色(普通用户/管理员)、非默认用户组名、非
active状态(如封禁)、以及标记自己账号的「你」。 - 列表支持拖拽调整显示顺序。
新建账号
点「新建用户」,填写:
| 字段 | 要求 |
|---|---|
| 邮箱 | 必填,需为有效邮箱格式 |
| 名称 | 选填 |
| 密码 | 至少 8 个字符 |
| 角色 | 普通用户 / 管理员 |
管理员直接建号免邮箱验证,适合内部部署或为同事开号。
编辑账号
每行的铅笔图标打开编辑弹窗:
| 字段 | 说明 |
|---|---|
| 角色 | 普通用户 / 管理员;不能修改自己的角色 |
| 用户组 | 决定该用户可用的模型与额度 |
| 会员到期 | 日期选择,留空表示永久;到期后回落到之前的用户组 |
| 两步验证 | 仅当该用户已启用 2FA 时出现「重置两步验证」按钮,用于用户丢失验证器设备的场景 |
| 重置密码 | 输入新密码(至少 8 字符)即重置;留空保持原密码 |
| 永久积分 | 直接改写该用户的永久积分余额 |
信息图标(查看信息)打开只读面板:邮箱、角色、状态、用户组与到期时间、永久积分、所在组的积分额度、两步验证状态、最近活跃、创建时间。
封禁、解封与删除
- 封禁是实时全局生效的:旧 token 立即失效、进行中的生成被断流、refresh token 作废,机制详见后台总览。解封按钮在同一位置。
- 删除用户有确认弹窗,不可撤销。
- 自我保护:不能封禁、删除自己。
只读钻取
每行「更多」菜单提供两条只读钻取路径,用于滥用排查与支持工单:
- 对话记录:
/admin/users/:id/conversations,列出该用户全部会话(含已归档),点进单条会话可看完整消息时间线,渲染与用户端完全一致(含推理块、工具卡片、引用、图片),但不提供任何编辑/重生成入口。 - 项目与知识库:
/admin/users/:id/library,该用户的项目、知识库文档与生成图库(图库分页加载)。
用户组
用户组是会员分层的载体:名称、价格与功能清单展示在用户的订阅页;模型权限与用量额度则在模型编辑页按组配置(见下节)。
组字段
| 字段 | 说明 |
|---|---|
| 名称 | 如 Free / Pro / VIP |
| 简短介绍 | 展示在订阅页的一句话 |
| 价格(美元)/ 价格(人民币) | 仅展示用,平台本身不内置支付 |
| 最大项目数 / 最大知识库数 / 最多工作空间数 | 各自 0 = 不限 |
| 每周期积分 | 该组每个周期发放的时效积分,未用完在周期结束时作废 |
| 刷新周期 | 时效积分多久重置一次,单位小时 / 天 / 周 |
| 功能介绍 | 每行一条,订阅页以清单展示(纯营销文案,不产生功能效果) |
| 深度研究 | 开关:允许该组使用深度研究模式 |
| 工作空间 | 开关:允许该组创建工作空间(数量上限见上;0 = 不限) |
| 在订阅页展示 | 关闭后该组从订阅页隐藏,已在组内的用户不受影响 |
- 新注册用户自动归入默认组(列表上有「默认」徽章);默认组不可删除。
- 删除其他组时,组内成员移至默认组,不可撤销。
- 列表支持拖拽排序,影响订阅页的展示顺序。
组列表下方的全局项
同页还承载四个全局设置:
| 设置 | 说明 |
|---|---|
| 每美元积分数(全局) | credits_per_usd:1 美元等于多少积分,是积分系统的总开关,0 = 停用积分 |
| 用户组购买链接(全局) | 订阅页付费组卡片「购买」按钮的跳转地址;留空显示「联系管理员」 |
| 积分补充链接(全局) | 用户购买永久积分的跳转地址 |
| 超额提示 | 用户达到某模型用量上限时显示的文案 |
按组模型配额
在模型编辑页(「模型 > 模型 > 设置」)的「权限」分区,对 chat 与 image 模型逐组配置:
- 授予开关:开启表示该组可用此模型。一旦有任何组被授予,未授予的组就看不到/用不了该模型;全部关闭则模型对所有人无限开放。
- 周期:每 N 天或 N 小时为一个固定窗口。
- 上限类型:二选一。
- 次数:窗口内最多调用多少次;
- 额度:窗口内按模型配价累计的费用上限。
- 上限值:0 表示该周期内无限制。
超出免费额度后的行为:若积分系统已启用(credits_per_usd 大于 0)且用户有余额,该模型对这个用户转为按真实费用扣积分继续使用;积分也不足、或积分系统未启用时,请求被拦截并显示「超额提示」文案。管理员账号与「无任何配额行的模型」不受此限。
典型配置:给 Free 组某模型「每 7 天 20 次」,给该组「每周期积分」发一些时效积分。用户先消耗免费次数,用完后自动转为扣积分,两条额度互相独立。
积分系统
两种积分
| 类型 | 来源 | 生命周期 |
|---|---|---|
| 时效积分 | 用户组「每周期积分」按刷新周期自动发放 | 周期结束未用完即作废 |
| 永久积分 | 管理员在用户编辑页直接设定;或通过「积分补充链接」外部购买后由管理员充值 | 永不过期 |
扣减顺序:先扣时效积分,再扣永久积分。
换算与展示
- 扣费金额 = 该次调用按模型配价算出的费用(美元)×
credits_per_usd。 - 模型选择器对走积分的对话模型显示相对倍率徽标
×N,N =(输入价 + 输出价)÷ 5,保留一位小数,让用户直观比较各模型的贵贱。 - 按张计费的图片模型,当免费次数用尽转为扣积分时,选择器在模型名后显示「N 积分」,N = 单张图片价格 ×
credits_per_usd(例:一张 $0.2,credits_per_usd=100,显示 20 积分)。 - 用户在订阅页可看到时效积分余额(含过期时间)与永久积分余额;每条 AI 回复也记录了本回合消耗。
计费时点:发出即算,失败不算
- 正常完成:计入窗口配额次数,按全额扣积分。
- 用户中途停止:只要模型已产出内容,同样计次,并按已产出 token 的真实费用扣积分。
- 失败或发送前拦截(上游报错、配额超限、内容审核拦截):不计次、不扣分。
积分预检开关
「系统 > 全局设置」中的「预估并拦截余额不足的请求」(默认开启):对走积分的回合,在真实请求装配完成后、发给模型前,预估输入 token(外加固定 2k 输出预留)并换算成积分;若超出用户可用余额(时效 + 永久),直接以「余额不足」拒绝,不产生任何上游消耗。积分系统停用时该逻辑自动跳过。
兑换码
兑换码用于批量发放会员:每个码授予一个用户组与一段有效时长。用户在订阅页输入兑换码完成兑换。
生成批次
点「新建批次」:
| 字段 | 说明 |
|---|---|
| 对应用户组 | 兑换后用户被加入的组 |
| 有效时长(天) | 兑换后会员持续天数;0 = 永久 |
| 单码最大使用次数 | 默认 1(一次性);调大可做多人共享的活动码 |
| 兑换码过期时间 | 过期后未兑换即失效;留空 = 永不过期(注意这是码本身的截止时间,不是会员时长) |
| 批次名称 | 后台内部标签,便于筛选,用户不可见 |
| 备注 | 内部备注 |
| 生成数量 | 1 到 1000,超出范围被拒绝 |
生成后立即弹出本批次全部码,可逐个复制;列表页另有「复制全部未使用」与「导出 CSV」(含码、组、状态、时长、已用次数、批次、备注、时间等列)。
管理与状态
- 筛选:按状态(全部 / 未使用 / 已兑换 / 已禁用 / 已过期)与批次名过滤;列表每页 20 条。
- 状态:未使用、部分使用(多次码用了一部分)、已兑换(用满)、已禁用、已过期。
- 禁用/启用:禁用可逆,保留审计记录,未兑换的码立即失效。
- 删除:删除单码或整个批次,连同兑换记录一起移除,不可撤销;已经授予的会员不受影响,到期自然回落。
- 兑换记录:每个码可查看兑换审计(谁、何时、从哪个组切换)。
兑换行为与限流
- 兑换会把用户立即切换到码对应的用户组(是覆盖,不是叠加续期)。若码的组与用户当前组不同,服务端先返回确认要求,前端弹窗提示「将切换到 X 组」,用户确认后才生效。
- 到期后自动回落到兑换前的用户组。
- 防爆破限流:兑换接口按 IP 限流,默认 60 秒内最多 10 次,可用环境变量
AIVORY_API_RATE_LIMIT_REDEEM_CODE_MAX/AIVORY_API_RATE_LIMIT_REDEEM_CODE_WINDOW调整,见进阶环境变量。
当前版本的兑换码授予的是用户组 + 时长;积分通过用户组的「每周期积分」随组发放,永久积分由管理员在用户编辑页手工调整。想用兑换码发积分,把积分额度配在码对应的用户组上即可。
每日消息与图片限额
全局的每人每日硬限额,与用户组、积分互相独立:
| 项 | 环境变量(首次启动种子) | 默认值 | 后台位置 |
|---|---|---|---|
| 每日消息上限 | DAILY_MESSAGE_LIMIT | 200 | 系统 > 全局设置 > 每日消息上限 |
| 每日图片上限 | IMAGE_DAILY_LIMIT | 30 | 系统 > 全局设置 > 每日图片上限 |
环境变量只在首次启动时作为种子写入设置表;此后运行期以后台设置为准,改后台即改行为,无需重启。环境变量清单见核心环境变量。