desktop/src-tauri/crates/core/src/models_dev.rs
第 1 条注释,第 1 行
desktop/src-tauri/crates/core/src/models_dev.rs:1
//! models.dev 社区目录(`api.json`)→ 价格快照转换(F2 在线刷新,第 2 条注释,第 2 行
desktop/src-tauri/crates/core/src/models_dev.rs:2
//! 规则见 docs/design/desktop-usage/pricing.md 的在线刷新设计。第 3 条注释,第 3 行
desktop/src-tauri/crates/core/src/models_dev.rs:3
//!(空行)第 4 条注释,第 4 行
desktop/src-tauri/crates/core/src/models_dev.rs:4
//! 实测结构(2026-10-01,S24):顶层为 `{ provider_id: { id, name, doc, env,第 5 条注释,第 5 行
desktop/src-tauri/crates/core/src/models_dev.rs:5
//! npm, models: { model_id: ModelEntry } } }`;`ModelEntry.cost` 字段集为第 6 条注释,第 6 行
desktop/src-tauri/crates/core/src/models_dev.rs:6
//! 价格字段包括 input/output/cache_read/cache_write/input_audio/output_audio/reasoning/第 7 条注释,第 7 行
desktop/src-tauri/crates/core/src/models_dev.rs:7
//! tiers/context_over_200k(美元/百万 token,无币种字段);`canonical_model_id`第 8 条注释,第 8 行
desktop/src-tauri/crates/core/src/models_dev.rs:8
//! 形如 `"openai/gpt-6-astra"`,是目录自身的官方归属标注。第 9 条注释,第 9 行
desktop/src-tauri/crates/core/src/models_dev.rs:9
//!(空行)第 10 条注释,第 10 行
desktop/src-tauri/crates/core/src/models_dev.rs:10
//! 过滤约定(以官方按量价为准):第 11 条注释,第 11 行
desktop/src-tauri/crates/core/src/models_dev.rs:11
//! - 官方提供商 = 至少一个模型 `canonical_model_id` 前缀对应的提供商 ID,第 12 条注释,第 12 行
desktop/src-tauri/crates/core/src/models_dev.rs:12
//! 或其 `<id>-cn` 中国区变体;ID 含 `-plan`(coding-plan/token-plan 等订阅第 13 条注释,第 13 行
desktop/src-tauri/crates/core/src/models_dev.rs:13
//! 占位,实测 cost 全 0)整体排除;第 14 条注释,第 14 行
desktop/src-tauri/crates/core/src/models_dev.rs:14
//! - 模型级 input 与 output 同时为 0/缺失 ⇒ 跳过(订阅占位不是价格);第 15 条注释,第 15 行
desktop/src-tauri/crates/core/src/models_dev.rs:15
//! - 分量 0 值 ⇒ NULL(无价),不把目录占位零值当免费价格;第 16 条注释,第 16 行
desktop/src-tauri/crates/core/src/models_dev.rs:16
//! - `cache_write` → `cache_write_5m`(目录无 TTL 分档);`tiers[type=context]`第 17 条注释,第 17 行
desktop/src-tauri/crates/core/src/models_dev.rs:17
//! → `context_threshold_tokens` 行;`context_over_200k` 为重复表达不采用;第 18 条注释,第 18 行
desktop/src-tauri/crates/core/src/models_dev.rs:18
//! audio/reasoning 价格项不导入(reasoning 仍含在输出价格中);第 19 条注释,第 19 行
desktop/src-tauri/crates/core/src/models_dev.rs:19
//! - 行属性:region = cn(-cn 变体)/ global,channel = api,currency = USD,第 20 条注释,第 20 行
desktop/src-tauri/crates/core/src/models_dev.rs:20
//! 字段还包括 service_tier=standard 和 official_vendor=true。第 21 条注释,第 21 行
desktop/src-tauri/crates/core/src/models_dev.rs:21
//! - 单位折算:美元/百万 token ×10⁴ → 百分之一美分/百万 token,四舍五入。第 22 条注释,第 29 行
desktop/src-tauri/crates/core/src/models_dev.rs:29
/// 内置在线刷新来源(唯一;HTTPS GET,不携带任何本地数据)。第 23 条注释,第 32 行
desktop/src-tauri/crates/core/src/models_dev.rs:32
/// 响应体上限(实测约 5.3 MiB;上限防异常膨胀)。第 24 条注释,第 79 行
desktop/src-tauri/crates/core/src/models_dev.rs:79
/// 美元/百万 token → 百分之一美分/百万 token(×10⁴ 四舍五入;0 ⇒ None,第 25 条注释,第 80 行
desktop/src-tauri/crates/core/src/models_dev.rs:80
/// 原始零占位值记为 None,不当作免费价格。第 26 条注释,第 91 行
desktop/src-tauri/crates/core/src/models_dev.rs:91
// 负数或非有限原始价格在快照校验前跳过。第 27 条注释,第 96 行
desktop/src-tauri/crates/core/src/models_dev.rs:96
/// 官方提供商判定:ID 是任一 canonical_model_id 前缀,或为 `<前缀>-cn` 变体;第 28 条注释,第 97 行
desktop/src-tauri/crates/core/src/models_dev.rs:97
/// ID 含 `-plan` 的订阅占位渠道整体排除。第 29 条注释,第 127 行
desktop/src-tauri/crates/core/src/models_dev.rs:127
/// 把 api.json 原文转换为社区价格快照(source_type=community)。第 30 条注释,第 128 行
desktop/src-tauri/crates/core/src/models_dev.rs:128
/// `fetched_at_ms` 为本次成功下载时间(决定快照 ID 日期与行生效起点)。第 31 条注释,第 129 行
desktop/src-tauri/crates/core/src/models_dev.rs:129
/// `raw_hash` 为原始响应内容的 FNV-1a 哈希(快照 ID 组成部分,幂等前提)。第 32 条注释,第 155 行
desktop/src-tauri/crates/core/src/models_dev.rs:155
// 生效起点 = 抓取日期(UTC 零点);目录无价格生效区间。第 33 条注释,第 171 行
desktop/src-tauri/crates/core/src/models_dev.rs:171
// 订阅占位/无价目:跳过第 34 条注释,第 213 行
desktop/src-tauri/crates/core/src/models_dev.rs:213
// 长上下文档:仅 context 类型;同尺寸去重(保首个)。第 35 条注释,第 247 行
desktop/src-tauri/crates/core/src/models_dev.rs:247
// 复用快照文件校验链(区间重叠/非负/枚举等):构造等价 SnapshotFile 再归一化。第 36 条注释,第 295 行
desktop/src-tauri/crates/core/src/models_dev.rs:295
/// 原始响应内容的 FNV-1a 哈希(与 pricing 模块同算法,快照 ID 用)。第 37 条注释,第 304 行
desktop/src-tauri/crates/core/src/models_dev.rs:304
/// 合成目录包括 canonical 标识的 vendorA 和 vendorA-cn 变体,第 38 条注释,第 305 行
desktop/src-tauri/crates/core/src/models_dev.rs:305
/// coding-plan 占位、聚合商(非官方)、零价模型、长上下文档、0 分量。第 39 条注释,第 371 行
desktop/src-tauri/crates/core/src/models_dev.rs:371
// vendorA:m-one 基价 + 272K 档、m-free-cache、m-tiny;vendorA-cn:m-one。第 40 条注释,第 372 行
desktop/src-tauri/crates/core/src/models_dev.rs:372
// m-zero(全 0)与 coding-plan/aggregator 条目被排除。第 41 条注释,第 383 行
desktop/src-tauri/crates/core/src/models_dev.rs:383
// -cn 变体 region=cn,其余 global。第 42 条注释,第 390 行
desktop/src-tauri/crates/core/src/models_dev.rs:390
// 计算为 0.115 × 10^4。第 43 条注释,第 401 行
desktop/src-tauri/crates/core/src/models_dev.rs:401
// 每百万 token 为 USD 10。第 44 条注释,第 402 行
desktop/src-tauri/crates/core/src/models_dev.rs:402
// 每百万 token 为 USD 12.5,记入五分钟档。第 45 条注释,第 403 行
desktop/src-tauri/crates/core/src/models_dev.rs:403
// 目录无 1h 档第 46 条注释,第 411 行
desktop/src-tauri/crates/core/src/models_dev.rs:411
// 每百万 token 为 USD 75。第 47 条注释,第 412 行
desktop/src-tauri/crates/core/src/models_dev.rs:412
// 0 分量 ⇒ NULL(不把占位零值当免费价格)。第 48 条注释,第 420 行
desktop/src-tauri/crates/core/src/models_dev.rs:420
// 极低分项四舍五入:$0.003625/M ×10⁴ = 36.25 → 36。第 49 条注释,第 438 行
desktop/src-tauri/crates/core/src/models_dev.rs:438
// 内容变化 ⇒ 快照 ID 变化(修正须换 ID 的约定前提)。第 50 条注释,第 453 行
desktop/src-tauri/crates/core/src/models_dev.rs:453
// 只有订阅占位(全 0)⇒ 过滤后无价格行,拒绝导入。