← 文档库
📄 文档learn/其他业务/2026-06-26-API余额监控系统/spec.md
🌱 创建于2026-07-08 02:17
✏️ 修改于2026-07-08 02:17
👁️ 浏览量—
🔗 短链接/~learn/s/ec80267a
🔐 可见性

API 余额监控系统 — 方案设计

一、背景与目标

1. 问题

用户需要便捷查看多个 AI 平台(DeepSeek、火山引擎)的 API 余额,并了解消耗趋势。目前只能分别登录各平台后台查看,没有统一视图。

2. 目标

3. 范围

二、一句话结论

通过「火山引擎费用中心 API 直接拉历史账单 + DeepSeek 每日快照余额」的混合方案,可以实现双平台余额监控与趋势图展示。火山引擎有完整的按天成本 API(最多 24 个月历史),DeepSeek 没有公开用量 API,通过每日余额快照差值推算消耗。

三、整体架构

flowchart TD A[用户访问 /balance] --> B[unified_server.py] B --> C[api_balance_monitor.py] C --> D{数据来源} D -->|实时余额| E[DeepSeek API] D -->|实时余额| F[火山引擎 Billing API] D -->|历史消费| F C --> G[(quant.db SQLite)] G --> H[api_balance_daily 余额日快照表] G --> I[api_cost_daily 消费明细表] C --> J[定时任务线程] J -->|每日凌晨| K[拉取前一天账单 + 余额快照] B --> L[Plotly 图表渲染] L --> M[余额趋势图] L --> N[日消耗柱状图] L --> O[产品占比饼图]

四、数据来源分析

1. 火山引擎(最丰富)

可用 API(费用中心 OpenAPI):

数据能力:

限制:

2. DeepSeek(最有限)

可用 API:

数据能力:

限制:

应对方案:

五、数据库设计

1. api_balance_daily — 余额日快照表

记录每个平台每日的余额快照,用于绘制余额趋势图。

字段 类型 说明
------------------
date TEXT (PK) 日期,YYYY-MM-DD
platform TEXT (PK) 平台:deepseek / volcengine
total_balance REAL 总余额(元)
cash_balance REAL 现金余额(元)
gift_balance REAL 赠送/代金券余额(元)
frozen_amount REAL 冻结金额(元)
arrears REAL 欠费金额(元)
credit_limit REAL 信控额度(元)
raw_data TEXT 原始 API 返回 JSON(用于调试)
created_at TEXT 记录创建时间

> 联合主键:(date, platform)

2. api_cost_daily — 消费明细表

记录每日消费明细(主要来自火山引擎)。

字段 类型 说明
------------------
id INTEGER (PK) 自增 ID
date TEXT 日期,YYYY-MM-DD
platform TEXT 平台:deepseek / volcengine
product TEXT 产品名称(如"方舟"、"ECS")
product_zh TEXT 产品中文名
billing_mode TEXT 计费模式:包年包月 / 按量计费
bill_category TEXT 账单类型:消费-使用 / 退款-退订 等
instance_id TEXT 实例 ID
instance_name TEXT 实例名称
region TEXT 地域
original_amount REAL 原价
discount_amount REAL 优惠金额
payable_amount REAL 应付金额
paid_amount REAL 实付金额
coupon_amount REAL 代金券抵扣
currency TEXT 币种:CNY / USD
raw_data TEXT 原始 API 返回 JSON
created_at TEXT 记录创建时间

> 索引:(date, platform)、(date, platform, product)

3. 设计原则

六、模块设计

1. 核心模块 api_balance_monitor.py

现有功能(已实现):

新增功能:

A. 火山引擎历史账单

B. 余额快照

C. 定时任务

1. 拉取前一天火山引擎账单并存入 DB 2. 对 DeepSeek 和火山引擎做余额快照

2. 数据库模块 db/api_balance.py

按照项目现有 DB 规范,新建 api_balance.py 管理余额相关表:

3. 网页模块 unified_server.py

新增路由:

路由 说明
------------
/balance 余额详情页(已存在,增加图表)
/api/balance 当前余额 JSON(已存在)
/api/balance/history?days=30 余额历史数据 JSON
/api/cost/history?days=30 消费历史数据 JSON
/api/cost/by_product?days=30 按产品消费汇总 JSON

4. 前端展示(/balance 页面)

新增图表(Plotly):

A. 余额趋势图

B. 每日消耗柱状图

C. 产品消费占比饼图

D. 预估可用天数

七、实施步骤

1. 数据库层

2. 监控模块扩展

3. 测试回填

4. API 层

5. 前端展示

6. 文档更新

八、关键技术点

1. 火山引擎 SDK 调用注意事项

2. DeepSeek 消耗推算

3. 定时任务实现

4. Plotly 图表

九、风险与限制

1. 数据不完整风险

2. API 限流风险

3. 权限风险

4. 数据准确性

十、后续可扩展方向

▶ 📜 变更历史(1 次提交)

01005c22026-07-08 02:17chore: 更新择时图表缓存、推送消息、数据拉取、推送历史
🍃quant 知识库
by 伊甸园和枫

🔊 播放设置

勾选音源后调节配比,总和自动归一化
已选 0 个 · 合计:0%
合成中...
00:00/00:00
1.0x

分享图片

生成中...