HiHuo
首页
博客
手册
工具
关于
首页
博客
手册
工具
关于
  • 概览

    • K8s 实战学习实验室
    • 服务访问清单
    • K8s-Lab 学习总纲、仓库评估与专家路线图
  • 课程正文

    • 环境验证与第一课:认识你的真实集群
    • 第二课:kubectl apply 之后,到底发生了什么
    • 第三课:调度器如何选节点,为什么 Pod 会 Pending
    • 第四课:Kubernetes 网络、协议分层、VXLAN/IPIP/WireGuard 原理与排障
    • 第五课:NetworkPolicy、零信任网络与流量边界
    • 第六课:身份、认证、授权、准入与 ServiceAccount / RBAC 原理
    • 第七课:ConfigMap 与 Secret 注入模型、更新机制与安全边界
    • 第八课:存储持久化、PV / PVC / StorageClass 与 NFS 原理
    • 第九课:StatefulSet、Headless Service、稳定身份与存储原理
    • 第十课:探针、滚动更新、优雅终止与 PDB 原理
    • 第十一课:requests / limits、QoS、OOM 与驱逐原理
    • 第十二课:HPA、自动扩缩容、指标链路与副本伸缩原理
    • 第十三课:Service、EndpointSlice、kube-proxy、CoreDNS 与服务发现原理
    • 第十四课:Ingress-nginx、反向代理、Host / Path、NodePort 与北南向流量原理
    • 第十五课:HTTPS、TLS、SNI、证书信任与 Ingress 终止原理
    • 第十六课:cert-manager、Ingress 自动签发、证书生命周期与 ACME 工作流原理
    • 第十七课:ACME、Let's Encrypt、HTTP-01 / DNS-01、Orders / Challenges 与生产限制原理
    • 第十八课:大模型全生态,从数据到训练到部署到治理原理
    • 第十九课:大模型数据集、清洗、标注、切分、版本管理与质量治理原理
    • 第二十课:大模型训练、SFT、LoRA、Checkpoint、Adapter 与模型产物原理
    • 第二十一课:大模型推理、量化、KV Cache、vLLM、吞吐/延迟与部署发布链路原理
  • 实验操作记录

    • 本次仓库审查操作记录与命令原理
    • 本轮操作记录:环境验证、集群基线盘点与故障样本采集
    • 本轮操作记录:kubectl apply 主链路实验
    • 本轮操作记录:调度实验与 Pending 排查
    • 本轮操作记录:Kubernetes 网络原理、协议对比与调试实验
    • 本轮操作记录:NetworkPolicy 与零信任网络实验
    • 本轮操作记录:身份、认证、授权、准入实验
    • 本轮操作记录:ConfigMap 与 Secret 注入、更新与安全边界实验
    • 本轮操作记录:存储持久化、PV / PVC / StorageClass 与 NFS 实验
    • 本轮操作记录:StatefulSet、Headless Service 与稳定身份实验
    • 本轮操作记录:探针、滚动更新、优雅终止与 PDB 实验
    • 本轮操作记录:资源模型、QoS、OOM 与 CPU 节流实验
    • 本轮操作记录:HPA 自动扩缩容实验
    • 本轮操作记录:Service、EndpointSlice、CoreDNS 与服务发现排障实验
    • 本轮操作记录:Ingress-nginx、NodePort 与北南向流量实验
    • 本轮操作记录:HTTPS、TLS、自签证书与 Ingress 实验
    • 本轮操作记录:cert-manager 安装、CA 签发与 Ingress 自动证书实验
    • 本轮操作记录:ACME staging、HTTP-01 失败样本与排障实验
    • 本轮操作记录:大模型全生态与基础原理科普文撰写
    • 本轮操作记录:大模型数据集样本与治理文档编写
    • 本轮操作记录:大模型训练与模型产物概念文撰写
    • 本轮操作记录:大模型推理与服务发布概念文撰写

计费模块 — 功能设计与页面规划

一、计费的核心挑战

看似简单: 用了多少 Token,扣多少钱
实际复杂:
  - 每秒上千次 API 调用,每次都要实时扣费
  - 余额不足时要立刻拒绝,不能"先用后付"(预付费场景)
  - 不同模型价格不同,input/output 价格不同
  - 训练按 GPU 时长计费,推理按 Token 计费,存储按天计费
  - 企业客户要后付费月结,个人要预付费
  - 账单要精确到每次 API 调用,可审计
  - 高并发下余额不能扣成负数(超卖风险)

二、计费模型

2.1 四种计费维度

维度计费对象计量单位典型价格
推理 TokenAPI 调用千 Token¥0.002 ~ ¥0.01
GPU 时长训练/独享实例GPU·秒¥3 ~ ¥25 /小时
存储数据集/模型/checkpointGB·天¥0.01 /GB/天
网络大文件下载GB¥0.5 /GB(暂不收)

2.2 Token 计费详解

