计费与额度

XAI XAPI 的计费系统致力于提供透明、灵活且可控的消费管理体验。

信用额度 (CreditBalance)

每个用户的余额并非单一数值,而是由多张「信用额度卡」组成的数组,即 CreditBalance

每张卡片包含以下信息:

  • amount:卡片初始面额
  • balance:卡片当前剩余余额
  • granted_at:授予(充值)时间
  • expires_at:过期时间
  • reference:备注信息,如 "Initial Funding" 或 "Recharge"

消费扣款规则: 系统优先从最早过期且有余额的卡片开始扣款,这种「先进先出」策略可最大化资金使用效率。

额度卡合并策略: 为防止卡片数量过多导致管理混乱,系统自动执行合并策略:

  • 当用户卡片超过 12 张时,系统尝试合并同一天过期的卡片
  • 若卡片数仍过多,进一步合并过期时间相近(如 60 天内)的卡片
  • 合并后新卡的过期时间取被合并卡片中的最晚过期时间

费率 (Rates) 与 价格因子 (Factor)

最终消费金额由以下公式决定:

最终消费 = 基础消费 × 用户费率 (Rates) × 价格因子 (Factor)

  • 基础消费:根据官方模型价卡计算的原始费用,如 gpt-4oprompt_tokens 消费
  • 用户费率 (Rates):父账户为子账户设置的计费倍率
    • 默认值为 1,表示按标准费率计费
    • 若父账户为子账户设置 Rates = 1.2,则该子账户所有消费都会乘以 1.2,父账户可借此获得 20% 利润
    • 子账户的 Rates 不能低于父账户的 Rates
  • 价格因子 (Factor):由 root 管理员设置的系统级全局价格系数,用于全局价格调整,普通用户通常无需关注

充值与扣款逻辑

父账户为子账户充值时,资金转移遵循以下原则:

父账户扣除额度 = 子账户充值额度 / 子账户费率 × 父账户费率

示例

  • 父账户 A (Rates=1.0)
  • 子账户 B (Rates=1.2)

账户 A 为账户 B 充值 $120 时:

  1. 子账户 B 的 CreditBalance 增加 $120
  2. 父账户 A 的 CreditBalance 被扣除 $120 / 1.2 × 1.0 = $100
  3. 差额 $20 即为父账户 A 的潜在利润,会在子账户 B 消费时逐步实现
当修改已有余额的子账户的 `Rates` 时,其现有 `CreditBalance` 中所有卡片的面额和余额都会根据新旧费率比例重新计算,以确保实际购买力保持不变。

额度限制 (HardLimit & SoftLimit)

  • HardLimit:月度消费硬顶,当月消费超过此限制时 API 请求将被拒绝
  • SoftLimit:月度消费软顶,当月消费超过此限制时系统将发送邮件提醒
`HardLimit` 和 `SoftLimit` 仅在用户设置 `AutoQuota = false` 时生效。默认情况下 `AutoQuota = true`,系统会根据余额自动调整额度,无需手动管理。