Align label output target formats

This commit is contained in:
wuyang6
2026-05-12 12:06:39 +08:00
parent 6143f876d3
commit c517d93034
7 changed files with 151 additions and 116 deletions
@@ -1,24 +1,32 @@
# 多指令判断
多指令是独立维度,不属于业务标签树。它用于判断一个 query 是否需要拆成多个可独立执行的子任务,以及每个子任务对应的业务标签或 intent
多指令是独立维度,不属于业务标签树。它用于判断一个 query 是否需要拆成多个可独立执行的子任务,以及每个子任务对应的业务标签或 function
## 输出目标
推荐结构
当前数据开发默认口径下,多指令最终 target 不是一个 JSON group,而是
```json
[
{
"condition": null,
"querys": [
{"subquery": "关闭卧室的灯", "intent": "设备控制"},
{"subquery": "定一个明天下午四点的闹钟", "intent": "闹钟"}
]
}
]
1. 先把原 query 拆成多个可独立判断的子句。
2. 每个子句单独判断业务标签和输出形态。
3. 每个子句单独输出一条叶子 target。
4. 如果需要输出 complex,complex 作为独立行放在最前面,不属于任何单个子句。
示例:
```text
complex=true
Agent(query="退出导航",tag="地图导航")
Agent(query="打开后视镜加热",tag="车载控制")
```
其中 `condition` 由自动任务维度负责判断;没有条件时为 `null`
其中 `query` 字段保留拆分后的子句文本,`tag` 字段是该子句的业务标签
注意:
- 多指令只决定“是否拆分、怎么拆分、如何改写子句”。
- 每个子句的 `tag` 或 function 仍要继续走业务标签判断和输出形态判断。
- 多指令不是和 `Agent(...)` / function 并列的最终标签,而是把多个叶子 target 组合起来的结构。
- `condition` 由自动任务维度负责;普通多指令没有 condition。
## 单意图
@@ -52,50 +60,29 @@
### 动作继承
“打开空调和电视”应改写为
“打开空调和电视”应拆成两个子句并分别输出
```json
[
{
"condition": null,
"querys": [
{"subquery": "打开空调", "intent": "设备控制"},
{"subquery": "打开电视", "intent": "设备控制"}
]
}
]
```text
Agent(query="打开空调",tag="设备控制")
Agent(query="打开电视",tag="设备控制")
```
### 无 trigger 的位置继承
“打开客厅电视和吸顶灯”应改写为
“打开客厅电视和吸顶灯”应拆成两个子句,并继承必要位置信息
```json
[
{
"condition": null,
"querys": [
{"subquery": "打开客厅电视", "intent": "设备控制"},
{"subquery": "打开客厅吸顶灯", "intent": "设备控制"}
]
}
]
```text
Agent(query="打开客厅电视",tag="设备控制")
Agent(query="打开客厅吸顶灯",tag="设备控制")
```
### 设备继承
“客厅吸顶灯调到最亮色温调到最大”应改写为
“客厅吸顶灯调到最亮色温调到最大”应拆成两个子句,并继承设备名
```json
[
{
"condition": null,
"querys": [
{"subquery": "客厅吸顶灯调到最亮", "intent": "设备控制"},
{"subquery": "客厅吸顶灯色温调到最大", "intent": "设备控制"}
]
}
]
```text
Agent(query="客厅吸顶灯调到最亮",tag="设备控制")
Agent(query="客厅吸顶灯色温调到最大",tag="设备控制")
```
## 典型单意图例子