一次 API 调用的费用计算:

  cost = prompt_tokens × input_price + completion_tokens × output_price

为什么 output 比 input 贵?
  input: GPU 并行处理所有 Token(prefill 阶段),效率高
  output: GPU 逐个生成 Token(decode 阶段),每个都要一次前向推理

价格表:

模型                  Input (¥/百万Token)  Output (¥/百万Token)
─────────────────────────────────────────────────────────────
Llama-3.2-1B          0.5                  1.5
Llama-3.2-3B          1.0                  3.0
Qwen2.5-7B            2.0                  6.0
Qwen2.5-14B           5.0                  15.0
Qwen2.5-72B           10.0                 30.0
DeepSeek-V3           10.0                 30.0
BGE-M3 (Embedding)    0.3                  — (无输出)
Whisper (语音)         ¥0.1/秒音频          —
─────────────────────────────────────────────────────────────

一次典型对话的费用:
  模型: Qwen2.5-7B
  prompt: 500 tokens (含 system + 历史对话 + 用户问题)
  completion: 200 tokens (模型回答)
  费用 = 500 × 2.0/1,000,000 + 200 × 6.0/1,000,000
       = ¥0.001 + ¥0.0012
       = ¥0.0022 (约 0.2 分钱)

每天 10 万次调用 ≈ ¥220/天 ≈ ¥6,600/月

2.3 GPU 时长计费详解

训练任务:
  费用 = GPU型号单价 × GPU卡数 × 运行秒数

  价格表:
  GPU 型号          单价 (¥/小时)    单价 (¥/秒)
  A10 24G           5.00            0.00139
  A100 40G          12.00           0.00333
  A100 80G          18.00           0.00500
  H100 80G          25.00           0.00694

  计费粒度: 秒级(最低 1 分钟)

独享推理实例:
  费用 = GPU型号单价 × GPU卡数 × 运行时长
  从实例创建到销毁全程计费(即使没有请求)

  示例: 独享 Qwen-7B on A10
    费用 = ¥5.00/h × 1卡 × 24h = ¥120/天
    对比共享推理: 如果日均 5 万次调用
      共享费用 = 5万 × ¥0.0022 = ¥110/天
    结论: 日均 > 5.5 万次时独享更划算

2.4 套餐设计

┌────────────────────────────────────────────────────────────────┐
│ 免费版          基础版           专业版           企业版         │
│ Free            Starter         Pro              Enterprise    │
│ ¥0/月           ¥99/月          ¥999/月          联系销售       │
├────────────────────────────────────────────────────────────────┤
│ ¥10 赠送额度    ¥100 额度/月     ¥1,200 额度/月   定制          │
│ 超出不可用      超出按量付费     超出按量 9折      超出按量 8折   │
│                                                                │
│ 1 成员          5 成员           20 成员          不限           │
│ 2 API Key       10 API Key      50 API Key       不限           │
│ 1GB 存储        10GB 存储        100GB 存储       不限           │
│ 10 RPM          100 RPM         1000 RPM         定制           │
│                                                                │
│ 无 SLA          99% SLA         99.9% SLA        99.95% SLA   │
│ 社区支持        邮件支持         专属客服          专属技术经理   │
│                 训练功能         训练 + 独享       全部功能       │
│                                  灰度发布          多集群        │
│                                                   SSO/审计      │
│                                                   私有部署       │
│                                                                │
│ [开始使用]      [立即订阅]       [立即订阅]        [联系我们]    │
└────────────────────────────────────────────────────────────────┘

额度说明:
  套餐包含的额度 = 抵扣余额,每月重置,不累积
  超出部分 = 从充值余额中扣除
  示例: Pro 套餐 ¥999/月含 ¥1,200 额度
    本月用了 ¥1,500 → 套餐抵扣 ¥1,200 + 余额扣 ¥300×0.9 = ¥270

三、账户体系

3.1 账户结构

组织账户
├── 套餐: Pro (¥999/月)
├── 套餐额度: ¥1,200/月 (本月剩余 ¥456)
├── 充值余额: ¥2,350.00
├── 赠送余额: ¥0.00 (已用完)
├── 信用额度: ¥0.00 (企业客户可开通)
└── 扣费优先级: 赠送 → 套餐额度 → 充值余额 → 信用额度

扣费顺序很重要:
  1. 先扣赠送余额(吸引试用,消耗完无损失)
  2. 再扣套餐额度(套餐费已付,不用白不用)
  3. 最后扣充值余额(真金白银)
  4. 信用额度(企业后付费)

3.2 充值方式

方式适用到账手续费
支付宝个人/小额实时0.6% (平台承担)
微信支付个人/小额实时0.6% (平台承担)
Stripe海外/信用卡实时2.9% + $0.30
银行转账企业/大额1-3 工作日无
对公转账企业/合同人工审核无
充值金额档位:

¥50    ¥100   ¥500   ¥1,000   ¥5,000   ¥10,000   自定义

