调度、Worker 与模型网关
独立 API Edge、Core Worker 与近上游供应执行
2026-09-20 用户明确“不修改 uumi 代码”。用户已确认综合路线评审,由 Core 复用 new-api 计量/计价、按响应完整 usage 独立销售结算,正常请求不查询网关日志。下文区分此目标与已交付的 uumi-log-v1 过渡实现;计费代码尚未切换。
三层职责
| 层 | 职责 |
|---|---|
| 产品 Workflow | 步骤依赖、人工选择、项目/批次语义、产品结果 |
| Core 与 Worker | 客户授权、销售价格、额度、持久操作、任务提交与恢复、用量计价与结算 |
| 供应网关 | 供应凭据、模型适配、渠道选择、执行和原协议用量;维护自身网关侧账目 |
目标同步链路为客户 → Edge → 网关,Edge 向 Core 获取授权、客户价格快照与额度预留,收集响应最终用量证据交 Core 计价结算。Core 不处理每个流式分片。异步链路由 Core 持久受理、Worker 调用网关并恢复查询,产品读取有归属限制的状态与结果。
Worker 首期在 Core 仓库,以独立进程运行。若使用数据库任务队列,领取时采用短事务、租约和尝试编号,执行期间不持锁;旧 Worker 更新需版本校验。产品多步骤流程不塞进供应网关,也不因出现 Workflow 就先建通用引擎。
网关边界
独立 new-api 无终端客户,保留内部账号和服务 Key,继续维护真实供应商、渠道与适配,尽量跟随官方升级。Core/Edge 不维护一套重复供应商 SDK,也不共享网关数据库。自研媒体网关保留;按用户后续明确的统一网关目标通过适配接入。具体媒体协议与取消能力先验证,不假定现成支持。
第一版“文本/媒体绝不级联”不再作为约束。恢复多仓不撤销后续已确认的统一供应入口;对无法兼容的媒体能力单列适配任务,不能静默绕过平台权限与计费。
文本标准协议与透传
用户补充:客户可使用 OpenAI Chat/Responses、Anthropic Messages、Gemini 原生等标准格式访问平台。Edge 按核验的标准入口白名单转发路径、允许参数、正文与响应/流式事件;供应商间格式转换由 uumi/new-api 承担,不重复搬入渠道适配器。每种协议的凭据提取/清除、模型定位、终止信号和错误分别验证,不能全部套用 OpenAI 的 [DONE]。uumi 独占供应商适配;Edge 提取其响应的完整用量证据,Core 复用固定 new-api 的计量语义和计价实现,按自己的销售价格计算客户费用。不逐模型从头编写公式。
“透传”仍须经过 Core 权限/预算准入、内部网关凭据替换和用量核对;客户凭据不得继续向供应传递。只支持部署版本和渠道能力已验证的协议/模型组合,不开放任意 URL 或网关管理路由。第二阶段已有隔离捕获验证;NEXT-02 后续已完成隔离真实 Chat 日志 quota 结算,以及四协议真实透传样本。首批离线 usage 计算器已迁入;新的独立结算主链尚未接入,不能继承旧结果冒充完成。
已实现过渡与此前回执假设(退出目标正常主链)
2026-09-20 用户明确:内部模型请求尽量完整透传至 uumi,由 uumi 提供足够的用量与标准计费信息,新平台应用客户折扣/协议价。当时据此设计了网关标准金额回执;目前已基于 uumi 既有 Key 日志接口完成隔离 Chat 闭环。随后用户明确不修改 uumi,真实测试又发现日志查询429,故此过渡方案不再作为目标正常扣费主链。以下回执字段与新增网关能力是此前设计记录,不是继续要求 uumi 实施的任务。详见执行记录。
业务正文与已准入的协议路径、查询参数、协议扩展头保留;Edge 不为计费改写模型请求,也不把供应参数重新序列化成另一套 DTO。客户凭据、Cookie、客户端伪造的内部身份/价格/路由字段和 hop-by-hop 头按安全边界处理,替换为服务凭据及可信操作关联;“完整透传”不等于跳过 Core 准入或开放任意路由。
模型响应正文与 SSE 按原协议返回。内部计费信息独立于客户协议:uumi 提供可认证、可查询、持久保存的最终回执,关联平台 operation/attempt 与网关请求。回执至少包括:
- 执行状态和计量是否最终;尚未确认时返回待核对状态。
- 完整计费项的数量、单位、语义和来源;缓存/推理等维度由网关处理。
- 客户优惠前的标准单价、标准金额、金额单位/精度、价格版本或不可变快照。
- 回执唯一标识与版本,支持相同回执重复获取、去重与冲突检查。
普通调用可随内部响应提供关联信息;流式最终费用在执行结束后才确定,不能预先塞入响应头。最终回执须有独立查询恢复入口,具体附带/回调传输形式由 Contracts 定义,不破坏 OpenAI/Anthropic/Gemini SDK 的标准响应,也不强制缓冲整个流。用户断开连接后仍能按已持久关联找回执行与计费状态。
Core 验证回执来源、归属、完整性、单位、价格快照及重复提交后,应用已固定的客户折扣/协议价并结算;不重复维护供应商计量公式。uumi 现有含 group_ratio 的 quota 不能直接视为优惠前标准金额。调用前还需由 uumi 提供可固定的标准报价/可信上界,Core 应用客户规则后预留额度;改价和超预留的处理需明确。
既有 uumi 对接客户业务
上述“无终端客户”描述的是新平台私有供应网关。用户另有模型对接客户在 uumi 购买供应能力,充值 1:1,使用多组多倍率;当前推荐这些客户暂留 uumi,不与 FDE 客户混同,不因新平台边界立即删除其账户或合并账务。是否复用同一部署或拆实例、如何隔离内部平台凭据与对接客户凭据,仍需单列设计。详见三类客户定价。
错误、计量与恢复
- Core 唯一修改客户积分;网关内部额度和供应成本记录不是客户钱包。
- 供应侧主要重试由网关负责;Edge/Worker 遇到提交结果未知先查询,不能盲目重放收费调用。
- 客户取消意图、供应确认取消、最终用量与退款分别记录。断流、超时、租约到期不等于未执行。
- 操作 ID 与网关请求/任务 ID 必须关联,最终用量包含原始单位和证据来源。缺失时进入核对,不能伪造零费用或精确用量。
- Core 持久记录预留与结算;重复提交不重复入账,执行状态和账务状态分开。
- 预留需有可执行用量上限、报价或追加额度方案,确保高并发情况下预算策略有效。
new-api 原 Relay 将定价、预扣、渠道与退款耦合,Distribute 还包含 Key 模型权限;参考代码必须按职责改造,不能删渠道中间件时连权限校验一起删除。
首个完整闭环
下一条目标文本流:客户 Key → Edge → Core 授权/预留 → 网关 → 流式输出及完整用量证据 → Core 复用 new-api 规则计价并结算。正常链路不读取 /api/log/token。再做 Studio 媒体任务的提交、未知恢复、结果、取消和对账。覆盖响应丢失、进程退出、重复消息、余额不足、超时和断流,再给出实际环境容量报告。