Skip to content
个人作品推荐
栾媛爱动物
播放动物叫声趣味微信小程序
栾媛爱动物微信小程序
微信扫码体验

分组与访问配置(v2)

本文说明如何通过 系统分组相关设置用户分组渠道与模型能力令牌分组 实现按部门(如 PSE / IT)隔离线路与可见模型。与 ext 插件无关。

§1–§5 为通用说明与最小示例;§6 为六条业务线(HSE / PSE / SSE / CSSG / IT / MAE)各含 default / vip 的完整可复制配置(分组倍率、用户可选分组、分组特殊可用分组、auto 顺序)。


1. 前置:分组倍率

系统配置 → 分组与模型定价设置 → 分组相关设置 中,分组倍率 JSON 须包含本方案用到的所有分组名(否则令牌选用某分组时可能被判定为无效分组)。示例:

json
{
  "default": 1,
  "pse": 1,
  "it": 1
}

按需调整倍率数值;键名须与下文「用户可选分组」「渠道分组」「abilities」一致。


2. 分组相关设置(保存)

路径:系统配置 → 分组与模型定价设置 → 分组相关设置

2.1 用户可选分组

新建令牌时下拉可选的分组(全局表:分组名 → 展示名):

json
{
  "default": "默认分组",
  "pse": "PSE",
  "it": "IT"
}

2.2 分组特殊可用分组

用户资料里的「用户分组」 裁剪该用户令牌允许使用的中继分组:在「用户可选分组」的拷贝上执行 删除(-:添加(+: / 无前缀键)

PSE 用户只能用 PSE、不能用 default 与 IT;IT 用户只能用 IT:

json
{
  "pse": {
    "-:default": "不使用默认分组",
    "-:it": "非 IT 通道"
  },
  "it": {
    "-:default": "不使用默认分组",
    "-:pse": "非 PSE 通道"
  }
}

说明:内层 -:分组名 表示从该用户可用列表中移除该分组;值仅为说明文案,不参与解析逻辑。

2.3 自动分组(auto 令牌)

仅当令牌分组为 auto 时生效:按数组从左到右依次尝试分组内是否有可用渠道;且分组须仍在该用户的可用分组集合内。

json
[
  "default",
  "pse",
  "it"
]

注意: auto 可能对同一用户合并多分组线路。若要求 一人严格只走一个分组,请让用户使用 令牌分组留空(跟随用户默认分组)或 固定填 pse / it,而不要使用 auto

保存 分组相关设置


3. 用户管理

为每个账号设置 用户分组(如 PSE 员工 → pse,IT 员工 → it)。
该字段与「分组特殊可用分组」的外层键对应。


4. 渠道管理

  • 为各渠道设置 分组(如 PSE 线路填 pse,IT 线路填 it),与 abilities 中的分组一致。
  • 在渠道或 模型 / 能力 配置中,为对应分组 启用模型abilitiesgroup + model + channel_id)。

请求实际可选用的模型 = 当前使用的中继分组下已启用的模型集合(再与令牌 模型限制 取交集,若该令牌开启了限制)。


5. 令牌管理

  • 用户新建令牌时,分组下拉仅展示对该用户 合法的中继分组(「用户可选分组」经「分组特殊可用分组」裁剪后,且通过分组倍率等校验)。
  • 中继分组决定走哪条渠道集合;该分组下在 abilities 中配置的模型 才会参与选路与计费。
  • 若令牌另设 模型限制model_limits_enabled + model_limits),则在上述集合上再收紧为白名单;不设则使用该分组下全部已启用模型。

6. 完整示例:HSE / PSE / SSE / CSSG / IT / MAE(default 与 vip)

以下方案在六条业务线(HSE、PSE、SSE、CSSG、IT、MAE)上各设 defaultvip 中继分组,并按 用户分组 裁剪可见的中继分组:

用户分组(用户管理)令牌可选的中继分组
hse_defaulthse_default
hse_viphse_defaulthse_vip
pse_defaultpse_default
pse_vippse_defaultpse_vip
sse_defaultsse_default
sse_vipsse_defaultsse_vip
cssg_defaultcssg_default
cssg_vipcssg_defaultcssg_vip
it_defaultit_default
it_vipit_defaultit_vip
mae_defaultmae_default
mae_vipmae_defaultmae_vip

