8000 feat(prices): add Hydrogen/Fable 5.2 rates, retire Credits and compact catalog by InfinityPacer · Pull Request #81 · InfinityPacer/meterleaf · GitHub
[go: up one dir, main page]

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 15 additions & 19 deletions docs/pricing.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@

[返回首页](../README.md)

Meterleaf 将费率保存在独立 JSON 文件中,内置文件为
`prices/meterleaf-2026-10-30.json`,同时包含 OpenAI、Anthropic Claude、Google Gemini 与 Vertex AI 模型,以及通过 OpenCode Go 接入的 DeepSeek 与 GLM 模型。使用自定义价格表时,设置
Meterleaf 将费率保存在独立 JSON 文件中,内置表由声明式源表 `prices/catalog.ts` 通过 `bun run prices:build` 生成到 `prices/meterleaf.json`,并可通过 `bun run prices:check` 与上游公开目录对账。内置范围覆盖 OpenAI、Anthropic Claude、Google Gemini 与 Vertex AI 模型,以及通过 OpenCode Go 接入的 DeepSeek 与 GLM 模型。使用自定义价格表时,设置
`METERLEAF_PRICE_BOOK=/path/to/prices.json` 并重启服务。自定义文件完整替换内置表,不进行隐式合并。

## 版本元数据
Expand All @@ -25,11 +24,11 @@ Meterleaf 将费率保存在独立 JSON 文件中,内置文件为
- `subscription`:订阅等价 USD,默认展示口径。内置规则使用已公布的基础美元费率,不应用长上下文加价。
- `api`:标准 API USD,保留已公布的长上下文档位。

Credits 使用独立规则,不设置 `usdBasis`。两个 USD 分支与 Credits 都由相同用量事实独立计算;界面切换只影响 USD 估算,不改变 Tokens、订阅周期或 Credits。订阅等价 USD 不是订阅账单,也不是固定的 Credits 与美元兑换关系。
内置价格表与界面已下线 Codex 订阅 Credits 费率,只维护订阅等价 USD 与标准 API USD 两个美元分支,存储层与 JSON 校验继续保留 `credits` 字段以兼容历史账本与自定义价格文件。两个 USD 分支由相同用量事实独立计算,界面切换只影响 USD 估算,不改变 Tokens 或订阅周期。订阅等价 USD 不是订阅账单。

来源中的 API 账户只表示接入方式,其真正上游仍可能是订阅账户。
账户类型不会自动切换 USD 口径,也不会排除 Credits 参考估值。
额度与周期依赖实际快照;未提供快照时显示未知,不能据此断言上游没有订阅额度。
账户类型不会自动切换 USD 口径。
额度与周期依赖实际快照,未提供快照时显示未知,不能据此断言上游没有订阅额度。

## Token 与费率

Expand All @@ -42,34 +41,31 @@ Credits 使用独立规则,不设置 `usdBasis`。两个 USD 分支与 Credits

可选的 `peak` 表示供应商公布的时段价,包含 `days`、`hoursUtc` 和替代的 `rates`。`days` 使用 ISO 星期编号,周一为 1、周日为 7;`hoursUtc` 的每个时段从 `from` 开始,到 `until` 前结束,写成 `HH:MM` 的 UTC 时间。判断记录是否处于峰时只看 `occurredAt` 换算后的 UTC 星期和时刻,与服务器或采集机器的本地时区无关。峰时费率是完整价格,不按倍率从基础费率推导;峰时与 `longContext`、`imageRates` 不能配置在同一条规则里,避免两套替代费率互相覆盖。

Sol 的已公布促销价已经写入两个 USD 分支,不再额外乘以 `0.8`;`promotion.confirmedThrough` 只表示至少确认到该日期。Astra Credits 超过 272K 后按选定订阅规则继续使用标准上下文费率。

GPT-5.6 的 Credits 使用对应模型的标准 Token 费率,不套用 API 长上下文加价。

Sol 的已公布促销价已经写入两个 USD 分支,不再额外乘以 `0.8`,`promotion.confirmedThrough` 只表示至少确认到该日期。
图像规则可指定 `imageRates`,分别配置图像输入、缓存读取和输出的费率。
图像 Tokens 是现有输入、缓存和输出总量的子集,计价时先拆出,再按各自费率相加,不重复累计 Tokens。

### 内置价格与缺失规则

具体金额、模型覆盖和来源链接以 [内置价格 JSON](../prices/meterleaf-2026-10-30.json) 为准,文档不另行维护一份费率表。内置表是特定版本的观测快照,不保证与供应商未来价格实时一致。
具体金额、模型覆盖和来源链接以 [紧凑目录源表](../prices/catalog.ts) 及生成的 [内置价格 JSON](../prices/meterleaf.json) 为准,文档不另行维护一份费率表。内置表是特定版本的观测快照,不保证与供应商未来价格实时一致。

