# 风神取数口径验收器
候选 id:`aeolus-field-export-doctor`
## 诊断流程样例
### 输入
- dataset: `human_service_raw_voice`
- export: `downloads/aeolus_human_service_2026-04-13_2026-05-12.xlsx`
- spec: `references/aeolus_dataset_fields.yml`
- expected date range: `2026-04-13` 到 `2026-05-12`
### 执行
```bash
python tools/aeolus_field_export_doctor.py \
--dataset human_service_raw_voice \
--file downloads/aeolus_human_service_2026-04-13_2026-05-12.xlsx \
--date-start 2026-04-13 \
--date-end 2026-05-12
```
### 核心检查
| 检查项 | 通过信号 | 失败信号 |
| --- | --- | --- |
| 字段完整性 | `p_date/main_session_id/原声/进线渠道/人工工单解决率` 均存在 | 任一必需字段缺失或字段名漂移 |
| 日期覆盖 | 30 天完整覆盖 | 出现 `2026-05-12` 这类断档日期 |
| 粒度 | `main_session_id` 唯一数和行数差异可解释 | 维度组合导致 session 被异常放大 |
| 参评口径 | `人工工单解决率` 非 NaN 作为参评识别 | 误把它当原始二值是否解决字段 |
| 指标分布 | 允许 0/1/0.5/NaN,并展示计数 | 发现未登记的新取值或全量 NaN |
### 输出示例
```json
{
"dataset": "human_service_raw_voice",
"required_fields_ok": true,
"date_coverage_ok": false,
"missing_dates": ["2026-05-12"],
"unique_main_session_id": 27276,
"metric_distribution": {"0": 1234, "1": 26036, "0.5": 6, "NaN": 812},
"verdict": "fail"
}
```
### 后续动作
失败时不要直接进入离线打标或 session 分析;先回到风神检查日期筛选、维度选择和指标聚合方式,必要时更新 `references/aeolus_dataset_fields.yml` 里的 dataset 口径说明。