其他业务线的分组一律不可见。配置时 用户可选分组 须包含上表全部中继分组键;分组特殊可用分组 通过 -:分组名 从全量拷贝中删除不允许项。

6.1 分组倍率

倍率均为 1(可按需改数值,键名须与渠道、abilities 一致):

json
{
  "hse_default": 1,
  "hse_vip": 1,
  "pse_default": 1,
  "pse_vip": 1,
  "sse_default": 1,
  "sse_vip": 1,
  "cssg_default": 1,
  "cssg_vip": 1,
  "it_default": 1,
  "it_vip": 1,
  "mae_default": 1,
  "mae_vip": 1
}

6.2 用户可选分组

json
{
  "hse_default": "HSE Default",
  "hse_vip": "HSE VIP",
  "pse_default": "PSE Default",
  "pse_vip": "PSE VIP",
  "sse_default": "SSE Default",
  "sse_vip": "SSE VIP",
  "cssg_default": "CSSG Default",
  "cssg_vip": "CSSG VIP",
  "it_default": "IT Default",
  "it_vip": "IT VIP",
  "mae_default": "MAE Default",
  "mae_vip": "MAE VIP"
}

6.3 分组特殊可用分组

内层 -:xxx 表示从该 用户分组 对应账号的可用中继列表中移除 xxx;值仅为说明文案。

