115 lines
5.3 KiB
Markdown
115 lines
5.3 KiB
Markdown
# 数据源字段说明
|
||
|
||
## main:`arch-flat-nlp-log-f-*`
|
||
|
||
适合拿最终线上请求结果。
|
||
|
||
常用字段:
|
||
|
||
| 字段 | 含义 |
|
||
| --- | --- |
|
||
| `request_id` | 请求 id,和 product-data 的 `request_id` 对齐。 |
|
||
| `timestamp` | 请求时间戳。 |
|
||
| `query` | 当前 query。 |
|
||
| `domain` | 最终 domain。 |
|
||
| `func` / `func_name` | 最终 function 或函数名。 |
|
||
| `session_id` | 主表会话 id,只用于排查,不等同于 planning 模型输入 session。 |
|
||
| `device_id` | 设备 id。 |
|
||
| `device` | 设备 JSON,包含设备类型、经纬度等。 |
|
||
| `text` / `display_text` / `to_speak` | 小爱回复文本,可作为上一轮 tts。 |
|
||
| `intention` | 传统意图结果。 |
|
||
| `intention.intent_arbitrator_info` | 中控仲裁信息,含 `llm_agent_info`、`score_domains`、`hit_rules` 等。 |
|
||
| `llm_*` | 大模型分类相关字段,覆盖情况取决于链路。 |
|
||
|
||
适合筛选:
|
||
|
||
- `query` 包含/正则。
|
||
- `domain`、`func`、`func_name`。
|
||
- `session_id`、`device_id`、设备类型。
|
||
- `intention.intent_arbitrator_info.llm_agent_info.agentType`。
|
||
|
||
## pre_processing:`pre-processing*`
|
||
|
||
适合拿前处理和规划模型判断过程。
|
||
|
||
常用字段:
|
||
|
||
| 路径 | 含义 |
|
||
| --- | --- |
|
||
| `requestId` | 请求 id。 |
|
||
| `timestamp` | 前处理日志时间戳。 |
|
||
| `responseBoby.nodes.0.core.query.query` | 当前 query。注意字段名是 `responseBoby`。 |
|
||
| `responseBoby.nodes.0.core.dispatch_large_model_result.code` | 前处理最终 code。 |
|
||
| `responseBoby.nodes.0.core.dispatch_large_model_result.dispatchLargeModelInput.promptModel` | planning 模型 prompt。 |
|
||
| `responseBoby.nodes.0.core.dispatch_large_model_result.dispatchLargeModelInput.hitRuleList` | 触发规则。 |
|
||
| `responseBoby.nodes.0.core.dispatch_large_model_result.planningDebugInfo.planningOriginalResult` | planning 模型原始输出。 |
|
||
| `responseBoby.nodes.0.core.excellent_domains_result` | 候选 domain 及旧意图结果。 |
|
||
| `responseBoby.nodes.0.properties.0.debug.domain_infos` | 前处理召回 domain 列表。 |
|
||
| `responseBoby.nodes.0.properties.0.debug.promptString` | agent LLM prompt。 |
|
||
| `responseBoby.nodes.0.properties.0.debug.planningPrompt` | planning prompt。 |
|
||
| `responseBoby.nodes.0.properties.0.agentLLMIntent` | agent LLM 判定。 |
|
||
|
||
适合筛选:
|
||
|
||
- `query` 包含/正则。
|
||
- `planningOriginalResult` 包含某标签或 function。
|
||
- `promptModel` 包含某上下文、历史或 query 结构。
|
||
- `excellent_domains_result[*].domain` 包含某候选 domain。
|
||
- `domain_infos[*].domain` 包含某召回 domain。
|
||
|
||
## join 规则
|
||
|
||
两张表通过:
|
||
|
||
```text
|
||
main.request_id == pre_processing.requestId
|
||
```
|
||
|
||
精确查询时优先使用 keyword 字段:
|
||
|
||
```text
|
||
main.request_id.keyword
|
||
pre_processing.requestId.keyword
|
||
```
|
||
|
||
join 后优先使用:
|
||
|
||
- query:优先 `pre_processing` 的 query,缺失时用 `main.query`。
|
||
- timestamp:优先 `main.timestamp`,缺失时用 `pre_processing.timestamp`。
|
||
- tts:优先 `main.to_speak`,再 `main.text` 或 `display_text`。
|
||
- label 参考:模型输出用 `pre_processing.planning_result`,线上最终结果用 `main.domain` / `main.func`。
|
||
|
||
## 转 canonical record 的字段映射
|
||
|
||
`build_online_records.py` 固定执行以下映射,模型不要手写转换逻辑:
|
||
|
||
| canonical 字段 | 来源 |
|
||
| --- | --- |
|
||
| `source.type` | 固定 `online` |
|
||
| `source.request_id` | 主表 `request_id` 或前处理表 `requestId` |
|
||
| `source.timestamp` | 优先主表 `timestamp`,缺失时用前处理表 `timestamp` |
|
||
| `turn.query` | 优先前处理 `responseBoby.nodes.0.core.query.query`,缺失时用主表 `query` |
|
||
| `turn.timestamp` | 同 `source.timestamp` |
|
||
| `prev_session` | 前处理 `promptModel` 的 `[对话历史]`,这是 planning 模型真实看到的 session |
|
||
| `prev_session[].query` | `[对话历史]` 中的 `用户:` 行 |
|
||
| `prev_session[].tts` | `[对话历史]` 中紧随其后的 `小爱:` 行,没有内容时保留空字符串 |
|
||
| `prev_session[].timestamp` | 线上 prompt 不带历史时间戳,工具按当前轮 timestamp 往前每轮 1 分钟补齐,保证顺序和 5 分钟拼接约束 |
|
||
| `context` | 先置 `{}`,后续由专用工具补充 |
|
||
| `label.dataset_label` | 用户输入的批次标签 |
|
||
| `label.target` | 用户输入 `target`;否则依次用前处理 `code`、`planningOriginalResult`、主表 `llm_agent_info.agentType`、主表 `domain` 推断 |
|
||
| `dimensions.complex` | 用户输入,默认 false |
|
||
| `meta` | 保存 `session_id/device_id/device/main_domain/main_func/planning_result/planning_code/hit_rules/candidate_domains/target_source` |
|
||
|
||
## 按 rid 转数据的固定流程
|
||
|
||
当用户说“把这个 rid 的数据拉下来作为测试数据”时:
|
||
|
||
1. 如果用户给“一周内/最近 7 天”,传 `lookback_days: 7`;给起止日期时传 `date_from/date_to`;只给某一天时传 `date`。
|
||
2. 调用 `build_online_records.py`,传 `request_ids`、`dataset_label`、必要时传 `target/complex/date/lookback_days/date_from/date_to`。
|
||
3. 检查返回的 `summaries[].target_source` 和 `prev_session_count`。
|
||
4. 展示 query、target、target_source、prev_session_count 给用户确认。
|
||
5. 产物默认在当前会话 `output/records.jsonl` 和 `output/records.csv`。
|
||
|
||
注意:不要用主表 `session_id` 拼接 `prev_session`。中控 planning 模型的输入历史以
|
||
前处理表 `dispatchLargeModelInput.promptModel` 中的 `[对话历史]` 为准。
|