Skip to content

OpenAI Plus / Pro 渠道运营

本页面向需要同时运营 OpenAI Plus 与 Pro 账号池的管理员。目标是把两类上游订阅账号隔离成两个可独立授权、定价、监控和下线的产品。

先说结论

推荐使用“两个渠道、两个分组、两套账号池”:

text
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_typeOAuth Token 中识别出的真实 ChatGPT 套餐,例如 pluspro
Sub2API Groupsubscription_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。

推荐命名

使用能同时表达平台、上游类型和产品等级的名称:

对象PlusPro
Accountopenai-plus-01openai-pro-01
Groupopenai-plus-poolopenai-pro-pool
ChannelOpenAI PlusOpenAI Pro
测试 Groupopenai-plus-canaryopenai-pro-canary

不要仅使用 pool-1premium 等无法判断上游来源和套餐等级的名称。

第一步:接入并确认上游账号

在“账号管理”中通过 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:

text
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

实际请求链路是:

text
Plus 用户 Key → openai-plus-pool → Plus OAuth 账号池
Pro 用户 Key  → openai-pro-pool  → Pro OAuth 账号池

操作顺序:

  1. 创建或审核用户。
  2. 根据销售方案授予 Plus Group 或 Pro Group 权限。
  3. 配置余额、Group 订阅和额度。
  4. 创建 Sub2API Key,并绑定对应 Group。
  5. 设置 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 刷新和订阅到期时间。

新增账号

  1. 先加入对应的 canary Group。
  2. 验证套餐标签、模型、流式、usage 和费用。
  3. 从低并发开始观察。
  4. 再加入对应的生产 Group。

套餐发生变化

如果账号从 Plus 升级为 Pro,或从 Pro 降级为 Plus:

  1. 先关闭该账号调度。
  2. 等待活跃请求结束。
  3. 刷新 OAuth 信息并确认新的 plan_type
  4. 从旧 Group 移除。
  5. 加入新套餐的 canary Group 验证。
  6. 验证通过后加入新生产 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:

text
OpenAI Subscription Channel
  ├── openai-plus-pool
  └── openai-pro-pool

两个 Group 仍然可以拥有不同账号池、用户权限、订阅方式和倍率。但是用户侧看到的是一个渠道产品,不适合需要明确销售“Plus”和“Pro”两个等级的场景。

如果只需要内部路由隔离,也可以只创建两个 Group、不创建 Channel;请求仍能按 Group 调度。但公开运营时会缺少独立的渠道展示和渠道级模型、价格策略。

相关文档

本文档用于帮助你理解、部署和运维 Sub2API。使用前请确认上游服务条款与当地法律要求。