json
{
  "hse_default": {
    "-:hse_vip": "非本档",
    "-:pse_default": "非 PSE",
    "-:pse_vip": "非 PSE",
    "-:sse_default": "非 SSE",
    "-:sse_vip": "非 SSE",
    "-:cssg_default": "非 CSSG",
    "-:cssg_vip": "非 CSSG",
    "-:it_default": "非 IT",
    "-:it_vip": "非 IT",
    "-:mae_default": "非 MAE",
    "-:mae_vip": "非 MAE"
  },
  "hse_vip": {
    "-:pse_default": "非 PSE",
    "-:pse_vip": "非 PSE",
    "-:sse_default": "非 SSE",
    "-:sse_vip": "非 SSE",
    "-:cssg_default": "非 CSSG",
    "-:cssg_vip": "非 CSSG",
    "-:it_default": "非 IT",
    "-:it_vip": "非 IT",
    "-:mae_default": "非 MAE",
    "-:mae_vip": "非 MAE"
  },
  "pse_default": {
    "-:hse_default": "非 HSE",
    "-:hse_vip": "非 HSE",
    "-:pse_vip": "非本档",
    "-:sse_default": "非 SSE",
    "-:sse_vip": "非 SSE",
    "-:cssg_default": "非 CSSG",
    "-:cssg_vip": "非 CSSG",
    "-:it_default": "非 IT",
    "-:it_vip": "非 IT",
    "-:mae_default": "非 MAE",
    "-:mae_vip": "非 MAE"
  },
  "pse_vip": {
    "-:hse_default": "非 HSE",
    "-:hse_vip": "非 HSE",
    "-:sse_default": "非 SSE",
    "-:sse_vip": "非 SSE",
    "-:cssg_default": "非 CSSG",
    "-:cssg_vip": "非 CSSG",
    "-:it_default": "非 IT",
    "-:it_vip": "非 IT",
    "-:mae_default": "非 MAE",
    "-:mae_vip": "非 MAE"
  },
  "sse_default": {
    "-:hse_default": "非 HSE",
    "-:hse_vip": "非 HSE",
    "-:pse_default": "非 PSE",
    "-:pse_vip": "非 PSE",
    "-:sse_vip": "非本档",
    "-:cssg_default": "非 CSSG",
    "-:cssg_vip": "非 CSSG",
    "-:it_default": "非 IT",
    "-:it_vip": "非 IT",
    "-:mae_default": "非 MAE",
    "-:mae_vip": "非 MAE"
  },
  "sse_vip": {
    "-:hse_default": "非 HSE",
    "-:hse_vip": "非 HSE",
    "-:pse_default": "非 PSE",
    "-:pse_vip": "非 PSE",
    "-:cssg_default": "非 CSSG",
    "-:cssg_vip": "非 CSSG",
    "-:it_default": "非 IT",
    "-:it_vip": "非 IT",
    "-:mae_default": "非 MAE",
    "-:mae_vip": "非 MAE"
  },
  "cssg_default": {
    "-:hse_default": "非 HSE",
    "-:hse_vip": "非 HSE",
    "-:pse_default": "非 PSE",
    "-:pse_vip": "非 PSE",
    "-:sse_default": "非 SSE",
    "-:sse_vip": "非 SSE",
    "-:cssg_vip": "非本档",
    "-:it_default": "非 IT",
    "-:it_vip": "非 IT",
    "-:mae_default": "非 MAE",
    "-:mae_vip": "非 MAE"
  },
  "cssg_vip": {
    "-:hse_default": "非 HSE",
    "-:hse_vip": "非 HSE",
    "-:pse_default": "非 PSE",
    "-:pse_vip": "非 PSE",
    "-:sse_default": "非 SSE",
    "-:sse_vip": "非 SSE",
    "-:it_default": "非 IT",
    "-:it_vip": "非 IT",
    "-:mae_default": "非 MAE",
    "-:mae_vip": "非 MAE"
  },
  "it_default": {
    "-:hse_default": "非 HSE",
    "-:hse_vip": "非 HSE",
    "-:pse_default": "非 PSE",
    "-:pse_vip": "非 PSE",
    "-:sse_default": "非 SSE",
    "-:sse_vip": "非 SSE",
    "-:cssg_default": "非 CSSG",
    "-:cssg_vip": "非 CSSG",
    "-:mae_default": "非 MAE",
    "-:mae_vip": "非 MAE",
    "-:it_vip": "非本档"
  },
  "it_vip": {
    "-:hse_default": "非 HSE",
    "-:hse_vip": "非 HSE",
    "-:pse_default": "非 PSE",
    "-:pse_vip": "非 PSE",
    "-:sse_default": "非 SSE",
    "-:sse_vip": "非 SSE",
    "-:cssg_default": "非 CSSG",
    "-:cssg_vip": "非 CSSG",
    "-:mae_default": "非 MAE",
    "-:mae_vip": "非 MAE"
  },
  "mae_default": {
    "-:hse_default": "非 HSE",
    "-:hse_vip": "非 HSE",
    "-:pse_default": "非 PSE",
    "-:pse_vip": "非 PSE",
    "-:sse_default": "非 SSE",
    "-:sse_vip": "非 SSE",
    "-:cssg_default": "非 CSSG",
    "-:cssg_vip": "非 CSSG",
    "-:it_default": "非 IT",
    "-:it_vip": "非 IT",
    "-:mae_vip": "非本档"
  },
  "mae_vip": {
    "-:hse_default": "非 HSE",
    "-:hse_vip": "非 HSE",
    "-:pse_default": "非 PSE",
    "-:pse_vip": "非 PSE",
    "-:sse_default": "非 SSE",
    "-:sse_vip": "非 SSE",
    "-:cssg_default": "非 CSSG",
    "-:cssg_vip": "非 CSSG",
    "-:it_default": "非 IT",
    "-:it_vip": "非 IT"
  }
}

6.4 自动分组(auto

令牌分组填 auto 时,按数组 从左到右 依次尝试;仅会落在该用户 可用中继分组自动分组列表 的交集中(见 GetUserAutoGroup)。全站统一顺序示例(先各线 default,再各线 vip;可按 failover 需求调整顺序,例如让某线 vip 排在同线 default 之前以优先走 VIP 渠道):

json
[
  "hse_default",
  "hse_vip",
  "pse_default",
  "pse_vip",
  "sse_default",
  "sse_vip",
  "cssg_default",
  "cssg_vip",
  "it_default",
  "it_vip",
  "mae_default",
  "mae_vip"
]

例如 pse_default 用户只会命中 pse_defaultpse_vip 用户会在 pse_defaultpse_vip 中按顺序尝试。若要求 一人严格只走单一中继分组,优先使用令牌固定具体分组或留空跟随默认,而非依赖 auto

6.5 配套

  • 用户管理:账号 用户分组 设为 hse_defaulthse_vippse_default、… 之一,与上表外层键一致。
  • 渠道 / abilities:渠道 分组 填上述十二个键之一,与倍率、裁剪逻辑一致。