调用如何付费

调用先预留最坏情况的费用,然后运行,最后只为模型实际写出的内容付费。

余额永远不会意外变成欠款。所以在调用开始之前,它会先预留最坏情况的费用。调用结束时,扣除实际费用,其余部分立即退回。

从预留到扣费示例
max_tokens
  1. 检查
  2. 预留
  3. 回答
  4. 扣费
Agent 余额$0.50
已预留
$0.0152
已扣费
...
已释放
...

提示词 1,200 个 Token,余额 $0.50

调用开始前,会先按最坏情况预留:完整的提示词,加上 max_tokens 允许的最长回答。你只为模型实际写出的内容付费,其余部分会立即退回。在上限处截断的回答以 finish_reason "length" 结束。不设上限时,预留的是模型的全部输出长度(这里是 128,000 个 Token),余额少时无法覆盖,调用会以 402 insufficient_balance 被拒绝。

步骤

  1. 检查。 检查密钥、Agent、模型和请求体。有任何问题都会立即返回,不收费。
  2. 预留。 从余额中预留出最坏情况的费用:整个提示词加上这次调用允许的最长回答。如果余额不够,会返回 402 insufficient_balance 并附上两个金额,什么都不会运行。
  3. 回答。 模型运行,回答一边写一边流式返回给你。
  4. 扣费。 扣除实际费用,释放预留中剩下的部分。每个带有费用信息的回答都会在 usage.cost 中报告这笔扣费。

预留包括什么

  • 提示词: 文本按约每 3 个字符 1 个 Token 计算,每张图片按 8,000 Token 计算,通过链接发送的文件按模型的整个上下文计算。
  • 回答: max_tokens(在 Responses 上为 max_output_tokens)。不设置时,按模型的全部输出上限计算。
  • 生成的图片: 在 POST /images 上,按请求的每张图片、请求的分辨率和质量计算,没有指定时按模型提供的最大规格计算。参见图片。
  • 价格: 按可能运行这次调用的最贵服务商计算,所以切换到备用服务商时的费用永远不会超过预留金额。
  • 工具循环: 按搜索循环可能执行的每一步计算。用 max_tool_calls 限制它。
  • 至少 $0.001,用于最小的付费调用。调用免费模型不预留任何金额,除非它要联网搜索或读取 PDF。

最重要的一个习惯

把 max_tokens 设为你需要的值。在前沿模型上不设上限地发一句 hello,会预留好几美元;设置 max_tokens: 256 后,只预留不到一美分。它改变的是调用占用的金额,从不改变调用的实际费用。

运行中的调用会占用资金

调用的预留在它运行期间一直被占用,所以同时运行十个长调用就会占用十份预留。GET /balance 中的 spendable_usd 是新调用现在能预留的金额;reserved_usd 是运行中的调用占用的金额。

没有返回费用时

如果调用在回答带回费用之前就被中断(你断开了连接、流中断了,或者该格式本身不带费用),这次调用会在一分钟内根据服务商自己的记录计价。在此之前,它的预留会一直被占用。

本页目录