📊 Public AI Logs 公开AI日志
记录所有通过公共 API Key(owner_type='system')发起的 AI 调用日志,含分页列表及多维聚合统计(总调用/日使用量/用户排名/模型分布/7日趋势)。
此接口返回结构较为复杂:除分页日志外,还包含
stats(全局限额统计)、modelStats(TOP5 模型调用量)、dailyTrend(7日趋势)和 perUserStats(今日各用户使用量排名)。接口列表
1. 查询公开 AI 日志(带聚合统计)
GET /api/admin/api-logs/public
查询公共 API Key 的 AI 调用日志,同时返回全局统计、模型分布、7日趋势和用户排行。
认证:需要 Bearer Token(Admin 权限)
查询参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| page | integer | 选填 | 页码,默认 1 |
| limit | integer | 选填 | 每页条数,默认 20 |
| user_id | integer | 选填 | 按用户 ID 精确筛选 |
| date | string | 选填 | 按日期筛选(格式:YYYY-MM-DD) |
| min_tokens | integer | 选填 | 最小 token 消耗 |
| max_tokens | integer | 选填 | 最大 token 消耗 |
| search | string | 选填 | 模糊搜索:模型名 / 用户昵称 / 错误信息 / 提示词内容 |
| sort_field | string | 选填 | 排序字段:created_at / total_tokens / duration_ms,默认 created_at |
| sort_order | string | 选填 | 排序方向:ASC / DESC,默认 DESC |
响应:
{
"logs": [{
"id": 1,
"user_id": 100,
"user_nickname": "张三",
"user_phone": "13800138000",
"model": "gpt-4o",
"provider": "openai",
"total_tokens": 1500,
"prompt_tokens": 1200,
"completion_tokens": 300,
"duration_ms": 1234,
"status_code": 200,
"error_message": null,
"prompt_text": "用户的问题...",
"created_at": "2026-04-19T10:00:00.000Z"
}],
"totalPages": 5,
"stats": {
"total_calls": 1234,
"daily_used": 50000,
"daily_limit": 500000,
"user_daily_limit": 10000
},
"modelStats": [
{ "model": "gpt-4o", "calls": 800 },
{ "model": "gpt-4o-mini", "calls": 300 }
],
"dailyTrend": [
{ "date": "2026-04-13", "tokens": 40000 },
{ "date": "2026-04-19", "tokens": 50000 }
],
"perUserStats": [{
"user_id": 100,
"user_nickname": "张三",
"subscription_plan": "pro",
"used_tokens": 25000,
"user_limit": 200000
}]
}
stats 字段说明:
| 字段 | 说明 |
|---|---|
| total_calls | 当前筛选条件下的总调用次数 |
| daily_used | 今日(本地时间)全系统公共 Key token 消耗总量 |
| daily_limit | 全系统公共 Key 日 token 上限(系统配置 ai_public_daily_token_limit) |
| user_daily_limit | 每个用户日 token 上限(系统配置 ai_public_user_daily_limit) |
perUserStats 用户排行说明:按 subscription_plan(过期后自动降为 free)计算用户限额,返回今日各用户已用 token 量。