# 内部看板到 Aeolus 的聚合分析手册
## 诊断流程样例:从内部看板到 Aeolus 聚合分析
### 场景
用户给内部看板链接,并问“商品领域情况如何”或“如何拖拽统计每个 tool 调用次数”。
### 标准流程
| 步骤 | 要做什么 | 产出 |
|---|---|---|
| 1. 进入页面 | 优先用内嵌浏览器;如果卡在 SSO,再切 Chrome 复用登录态 | 明确是否能看到真实看板 |
| 2. 找业务入口 | 记录左侧导航、看板标题、tab、图表卡片名 | 例如 CPO求助指标 -> CPO-AI模型打标 |
| 3. 确认口径 | 把用户自然语言映射到平台字段 | 例如 商品领域 = model_level_1 / 产品模块里的 商品管理 |
| 4. 追源数据 | 点击图表源数据或数据集链接进入 Aeolus | 得到数据集名和字段列表 |
| 5. 翻译配置 | 将维度、指标、筛选翻译成 SQL | 明确 GROUP BY、聚合函数、WHERE 日期窗口 |
| 6. 检查粒度 | 排查是否把 session_id、召回信息等明细字段放进维度 | 避免每行 count 都是 1 |
| 7. 输出结论 | 同时给分子、分母、比例、环比、低解 Top 场景 | 可复核的业务判断 |
### Before
用户把 `智能会话id + 召回信息 + tool_name` 都放到维度区,再把 `count(tool_name)` 放到指标区。结果每行几乎是唯一明细,所有 count 都接近 1,无法回答“每个 tool 调用多少次”。
### After
维度只保留 `tool_name`,指标使用 `COUNT(tool_name)` 或 `COUNT(*)`;如果想看会话覆盖数,指标改成 `COUNT(DISTINCT 智能会话id)`。保留日期、消息来源、`model_l1_label_name=商品管理` 等筛选条件。
```sql
SELECT
COALESCE(tool_name, 'NULL') AS tool_name,
COUNT(*) AS tool_call_cnt,
COUNT(DISTINCT session_id) AS session_cnt
FROM dataset
WHERE partition BETWEEN '${start_date}' AND '${end_date}'
AND model_l1_label_name = '商品管理'
GROUP BY COALESCE(tool_name, 'NULL')
ORDER BY tool_call_cnt DESC;
```
### 成功信号
- 结果表每个 `tool_name` 只有一行。
- count 不再全部为 1。
- 可以区分“调用行数”和“覆盖会话数”。
- 结论能回到业务口径:商品管理下哪个工具或召回链路贡献最高、低解场景集中在哪里。