优惠策略:
  ¥500+    赠 5%
  ¥1,000+  赠 8%
  ¥5,000+  赠 12%
  ¥10,000+ 赠 15%

  示例: 充 ¥1,000 → 到账 ¥1,080 (赠送 ¥80)
  赠送部分有效期 6 个月,过期失效

3.3 余额不足策略

余额预警:
  阈值 1: 余额 < ¥50         → 邮件/站内通知 (每天一次)
  阈值 2: 余额 < ¥10         → 短信通知 (每天一次)
  阈值 3: 余额 = ¥0          → 拒绝请求,返回 402 Payment Required

拒绝请求时的响应:
{
  "error": {
    "type": "insufficient_balance",
    "message": "账户余额不足,请充值后继续使用",
    "code": "billing_insufficient_funds",
    "balance": 0.00,
    "required": 0.002
  }
}

企业客户信用额度:
  余额为 0 后仍可使用,从信用额度扣
  月底结算,开发票,打款
  信用额度由商务根据企业资质设定(如 ¥50,000)

四、扣费流程(技术核心)

4.1 实时扣费架构

                     高频路径(每次 API 调用)
                     ─────────────────────
请求到达
  │
  ▼
API Gateway
  │
  ├── 1. 查 Redis: org_balance (缓存余额)
  │     余额 > 预估费用? → 继续
  │     余额 ≤ 0? → 返回 402
  │
  ├── 2. 转发到推理服务 → 获得结果
  │
  ├── 3. 计算费用
  │     cost = prompt_tokens × input_price
  │          + completion_tokens × output_price
  │
  ├── 4. Redis: DECRBY org:{id}:balance cost_cents
  │     (原子操作,不会并发超扣)
  │
  ├── 5. 写入 usage_log 消息队列 (异步)
  │     {org_id, model, tokens, cost, timestamp}
  │
  └── 6. 返回响应给用户
         (含 usage 字段)


                     低频路径(异步批处理)
                     ─────────────────────
消息队列消费者 (每秒或每批):
  │
  ├── 批量写入 PostgreSQL usage_logs 表
  │   (INSERT INTO usage_logs VALUES (...), (...), ...)
  │
  └── 每分钟: Redis 余额 → PostgreSQL 余额 同步
      (以 Redis 为准,PostgreSQL 作为持久化)


为什么用 Redis 而不是直接写 PostgreSQL?

  场景: 500 QPS,每次扣费
  
  直接写 PostgreSQL:
    UPDATE organizations SET balance = balance - 0.0022 WHERE id = ?
    → 500 次/秒 UPDATE → 行锁竞争 → 延迟飙升 → 数据库扛不住
  
  Redis DECRBY:
    DECRBY org:xxx:balance 22 (单位: 0.01分)
    → 10万次/秒无压力 → 原子操作不会超扣 → 延迟 < 0.1ms

4.2 并发安全

问题: 余额 ¥0.01,同时来两个请求各需 ¥0.01

错误做法:
  请求A: 读余额 0.01 → 够 → 扣费 → 余额 0
  请求B: 读余额 0.01 → 够 → 扣费 → 余额 -0.01  ← 超扣了!

正确做法 (Redis Lua 脚本):
  local balance = redis.call('GET', key)
  if tonumber(balance) >= tonumber(cost) then
    redis.call('DECRBY', key, cost)
    return 1  -- 扣费成功
  else
    return 0  -- 余额不足
  end

  原子执行,不可能超扣。
  请求A 和 B 串行执行 Lua 脚本。

4.3 Redis 与 PostgreSQL 一致性

Redis 是"热数据"(实时扣费),PostgreSQL 是"冷数据"(持久化)

同步策略:
  1. 每分钟: Redis 余额 → PostgreSQL (批量 UPDATE)
  2. Redis 重启时: 从 PostgreSQL 恢复余额到 Redis
  3. 每天凌晨: 对账
     - 汇总 usage_logs 当天总扣费
     - 对比余额变化量
     - 差异超过 ¥0.01 → 告警

故障场景:
  Redis 宕机:
    → 切换到 Redis Sentinel 备节点(< 10 秒)
    → 或降级: 直接查 PostgreSQL (允许少量延迟)
  
  PostgreSQL 宕机:
    → Redis 继续工作(扣费不中断)
    → usage_logs 写入消息队列暂存
    → PostgreSQL 恢复后重放消息

  消息队列丢消息:
    → 对账时发现差异 → 从 Redis 操作日志恢复

4.4 GPU 时长计费

训练任务:
  Job 开始 → 记录 start_time
  Job 结束 → 记录 end_time
  费用 = (end_time - start_time) × GPU单价 × GPU数量
  精确到秒,最低 1 分钟

  计费时机: Job 完成/失败后一次性扣费
  预扣机制: 提交 Job 时预扣预估费用
           完成后多退少补(差额 < 20% 直接调整)

