# 函数目录

function 可以作为最终 target 输出。若 function 参数需要 object，先构造 object，再调用 function。

## 通用规则：device 参数

**所有 function 都允许并要求带 `device=` 参数**——只要 query 中含主控设备 / 房间 / 空间 / 车内位置 / 设备模式 任一类信息（按 `Device` 的"任务定义"，被控设备不算），就必须把 `device=Device(...)` 抽进来，写到 function 调用里。

- 这条规则**没有函数级例外**：FinanceQA / CalendarQA / Generate / WeatherQA / VisionQA / Summarize / Chat / QA / 自定义 Agent tag … 全部适用。
- `device=` 抽取规则（哪些槽位、字面量怎么归一化、共现怎么写）见 [`对象目录.md::Device`](./对象目录.md#device)。

下文各 function 的"参数"小节列的是核心业务参数，`device=` 因为是通用规则，**不再逐一重复**——除非该 function 对 device 抽取有特殊补充约定。

## CalendarQA

返回类型：`function`

Agent：`ToolsAgent`

指令类型：指令操作

功能范围：日历、当前日期、目前时间的查询，也包括指定地点时区查询，以及节日、节气、假期的时间查询。事件时间查询通常属于 `QA()`，例如“阅兵是什么时候”。

参数：

| 参数 | 说明 |
| --- | --- |
| type | 枚举：TIME、DATE、MONTH、YEAR、LUNAR_DATE、WEEKDAY、FESTIVAL、SOLAR_TERM |
| target_time | Optional[str] 时间槽位，不填默认为当前时间 |
| location | Optional[str 或 Location] 目标地点，不填默认为用户所在位置 |

示例：

```text
CalendarQA(type="DATE",target_time="今天")
CalendarQA(type="TIME")
x0=Location(country="美国",province="华盛顿",city="西雅图")
CalendarQA(type="TIME",target_time="现在",location=x0)
```

## TimeDistance

返回类型：`function`

Agent：`ToolsAgent`

指令类型：指令问答

功能范围：计算两个时间点的间隔；基于时间间隔推算未来或过去日期；基于某个时间点推算另一个时间点。

参数：

| 参数 | 说明 |
| --- | --- |
| type | 枚举：DEFAULT、YEAR、MONTH、WEEK、DAY、HOUR、MINUTE、SECOND |
| start_time | 起始时间，可为具体时间、相对时间、节日节气、PersonalDate |
| end_time | 结束时间，可为具体时间、相对时间、节日节气、PersonalDate |

示例：

```text
TimeDistance(type="DAY",start_time="现在",end_time="八月十五")
x0=PersonalDate(type="BIRTHDAY",relation=["本人"])
TimeDistance(type="DAY",start_time="现在",end_time=x0)
TimeDistance(type="YEAR",start_time="1980年",end_time="现在")
```

## TimeCalculate

返回类型：`function`

Agent：`ToolsAgent`

指令类型：指令问答

功能范围：除 `TimeDistance` 之外的其他时间计算类问题。

参数：无固定参数。

示例：

```text
TimeCalculate()
```

适用 query：

- 上午9:18到中午12:18然后下午2点到6点加起来一共多少个小时。
- 早上7点半到晚上7点一共是几个小时中间去掉一个小时。
- 二十五周是多少天。

## VisionQA

返回类型：`function`

Agent：`dialogAgent`

指令类型：指令操作

功能范围：图片问答与指代问答。图片来源可以是屏幕、拍照、用户上传、历史视觉信息等。

参数：

| 参数 | 说明 |
| --- | --- |
| imageSource | 枚举：DEFAULT、SCREEN、PHOTO、HISTORY_VISION、UNKNOWN |
| direction | Optional[str] 方位信息，如前、后、左、右、左前、附近等 |
| object | Optional[object] 业务加持对象，如 Vehicle、Food、Icon、Text 等 |

示例：

```text
VisionQA(imageSource="DEFAULT")
x0=Vehicle()
VisionQA(imageSource="DEFAULT",object=x0)
x0=Vehicle(brand="奔驰")
VisionQA(imageSource="PHOTO",direction="前",object=x0)
x0=Text()
VisionQA(imageSource="DEFAULT",object=x0)
```

## Generate

返回类型：`function`

Agent：`aicreativeAgent`

指令类型：指令操作

功能范围：视频剪辑、文生图、图生图、文本生成等创作意图。

参数：

| 参数 | 说明 |
| --- | --- |
| object | 枚举对象：Video、Image、Text |

示例：

```text
x0=Video()
Generate(object=x0)
x0=Image()
Generate(object=x0)
x0=Text()
Generate(object=x0)
```

## ImageWebSearch

返回类型：`function`

Agent：`aicreativeAgent`

指令类型：指令操作

功能范围：搜索静态图片、动态图片、表情包、地图相关图片、手抄报图片、简笔画图片。

示例：

```text
ImageWebSearch()
```

适用 query：

- 奥特曼的图片。
- 搞笑的动态图。
- 中国地图。
- 猫的简笔画。
- 钢铁侠长什么样。

## WeatherQA

返回类型：`function`

Agent：`ToolsAgent`

指令类型：指令操作

功能范围：近期天气情况问答，包括天气、温度、湿度、风力、日出日落、空气质量、穿衣指数、洗车指数等。

参数：

| 参数 | 说明 |
| --- | --- |
| Location | List[Location] 位置信息列表 |
| time | List[str] 时间信息列表 |

示例：

```text
WeatherQA()
WeatherQA(time=["春节"])
x0=Location(country="中国",province="北京市",city="北京市")
WeatherQA(Location=[x0])
```

## EarthquakeQA

返回类型：`function`

Agent：`ToolsAgent`

指令类型：指令操作

功能范围：地震信息查询。

参数：

| 参数 | 说明 |
| --- | --- |
| Location | List[Location] 位置信息列表 |
| time | List[str] 时间信息列表 |

示例：

```text
EarthquakeQA(time="最近")
x0=Location(country="中国",province="北京市",city="北京市")
EarthquakeQA(Location=[x0])
```

## Summarize

返回类型：`function`

Agent：`ToolsAgent`

指令类型：指令操作

功能范围：文档、URL 的总结、分析与问答。如果文档文字以图片形式呈现，仍给文档总结。

参数：

| 参数 | 说明 |
| --- | --- |
| object | Optional[Resource] 待总结资源 |

示例：

```text
x0=Resource(type="DOC")
Summarize(object=x0)
x0=Resource(type="URL")
Summarize(object=x0)
Summarize()
```

## FinanceQA

返回类型：`function`

Agent：`dialogAgent`

指令类型：指令操作

功能范围：股票查询、期货查询、黄金价格查询、股票推荐、股票问答。

参数：

| 参数 | 说明 |
| --- | --- |
| type | Optional[str] 股票、金价、期货、default |
| name | Optional[str] 股票名称 |
| code | Optional[str] 股票代码 |
| time | Optional[str] 时间 |

示例：

```text
FinanceQA(type="股票",name="喜临门")
FinanceQA(type="股票",name="北矿科技")
FinanceQA(type="期货")
FinanceQA(type="金价")
FinanceQA(type="default",time="今天")
```

## Chat

返回类型：`function`

Agent：`dialogAgent`

指令类型：指令问答、指令操作

功能范围：外语聊天、闲聊、唤醒词、小爱拟人聊天、重复用户内容、特殊语气/音色说话。

参数：

| 参数 | 说明 |
| --- | --- |
| type | Optional[str] 当前包括 wakeup |
| TTSType | Optional[str] 特殊语气、风格、声音、音色 |
| TTSMode | Optional[str] OPEN 或 CLOSE |

示例：

```text
Chat()
Chat(type="wakeup")
Chat(TTSType="悄悄话",TTSMode="OPEN")
Chat(TTSType="石矶娘娘",TTSMode="CLOSE")
```

## QA

返回类型：`function`

Agent：`dialogAgent`

指令类型：指令问答

功能范围：通用知识问答和兜底问答，包括人物、医疗、彩票、搜索、百科、星座、民俗、烹饪、角色扮演、通用搜索、代码问答、数学定义、非近期天气、非小米产品知识、交通规则、单实体兜底、数字生成等。

参数：

| 参数 | 说明 |
| --- | --- |
| TTSType | Optional[str] 特殊语气、风格、声音、音色 |
| type | Optional[str] 当前包括 law |

示例：

```text
QA()
QA(TTSType="林黛玉")
QA(type="law")
```

典型 query：

- 感觉甲醛对身体有害应该去医院看什么科。
- 六月二十一号是什么星座。
- 什么是巾帼。
- 蛋包饭怎么做。
- 搜索一下牛顿是谁。
- 民用航空法的5大特征。
