"""回本计算器的输入。每个场景一个 dict，照着改数字，或者复制一份写你自己的。

价格单位：美元每百万 token。电价：美元每度（kWh）。功率：千瓦，指整机满载功耗。
下面前六个场景的数字取自文章《如果我买显卡自托管 GLM 和 DeepSeek，到底要几年才能回本？》（2026-07），
用来核对计算器和文章算的是同一笔账。最后一个 MY_SETUP 留给你填。
"""

SCENARIOS = [
    dict(
        name='GLM-5.2，8×H200，对标云端 API（不算缓存）',
        hardware_usd=400_000,
        power_kw=10.0, pue=1.2, usd_per_kwh=0.1354,          # 商业电价，含机房 PUE
        compare='api',
        output_tok_per_s=733,                                # 8K 输入 / 1K 输出负载下的整机吞吐
        input_per_output=8,                                   # 每 1 个输出 token 伴随几个输入 token
        cache_hit_rate=0.0,
        price_input=1.40, price_input_cached=1.40, price_output=4.40,
    ),
    dict(
        name='DeepSeek-V4-Flash，2×RTX PRO 6000，对标云端 API（不算缓存）',
        hardware_usd=32_500,
        power_kw=0.85, pue=1.0, usd_per_kwh=0.1844,          # 住宅电价
        compare='api',
        output_tok_per_s=447.48,
        input_per_output=8,
        cache_hit_rate=0.0,
        price_input=0.14, price_input_cached=0.14, price_output=0.28,
    ),
    dict(
        name='GLM-5.2，8×B300，对标 agent 负载的云端 API（92% 输入命中缓存）',
        hardware_usd=(400_000, 500_000),                      # 给一个区间，就算出回本期的区间
        power_kw=14.5, pue=1.2, usd_per_kwh=0.1354,
        compare='api',
        output_tok_per_s=500,
        input_per_output=80_000 / 220,                        # 每轮 8 万输入、220 输出，约 363.64
        cache_hit_rate=0.92,
        price_input=1.40, price_input_cached=0.26, price_output=4.40,
    ),
    dict(
        name='DeepSeek-V4-Flash，2×RTX PRO 6000，对标 agent 负载的云端 API（92% 命中）',
        hardware_usd=32_500,
        power_kw=0.85, pue=1.0, usd_per_kwh=0.1844,
        compare='api',
        output_tok_per_s=230.21,
        input_per_output=80_000 / 220,
        cache_hit_rate=0.92,
        price_input=0.14, price_input_cached=0.0028, price_output=0.28,
    ),
    dict(
        name='GLM-5.2，8×B300，对标 1 个 Coding Plan Max 订阅席位',
        hardware_usd=(400_000, 500_000),
        power_kw=14.5, pue=1.2, usd_per_kwh=0.1354,
        compare='subscription',
        seats=1, usd_per_seat_year=1_344,
    ),
    dict(
        name='GLM-5.2，8×B300，对标同等用量的订阅席位（29 个 Max 席位）',
        hardware_usd=(400_000, 500_000),
        power_kw=14.5, pue=1.2, usd_per_kwh=0.1354,
        compare='subscription',
        seats=29, usd_per_seat_year=1_344,                    # 整机满载产能按席位每周配额折算，至少要 29 个席位
    ),
]

# 填你自己的。compare='my_bill' 表示拿你现在每个月真实付的 API 账单来比，这通常是最该看的一行。
MY_SETUP = dict(
    name='我的情况：一张 5090 跑本地小模型，替代每月的 API 账单',
    hardware_usd=3_000,                    # 显卡或整机报价
    power_kw=0.6, pue=1.0, usd_per_kwh=0.18,
    hours_per_day=8,                       # 机器每天开多久（电费按这个算）
    compare='my_bill',
    monthly_api_bill_usd=150,              # 你现在每月为这部分工作付的 API 费用
)
