跳转到正文
Bambuk / 开发文档

计费与配额

理解接口授权、套餐额度、限流和模型用量。

调用前的检查

调用模型接口需要有效的开发者账号、有效订阅以及剩余额度。AppKey 还需绑定对应接口和订阅;拥有 Key 不等于拥有所有模型的调用权。

接口可以处于停用状态。文档仍可阅读,但调用会失败,平台不会因为文档发布就自动赠送额度。

当前计费方式

Bambuk 内置模型目录初始配置为按次计费 per_call,价格由运营者在后台配置。初始占位价格不代表正式免费政策,正式使用前请查看控制台资源包说明。

  • 成功的独立 API 调用按各自的计费配置记录使用量。
  • OCR 后再调用翻译是两个模型请求。
  • HTTP 200 但模型业务返回失败的请求,在网关验证失败后不扣模型调用额度。
  • 超时或网络中断可能发生在模型已执行之后;应通过使用记录核对结果,不盲目自动重试。

Token 的边界

按 token 的接口必须配置模型返回的真实用量字段,例如 usage.total_tokens(输入加输出)或 usage.input_tokens(只计输入),计费口径由运营者明确选择。模型必须实际返回该字段;缺失、负数、小数或无法解析的用量会导致结算失败,不会把未知用量视为 0,也不会用字符估算扣费。模型明确返回 0 时记录 0,不强行提高到最低扣量。

套餐可混合包含按次接口和按 token 接口,各接口额度独立。-1 表示不限量,0 表示不包含;额度必须为整数。单次 token 上限按实际计费字段检查,超出上限的结果不交付且不扣额度,模型可能已经执行,因此应同时在模型侧限制生成长度。

套餐与费用试算

套餐按接口能力独立定价,购买前可调用 POST /api/v1/billing/packages/quote 传入多个 package_ids,取得逐项明细和总价:

{"package_ids":["套餐 UUID 1","套餐 UUID 2"]}

返回的 total_price_cents 使用人民币分,items 包含每个套餐的价格、有效期和配额。当前支付采用“一套餐一订单”,每个接口套餐独立发放额度和计算有效期,便于支付回调、退款和额度结算逐单幂等处理。

管理端和开发者套餐中心均提供用量计算器:

计费方式套餐消耗接口参考费用
按次成功调用次数次数 × 每次单价
按 token每次实际 token 累加token 总量 × 每 token 单价

单价单位是分,展示人民币时除以 100。接口参考费用用于预算,套餐售价是购买套餐的独立价格;消耗套餐额度时不会额外按参考费用再扣一次现金。试算不创建订单。

订阅在购买时保存总额度与单次 token 上限,之后编辑套餐只影响新购买。已用额度由该订阅的原始额度减去剩余额度得到,不会把其他套餐的用量重复扣除。不限量订阅不展示推算的已用额度,请查看调用记录。

已有套餐引用的接口不能直接切换计费单位,需要创建独立接口,避免把 100 次误解为 100 token。上线前既有订阅没有历史快照,只能按迁移时已知套餐额度与余额回填,无法还原过去的套餐修订。

结算与重试

正式网关在同一个数据库事务中锁定订阅、扣减额度并记录使用量,失败时整体回滚。费用在 PostgreSQL 中用十进制计算,存储精度为小数点后 8 位分。同一个服务端请求标识重复执行结算不会再次扣减,并发请求不会把套餐扣成负数。

客户端重新发送请求会生成新的服务端请求标识,仍是一次新的模型调用;这不是 HTTP 响应缓存或请求幂等重放。超时后请先核对调用记录。

限流

限流和套餐配额是不同约束。即使还有剩余额度,请求过快也可能返回 429 RATE_LIMIT_EXCEEDED。减少并发并加入有上限的等待,不在失败时立即递归重试。

具体 QPS、并发、上传大小和有效期以当前部署配置为准,静态文档不替代控制台中的实时规则。

开发者实例与用量归属

一个开发者可以创建多个应用实例,例如生产、测试、移动端和内部服务。套餐额度属于开发者账户,由该开发者的所有实例共享;实例不会各自复制一份套餐额度,也不会因为创建多个实例增加总额度。

每次成功调用同时记录开发者、实例(应用)和模型能力三层信息:

维度用途是否单独扣额度
开发者套餐余额、支付、总额度是,唯一扣减主体
实例 / 应用生产与测试分账、调用来源、密钥管理否,共享开发者余额
模型能力翻译、语音识别、图文识别、语音合成的独立统计按接口计费规则扣减

按次接口每次成功请求扣 1 次;按 token 接口扣模型返回的实际 token;按时长接口扣实际音频秒数。OCR、ASR、TTS 和多语言翻译分别统计,但都从开发者当前有效订阅中扣减。实例用量用于报表和限额管理,不会重复扣减同一笔套餐额度。

建议为生产实例和测试实例分别创建应用,在调用记录中按实例筛选。测试实例消耗的仍是开发者共享额度;如果需要团队或项目之间完全隔离,应创建不同开发者账号或后续配置独立订阅,而不是复制 AppKey。