273 lines
7.8 KiB
Markdown
273 lines
7.8 KiB
Markdown
# 对象目录
|
||
|
||
object 用于辅助 function 填参,通常不单独作为最终 target。只有目标 function 的参数需要 object 时才抽取。
|
||
|
||
## Location
|
||
|
||
返回类型:`object`
|
||
|
||
功能范围:获取用户所在或 query 指定的位置信息,包括国家、省份、城市、县/区、乡镇、景点或 POI,用于辅助地点相关查询。
|
||
|
||
参数:
|
||
|
||
| 参数 | 说明 |
|
||
| --- | --- |
|
||
| country | Optional[str] 国家名称 |
|
||
| province | Optional[str] 省份名称 |
|
||
| city | Optional[str] 城市名称 |
|
||
| district | Optional[str] 县/区名称 |
|
||
| town | Optional[str] 乡镇名称 |
|
||
| poi | Optional[str] 景点或 POI 信息 |
|
||
|
||
示例:
|
||
|
||
```text
|
||
x0=Location(country="美国",province="华盛顿",city="西雅图")
|
||
CalendarQA(type="TIME",target_time="现在",location=x0)
|
||
```
|
||
|
||
## PersonalDate
|
||
|
||
返回类型:`object`
|
||
|
||
功能范围:获取用户个人相关的特定时间点,如生日、结婚纪念日,或者亲人、朋友的时间纪念日,用于辅助个人相关时间查询。
|
||
|
||
参数:
|
||
|
||
| 参数 | 说明 |
|
||
| --- | --- |
|
||
| type | 枚举:BIRTHDAY(生日),ANNIVERSARY(结婚纪念日) |
|
||
| relation | List[str] 关系人,可以是本人、父母、配偶、子女、朋友姓名等 |
|
||
|
||
示例:
|
||
|
||
```text
|
||
x0=PersonalDate(type="BIRTHDAY",relation=["本人"])
|
||
TimeDistance(type="DAY",start_time="现在",end_time=x0)
|
||
```
|
||
|
||
## Resource
|
||
|
||
返回类型:`object`
|
||
|
||
功能范围:资源类信息,包括文档、图片、视频、音频、网页等,用于辅助总结、问答或资源处理。
|
||
|
||
参数:
|
||
|
||
| 参数 | 说明 |
|
||
| --- | --- |
|
||
| type | 枚举:DOC、URL、IMAGE、VIDEO、AUDIO |
|
||
|
||
示例:
|
||
|
||
```text
|
||
x0=Resource(type="DOC")
|
||
Summarize(object=x0)
|
||
```
|
||
|
||
## VisionQA 辅助对象
|
||
|
||
以下对象常作为 `VisionQA` 的 `object` 参数,用于给视觉问答增加业务类型约束:
|
||
|
||
| 对象 | 说明 |
|
||
| --- | --- |
|
||
| Vehicle | 车辆信息,可包含 color、brand、type |
|
||
| Food | 食物场景 |
|
||
| Icon | 图标、按钮、界面元素 |
|
||
| Person | 人物场景 |
|
||
| Animal | 动物场景 |
|
||
| Plant | 植物场景 |
|
||
| Text | 文字、题目、阅读场景 |
|
||
|
||
示例:
|
||
|
||
```text
|
||
x0=Vehicle(brand="奔驰")
|
||
VisionQA(imageSource="PHOTO",direction="前",object=x0)
|
||
```
|
||
|
||
## 生成类辅助对象
|
||
|
||
`Generate` 可使用如下对象:
|
||
|
||
| 对象 | 说明 |
|
||
| --- | --- |
|
||
| Video | 视频 |
|
||
| Image | 图片 |
|
||
| Text | 文本 |
|
||
|
||
示例:
|
||
|
||
```text
|
||
x0=Image()
|
||
Generate(object=x0)
|
||
```
|
||
|
||
## Device
|
||
|
||
返回类型:`object`
|
||
|
||
功能范围:当 query 中出现"主控设备 / 房间 / 空间 / 车内位置 / 设备模式"任一类信息时,作为 function 的 `device=` 参数补充设备约束。
|
||
|
||
### 任务定义(什么时候抽 Device)
|
||
|
||
- **抽**:query 显式表达"指定某个主控设备执行某个动作",例如"电视播放小猪佩奇"。
|
||
- **不抽**:query 中的设备是**被控设备**而非主控设备,例如"空调调到二十六度"——空调是被控对象,不抽 `device`。
|
||
|
||
判断要点:query 是不是在告诉系统「请用 X 这个设备执行 Y 动作」?是 → 抽 X 进 device。X 仅作为动作目标 → 不抽。
|
||
|
||
### 抽取槽位
|
||
|
||
| 槽位 | 类型 | 描述 |
|
||
| --- | --- | --- |
|
||
| `category` | `List[str]` | 主控设备类型,**按词表归一化**(见下) |
|
||
| `room` | `List[str]` | 房间名,不归一化,直接抽 query 中出现的房间 |
|
||
| `space` | `List[str]` | 空间类型,可选值:`家`、`车` |
|
||
| `location` | `List[str]` | 车上设备位置,不归一化,直接抽 query 中出现的位置 |
|
||
| `mode` | `str` | 模式类型,可选值:`AllDevice`(指定全部设备)、`WholeHousePlay`(全屋播放) |
|
||
|
||
### 主控设备归一化词表(`category` 槽用)
|
||
|
||
| `category` 归一化值 | query 泛化词 |
|
||
| --- | --- |
|
||
| 手机 | 手机、折叠机、全面屏、红米手机、小米手机 |
|
||
| 平板 | 平板、pad |
|
||
| 音箱 | 音箱、音响、无屏音箱、sound、sound pro、AI 音箱、Sound、有屏音箱、触屏音箱、带屏音箱 |
|
||
| 闺蜜机 | 闺蜜机 |
|
||
| 电视 | 电视、TV、蓝牙电视、红外电视、65 寸电视、75 寸电视、85 寸电视、100 寸电视、小米电视、红米电视、小米盒子、电视盒子 |
|
||
| 中控屏 | 家庭屏、智慧屏、智能家庭屏、智慧面板、中控屏、车机、车载屏幕、中控 |
|
||
| 手表 | 手表、智能手表、小米手表、儿童手表 |
|
||
| 手环 | 手环、智能手环、小米手环 |
|
||
| 耳机 | 耳机、蓝牙耳机、小米耳机 |
|
||
| 眼镜 | 眼镜、智能眼镜、AI 眼镜、小米眼镜 |
|
||
| 投影仪 | 投影仪 |
|
||
| 显示器 | 显示器、显示屏 |
|
||
| 笔记本电脑 | 电脑、笔记本、笔记本电脑、笔电 |
|
||
|
||
> 词表外的设备 query 字面(含"屏"/"屏幕"等独立词),按 query 字面量保留写入 `category`,不强行归一。
|
||
|
||
### 抽取示例
|
||
|
||
#### 只包含设备信息
|
||
|
||
```text
|
||
电视播放小猪佩奇
|
||
→ Agent(tag="视频播放",device=Device(category=["电视"]))
|
||
|
||
音箱回答我天空为什么这么蓝
|
||
→ QA(device=Device(category=["音箱"]))
|
||
```
|
||
|
||
#### 只包含房间信息
|
||
|
||
```text
|
||
卧室播放儿歌
|
||
→ Agent(tag="音乐播放",device=Device(room=["卧室"]))
|
||
|
||
客厅播放海绵宝宝
|
||
→ Agent(tag="视频播放",device=Device(room=["客厅"]))
|
||
```
|
||
|
||
#### 只包含空间信息
|
||
|
||
```text
|
||
家里播放音乐
|
||
→ Agent(tag="音乐播放",device=Device(space=["家"]))
|
||
|
||
车上放个电影
|
||
→ Agent(tag="视频播放",device=Device(space=["车"]))
|
||
```
|
||
|
||
#### 只包含位置信息
|
||
|
||
```text
|
||
后排播放电台
|
||
→ Agent(tag="电台播放",device=Device(location=["后排"]))
|
||
|
||
前排播放音乐
|
||
→ Agent(tag="音乐播放",device=Device(location=["前排"]))
|
||
```
|
||
|
||
#### 包含设备 + 房间
|
||
|
||
```text
|
||
客厅音箱播放青花瓷
|
||
→ Agent(tag="音乐播放",device=Device(category=["音箱"],room=["客厅"]))
|
||
|
||
卧室电视播报一下天气
|
||
→ WeatherQA(device=Device(category=["电视"],room=["卧室"]))
|
||
```
|
||
|
||
#### 包含设备 + 位置
|
||
|
||
```text
|
||
后排电视打开抖音
|
||
→ Agent(tag="应用控制",device=Device(category=["电视"],location=["后排"]))
|
||
|
||
二排电视画一个小狗
|
||
→ x0=Image()
|
||
Generate(object=x0,device=Device(category=["电视"],location=["二排"]))
|
||
```
|
||
|
||
#### 包含设备 + 位置 + 空间
|
||
|
||
```text
|
||
让我车上后排的电视唱一首歌
|
||
→ Agent(tag="音乐播放",device=Device(category=["电视"],space=["车"],location=["后排"]))
|
||
|
||
车上后排电视报一下天气
|
||
→ WeatherQA(device=Device(category=["电视"],space=["车"],location=["后排"]))
|
||
```
|
||
|
||
#### 包含设备 + 房间 + 空间
|
||
|
||
```text
|
||
家里主卧的音箱播放周杰伦的歌
|
||
→ Agent(tag="音乐播放",device=Device(category=["音箱"],room=["主卧"],space=["家"]))
|
||
|
||
让我家客厅的电视播放熊出没
|
||
→ Agent(tag="视频播放",device=Device(category=["电视"],room=["客厅"],space=["家"]))
|
||
```
|
||
|
||
#### 全部设备模式(mode="AllDevice")
|
||
|
||
```text
|
||
全部电视播放小猪佩奇
|
||
→ Agent(tag="视频播放",device=Device(category=["电视"],mode="AllDevice"))
|
||
|
||
全部音箱停止播放音乐
|
||
→ Agent(tag="播放器控制",device=Device(category=["音箱"],mode="AllDevice"))
|
||
```
|
||
|
||
#### 全屋播放模式(mode="WholeHousePlay",线上未实现,仅协议定义)
|
||
|
||
```text
|
||
全屋播放小猪佩奇
|
||
→ Agent(tag="视频播放",device=Device(mode="WholeHousePlay"))
|
||
|
||
全屋播放青花瓷
|
||
→ Agent(tag="音乐播放",device=Device(mode="WholeHousePlay"))
|
||
```
|
||
|
||
#### 被动多轮(继承上一轮的 device)
|
||
|
||
```text
|
||
q1: 客厅电视播放电影
|
||
q2: 声音大点
|
||
→ Agent(tag="系统控制",device=Device(category=["电视"],room=["客厅"]))
|
||
|
||
q1: 卧室音箱播放音乐
|
||
q2: 播放周杰伦的歌
|
||
→ Agent(tag="音乐播放",device=Device(category=["音箱"],room=["卧室"]))
|
||
```
|
||
|
||
#### 特殊规则("屏"/"屏幕"不归一)
|
||
|
||
```text
|
||
前排屏播放音乐
|
||
→ Agent(tag="音乐播放",device=Device(category=["屏"],location=["前排"]))
|
||
|
||
后排屏幕播放动画片
|
||
→ Agent(tag="视频播放",device=Device(category=["屏幕"],location=["后排"]))
|
||
```
|