文档
08_归档04_VOZEB任务卡

OceanWay API Credit Billing R0

Task ID:API-CREDIT-BILLING-R0 状态:LOCAL_IMPLEMENTATION_CANDIDATE / CANDIDATE_EVIDENCE / NOT_FORMAL_TEST Base SHA:5308535d0d6523f687d0a3883f2db7ea33b226e1

用户结果

用户的余额、订阅额度和 API 调用费用由 OceanWay 统一计算。页面继续用两位小数展示,但实际 账本、价格、预占和结算保留高精度十进制值;uumi 只执行模型路由和上游转发。

本轮范围

  • 增加高精度 api_credit 十进制运算,禁止 JavaScript 浮点参与计费;
  • 按输入、输出、缓存 token 计算文本费用;
  • 订阅额度先于充值/开户额度消耗,同类额度按最早到期优先;
  • 增加展示层两位小数格式化函数;
  • 用纯单元测试固定精度、舍入、分配、过期和余额不足行为。

计费事实

  • 余额等价关系:1.00 = 1.00 api_credit;
  • 账本边界使用十进制字符串;内部采用 18 位小数整数表示;
  • UI 格式化不改变账本值;
  • 订阅赠送额度优先,随后使用充值或既有开户额度;
  • uumi 的整数 quota 仅属于上游基础设施,不是用户账本事实源。

非目标

  • 本轮不接入真实 /v1 路由、SSE、new-api、支付、PostgreSQL migration 或生产数据;
  • 不改变现有用户页面文案或公开 API;
  • 不执行真实用户扣费、退款、迁移 Apply、DNS 或部署。

允许修改路径

  • web/src/lib/server/api-credit.ts
  • web/src/lib/server/api-credit.test.ts
  • 本任务包文件。

验收

pnpm exec vitest run src/lib/server/api-credit.test.ts
pnpm exec tsc --noEmit --pretty false
pnpm exec eslint src/lib/server/api-credit.ts src/lib/server/api-credit.test.ts --quiet
git diff --check

正式 Testing、账务路由接入和生产切换需要后继独立任务与具名授权。

On this page