Claude 规则使用 Anthropic 公布的 API 价格,订阅等价 USD 与标准 API USD 使用相同基础价,它们都是估值,不是 Claude 订阅账单。只收录官方模型页列出的模型 ID 与别名,其他 Claude 模型保留未计价。Opus 5.5、Opus 5 与 Opus 4.8 的快速模式记为 `priority` 档,按快速模式基础价再叠加缓存倍率。仅限美国推理的 1.1 倍加价和网页搜索按次费用不计入。
Claude 规则使用 Anthropic 公布的 API 价格,订阅等价 USD 与标准 API USD 使用相同基础价,它们都是估值,不是 Claude 订阅账单。只收录官方模型页列出的模型 ID 与别名,其他 Claude 模型保留未计价。Fable 5.2、Opus 5.5、Opus 5 与 Opus 4.8 的快速模式记为 `priority` 档,按快速模式基础价再叠加缓存倍率。Haiku 5.5 在标准 API USD 分支中对超过 100K 总输入的请求套用官方高档费率,订阅等价 USD 保持基础费率。仅限美国推理的 1.1 倍加价和网页搜索按次费用不计入。

GPT-5.4 与 Mini 使用各自规则,不相互继承长上下文档位;未配置的 Fast、Flex 或缓存写入费率不会从标准档推导。Codex 快速模式的 Credits 记为 `priority` 档,按官方公布的倍数配置,GPT-5.6 与 GPT-6 各型号为标准档的 2.5 倍,GPT-6.1 各型号为标准档的 2 倍,GPT-5.4 为 2 倍,GPT-5.4 Mini 未公布,保留未计价。内置表的促销说明只描述该版本已采用的规则,不能据此假设促销结束后的价格。
GPT-5.4 与 Mini 使用各自规则,不相互继承长上下文档位,未配置的 Fast、Flex 或缓存写入费率不会从标准档推导。内置表的促销说明只描述该版本已采用的规则,不能据此假设促销结束后的价格。

内置表覆盖 GPT Image 2、GPT Image 2.5 Sunburst 和 Flare,以及各自已公布的日期快照。两代图像模型配置相同的 USD 和 Credits Token 单价。
内置表覆盖 GPT Image 2、GPT Image 2.5 Sunburst 与 Flare、GPT Image 2.6 Sunburst 与 Flare,以及各自已公布的日期快照。各代图像模型配置相同的 USD Token 单价与图像子桶单价。

通过 OpenCode Go 接入的 DeepSeek V4.1 Flash 使用 Go 公布的每百万 token 价格,并按 Go 公布的峰时规则区分工作日峰时与非峰时。这是该模型目前唯一可用的按 token 计价依据,两个 USD 分支都按它估值。Go 订阅按月计费,不随 token 用量出账,所以这些金额是估值而不是 Go 账单。该模型未公布缓存写入价,含缓存写入的记录保留未计价。

GLM-5.3-Flash 同样按 Go 公布的每百万 token 价格估值,这一价格与智谱公布的官方价相同。没有峰时区分,缓存写入价 Go 未公布,保留未计价。
GLM-5.3 与 GLM-5.3-Flash 同样按 Go 公布的每百万 token 价格估值,这一价格与智谱公布的官方价相同。没有峰时区分,缓存写入价 Go 未公布,保留未计价。

GPT-6.1 Sol 与 Terra 按各自模型页公布的输入、缓存读取、缓存写入与输出价格估值;API 美元分支包含超过 272K 输入后的长上下文档位,订阅等价美元不含。Codex 的 Credits 按官方 Token 费率卡配置;GPT-6.1 Terra 的缓存写入公布的是 30 分钟保留价,Codex 记录没有写入 TTL 拆分,12 小时的另一档价不单独配置。快速模式的 Credits 按官方公布的 2 倍记为 `priority` 档。
GPT-6.1 Sol 与 Terra 按各自模型页公布的输入、缓存读取、缓存写入与输出价格估值,API 美元分支包含超过 272K 输入后的长上下文档位,订阅等价美元不含。

`codex-auto-review` 没有自己的公布价。OpenAI 把 Codex 的自动评审请求路由到 `gpt-6-luna` 执行,所以这个模型按 luna 的公布费率估值,价格说明里写明了这一路由事实。它是估值的依据说明,不是独立费率条目。