独享实例:
  实例创建 → 开始计费
  每小时扣一次(而不是结束才扣)
  → 避免长期运行突然余额不足的尴尬
  
  示例: 独享 A10 实例
    15:00 创建 → 扣 ¥5 (第一个小时)
    16:00       → 扣 ¥5
    16:30 销毁  → 扣 ¥2.50 (按 30 分钟计)
    总计: ¥12.50

五、发票与财务

5.1 发票类型

类型适用内容
增值税电子普通发票个人/小额充值金额
增值税专用发票企业充值金额,可抵扣
月度结算发票企业后付费当月使用总额

5.2 开票流程

个人:
  充值 → 自动生成电子发票 → 下载 PDF

企业:
  1. 设置开票信息(公司名/税号/地址/银行账户)
  2. 申请开票(选择金额/时间范围)
  3. 财务审核(1-3 工作日)
  4. 开具发票
  5. 邮寄或电子发票下载

月结企业:
  每月 1 号生成上月账单
  → 企业确认
  → 开具发票
  → 企业付款(30天账期)

六、功能清单

6.1 用户侧

功能说明优先级
余额查询实时余额、套餐剩余额度P0
充值支付宝/微信/Stripe/银行转账P0
充值记录充值历史,含支付方式和到账状态P0
用量概览今日/本周/本月用量趋势P0
用量明细按 API Key/模型/时间 筛选每次调用P0
账单月度账单汇总P0
费用预估基于历史用量预测下月费用P1
预算告警设置月度预算上限,超出告警P1
套餐管理当前套餐/升降级/到期时间P0
发票管理开票信息/申请开票/下载发票P1
费用分析按项目/成员/模型拆分费用P1
导出CSV/PDF 导出用量和账单P1

6.2 运维侧

功能说明优先级
价格配置设置每个模型的 input/output 单价P0
套餐配置套餐内容/价格/额度P0
优惠活动充值赠送/折扣码/限时优惠P1
赠送额度给指定租户赠送额度P0
信用额度给企业客户设置信用额度P1
收入报表日/周/月收入,按模型/套餐拆分P0
对账Redis/PG 余额对比,用量校验P0
欠费管理信用额度超限的企业客户P1

七、页面设计

7.1 页面总览

计费中心
│
├── 用户侧
│   ├── 费用概览
│   ├── 充值
│   ├── 套餐管理
│   ├── 用量明细
│   ├── 账单列表
│   ├── 账单详情
│   ├── 发票管理
│   ├── 费用分析
│   └── 预算设置
│
└── 运维侧
    ├── 价格配置
    ├── 套餐配置
    ├── 优惠活动
    ├── 赠送/信用额度
    ├── 收入报表
    └── 对账管理

7.2 费用概览页

┌──────────────────────────────────────────────────────────────────┐
│ 费用概览                                          [充值] [套餐]  │
├──────────────────────────────────────────────────────────────────┤
│                                                                  │
│ ── 账户状态 ──                                                   │
│                                                                  │
│ ┌───────────────────────────────────────────────────────────┐    │
│ │                                                           │    │
│ │  充值余额         套餐额度(本月)       本月已用             │    │
│ │  ¥2,350.00       ¥456 / ¥1,200       ¥1,892.50          │    │
│ │                  [██████████░░░░] 62%  ↑15% vs 上月       │    │
│ │                                                           │    │
│ │  套餐: Pro (¥999/月)    下次续费: 2026-05-01              │    │
│ │  预估本月总费用: ¥2,340  (基于当前日均消耗)                │    │
│ │                                                           │    │
│ └───────────────────────────────────────────────────────────┘    │
│                                                                  │
│ ── 今日用量 ──                                                   │
│                                                                  │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐            │
│ │ API 调用  │ │ Token    │ │ 推理费用  │ │ 训练费用  │            │
│ │  8,450   │ │  5.2M    │ │  ¥32.10  │ │  ¥0      │            │
│ │ ↑12%     │ │ ↑8%      │ │ ↑15%     │ │ 无任务    │            │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘            │
│                                                                  │
│ ── 费用趋势 (最近 30 天) ──                                      │
│                                                                  │
│ ¥120│                                          ╱                │
│ ¥ 80│                    ╱╲  ╱╲  ╱╲    ╱╲  ╱╱                  │
│ ¥ 40│      ╱╲  ╱╲  ╱╲╱╱  ╲╱  ╲╱  ╲╱╱  ╲╱                    │
│ ¥  0│╱╲╱╲╱                                                      │
│     └──────────────────────────────────────                      │
│     03-11                     03-25          04-09               │
│     ■ 推理  ■ 训练  ■ 存储                                      │
│                                                                  │
│ ── 按模型拆分 ──                                                 │
│                                                                  │
│ 模型              调用次数    Token      费用       占比         │
│ ────────────────────────────────────────────────────────────     │
│ Qwen2.5-7B        5,200      3.1M      ¥18.60     58%  ████   │
│ acmecorp-cs-v3    2,800      1.8M      ¥10.80     34%  ███    │
│ BGE-M3 (Embed)      450      0.3M      ¥0.90       3%  ░      │
│ Qwen2.5-14B         —        —         ¥0         0%          │
│ 存储费                                  ¥1.80       5%  ░      │
│                                                                  │
│ ── 快捷操作 ──                                                   │
│                                                                  │
│ [查看详细用量] [下载本月账单] [设置预算告警] [费用分析]            │
└──────────────────────────────────────────────────────────────────┘

