diff --git a/README.md b/README.md index 1d1264b..46e70c7 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,7 @@ | [`docs/design/交互设计-总览与共性.md`](docs/design/交互设计-总览与共性.md) | 交互设计总纲:访问拓扑、导航、跨页组件、状态与数值呈现约定 | 定稿(2026-10-01) | | [`docs/design/交互设计-登录与会话.md`](docs/design/交互设计-登录与会话.md) | 管理面登录页、引导页、改密、成员登录壳 | 同上 | | [`docs/design/交互设计-全员总览.md`](docs/design/交互设计-全员总览.md) | 管理面首页:健康带 + 按成员 / key 汇总 | 同上 | +| [`docs/design/交互设计-调用日志.md`](docs/design/交互设计-调用日志.md) | 管理面调用日志:筛选、明细表、与 key/成员/总览的跳转链 | 草案(待审阅) | | [`docs/design/交互设计-key管理.md`](docs/design/交互设计-key管理.md) | 登记(sk-key 唯一界面露面)、启停、归属、死亡显形 | 同上 | | [`docs/design/交互设计-支付记录.md`](docs/design/交互设计-支付记录.md) | 订阅/充值同构表单、核对提示 | 同上 | | [`docs/design/交互设计-成员管理.md`](docs/design/交互设计-成员管理.md) | 开户、令牌签发/重发(明文仅一次)、停用 | 同上 | diff --git a/apps/web/vite-dev.err b/apps/web/vite-dev.err deleted file mode 100644 index 0170abe..0000000 --- a/apps/web/vite-dev.err +++ /dev/null @@ -1 +0,0 @@ -$ vite diff --git a/docs/design/API契约-管理面.md b/docs/design/API契约-管理面.md index 98d6fa1..b48571b 100644 --- a/docs/design/API契约-管理面.md +++ b/docs/design/API契约-管理面.md @@ -166,7 +166,7 @@ `token_name` 取**当前名**(联查 `api_keys`,与「展示名以当前为准」对齐——§10 裁定 2);`username` / `channel` / `ip` / `token_id` / `request_id` / `other` 等其余表字段暂不出 API,界面需要时再扩。 -> **界面落点待补**:总览「行点击 → Key 管理页该 key 详情」——交互设计无成篇的「key 详情」视图,本端点先行、界面归交互补篇或实现期定(§11 遗留 1)。 +> **界面落点**:《交互设计-调用日志》——管理面独立查询页;总览/Key/成员筛选深链 + 行内回跳。 ## 7. 支付记录 diff --git a/docs/design/交互设计-总览与共性.md b/docs/design/交互设计-总览与共性.md index 1aa240b..058c464 100644 --- a/docs/design/交互设计-总览与共性.md +++ b/docs/design/交互设计-总览与共性.md @@ -28,6 +28,7 @@ | 菜单 | 页面 | 职责一句话 | |------|------|-----------| | 总览 | 全员总览 | 健康与用量全景(首页,登录后落地) | +| 调用日志 | 请求明细 | 全池模型请求查询与筛选 | | Key 管理 | key 清单 | 登记、启停、归属 | | 支付记录 | 记录清单 | 订阅/充值登记、核对 | | 成员管理 | 成员清单 | 开户、令牌、停用 | diff --git a/docs/design/交互设计-调用日志.md b/docs/design/交互设计-调用日志.md new file mode 100644 index 0000000..317a318 --- /dev/null +++ b/docs/design/交互设计-调用日志.md @@ -0,0 +1,71 @@ +# 交互设计 · 调用日志 + +> 管理面的模型请求日志查询页——`GET /api/admin/logs` 的界面落点。回答「这段时间谁、哪把 key、哪个模型、花了多少」;与 Key 管理、成员管理、全员总览构成筛选跳转闭环。**只读事实**,无改写。 + +| 项目 | 内容 | +|------|------| +| 状态 | 定稿(2026-10-08) | +| 关联 | 《API契约-管理面》§6(过滤与 DTO)·《交互设计-总览与共性》(时间范围、数值呈现、状态模式)·《交互设计-key管理》《交互设计-成员管理》《交互设计-全员总览》(双向跳转)· `usage_logs表字段设计.md` | +| 数据 | `usage_logs` 明细(分页;默认全类型,可筛 `type`) | + +--- + +## 1. 页面定位 + +- 侧边栏新项「**调用日志**」(建议插在「总览」之后、「Key 管理」之前——先看现象再管对象) +- 纯查询页:无登记、无启停、无删除;排查与核对入口 +- 与成员视图的日志表**列语义同构**,但范围是**全池**且可筛错误行 + +## 2. 筛选区(自上而下一行或两行) + +| 筛选 | 形态 | 对应 API | +|------|------|----------| +| 时间范围 | 共性组件,默认最近 30 天 | `from` / `to`(必填) | +| 成员 | Select,含「未归属」 | `member_id` | +| Key | Select(依赖已选成员可收窄;或全量) | `api_key_id` | +| 计费来源 | 全部 / 订阅 / 充值 / 未关联 | `billing_source` | +| 订阅 ID | 数字(可空) | `subscription_id` | +| 类型 | 全部 / 消费 / 错误 | `type`(2 / 非 2) | + +- 切换任一筛选 → 回第 1 页 +- URL 查询同步:`from/to` 可选省略(用默认区间);`member_id`、`api_key_id`、`billing_source`、`subscription_id`、`type`、`page`——便于总览/管理页深链 + +## 3. 日志表(页面主体) + +| 列 | 内容 | 备注 | +|----|------|------| +| 时间 | 到秒(北京时间) | 倒序由后端返回 | +| Key | `token_name` | **可点** → Key 管理定位该 key | +| 归属 | 成员名 / 未归属 | **可点** → 成员管理;未归属不跳 | +| 模型 | `model_name` | | +| 类型 | 消费 / 错误徽章 | 错误行 `type ≠ 2` | +| 来源 | 订阅 #N / 充值 / 未关联徽章 | 与成员视图同构 | +| 用量 | quota + $ 双单位 | 错误行可显示 `—` 或 0 | +| Tokens | prompt / completion | | + +- 分页:默认 50,档位 20 / 50 / 100 / 200(无界列表) +- **行内不展开支付参数**(管理面支付另页;此处保持扫读密度)——需要看订阅登记时从来源徽章旁的链接或工具提示指向支付记录筛选(实现期可只做 tooltip 文案) +- 空态:「该时段内无调用日志」 +- 窄屏:表格横向滚动(共性 §3.5) + +## 4. 交互链路(与其它页) + +| 从 | 到 | 携带 | +|----|-----|------| +| 全员总览 · 按 key 行 / 成员行 | 本页 | `api_key_id` 或 `member_id` + 当前时间范围 | +| Key 管理 · 行操作「查调用」 | 本页 | `api_key_id` | +| 成员管理 · 行操作「查调用」 | 本页 | `member_id` | +| 本页 · Key 列 | Key 管理 | `key_id`(定位/高亮) | +| 本页 · 归属列 | 成员管理 | `member_id`(筛选) | +| 健康带失败数(总览) | 仍去 Key 管理失败筛选 | 不变 | + +## 5. 状态与边界 + +- 加载:表 loading;错误:顶部错误条 + 重试(共性 §3.4) +- 401 → 管理面登录(既有分流) +- 不展示 `request_id` / `ip` / `channel` 等表字段(契约 §6 暂不 API);将来需要时列可扩 + +## 6. 与既有文档的衔接 + +- 《API契约-管理面》§6「界面落点待补」→ **本篇即落点**;「跳 Key 管理详情」改为「跳本页带筛选 + Key 管理定位」并行 +- 侧边栏六项 → **七项**(《交互设计-总览与共性》§2 同步修订)