Antigravity 使用的模型同样按官方公开的每百万 token 费率估值,不是 Google AI U 10000 ltra 订阅账单。`gemini-4-carbon`、`gemini-4-argon` 与 `gemini-3.8-flash` 采用 Google Gemini API 与 Vertex AI 公布的标准档与 Flex 档价格,按有效日期分段记录促销期与促销结束后的标准费率,官方没有按输入长度分档,未公布按 token 写入单价的缓存写入保留未计价。`claude-opus-5-5` 与 `claude-sonnet-5-5` 使用 Anthropic 官方模型价格,采集器把带思考档位后缀的响应模型名归一到基础模型 ID(`gemini-4-carbon` 的三档响应名同样归一到 `gemini-4-carbon`)。`gpt-oss-120b` 采用 Google Cloud Vertex AI Model Garden 公布的 `openai/gpt-oss-120b-maas` 托管价格,该模型未公布缓存读写折扣,含非零缓存读写的记录保留未计价。历史会话中出现的 `claude-opus-4-6-thinking` 是开启思考的 Opus 4.6,思考 token 按输出计价,归一到 `claude-opus-4-6` 并使用其官方费率。
Antigravity 使用的模型同样按官方公开的每百万 token 费率估值,不是 Google AI Ultra 订阅账单。`gemini-4-hydrogen`、`gemini-4-carbon`、`gemini-4-argon` 与 `gemini-3.8-flash` 采用 Google Gemini API 与 Vertex AI 公布的标准档与 Flex 档价格,其中 `gemini-4-hydrogen` 无促销分段,其余三款按有效日期分段记录促销期与促销结束后的标准费率。`gemini-3.5-flash-lite` 采用官方标准档价格,因其 Flex 档缓存读取价在两处文档存在舍入差异而暂不推断 Flex 档。各款 Gemini 模型均无输入长度分档,当前生效的按 token 缓存写入单价未公布,保留未计价。`claude-opus-5-5` 与 `claude-sonnet-5-5` 使用 Anthropic 官方模型价格,采集器把带思考档位后缀(含 `xhigh`)的响应模型名归一到基础模型 ID。`gpt-oss-120b` 采用 Google Cloud Vertex AI Model Garden 公布的 `openai/gpt-oss-120b-maas` 托管价格,该模型未公布缓存读写折扣,含非零缓存读写的记录保留未计价。历史会话中出现的 `claude-opus-4-6-thinking` 是开启思考的 Opus 4.6,思考 token 按输出计价,归一到 `claude-opus-4-6` 并使用其官方费率。

未配置的模型不会自动别名到其他模型。网关参考价不是已核实的官方报价,也不能用于推导订阅 Credits。图像与实时模型需要相应媒体 Token 分桶,不能用文本四桶冒充完整费用。
未配置的模型不会自动别名到其他模型。网关参考价不是已核实的官方报价。图像与实时模型需要相应媒体 Token 分桶,不能用文本四桶冒充完整费用。

排查缺失金额时,依次核对计价模型、服务档位、币种、USD 口径、有效日期和实际使用的 Token 桶。来源缺价时的零费用不是免费的证据;Meterleaf 保留未知值。

Expand Down Expand Up @@ -106,5 +102,5 @@ Sub2API 的计价模型优先使用 `upstream_model`,缺失时使用源记录
}
```

此示例只定义一个分支。该模型的标准 API USD 和 credits 在补充各自规则前均保持未计价。
缺失规则不会静默回退到另一种币种或 USD 口径。
此示例只定义一个分支。该模型的标准 API USD 在补充规则前保持未计价。
缺失规则不会静默回退到另一种 USD 口径。
4 changes: 2 additions & 2 deletions docs/reporting.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@

支持 PWA 的浏览器可使用原生安装入口,将 Meterleaf 安装为独立窗口。断网后重新打开,或网络卡住 8 秒仍没有响应时,只显示连不上的提示,不显示旧账本;提示页会自动重试,连上后直接打开当前账本,也可以点“重新连接”立即再试。

消耗趋势支持小时、天、周粒度,可切换柱状图、折线图和面积图;饼图展示模型占比,不表示时间变化。USD、Credits 和 Tokens 使用同一份报表结果切换。
消耗趋势支持小时、天、周粒度,可切换柱状图、折线图和面积图,饼图展示模型占比,不表示时间变化。USD 和 Tokens 使用同一份报表结果切换。

## 账户管理

Expand Down Expand Up @@ -66,7 +66,7 @@

金额按大小显示:常规金额保留两位小数,低于一美分时多显示几位有效数字并省略末尾的零,低价模型的单次费用不会都显示成 $0.00。导出文件保留未四舍五入的金额。

Tokens 总量由普通输入、缓存读取、缓存写入和输出组成。推理 Tokens 是输出子集,不能再相加。缺失金额保留未知;可计价部分的合计不代表完整费用。两种美元口径和订阅 Credits 的区别见[计价说明](pricing.md)。
Tokens 总量由普通输入、缓存读取、缓存写入和输出组成。推理 Tokens 是输出子集,不能再相加。缺失金额保留未知,可计价部分的合计不代表完整费用。两种美元口径的区别见[计价说明](pricing.md)。

## 更新与失败提示

Expand Down
4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,9 @@
"test:browser": "bun tests/browser.smoke.ts",
"collector": "bun src/collector/main.ts",
"build:collector": "bun scripts/build-collector.ts",
"build:app": "bun scripts/build-collector.ts --release"
"build:app": "bun scripts/build-collector.ts --release",
"prices:build": "bun scripts/build-prices.ts",
"prices:check": "bun scripts/sync-prices.ts"
},
"dependencies": {
"@base-ui/react": "^1.8.0",
Expand Down
Loading
Loading
0