7.3 充值页

┌──────────────────────────────────────────────────────────────────┐
│ 充值                                         当前余额: ¥2,350.00│
├──────────────────────────────────────────────────────────────────┤
│                                                                  │
│ 选择充值金额:                                                    │
│                                                                  │
│ ┌────────┐ ┌────────┐ ┌────────────┐ ┌────────────┐            │
│ │  ¥50   │ │  ¥100  │ │  ¥500      │ │  ¥1,000    │            │
│ │        │ │        │ │  赠 ¥25    │ │  赠 ¥80    │            │
│ └────────┘ └────────┘ └────────────┘ └────────────┘            │
│ ┌────────────┐ ┌────────────┐ ┌─────────────────────┐          │
│ │  ¥5,000    │ │  ¥10,000   │ │ 自定义金额:          │          │
│ │  赠 ¥600   │ │  赠 ¥1,500 │ │ [_________] 元      │          │
│ └────────────┘ └────────────┘ └─────────────────────┘          │
│                                                                  │
│ 已选: ¥1,000 (实际到账 ¥1,080,含赠送 ¥80)                      │
│ 赠送有效期: 6 个月                                               │
│                                                                  │
│ 支付方式:                                                        │
│ ● 支付宝         ○ 微信支付       ○ 银行卡                      │
│                                                                  │
│                                          [确认充值 ¥1,000]      │
│                                                                  │
│ 企业对公转账? [查看转账信息]                                     │
│ 需要发票? 充值成功后可在 [发票管理] 中申请                       │
│                                                                  │
│ ── 充值记录 ──                                                   │
│                                                                  │
│ 时间           金额      赠送     方式      状态                 │
│ 04-09 12:00   ¥100      —       支付宝    ✅ 成功              │
│ 04-01 10:00   ¥1,000    ¥80     微信      ✅ 成功              │
│ 03-15 15:00   ¥500      ¥25     银行转账  ✅ 成功              │
└──────────────────────────────────────────────────────────────────┘

7.4 用量明细页

┌──────────────────────────────────────────────────────────────────┐
│ 用量明细                                            [导出 CSV]   │
├──────────────────────────────────────────────────────────────────┤
│                                                                  │
│ 时间: [2026-04-09 ▼] ~ [2026-04-09 ▼]                           │
│ 模型: [全部 ▼]  API Key: [全部 ▼]  类型: [全部 ▼]                │
│                                                                  │
│ 汇总: 8,450 次调用 │ 5.2M Token │ ¥32.10                        │
│                                                                  │
│ 时间         模型        API Key     输入    输出    费用        │
│ ──────────────────────────────────────────────────────────────── │
│ 15:32:01    qwen-7b     prod-key    502    198    ¥0.0022      │
│ 15:31:58    qwen-7b     prod-key    1024   512    ¥0.0051      │
│ 15:31:55    cs-v3       prod-key    256    384    ¥0.0028      │
│ 15:31:50    bge-m3      dev-key     1500   —      ¥0.0005      │
│ 15:31:48    qwen-7b     prod-key    680    256    ¥0.0029      │
│ ...                                                              │
│                                                                  │
│ ── 时段分布 ──                                                   │
│                                                                  │
│  ¥5│                ╱╲                                          │
│  ¥3│     ╱╲  ╱╲  ╱╱  ╲╱╲                                      │
│  ¥1│  ╱╲╱  ╲╱  ╲╱        ╲                                     │
│    └──────────────────────────                                   │
│    00:00  04:00  08:00  12:00  16:00                             │
│                                                                  │
│                                         第 1/85 页  < 1 2 3 > │
└──────────────────────────────────────────────────────────────────┘

7.5 月度账单页

