3.2 KiB
3.2 KiB
多指令判断
多指令是独立维度,不属于业务标签树。它用于判断一个 query 是否需要拆成多个可独立执行的子任务,以及每个子任务对应的业务标签或 intent。
输出目标
推荐结构:
[
{
"condition": null,
"querys": [
{"subquery": "关闭卧室的灯", "intent": "设备控制"},
{"subquery": "定一个明天下午四点的闹钟", "intent": "闹钟"}
]
}
]
其中 condition 由自动任务维度负责判断;没有条件时为 null。
单意图
以下情况通常不要拆分:
- 简单单意图:只有一个核心动作或询问目标。
- 子句存在强执行依赖:拆分会导致参数丢失、顺序错误或重复执行。
- 同品类单操作:同一动作作用于同一功能品类的多个位置或实例。
- 多查询:多个查询类目标可以作为一个查询意图处理。
- 内容播放 + 播放控制:播放具体内容并设置上一首、下一首、循环等,通常视为单个播放意图。
- 顺序执行操作:多个连续步骤共同完成单一任务,例如打开应用、搜索内容、点击结果。
- 改口重复:口误、重复词或重说只保留一次核心意图。
- 相反操作:同一设备或功能连续相反动作,通常视为单意图或口语修正。
需要切分
以下情况通常需要拆成多个子任务:
- 并列连词:和、并、然后、再、顺便、同时、并且。
- 明显语义独立的动作或查询目标。
- 同属一个意图类别但语义完整且可独立执行的子句。
- 同一设备或部件存在多个不同方向调整,例如“后视镜往里往前调”。
切分原则
- 每个子句必须能独立构成一个完整意图。
- 不可过度细分,导致子句无法理解。
- 拆分后需要继承必要动作、位置或设备信息。
改写规则
动作继承
“打开空调和电视”应改写为:
[
{
"condition": null,
"querys": [
{"subquery": "打开空调", "intent": "设备控制"},
{"subquery": "打开电视", "intent": "设备控制"}
]
}
]
无 trigger 的位置继承
“打开客厅电视和吸顶灯”应改写为:
[
{
"condition": null,
"querys": [
{"subquery": "打开客厅电视", "intent": "设备控制"},
{"subquery": "打开客厅吸顶灯", "intent": "设备控制"}
]
}
]
设备继承
“客厅吸顶灯调到最亮色温调到最大”应改写为:
[
{
"condition": null,
"querys": [
{"subquery": "客厅吸顶灯调到最亮", "intent": "设备控制"},
{"subquery": "客厅吸顶灯色温调到最大", "intent": "设备控制"}
]
}
]
典型单意图例子
- 打开空调调到二十六度。
- 扫地机设置为又扫又拖清理一下客厅。
- 打开网易云音乐播放青花瓷。
- 关闭主驾和后排车窗。
- 明天武汉和北京的天气。
- 播放张杰的天下并调成单曲循环模式。
典型多指令例子
- 关闭所有的座椅加热然后声音放到十三。
- 将能量回收调到柔和并打开氛围灯。
- 关闭卧室的灯定一个明天下午四点的闹钟。
- 关闭 QQ 音乐打开网易云音乐。
- HUD 角度往左往上偏一点。