跳转到内容

价格归档、精度与模型合并修复验收

日期:2026-10-05。环境:Windows x64、Node.js 24.21.0、Rust 1.98.1。 实现与设计规范见 价格及 看板修正。

根因与修正

问题 已确认根因 修正
大量历史 token 只显示 $0.01 用量表读保留的归档日汇总,当前价只遍历尚存 usage_events;清理明细后费用范围缩小 复用用量查询的归档选择;明细/归档按实例、Agent、原始 provider/model、调用分类、质量和时间互斥
部分同模型缺价 有价模型的事件已归档;GPT 官方快照 ID 和备份/自定义路由前缀也未解析 恢复归档计价、增加有依据的别名,并仅剥离匹配该记录 provider 的自定义命名空间
小额费用丢失 每条事件的各分量提前舍入到分,再累加 保留 i128 整数乘积,按展示日/provider/模型/币种或不可拆分归档周期累计后舍入
相同模型重复行 单价界面每个档位渲染一条模型行,且显示参考供应商而非来源 provider 每个来源 provider/模型一行,多个档位及快照在行内展示;大小写/分隔符及 provider 外围空白一致归组
新旧档位拼接 价目候选跨快照选最高阈值,可能把旧长档与新基础价混用 先确定优先快照,再在该快照内部选档

当前参考在同一 SQLite 读事务中取得用量、价格与修订,不修改真实源数据或历史归档金额。 发生时估算规则标记更新为 official-reference-5,只修正保留明细的尚未归档的日期一次, 后续价目更新仍不重写历史。小时归档选择修正为完整来源分区,活跃的其他模型不再 遮蔽同日已归档的模型。周/月归档复用用量选择规则,不虚构日曲线点。

归档已不包含逐次上下文长度:固定单价可直接计算;多档价显示已知分项的上下界。 旧小时/周/月汇总未保存 uncached 分项时保留部分估算,不能用不同样本的输入/缓存 总和相减。已知总量仍计入覆盖分母,不能把仅输出已计价显示成完整覆盖。 跨动态别名变更日期的不可拆分归档保持型号歧义。

官方依据

2026-10-05 核对官方正文。下表为标准 API 每百万 token 的 USD 参考,不是订阅实付。

型号 未命中输入 / 缓存读 / 输出 依据及处理
gpt-5.5、gpt-5.5-2026-04-23 5 / 0.5 / 30 官方模型页明确列出快照身份及长上下文倍率
gpt-6-sol 2 / 0.2 / 10 官方模型页另列缓存写 2.5;长上下文输入/缓存 2 倍、输出 1.5 倍
glm-5.3-flash 0.15 / 0.03 / 0.50 Z.ai 官方价格,复核既有种子价
glm-5.3 1.4 / 0.26 / 4.4 Z.ai 官方价格,复核既有种子价
k3、k3-256k 3 / 0.3 / 15 Kimi Code 模型表确认 K3 身份;Kimi API 价格及其 Markdown 正文列出 K3 单价
k28-agent-preview 替代参考 0.95 / 0.19 / 4.00 用户确认其为 K2.8 Preview,并明确授权缺价时参考 K2.7;采用 Kimi 官方 kimi-k2.7-code 标准 API 价,界面明确标替代型号

新增 seed-2026-10-05 保存 GPT-5.5/GPT-6 Sol 完整短/长档,从核验日起生效, 不覆盖旧快照;官方条件为输入 大于 272000,整数阈值用 272001。 未知 GPT 日期后缀、未知命名空间、渠道/币种冲突仍拒绝套价。 kimi-for-coding 作为 provider 不改变 k3-256k 的模型身份; 它作为 model 的日期别名与此不同,不能混为同一条映射。

本机只读复算

在只读 SQLite 事务中提取模型、来源类别、日期、token 分项、质量及允许的计数字段; 实例 ID 哈希脱敏,无提示词、源文件路径、账号凭据或原始会话文本。 146 条日汇总导入临时内存库,在副本中模拟全部归档,覆盖 26 个 provider/模型组。 临时数据、脚本、独立计算结果与日志均留在忽略的 build/pricing-root-cause/。

  • kimi-code/k3-256k:本机归档 token 992,415,571,尚存明细仅一条 9,080 token。 原查询只算这一条,确实舍入为 USD 0.01。
  • 按 Asia/Shanghai、2026-01-01 至 2026-10-05 的保留日汇总复算,该组合覆盖 12 个有数据日期、992,424,651 token。新引擎结果 USD 409.65,与独立整数乘法 及相同日分区舍入完全一致。这个范围不等同于用户截图中未明确的选区。
  • kimi-code-owent、kimi-for-coding 下的 k3-256k,以及 kimi-code/k3-256k、kimi-for-coding-backup/k3-256k 均匹配 K3 官方参考。 GLM-5.3/Flash 各本机 provider 分组恢复参考价格;GPT 快照与 Sol 归档显示适用区间。
  • GPT 的部分 Copilot 记录缺可计价 token,仍保留 no_known_usage; 有价格不等于缺失 token 可以补零或补全。未核验的其他型号保持原有缺价。

执行结果与限制