┌──────────────────────────────────────────────────────────────────┐
│ 2026 年 3 月账单              状态: ✅ 已结算     [下载 PDF]     │
├──────────────────────────────────────────────────────────────────┤
│                                                                  │
│ 组织: AcmeCorp    套餐: Pro (¥999/月)                            │
│ 账单周期: 2026-03-01 ~ 2026-03-31                               │
│                                                                  │
│ ═══════════════════════════════════════════════════════          │
│                                                                  │
│ 一、套餐费用                                                     │
│   Pro 套餐月费                                    ¥999.00        │
│                                                                  │
│ 二、推理消耗 (超出套餐额度部分)                                   │
│   Qwen2.5-7B                                                     │
│     Input:  38,500,000 tokens × ¥2.0/M           ¥77.00         │
│     Output: 12,800,000 tokens × ¥6.0/M           ¥76.80         │
│   acmecorp-cs-v3                                                 │
│     Input:  15,200,000 tokens × ¥2.0/M           ¥30.40         │
│     Output:  8,500,000 tokens × ¥6.0/M           ¥51.00         │
│   BGE-M3 (Embedding)                                             │
│     Input:   5,000,000 tokens × ¥0.3/M           ¥1.50          │
│   推理小计                                        ¥236.70        │
│   Pro 套餐抵扣                                   -¥201.00        │
│   超出部分 (9折)                           ¥35.70 × 0.9 = ¥32.13│
│                                                                  │
│ 三、训练消耗                                                     │
│   LoRA 微调 Qwen2.5-7B                                          │
│     A10 GPU × 1 × 0.7h × ¥5.00/h                ¥3.50          │
│   LoRA 微调 Qwen2.5-7B (第二次)                                 │
│     A10 GPU × 1 × 0.5h × ¥5.00/h                ¥2.50          │
│   训练小计                                        ¥6.00          │
│                                                                  │
│ 四、存储费用                                                     │
│   数据集 2.3GB × 31天 × ¥0.01/GB/天              ¥0.71          │
│   模型 4.1GB × 31天 × ¥0.01/GB/天                ¥1.27          │
│   Checkpoint 1.2GB × 15天 × ¥0.01/GB/天          ¥0.18          │
│   存储小计                                        ¥2.16          │
│                                                                  │
│ ═══════════════════════════════════════════════════════          │
│                                                                  │
│ 套餐费用                                          ¥999.00        │
│ 超出消耗                                          ¥40.29         │
│ ─────────────────────────────                                    │
│ 本月总计                                          ¥1,039.29      │
│                                                                  │
│ 支付方式: 套餐自动扣费 ¥999 + 余额扣除 ¥40.29                   │
│                                                                  │
│                          [申请发票] [查看用量明细] [下载 PDF]     │
└──────────────────────────────────────────────────────────────────┘

7.6 套餐管理页

┌──────────────────────────────────────────────────────────────────┐
│ 套餐管理                                                          │
├──────────────────────────────────────────────────────────────────┤
│                                                                  │
│ 当前套餐: Pro                                                    │
│ 月费: ¥999    含额度: ¥1,200    续费日: 每月 1 日                │
│ 支付方式: 支付宝自动扣费                                         │
│                                                                  │
│ ── 变更套餐 ──                                                   │
│                                                                  │
│ ┌──────────┐  ┌──────────────┐  ┌──────────┐                    │
│ │ Starter  │  │ Pro ← 当前   │  │Enterprise│                    │
│ │ ¥99/月   │  │ ¥999/月      │  │ 联系销售  │                    │
│ │ [降级]    │  │              │  │ [咨询]    │                    │
│ └──────────┘  └──────────────┘  └──────────┘                    │
│                                                                  │
│ 降级说明:                                                        │
│ ⚠️ 降级到 Starter 后:                                            │
│   - 成员上限从 20 人降为 5 人(需先移除多余成员)                 │
│   - API Key 上限从 50 降为 10                                    │
│   - 存储上限从 100GB 降为 10GB                                   │
│   - 独享实例将被自动下线                                         │
│   - 变更将在下个计费周期生效                                     │
│                                                                  │
│ ── 用量对比 (帮助选择套餐) ──                                    │
│                                                                  │
│ 你过去 3 个月的平均消耗:                                         │
│   推理费用: ¥1,892/月  (超出 Pro 额度 ¥692)                      │
│   训练费用: ¥120/月                                              │
│   存储费用: ¥25/月                                               │
│   总计:     ¥2,037/月 + 套餐 ¥999 = ¥3,036/月                   │
│                                                                  │
│   如果升级 Enterprise 定制:                                       │
│   预估月费 ¥2,500 (含 ¥3,000 额度),节省约 ¥500/月              │
│                                                                  │
└──────────────────────────────────────────────────────────────────┘

7.7 预算告警设置

