算力中心接入真实数据:新增消耗明细和趋势统计接口

前端:
- auth.ts 新增 getOpcComputeUsageLogs 和 getOpcComputeUsageTrend 接口
- Compute.tsx 移除所有模拟数据,改用真实接口
- 概览 Tab:消耗趋势图、模型分布图、时段分布图全部使用真实数据
- 消耗账单 Tab:统计卡片和明细表格使用真实分页数据
- 新增 usageLogsLoading 状态,表格加载时显示 loading
- 空数据时显示友好提示,不报错

后端:
- compute_client.py 新增 user_logs 方法,封装引擎日志接口
- rbac_opc.py 新增两个接口:
  - GET /opc/compute/usage/logs - 消耗明细(分页,统一字段格式)
  - GET /opc/compute/usage/trend - 消耗趋势统计(近N天趋势、模型分布、时段分布)
- 趋势接口基于引擎日志数据聚合计算,引擎对接失败时返回空数据不报错
- 模型分布自动取 Top 5,其余归为其他
- 时段分布按24小时聚合
This commit is contained in:
Pine
2026-09-05 23:32:52 +08:00
parent 43b617e6f1
commit e52140efbc
2 changed files with 80 additions and 61 deletions
+9
View File
@@ -356,6 +356,15 @@ export const authApi = {
// ---- 计量:余额 / 本月用量(按模型) ----
getOpcComputeBalance: () => request<{ id: number; quota: number; used_quota: number }>("/opc/compute/balance"),
getOpcComputeUsage: () => request<{ month: string; cost_quota: number; input_tokens: number; output_tokens: number; items: { model_name: string; requests: number; input_tokens: number; output_tokens: number; cost_quota: number }[] }>("/opc/compute/usage"),
getOpcComputeUsageLogs: (page: number = 1, pageSize: number = 20) =>
request<{ items: { id: string; time: string; model: string; type: string; input_tokens: number; output_tokens: number; cost: number; status: string }[]; total: number; page: number; page_size: number }>(`/opc/compute/usage/logs?page=${page}&page_size=${pageSize}`),
getOpcComputeUsageTrend: (days: number = 7) =>
request<{
trend: { date: string; cost: number; tokens: number }[];
model_distribution: { name: string; value: number; cost: number; color: string }[];
hourly_distribution: { hour: string; cost: number }[];
summary: { total_cost: number; total_tokens: number; total_requests: number; days: number };
}>(`/opc/compute/usage/trend?days=${days}`),
// ---- 算力充值(微信支付,native 扫码) ----
getOpcRechargePackages: () => request<{ enabled: boolean; items: { id: string; amount: number; bonus: number; label: string; quota_micro: number }[]; min_yuan: number; max_yuan: number }>("/opc/compute/recharge/packages"),
// client_type="mp":桌面端展示小程序码,微信扫码在小程序内完成支付(与扫码登录同构)