OpenAI Plus / Pro 渠道运营
本页面向需要同时运营 OpenAI Plus 与 Pro 账号池的管理员。目标是把两类上游订阅账号隔离成两个可独立授权、定价、监控和下线的产品。
先说结论
推荐使用“两个渠道、两个分组、两套账号池”:
OpenAI Plus Channel
└── openai-plus-pool Group
├── Plus OAuth Account 1
└── Plus OAuth Account 2
OpenAI Pro Channel
└── openai-pro-pool Group
├── Pro OAuth Account 1
└── Pro OAuth Account 2用户的 Sub2API Key 绑定 Group,请求由 Group 选择账号;Channel 为关联的 Group 提供对外展示、模型映射、模型限制和基础价格。Channel 不直接选择账号。
不要混淆三种“套餐”
| 所在层级 | 字段或对象 | Plus / Pro 场景中的含义 |
|---|---|---|
| OpenAI 上游账号 | credentials.plan_type | OAuth Token 中识别出的真实 ChatGPT 套餐,例如 plus、pro |
| Sub2API Group | subscription_type | 下游用户在 Sub2API 中按余额使用,还是按日/周/月套餐额度使用 |
| Sub2API Channel | 渠道名称与渠道配置 | 对外展示为“OpenAI Plus”或“OpenAI Pro”,并承载共享模型与基础价格策略 |
subscription_type=subscription 不代表这是 OpenAI Pro 账号,subscription_type=standard 也不代表这是 OpenAI Plus 账号。它们是完全不同的层级。
Group 的 require_oauth_only 只能排除 API Key 类型账号,不能自动区分 Plus 与 Pro。当前需要由运维人员根据账号列表中显示的 plan_type,把账号加入正确的 Group。
推荐命名
使用能同时表达平台、上游类型和产品等级的名称:
| 对象 | Plus | Pro |
|---|---|---|
| Account | openai-plus-01 | openai-pro-01 |
| Group | openai-plus-pool | openai-pro-pool |
| Channel | OpenAI Plus | OpenAI Pro |
| 测试 Group | openai-plus-canary | openai-pro-canary |
不要仅使用 pool-1、premium 等无法判断上游来源和套餐等级的名称。
第一步:接入并确认上游账号
在“账号管理”中通过 OpenAI OAuth 接入账号。OAuth 完成后,检查账号列表中的套餐标签是否为预期的 Plus 或 Pro,再执行账号测试。
账号进入生产池前至少确认:
- 平台为
openai,类型为 OAuth。 plan_type标签与实际购买的上游套餐一致。- Access Token、Refresh Token 和到期信息能够正常维护。
- 账号连接测试、非流式请求和流式请求通过。
- 可用模型、并发和代理出口符合预期。
- 已确认上游服务条款与账号使用方式符合运营要求。
普通 OpenAI API Key 账号使用 API Platform 的独立计费,不会自动使用 ChatGPT Plus 或 Pro 的订阅额度。不要把 API Key 账号放进以 Plus/Pro 命名的账号池。
第二步:创建两个独立 Group
先以 disabled 状态创建 Group,完成测试后再启用。
Plus Group
| 字段 | 建议值 | 说明 |
|---|---|---|
| 名称 | openai-plus-pool | 明确表示 Plus 账号池 |
| 平台 | openai | 决定网关协议和候选账号平台 |
| 状态 | disabled | 验收完成后再改为 active |
| 仅 OAuth 账号 | 开启 | 防止 API Key 账号误入 |
| 独占分组 | 建议开启 | 只向获得授权的用户开放 |
| 订阅类型 | 按下游销售方式选择 | 与 OpenAI Plus 套餐无关 |
| 倍率 | 按销售价格设置 | 与渠道基础价格共同决定最终费用 |
| RPM | 初期保守设置 | 根据真实限流情况逐步调整 |
只加入已经确认 plan_type=plus 的账号。
Pro Group
| 字段 | 建议值 | 说明 |
|---|---|---|
| 名称 | openai-pro-pool | 明确表示 Pro 账号池 |
| 平台 | openai | 不要与兼容 API 或其他平台混用 |
| 状态 | disabled | 验收完成后再改为 active |
| 仅 OAuth 账号 | 开启 | 防止 API Key 账号误入 |
| 独占分组 | 建议开启 | 单独控制 Pro 用户范围 |
| 订阅类型 | 按下游销售方式选择 | 不要因为上游是 Pro 就固定选 subscription |
| 倍率 | 按销售价格设置 | 可与 Plus 独立定价 |
| RPM | 初期保守设置 | 不直接照搬 Plus Group |
只加入已经确认 plan_type=pro 的账号。
账号与 Group 是多对多关系,因此系统允许同一个账号加入多个 Group。但为了保证 Plus/Pro 的成本、容量和故障隔离,不要把同一个生产账号同时放入 Plus 与 Pro Group。账号被上游限流时,所有引用它的 Group 都会受到影响。
第三步:创建两个 Channel
创建两个独立 Channel:
OpenAI Plus Channel → 只关联 openai-plus-pool
OpenAI Pro Channel → 只关联 openai-pro-pool一个 Group 最多只能属于一个 Channel,因此不能让同一个 Group 同时支撑 Plus 和 Pro 两个 Channel。
在每个 Channel 中分别确认:
- 对外展示名称和说明。
- 支持的平台为 OpenAI。
- 关联的是正确 Group。
- 请求模型、上游模型和计费模型的映射。
- 模型基础价格以及是否限制为已定价模型。
- 渠道状态、排序和监控配置。
如果 Plus 与 Pro 只是按同一基础价格进行固定比例加价,可以统一基础价格后使用不同 Group 倍率。如果两者的模型价格结构不同,应分别维护 Channel 模型价格。不要在 Channel 价格和 Group 倍率中重复加入同一层利润,否则会发生重复加价。
第四步:授权用户并创建 Key
实际请求链路是:
Plus 用户 Key → openai-plus-pool → Plus OAuth 账号池
Pro 用户 Key → openai-pro-pool → Pro OAuth 账号池操作顺序:
- 创建或审核用户。
- 根据销售方案授予 Plus Group 或 Pro Group 权限。
- 配置余额、Group 订阅和额度。
- 创建 Sub2API Key,并绑定对应 Group。
- 设置 Key 的有效期、额度和必要的 IP 限制。
用户不会直接选择 Channel。创建 Key 时选错 Group,即使 Channel 展示正确,请求仍会进入错误的账号池。
上线验收
Plus 与 Pro 必须分别使用独立测试 Key 验收,不能只测试其中一个:
- [ ]
/v1/models返回符合该产品预期的模型。 - [ ] 非流式请求成功。
- [ ] 流式请求成功且能正常结束。
- [ ] 实际命中的 Account 套餐类型正确。
- [ ] 请求模型、上游模型和计费模型符合配置。
- [ ] Usage Log 中的 Group、Account、Channel 和费用正确。
- [ ] 用户扣费与账号成本符合定价预期。
- [ ] Plus Group 无可用账号时不会误用 Pro 账号。
- [ ] Pro Group 无可用账号时不会误用 Plus 账号。
- [ ] 停用 Group 后请求被阻断,而不只是渠道页面隐藏。
验收通过后,先启用 Group,再启用 Channel 并授权真实用户。上线初期保持较低并发和 RPM,观察 429、等待队列、成功率、TTFT 和费用后再逐步放量。
日常运营
每日检查
- Plus 与 Pro 的可调度账号数量。
- 429、401、403、5xx 和超时分布。
- 每个 Group 的请求量、成功率、等待数和费用。
- 是否出现 Plus 请求命中 Pro 账号或反向命中的错误归属。
- 上游套餐状态、Token 刷新和订阅到期时间。
新增账号
- 先加入对应的 canary Group。
- 验证套餐标签、模型、流式、usage 和费用。
- 从低并发开始观察。
- 再加入对应的生产 Group。
套餐发生变化
如果账号从 Plus 升级为 Pro,或从 Pro 降级为 Plus:
- 先关闭该账号调度。
- 等待活跃请求结束。
- 刷新 OAuth 信息并确认新的
plan_type。 - 从旧 Group 移除。
- 加入新套餐的 canary Group 验证。
- 验证通过后加入新生产 Group 并恢复调度。
不要只修改账号名称。名称不会改变真实的 plan_type,也不会自动迁移 Group。
下线账号
按照“停止调度 → 等待活跃请求 → 从生产 Group 移除 → 撤销上游凭证 → 归档或删除”的顺序执行。账号可能属于多个 Group,下线前必须检查全部关联关系。
常见错误
把 Group 的 subscription_type 当成 OpenAI 套餐
结果是账号仍可能混用,只改变了下游用户的计费和额度逻辑。应检查 Account 的 plan_type 和账号所属 Group。
两个 Channel 共用一个 Group
数据库约束不允许一个 Group 属于两个 Channel。即使通过错误数据绕过,也无法实现两个独立账号池。正确方式是两个 Channel 分别关联两个 Group。
只停用 Channel
停用 Channel 不会自动停用 Group。Group 仍为 active 且存在可调度账号时,请求仍可能继续执行,并失去该 Channel 提供的映射、限制或价格策略。要停止真实流量,应停用 Group 或摘除账号。
把 Plus 和 Pro 账号放进同一 Group
调度器会在 Group 的候选账号池中选择账号,Channel 名称不会替你区分套餐。需要严格隔离时必须拆分 Group。
什么时候可以共用一个 Channel
如果 Plus 与 Pro 只是内部容量池,对用户而言属于同一个产品,并且共享完全相同的模型映射、模型限制和基础价格,可以让一个 Channel 关联两个 Group:
OpenAI Subscription Channel
├── openai-plus-pool
└── openai-pro-pool两个 Group 仍然可以拥有不同账号池、用户权限、订阅方式和倍率。但是用户侧看到的是一个渠道产品,不适合需要明确销售“Plus”和“Pro”两个等级的场景。
如果只需要内部路由隔离,也可以只创建两个 Group、不创建 Channel;请求仍能按 Group 调度。但公开运营时会缺少独立的渠道展示和渠道级模型、价格策略。
相关文档
- 概念和数据库关系:分组、渠道与模型
- 后台资源创建顺序:后台资源与操作顺序
- OAuth 与上游账号维护:上游账号池运维
- 流量、调度和摘流:分组、流量与调度
- 401、403 与 OAuth 故障:401、403 与 OAuth 失效
- 429、超时与上游异常:429、5xx、超时与流式中断