┌──────────────────────────────────────────────────────────────────┐
│ 预算与告警设置                                                    │
├──────────────────────────────────────────────────────────────────┤
│                                                                  │
│ ── 月度预算 ──                                                   │
│                                                                  │
│ 预算上限: [¥5,000_____] / 月                                     │
│                                                                  │
│ 达到预算后:                                                      │
│   ○ 仅通知,不限制使用                                           │
│   ● 通知并拒绝新请求(已运行的训练不中断)                       │
│                                                                  │
│ ── 告警阈值 ──                                                   │
│                                                                  │
│ ☑ 月度费用达到预算的 50% 时通知     当前: ¥1,892 / ¥5,000       │
│ ☑ 月度费用达到预算的 80% 时通知                                  │
│ ☑ 月度费用达到预算的 100% 时通知                                 │
│                                                                  │
│ ☑ 余额低于 ¥50 时通知                                           │
│ ☑ 余额低于 ¥10 时短信通知                                       │
│                                                                  │
│ ☑ 单日费用超过 ¥500 时通知 (异常消耗检测)                        │
│ ☑ 单次 API 调用超过 ¥1 时通知 (异常大请求)                       │
│                                                                  │
│ ── 通知方式 ──                                                   │
│                                                                  │
│ ☑ 站内消息 (默认)                                                │
│ ☑ 邮件: zhangsan@acme.com                                       │
│ ☐ 短信: 仅余额告警                                              │
│ ☐ Webhook: [________________________]                             │
│                                                                  │
│ ── 按项目预算 (Pro/Enterprise) ──                                │
│                                                                  │
│ 项目             月度预算    本月已用    状态                     │
│ 智能客服          ¥3,000     ¥1,892     63%  ████████░░░        │
│ 内部知识库        ¥1,000     ¥420       42%  █████░░░░░░        │
│ 未分配            ¥1,000     ¥150       15%  ██░░░░░░░░░        │
│                                                                  │
│                                                [保存设置]        │
└──────────────────────────────────────────────────────────────────┘

7.8 发票管理页

┌──────────────────────────────────────────────────────────────────┐
│ 发票管理                                          [申请开票]     │
├──────────────────────────────────────────────────────────────────┤
│                                                                  │
│ ── 开票信息 ──                                  [修改]           │
│                                                                  │
│ 公司名称: 某某科技有限公司                                       │
│ 税号:     91110108MA01XXXXXX                                    │
│ 地址:     北京市海淀区中关村大街1号                              │
│ 电话:     010-88888888                                          │
│ 开户行:   中国银行北京海淀支行                                   │
│ 账号:     1234567890                                            │
│                                                                  │
│ ── 发票记录 ──                                                   │
│                                                                  │
│ 发票号        金额        类型      状态      日期     操作      │
│ ──────────────────────────────────────────────────────────────── │
│ INV-202604   ¥1,039.29   专票     ✅ 已开具  04-05   [下载]    │
│ INV-202603   ¥980.00     专票     ✅ 已开具  03-05   [下载]    │
│ INV-202602   ¥750.00     普票     ✅ 已开具  02-05   [下载]    │
│                                                                  │
│ ── 可开票金额 ──                                                 │
│                                                                  │
│ 本月消耗: ¥1,892.50 (截至今日)                                   │
│ 已开票:   ¥0                                                     │
│ 可开票:   ¥1,892.50                [申请本月发票]                 │
│                                                                  │
└──────────────────────────────────────────────────────────────────┘

7.9 运维 — 价格配置页

┌──────────────────────────────────────────────────────────────────┐
│ 价格配置 (运维)                                    [保存并生效]   │
├──────────────────────────────────────────────────────────────────┤
│                                                                  │
│ ⚠️ 价格变更将在下一个计费周期生效,已有调用按旧价格结算           │
│                                                                  │
│ ── 推理定价 (¥/百万 Token) ──                                    │
│                                                                  │
│ 模型                Input    Output   最后修改                   │
│ ──────────────────────────────────────────────────               │
│ Llama-3.2-1B       [0.5__]  [1.5__]  03-01                     │
│ Llama-3.2-3B       [1.0__]  [3.0__]  03-01                     │
│ Qwen2.5-7B         [2.0__]  [6.0__]  03-01                     │
│ Qwen2.5-14B        [5.0__]  [15.0_]  03-15                     │
│ Qwen2.5-72B        [10.0_]  [30.0_]  03-01                     │
│ DeepSeek-V3        [10.0_]  [30.0_]  04-01                     │
│ BGE-M3             [0.3__]  [—    ]  03-01                     │
│                                                                  │
│ ── GPU 时长定价 (¥/小时) ──                                      │
│                                                                  │
│ GPU 型号            训练      独享推理  最后修改                  │
│ A10 24G            [5.0__]   [3.5__]   03-01                    │
│ A100 40G           [12.0_]   [10.0_]   03-01                   │
│ A100 80G           [18.0_]   [15.0_]   03-01                   │
│ H100 80G           [25.0_]   [22.0_]   03-01                   │
│                                                                  │
│ ── 存储定价 (¥/GB/天) ──                                         │
│                                                                  │
│ 数据集:   [0.01__]                                               │
│ 模型:     [0.01__]                                               │
│ Checkpoint: [0.01__]                                             │
│                                                                  │
│ ── 套餐折扣 ──                                                   │
│                                                                  │
│ Starter: 无折扣                                                  │
│ Pro:     超出部分 [0.9_] 折                                      │
│ Enterprise: 按合同                                               │
│                                                                  │
│ 变更预览:                                                        │
│ 如果本次调价生效,基于上月用量:                                   │
│   收入变化: +¥2,300/月 (+3.2%)                                   │
│                                                                  │
│                              [取消] [预览影响] [保存并生效]       │
└──────────────────────────────────────────────────────────────────┘