检查 退出码 结果
npm run verify 101 文档、资源、脚本 3 项、界面 21 项、Svelte、fmt 全部通过;进入根工作区 Clippy 时依赖解析失败
cargo test --manifest-path build/pricing-root-cause/rust/crates/core/Cargo.toml --offline --no-fail-fast 0 隔离核心 804 项通过,无失败/忽略;含新增价格 10 项
cargo clippy --manifest-path build/pricing-root-cause/rust/crates/core/Cargo.toml --offline --all-targets -- -D warnings 0 隔离核心无警告
cargo run --manifest-path build/pricing-root-cause/rust/crates/core/Cargo.toml --offline --example live_price_review 0 脱敏日汇总复算与独立期望一致
临时桌面副本 cargo check --workspace --all-targets --locked --offline 0 桌面命令层及核心编译检查通过
临时桌面副本 cargo clippy --workspace --all-targets --locked --offline -- -D warnings 0 全工作区无警告
临时桌面副本 cargo test -p llm-usage-desktop --locked --offline 0 应用单元测试 95 项通过,6 项显式外部/原生测试按既有标记忽略;合计 Rust 899 项通过
npm run build:web 0 前端生产构建通过
npm run test:browser 0 Edge 模拟 IPC 回归通过:单模型多档一行、区间/上界曲线、窄窗无页面溢出,以及原有交互
git diff --check 0 无空白错误;工作区无未跟踪临时产物

根锁文件引用的 foldhash 0.2.1 在当前索引/缓存不可取得;这发生在产品编译之前。 没有修改用户现有依赖或锁文件。为完成业务验证,复制 Rust 源码到根 build/ 中的独立核心工作区,以相同声明依赖离线解析;与原锁文件相比新增的版本仅为 foldhash 0.2.0。这不是原锁文件的完整桌面构建验收。 进一步对照已有差异发现 core-graphics-types、foldhash、option-ext、powerfmt 四条第三方记录的版本都从 0.2.0 改成 0.2.1,但校验和没有变化。 仅在临时 build/pricing-root-cause/app-validation/ 中将四条版本还原为 0.2.0, 保留应用/core 的 0.2.1 及其余锁定记录,完成上表桌面编译、Clippy 与应用单元测试。 这三个命令均附加 --manifest-path build/pricing-root-cause/app-validation/Cargo.toml --target-dir desktop/src-tauri/target, 复用已有编译缓存;源工作区的 Cargo.lock 未改变。 本轮未构建 release 安装包或安装新的桌面程序,未执行原生 WebView2/真实 IPC 验收。

自动回归包括:6 亿缓存 token 保留前后金额一致、明细/归档并存不重计、千次小额 调用累计、272000 边界、归档多档上下界、原始分区隔离、小时筛选、周/月归档、 动态别名跨期、未知拆分覆盖、混合旧/新价目和跨 Agent 同 provider/模型合并。 浏览器截图位于 build/browser-smoke/,其中 unit-prices.png 与 model-archive-range-narrow.png 分别核验合并行和归档区间;模拟 IPC 与真实数据 核心复算分别记录,不能合称原生 GUI 验收。

用户确认后的 K2.8 替代参考

2026-10-05 用户明确确认 k28-agent-preview 是 Kimi K2.8 Preview,并授权没有 官方价目时参考 K2.7。这是本条身份映射与跨型号例外的授权依据,不将其描述为 官方确认的 K2.8 按量价格。Kimi 官方价格 Markdown 正文再次读取成功, kimi-k2.7-code 标准每百万 token:未命中输入 USD 0.95、缓存读 USD 0.19、 输出 USD 4.00,与既有版本化种子一致;不选择 highspeed 的 1.90/0.38/8.00。

身份和价目替代分离:k28-agent-preview 保持来源模型,并识别为 kimi-k2.8-preview;缺精确渠道/同型号官方行时,当前参考才允许使用 kimi-k2.7-code 官方行。本型号价目补入后自动优先;渠道/币种歧义、已有价目 缺分项、未知 token 不通过替代绕过。其他近似型号不匹配;kimi-for-coding 仍按日期解析身份,只有已确认指向 K2.8 的日期适用同一参考规则。 发生时估算不使用跨型号替代,不新增历史修正规则或修改原价快照。

替代型号随金额传递至日曲线数据、模型小计与币种总计,金额卡片显示“替代参考”, 模型详情/单价表显示 K2.8 身份和实际采用的 K2.7 Code 价目,十种语言同步。 新增 pricing_substitutes.rs 四项回归验证:裸 ID/路由别名、精确价优先、官方 供应商与未知/歧义保护、归档前后金额及替代依据一致。固定样本各一百万未命中 输入/缓存读/输出合计 USD 5.14,金额及身份均保留到汇总。

本次增量验证:隔离桌面副本运行 pricing_substitutes、pricing_archives、 model_reference、pricing_v29、dashboard_repair 共 42 项通过(退出 0); 全工作区 Clippy 无警告,Svelte 无错误/警告;界面 21 项、前端构建通过(退出 0)。 浏览器回归通过(退出 0),核验汇总短标记、模型原名、单价身份/替代价分离和窄窗 无页面溢出;截图 build/browser-smoke/cost-substitute-narrow.png。测试数据初次将费用 模型改为 k28 而用量仍为 GPT,导致关联断言失败;统一两路模型身份后通过,未放松断言。 沿用上文临时副本的四条锁记录修复,源工作区锁文件保持不变。