Add label master skill
This commit is contained in:
@@ -0,0 +1,266 @@
|
||||
# 自动任务判断
|
||||
|
||||
自动任务是独立维度,不属于业务标签树。它用于判断 query 是否包含“条件触发 + 动作”的结构,以及如何抽取 condition 和 action。
|
||||
|
||||
## 输出目标
|
||||
|
||||
推荐结构:
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
"condition": "上车时",
|
||||
"querys": [
|
||||
{"subquery": "打开空调", "intent": "设备控制"}
|
||||
]
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
`condition` 可以是:
|
||||
|
||||
- 具体条件文本,例如 `上车时`、`电量低于20%时`。
|
||||
- `default`:无条件管理超级任务或无条件创建/修改/查询/删除备忘录类信息。
|
||||
- `null`:普通无条件单意图或非 default 的无条件动作。
|
||||
|
||||
## 条件定义
|
||||
|
||||
常见触发事件:
|
||||
|
||||
- `……时候`
|
||||
- `当……时`
|
||||
- `如果……就`
|
||||
- `把……就`
|
||||
- `在……之后`
|
||||
- `到达……时`
|
||||
- `一……就`
|
||||
- `每……`
|
||||
|
||||
常见时间条件:
|
||||
|
||||
- 时间段,例如“上午”。
|
||||
- 时间点,例如“14点”。
|
||||
- 持续或延迟时间,例如“开十分钟”“二十分钟后”。
|
||||
|
||||
## 复合条件完整性
|
||||
|
||||
`就` 作为动作分隔标记时,`就` 之前的所有内容整体构成 condition,禁止截断。
|
||||
|
||||
`且` 连接的多个状态全部是 condition 的组成部分,不可将其中任意部分误识别为 action。
|
||||
|
||||
例子:
|
||||
|
||||
```text
|
||||
晚饭前20分钟后转向灯关闭就风量调高
|
||||
condition = 晚饭前20分钟后转向灯关闭
|
||||
action = 风量调高
|
||||
```
|
||||
|
||||
```text
|
||||
关闭后排空调且副驾座椅加热开启时打开副驾座椅通风
|
||||
condition = 关闭后排空调且副驾座椅加热开启时
|
||||
action = 打开副驾座椅通风
|
||||
```
|
||||
|
||||
## 条件作用域
|
||||
|
||||
### 默认向右绑定
|
||||
|
||||
条件默认只作用于其后最近的动作序列,直到出现新的条件或语义结束。
|
||||
|
||||
### 不向左回溯
|
||||
|
||||
条件不影响其前面的动作。
|
||||
|
||||
```text
|
||||
播放音乐上车时打开空调
|
||||
```
|
||||
|
||||
应解析为:
|
||||
|
||||
```json
|
||||
[
|
||||
{"condition": null, "querys": [{"subquery": "播放音乐", "intent": "音乐播放"}]},
|
||||
{"condition": "上车时", "querys": [{"subquery": "打开空调", "intent": "设备控制"}]}
|
||||
]
|
||||
```
|
||||
|
||||
### 多个条件各自作用域
|
||||
|
||||
```text
|
||||
上车时打开空调下车时关闭空调
|
||||
```
|
||||
|
||||
应解析为:
|
||||
|
||||
```json
|
||||
[
|
||||
{"condition": "上车时", "querys": [{"subquery": "打开空调", "intent": "设备控制"}]},
|
||||
{"condition": "下车时", "querys": [{"subquery": "关闭空调", "intent": "设备控制"}]}
|
||||
]
|
||||
```
|
||||
|
||||
### `或` 连接多个触发条件
|
||||
|
||||
`或` 连接多个触发条件时,视为同一自动任务的多触发项,整体保留为单一 condition,不拆成多个 group,不重复输出动作。
|
||||
|
||||
```text
|
||||
主驾有人上车时或车内温度低于10度时或主驾系上安全带时打开空调
|
||||
```
|
||||
|
||||
应解析为:
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
"condition": "主驾有人上车时或车内温度低于10度时或主驾系上安全带时",
|
||||
"querys": [{"subquery": "打开主驾空调", "intent": "车载控制"}]
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
## default 场景
|
||||
|
||||
`default` 表示无条件自动任务管理或无条件备忘录类信息管理,不等同于 `null`。
|
||||
|
||||
适用:
|
||||
|
||||
- 无条件打开、关闭、创建、删除、修改、查询、编辑超级任务。
|
||||
- 超级任务别称包括:自定义习惯、智能习惯、智能场景、自动化、小米任务等。
|
||||
- 无条件创建、修改、查询、删除备忘录类信息,包括日程、提醒、备忘录、便签、安排、事项等。
|
||||
|
||||
例子:
|
||||
|
||||
```json
|
||||
[
|
||||
{"condition": "default", "querys": [{"subquery": "删除自定义习惯", "intent": "系统控制"}]}
|
||||
]
|
||||
```
|
||||
|
||||
```json
|
||||
[
|
||||
{"condition": "default", "querys": [{"subquery": "提醒我去买菜", "intent": "提醒"}]}
|
||||
]
|
||||
```
|
||||
|
||||
反例:
|
||||
|
||||
- `打开提醒`:这是普通无条件单意图,`condition=null`,intent 为提醒,不属于 default。
|
||||
- `创建长途驾驶前检查水和食物的提醒`:包含明确触发条件,condition 应为 `长途驾驶前`,不属于 default。
|
||||
|
||||
## 改写规则
|
||||
|
||||
### 持续时间
|
||||
|
||||
符合条件抽取的持续时间统一改写为 `持续+时间`。若同时存在触发事件,则改写为 `触发条件+持续+时间`。
|
||||
|
||||
例子:
|
||||
|
||||
```text
|
||||
座椅加热十分钟
|
||||
```
|
||||
|
||||
```json
|
||||
[
|
||||
{"condition": "持续十分钟", "querys": [{"subquery": "打开座椅加热", "intent": "车载控制"}]}
|
||||
]
|
||||
```
|
||||
|
||||
### 提醒改写
|
||||
|
||||
条件不为空时,播报、提示、叫我、喊我、通知我、告诉我、报告、念一下等表述统一改写为 `提醒我`。
|
||||
|
||||
例子:
|
||||
|
||||
```text
|
||||
电量低于20%时通知我立刻充电
|
||||
```
|
||||
|
||||
```json
|
||||
[
|
||||
{"condition": "电量低于20%时", "querys": [{"subquery": "提醒我立刻充电", "intent": "提醒"}]}
|
||||
]
|
||||
```
|
||||
|
||||
### 超级任务
|
||||
|
||||
当用户 query 明确包含超级任务相关关键词,或明确修改/删除/取消某个已命名习惯或规则时,需要新增对应管理动作子句,intent 为 `系统控制`。
|
||||
|
||||
关键词包括:
|
||||
|
||||
- HyperTask
|
||||
- HyperMind
|
||||
- 超级任务
|
||||
- 小米任务
|
||||
- 小米任务大师
|
||||
- 智能任务
|
||||
- 任务大师
|
||||
- 自动化
|
||||
- 自动化任务
|
||||
- 自动化场景
|
||||
- 智能场景
|
||||
- 自定义场景
|
||||
- 自定义习惯
|
||||
- 智能习惯
|
||||
|
||||
反例:如果只是直接描述条件触发控制,例如“学校放学时段开启警示灯”,且没有超级任务关键词,不添加管理 Agent。
|
||||
|
||||
### 带 trigger 的位置继承
|
||||
|
||||
当 condition 中包含位置,如主驾、副驾、后排,后续无明确位置的动作子句需要继承 condition 中的位置。
|
||||
|
||||
继承模式:
|
||||
|
||||
- 继承 trigger 全部位置:动作语义上作用于所有位置时拆分。
|
||||
- 就近继承:动作更适合绑定最近位置时只继承最近位置。
|
||||
- 不继承:动作本身已有位置、提醒类动作、或动作语义不区分位置。
|
||||
|
||||
### 提醒我说
|
||||
|
||||
条件不为空且用户子句语义为提醒时,如果提醒内容中还包含时间词,不把提醒内容里的时间额外抽为 condition,而是改写为 `提醒我说...`。
|
||||
|
||||
例子:
|
||||
|
||||
```text
|
||||
明天八点提醒我后天晚上去露营
|
||||
```
|
||||
|
||||
```json
|
||||
[
|
||||
{"condition": "明天八点", "querys": [{"subquery": "提醒我说后天晚上去露营", "intent": "提醒"}]}
|
||||
]
|
||||
```
|
||||
|
||||
### 执行一次
|
||||
|
||||
当用户子句中包含“执行一次 / 只执行一次 / 仅一次 / 单次执行”等限定词时,将其拼接到条件中,格式为 `执行一次+原始条件`。
|
||||
|
||||
### 纯条件句
|
||||
|
||||
如果 input 仅包含触发条件,没有具体动作,则输出条件和空 `querys`,禁止凭空生成动作。
|
||||
|
||||
```json
|
||||
[
|
||||
{"condition": "停车超过90分钟时", "querys": []}
|
||||
]
|
||||
```
|
||||
|
||||
## 条件负例
|
||||
|
||||
以下表达虽然包含“时”等触发词,但更像车辆/系统内置功能、状态描述或固定安全能力,不一定应当当作用户创建自动任务:
|
||||
|
||||
- 走远时车门上锁
|
||||
- 锁车时关闭车窗
|
||||
- 车辆解锁时鸣笛
|
||||
- 倒车时后视镜自动下翻
|
||||
- 停车时后视镜自动折叠
|
||||
- 离车时打开哨兵模式
|
||||
- 车辆超速时提醒我
|
||||
- 并线时打开后向来车辅助
|
||||
- 低速行驶时提示我
|
||||
- 红绿灯时提醒我
|
||||
- 车道偏离时打开辅助
|
||||
- 上车时打开冰箱
|
||||
- 雨天时打开雾灯建议
|
||||
- 安全带未系时提醒我
|
||||
- 超速时打开告警限速
|
||||
Reference in New Issue
Block a user