# 交互设计 · 调用日志 > 管理面的模型请求日志查询页——`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 同步修订)