/** * 段位与分位数据。 * * **这条分布曲线是建模估算,不是实测的全球数据** —— 插件零上报,我们手上 * 不可能有全球用量。UI 上必须如实标注「估算」,绝不能写成「全球排名」。 * * 推导依据(可复核、可质疑、欢迎提 PR 用真实数据替换): * 1. 实测锚点:一次带工程上下文的 coding agent 调用约 25-30K tokens * (本项目开发期间的真实观测,单次简单问答约 10K) * 2. 使用强度分层:轻度 ≈ 20 次/天、中度 ≈ 80 次/天、重度 ≈ 200 次/天 * 3. 由此得月度总量(含输入/输出/缓存):轻度 ≈ 18M、中度 ≈ 72M、重度 ≈ 180M * 4. 分位点在此基础上按长尾分布铺开:多数人偏轻度,少数重度用户拉长右尾 * * 有更好的公开数据?改这个文件提 PR,说明来源即可。 */ /** 分布曲线的一个锚点:月度总 tokens → 该用量所处的分位(0-1)。 */ export interface DistributionPoint { tokens: number /** 累计分布:用量低于 tokens 的用户占比。 */ percentile: number } /** 曲线版本,随数据更新递增(展示用)。 */ export const DISTRIBUTION_VERSION = '2026-08-16-modeled' /** * 月度 token 用量的累计分布锚点(升序)。 * 两点之间用对数插值 —— 用量是跨数量级的,线性插值会严重失真。 */ export const DISTRIBUTION: readonly DistributionPoint[] = [ { tokens: 500_000, percentile: 0.10 }, { tokens: 2_000_000, percentile: 0.25 }, { tokens: 8_000_000, percentile: 0.40 }, { tokens: 25_000_000, percentile: 0.55 }, { tokens: 60_000_000, percentile: 0.70 }, { tokens: 120_000_000, percentile: 0.82 }, { tokens: 250_000_000, percentile: 0.92 }, { tokens: 600_000_000, percentile: 0.98 }, { tokens: 1_500_000_000, percentile: 0.995 }, ] /** 一个段位。 */ export interface Tier { id: string emoji: string zh: string en: string /** 达到该段位所需的月度 token 下限(含)。 */ min: number } /** * 鲸鱼段位。阈值与上面的分布对齐,所以「段位」和「超过百分之多少」 * 两个说法不会互相打架。 */ export const TIERS: readonly Tier[] = [ { id: 'fry', emoji: '🐟', zh: '小鱼苗', en: 'Fry', min: 0 }, { id: 'reef', emoji: '🐠', zh: '热带鱼', en: 'Reef Fish', min: 5_000_000 }, { id: 'dolphin', emoji: '🐬', zh: '海豚', en: 'Dolphin', min: 25_000_000 }, { id: 'humpback', emoji: '🐋', zh: '座头鲸', en: 'Humpback', min: 80_000_000 }, { id: 'blue', emoji: '🐳', zh: '蓝鲸', en: 'Blue Whale', min: 250_000_000 }, ] /** * token → 汉字的换算比。来源:Kimi 官方文档「1 个 Token 大约相当于 * 1.5-2 个汉字」,取中位 1.75。用于把抽象的 token 数变成有画面感的量级。 */ export const CHARS_PER_TOKEN = 1.75 /** 具象化参照物(字数)。 */ export const REFERENCES = [ { chars: 880_000, zh: '遍《三体》全集', en: 'readings of the Three-Body trilogy' }, { chars: 200_000, zh: '本书', en: 'books' }, { chars: 8_000, zh: '篇公众号长文', en: 'long-form articles' }, ] as const