文档

uumi 真实调用与扣费闭环

按预留、网关标准计费、客户费率、多退少补完成隔离真实联调

归档内容,只读,不代表现行方案。现行文档见文档总览。

2026-09-20,按用户确认的流程,完成 Core 校验并预留 → Edge 透传 → uumi 实际调用与标准计费 → Core 客户折扣结算。三次真实供应调用与两类客户的本地钱包扣款均通过,普通响应和 SSE 均已验证。

这是在 NEXT-02 真实协议接入之上的实现增量;用户本轮授权提前推进这条计费链。未因此将 NEXT-03 商业政策、NEXT-04 全套环境、NEXT-05 全部故障验收或生产发布标记完成。

真实结果

模型 claude-haiku-4-5,经 SSH tunnel 到 ow-main 健康实例。专属短期 Key、default 标准组、固定渠道 124,实际记录 group_ratio=1;未修改任何现有客户分组或渠道价格。网关实际镜像沿用 NEXT-02 核验版本。

测试客户 / 场景uumi 标准费用Core 预留客户费率Core 最终消费
Alice / Chat JSON16 quota10 microcredits1/116 microcredits
Bob / Chat JSON16 quota5 microcredits1/28 microcredits
Alice / Chat SSE16 quota10 microcredits1/116 microcredits

每次输入11、输出4 tokens,uumi 总消耗48 quota。Alice 初始测试资金100000,最终99968,累计消费32;Bob 最终99992,累计消费8;两人最终预留均为0。这些测试换算只验证计算与事务,不代表人民币充值比例或正式套餐。

每次模型 API 使用 uumi 原始请求 ID,未暴露额外 X-Edge-Request-Id。Core 保留内部预留/操作主键以处理调用前状态;这些标识不取代模型调用编号。三条网关 request_id 精确查日志并与扣费记录匹配。

实现分工

  • uumi:沿用已有费用计算和消费日志。内部服务 Key 自己的 GET /api/log/token 提供计量、已计算 quota 和价格字段;没有部署或修改 uumi。
  • Edge:新增显式 uumi-log-v1 入口,保留 Chat 原始正文;收到网关 ID 先持久保存关联,结束后读取该 Key 的日志,核对唯一 request_id、模型和流式标志,再保存最终回执并交 Core。仅标准组倍率为1才采用 quota,不对已打折金额倒算基价。
  • Core:复用客户授权、Key 权限、价格快照、原子预留和钱包流水。按 standard_quota 应用客户费率;实际少于预留释放差额,多于预留在不占用其他请求 hold 的前提下补扣。余额或 Key 不足则保留原预留及最终回执,补足后只重试结算。
  • Contracts:独立新增 uumi-billing.openapi.json,0.4.0-uumi.1,保留原冻结切片;真实响应由独立验证器检查结构、回执摘要和金额算术。未发布 SDK。

普通/流式输出完成时,账务可能还在收尾,最终扣费状态以 Core 为准。计费基数直接来自 uumi,Core 没有再写 token/cache/tool 计算公式。

恢复与验证

首次真实模型调用成功,但新回执被旧严格 JSON 校验器拒绝,未发生客户扣款。修复可选字段及原始 JSON 证据支持,保留嵌套重复字段拒绝,然后仅重放已落盘回执完成结算;没有重复请求供应模型。后续两次调用自动完成。

三笔最终回执均重放验证不重复扣费;Core 再次重启后通过 HTTP 查询仍为 settled。最终事件由网关命名空间和 uumi 请求 ID 确定,同一网关收费记录用于另一客户/操作会被拒绝。

代码测试覆盖:预留差额释放、余额足够时补扣、其他请求 hold 保护、余额不足、Key 额度不足、补足后结算、重复/跨操作回执、证据篡改、非标准网关倍率、嵌套重复 JSON。Core 与 Edge 的 Go race/vet/build、既有合成 profile 回归通过;Contracts 新增真实 wire 检查与原全套检查通过。

当前边界与交接

本次是独立本地 Core/Edge/SQLite + 真实远端 uumi 的联调。默认生产入口仍不自动开放;未变更充值、现网客户钱包、渠道、路由或数据库部署。临时服务 Key 已禁用,本地网关密钥删除,Core/Edge/tunnel 进程已关闭;私有测试数据库与回执保留用于复核。

预留为受控估计,不是供应费用硬上限;正式资金换算、客户协议规则和过额处置需 NEXT-03 定版。当前日志接口仅返回有限最近记录,延迟/超窗缺失保持待核对;长期精确查询、完整断流故障矩阵、Worker、七平台 SSO 和生产容量仍未验收。响应头完全丢失时可能拿不到 uumi ID,此类执行未知不自动退款或重发。

代码与运行说明:Core、Edge 各仓 docs/uumi-billing.md;契约及脱敏证据:Contracts docs/uumi-billing.md、docs/evidence/uumi-billing/capture.json;本机统筹记录:coordination/handoffs/UUMI-BILLING/。本轮保持本地修改,未提交、推送或发布。

On this page