开始/Billing
计费与扣费机制
Sozdai 采用微单位记账法与“预扣-结算”的双重结算流程,确保高并发调用下的资金安全与扣费精准。
#1. 记账单位 (Micro-Units)
为了绝对避免 JavaScript 浮点数计算产生的精度误差,Sozdai 在数据库底层统一使用 **BigInt(64位整数)** 记录所有余额与扣费。
- 换算单位为:`1 点额度 (Credit) = 1,000,000 微点 (micro-units)`。
- 例如,`0.0015` 额度会存成 `1,500` 微点(0.0015 × 1,000,000)。
#2. “预扣 - 结算” 流程
当用户发起任意 API 请求(如 LLM 对话或图片生成)时,系统会执行以下步骤:
- 预冻结 (Freeze): 系统会先在用户账户中冻结一笔预扣资金(通常为 0.1 额度)。如果用户的“可用余额(总余额 - 已冻结)”不足以支付此预扣,请求将被拒绝,返回 `402 Insufficient Balance` 错误。
- 执行请求 (Execute): 请求被路由并发送到上游渠道,等待上游返回完整回复(或流式生成结束)。
- 最终结算 (Settle): 请求结束后,系统根据最终消耗的实际 tokens 数量或生成张数,精确计算出实际扣除费用(例如 0.002 额度),并立刻释放预冻结的 0.1 额度,将 0.002 额度做最终扣费。
流式计费安全性
哪怕在流式输出(SSE)过程中用户中途关闭了网页或取消了请求,网关仍会捕获到断开事件,并按照已生成的实际 token 数量进行最终扣款结算,确保绝不会漏账。
#3. 计费类别
针对不同的模型和接口,Sozdai 支持以下定价模式:
- 按 Token 计费 (Token-based): 适用于大语言模型(LLM)。输入 Token、输出 Token、缓存写入 Token、缓存读取 Token 的单价可能各自不同(可在模型详情页查看)。
- 按次计费 (Per Call): 适用于图片、音乐和某些视频模型。每次成功生成固定扣除固定点数。
- 按秒计费 (Per Second): 适用于按视频时长收费的高级视频模型。
#4. 失败与退款保障
Sozdai 对您的每一笔额度负责:
- 若请求由于上游错误、超时、触发内容安全等非用户原因失败,**预冻结的额度将全额退还,实际扣费为 0**。
- 对于媒体异步任务,仅在状态变为 `succeeded` 时才扣减实际费用。若任务最终为 `failed`,预扣款项会自动释放并返还可用余额。