八、数据模型补充

-- 充值记录
CREATE TABLE recharges (
    id              UUID PRIMARY KEY,
    org_id          UUID NOT NULL REFERENCES organizations(id),
    amount          DECIMAL(10,2) NOT NULL,     -- 充值金额
    bonus           DECIMAL(10,2) DEFAULT 0,    -- 赠送金额
    bonus_expires   TIMESTAMP,                  -- 赠送有效期
    payment_method  VARCHAR(20),                -- alipay/wechat/stripe/bank
    payment_id      VARCHAR(200),               -- 支付平台订单号
    status          VARCHAR(20) DEFAULT 'pending', -- pending/success/failed/refunded
    created_at      TIMESTAMP DEFAULT NOW(),
    paid_at         TIMESTAMP
);

-- 套餐订阅
CREATE TABLE subscriptions (
    id              UUID PRIMARY KEY,
    org_id          UUID NOT NULL REFERENCES organizations(id),
    plan            VARCHAR(20) NOT NULL,       -- free/starter/pro/enterprise
    price           DECIMAL(10,2),              -- 月费
    quota           DECIMAL(10,2),              -- 月度额度
    discount        DECIMAL(3,2) DEFAULT 1.0,   -- 超出折扣
    starts_at       TIMESTAMP NOT NULL,
    expires_at      TIMESTAMP,
    auto_renew      BOOLEAN DEFAULT TRUE,
    status          VARCHAR(20) DEFAULT 'active', -- active/cancelled/expired
    created_at      TIMESTAMP DEFAULT NOW()
);

-- 月度账单
CREATE TABLE invoices (
    id              UUID PRIMARY KEY,
    org_id          UUID NOT NULL,
    period_start    DATE NOT NULL,
    period_end      DATE NOT NULL,
    subscription_fee DECIMAL(10,2),             -- 套餐费
    inference_cost  DECIMAL(10,2),              -- 推理消耗
    training_cost   DECIMAL(10,2),              -- 训练消耗
    storage_cost    DECIMAL(10,2),              -- 存储消耗
    quota_deduction DECIMAL(10,2),              -- 套餐额度抵扣
    discount_amount DECIMAL(10,2),              -- 折扣金额
    total           DECIMAL(10,2) NOT NULL,     -- 总计
    status          VARCHAR(20) DEFAULT 'draft', -- draft/confirmed/paid
    pdf_url         VARCHAR(500),
    created_at      TIMESTAMP DEFAULT NOW()
);

-- 发票
CREATE TABLE tax_invoices (
    id              UUID PRIMARY KEY,
    org_id          UUID NOT NULL,
    invoice_ids     UUID[],                     -- 关联的月度账单
    amount          DECIMAL(10,2) NOT NULL,
    type            VARCHAR(20),                -- normal/special (普票/专票)
    title           VARCHAR(200),               -- 公司名
    tax_number      VARCHAR(30),
    status          VARCHAR(20) DEFAULT 'pending', -- pending/issued/mailed
    pdf_url         VARCHAR(500),
    created_at      TIMESTAMP DEFAULT NOW()
);

-- 价格配置表(运维设置)
CREATE TABLE pricing_config (
    id              UUID PRIMARY KEY,
    resource_type   VARCHAR(20) NOT NULL,       -- model/gpu/storage
    resource_name   VARCHAR(100) NOT NULL,      -- qwen2.5-7b / A10 / dataset
    price_unit      VARCHAR(20) NOT NULL,       -- per_million_tokens / per_hour / per_gb_day
    input_price     DECIMAL(10,6),
    output_price    DECIMAL(10,6),
    effective_from  TIMESTAMP NOT NULL,
    created_by      UUID,
    created_at      TIMESTAMP DEFAULT NOW()
);

九、页面汇总

序号页面路由角色优先级
1费用概览/billing/overview用户P0
2充值/billing/rechargeOwner/AdminP0
3充值记录/billing/recharge/historyOwner/AdminP0
4用量明细/billing/usage用户P0
5月度账单列表/billing/invoicesOwner/AdminP0
6账单详情/billing/invoices/:idOwner/AdminP0
7套餐管理/billing/subscriptionOwnerP0
8套餐对比选择/billing/plans用户P0
9预算告警设置/billing/budgetOwner/AdminP1
10费用分析/billing/analysisOwner/AdminP1
11发票管理/billing/tax-invoicesOwner/AdminP1
12申请开票/billing/tax-invoices/applyOwner/AdminP1
13运维-价格配置/admin/pricing运维P0
14运维-套餐配置/admin/plans运维P0
15运维-优惠活动/admin/promotions运维P1
16运维-赠送额度/admin/credits运维P0
17运维-收入报表/admin/revenue运维P0
18运维-对账管理/admin/reconciliation运维P0