08_归档04_VOZEB任务卡
OceanWay API Credit Billing R0
Task ID:
API-CREDIT-BILLING-R0状态:LOCAL_IMPLEMENTATION_CANDIDATE / CANDIDATE_EVIDENCE / NOT_FORMAL_TESTBase 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.tsweb/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、账务路由接入和生产切换需要后继独立任务与具名授权。