2.9 KiB
2.9 KiB
token-list-share
Sub2API 用量排行榜前端(Vue 3 + Vite + ECharts,多页:index / list / groups)。
跑起来
pnpm install && pnpm dev # http://127.0.0.1:5176,Vite 代理 /api 并注入 ADMIN_API_KEY
pnpm build # vue-tsc 类型检查 + vite build,产出 dist/
配置走 .env(已 gitignore,模板见 .env.example)。
必须守住的约定
- 排行不排除 admin,只过滤
requests <= 0的账号(2026-09 决策,别再加回去)。 - 成本字段用
actual_cost(参考成本口径,UI 文案叫「参考成本」,不叫「实际成本」)。 - 模型「单价」是参考价,一律带
~前缀:优先分组配置的model_pricing,缺价模型懒加载 Sub2API 内置目录/admin/channels/model-pricing?model=。 - 单价逻辑只挂在模型上,不要按人摊均。
- 界面文案统一
Token(首字母大写),表头样式禁用text-transform: uppercase。 - 页面名分保持中立(「用量排行」「用量榜」),不加评价性徽章/高亮等引导元素。
- 面向用户的品牌名是「行业应用」(页眉 eyebrow);代码注释里指代后端系统仍可写 Sub2API,不要全局替换。
- 颜色走
src/style.css的 CSS 变量:成本--accent橙、Token--token钢蓝、金--gold;图表内因 ECharts 读不到 CSS 变量而硬编码同值,改色时两处同步。 - 百炼 Token Plan 额度:数据来自服务器探针写出的静态快照
/data/bailian.json(契约见types.ts的BailianSnapshot,schema: 1,含只读的reset_cards重置卡列表)。Cookie/Key 只留在服务器/etc/bailian-probe.env,绝不进前端产物、快照文件或 git;探针(bailian-probe.py)只调 reset-card/list 等只读接口,绝不接 reset-card/use。用卡写操作只有deploy/reset-card-server.py(本机 127.0.0.1:18082,nginx/bailian-admin/)在 Admin Key + 卡归属校验后才允许代发;分组页入口默认 CSS 隐藏,需localStorage.bailian-reset-card='1'开启。Sub2API 的智谱额度通道(账号extra.zhipu_*)复用不到百炼:平台是 openai/anthropic、account_mode为空、域名不在识别表内,别指望接进cn_provider_quota_service。
结构
src/App.vue排行主页;src/groups/GroupsApp.vue分组页(分组配src/groups.config.ts,含百炼额度卡)。src/api.ts数据层(Sub2API 接口 + 百炼快照读取,快照失败返回 null 不阻断页面);src/format.ts格式化与时区(Asia/Shanghai)。deploy/bailian-probe.py百炼额度探针(Python 3 标准库,cookie 主路 / apikey 验证路);部署见deploy/DEPLOY.md第 5 节。- 生产部署为同域反代,见
deploy/DEPLOY.md;现行环境(10.1.192.225:18081 →/usr/dcits/token-list-share)的发布/换 Cookie 用根目录deploy.sh(web / cookie / probe / nginx / status / all)。