为什么 OpenAI 的模式是行业标准
AI 行业面临着许多传统 SaaS 计费无法完全应对的独特挑战。OpenAI 的计费模式同时解决了其中的几个问题。- 可预测的收入与低风险:通过要求 API 使用者预付积分,OpenAI 消除了用户积累无法支付的巨额账单的风险。你能提前收款,用户则在使用服务时消耗积分。
- 对开发者的可扩展性:5 美元的充值门槛很低。随着应用增长,开发者可以自动充值或购买更大的礼包。启动的摩擦几乎为零,但增长的上限是无限的。
- 用户心理学:将积分以法币(美元)计价而不是抽象的“令牌”或“点数”,让价值更加清晰。这就像为 AI 服务设置的银行账户,有助于建立信任并让公司更容易预算。
OpenAI 如何计费
OpenAI 采用两种不同的计费模式,以满足不同用户的需求。- API(按使用计费):API 使用预付法币计价的积分。用户可以为账户充值 5 美元、10 美元、50 美元或更多。虽然积分显示为美元金额,但在 OpenAI 之外没有货币价值。OpenAI 按令牌计费,输入和输出令牌采用不同费率。积分永不过期,当用户余额降至 0 美元时,他们的 API 调用会立即失败。
- ChatGPT Plus、Team 与 Enterprise:这些是统一费率订阅。ChatGPT Plus 每月 20 美元,Team 计划为每位用户每月 25 美元。这些计划有软使用上限,用户会降级为较小模型,而不是完全被阻止。
- 基于消费的费率层级:随着你累计消费更多金额,会解锁更高的 API 限率。这是一种基于信任的访问扩展系统,直接与账单历史挂钩。
| 模型 | 价格 | 输入令牌 | 输出令牌 |
|---|---|---|---|
| GPT-4o | 按使用计费 | $2.50 / 1M | $10.00 / 1M |
| GPT-4o-mini | 按使用计费 | $0.15 / 1M | $0.60 / 1M |
| o1 | 按使用计费 | $15.00 / 1M | $60.00 / 1M |
| 套餐 | 价格 | 类型 |
|---|---|---|
| 免费 | $0 | 限制访问 |
| Plus | $20 / 月 | 具有软上限的订阅 |
| Team | $25 / 用户 / 月 | 按席位订阅 |
| Enterprise | 定制 | 开具发票的计费 |
使其与众不同的地方
OpenAI 的计费策略具备多个关键特性,使其在 AI 服务领域极其有效。- 法币计价积分:积分以美元计价,因此感觉就像是钱,让定价对开发者而言透明且易于理解。
- 永不过期:永不过期的余额减少了“用或失去”的压力。用户更愿意充值更多金额,因为他们知道价值不会消失。
- 多维度计量:输入和输出令牌分别跟踪,但从同一积分余额中扣除。这让 OpenAI 可以将昂贵的输出令牌与较便宜的输入令牌设定不同价格。
- 信任层级:将速率限制与累计消费挂钩,鼓励用户留在平台,并用更好的性能奖励长期客户。
战略优势
该模型创造了强大的正反馈循环。低门槛吸引开发者。预付积分带来即时现金流。按使用量计费确保开发者成功即 OpenAI 成功。订阅部分为非开发者提供稳定、可预测的收入基线。使用 Dodo Payments 构建
你可以使用 Dodo Payments 复刻 OpenAI 的计费模式。我们将使用基于积分的计费来处理 API,使用标准订阅来覆盖 ChatGPT Plus 端。Create a Fiat Credit Entitlement
从 Dodo Payments 仪表板开始创建一个积分授权。这将作为用户的核心余额。
- 积分类型: 法币积分(USD)
- 积分到期: 永不过期
- 结转: 不需要(因为它们永不过期)
- 超额消费: 已禁用
Create Top-Up Products
为不同的积分包创建一次性付款产品。你可以提供 5 美元、10 美元、50 美元和 100 美元选项。将你的法币积分授权附加到每个产品。将每个产品发放的积分以美分为单位设置。例如 50 美元礼包会发放 5000 积分。
Create Usage Meters
创建两个独立的计量器来跟踪令牌使用量。
llm.input_tokens:在tokens属性上使用求和聚合。llm.output_tokens:在tokens属性上使用求和聚合。
计算每积分计量单位
为了匹配 OpenAI 的 GPT-4o 定价(每 1M 输入令牌 2.50 美元),你需要计算 1 美元(100 美分)等于多少令牌。- 输入令牌: 1,000,000 令牌 / $2.50 = 每 $1 400,000 令牌。
- 输出令牌: 1,000,000 令牌 / $10.00 = 每 $1 100,000 令牌。
Handle Balance Depletion
在处理 API 请求之前应检查用户余额。如果余额为零或负数,则返回 402 错误。
处理低余额 Webhook
不要等到用户余额为 0 时才通知他们。使用 Webhook 在余额降到某个阈值时触发电子邮件或应用内通知。Build the ChatGPT Subscription Side (Optional)
如果你想提供类似 ChatGPT Plus 的订阅计划,请在 Dodo Payments 中创建一个单独的订阅产品。这些产品不需要积分授权。对于 Team 计划,通过添加附加组件来实现基于席位的计费,以覆盖每个额外用户。
实施软上限
要复制 OpenAI 的软上限,可以针对订阅用户使用相同的计量器跟踪使用情况,但不将其链接到积分授权。在你的应用逻辑中,检查当前计费周期的使用量。使用 LLM 摄取蓝图加速
上面的步骤展示了如何手动构建和发送使用事件。对于生产部署,LLM 摄取蓝图 提供自动令牌跟踪功能,可直接包装你的 OpenAI 客户端。inputTokens、outputTokens 和 totalTokens,并将它们作为事件元数据发送。请配置你的计量器以在相应的令牌属性上进行聚合。
实施基于消费的费率层级
OpenAI 的费率层级是管理容量的强大方式。你可以通过跟踪客户的累计消费来实现这一点。- 跟踪累计消费: 监听
payment.succeededWebhook,并在数据库中更新该客户的total_spend字段。 - 定义层级: 创建消费金额与速率限制的映射。
- 第 1 层:$0 - $50 消费 -> 每分钟 3 次
- 第 2 层:$50 - $250 消费 -> 每分钟 10 次
- 第 3 层:$250 以上消费 -> 每分钟 50 次
- 执行限制: 在你的 API 中间件中检查客户的层级,并施加相应的速率限制。
完整实现示例:API 代理
在真实场景中,你很可能会有一个位于用户与 LLM 提供方之间的 API 代理。该代理负责认证、积分检查和使用上报。处理边缘情况
构建像 OpenAI 这样复杂的计费系统时,你会遇到需要细致处理的多个边缘情况。竞态条件
如果用户余额非常低并同时发送多个请求,他们可能会在第一条事件处理完成前就超过积分限制。为防止这种情况,你可以实现一个小“缓冲”区,或在请求期间对客户的余额使用分布式锁。事件摄取延迟
Dodo Payments 异步处理事件。这意味着 API 调用与积分扣除之间可能会有轻微延迟。对于大多数使用场景这是可以接受的。如果你需要严格的实时执行,可以维护一个用户余额的本地缓存,并乐观更新它。退款处理
如果你为积分包购买退款,Dodo Payments 会在配置好后自动处理积分授权。然而,你应确保应用逻辑立即反映此更改,以防止用户使用他们已不再拥有的积分。多模型支持
如果你支持多个定价不同的模型,有两个选择:- 分离计量器: 为每个模型创建独立的计量器(例如
gpt-4o.input_tokens、gpt-4o-mini.input_tokens)。 - 权重事件: 使用单个计量器,但在发送到 Dodo 之前将
tokens值乘以一个权重。例如,如果 GPT-4o 的价格是 GPT-4o-mini 的 10 倍,你可以为 GPT-4o 请求发送 10 倍的令牌数。