# 对象目录 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=["后排"])) ```