Align label output target formats

This commit is contained in:
wuyang6
2026-05-12 12:06:39 +08:00
parent 6143f876d3
commit c517d93034
7 changed files with 151 additions and 116 deletions
+22 -29
View File
@@ -8,7 +8,7 @@
输入理解 输入理解
-> 结构维度预判:自动任务 / 多指令 / complex -> 结构维度预判:自动任务 / 多指令 / complex
-> 业务标签候选:候选召回、领域、标签、高频边界 -> 业务标签候选:候选召回、领域、标签、高频边界
-> 输出能力判断:function program / intent / Agent 包装 -> 输出能力判断:function program / Agent 包装 / 结构化外壳
-> 组合最终结果 -> 组合最终结果
-> 不确定则向用户确认 -> 不确定则向用户确认
``` ```
@@ -27,7 +27,6 @@
如果是训练/评测数据生成,额外确认: 如果是训练/评测数据生成,额外确认:
- 是否需要 function program。 - 是否需要 function program。
- 是否需要 intent。
- 是否需要 `Agent(tag="xxx")` 包装。 - 是否需要 `Agent(tag="xxx")` 包装。
- 是否需要 complex、多指令、自动任务字段。 - 是否需要 complex、多指令、自动任务字段。
@@ -51,7 +50,7 @@
- `索引/维度索引.md` - `索引/维度索引.md`
- `判断维度/多指令判断.md` - `判断维度/多指令判断.md`
多指令判断会给出多个 `subquery`。后续业务标签判断应对每个 subquery 分别进行 多指令判断会给出多个子句。后续业务标签判断应对每个子句分别进行,最终按多行 target 组合
### complex ### complex
@@ -108,7 +107,7 @@ complex 是复杂度判断,独立于业务标签。它可以先粗判,但建
- 这个类别是否已经 function 化。 - 这个类别是否已经 function 化。
- function 是否需要参数。 - function 是否需要参数。
- 参数是否需要先构造 object。 - 参数是否需要先构造 object。
- 这个类别是否只是 intent - 这个类别是否只是旧 tag / intent;如果没有明确 function,当前默认输出 `Agent(tag="xxx")`
- 当前任务是否要求 `Agent(tag="xxx")` 包装。 - 当前任务是否要求 `Agent(tag="xxx")` 包装。
- Agent 字段是否只是承接知识,而不是最终 target。 - Agent 字段是否只是承接知识,而不是最终 target。
@@ -127,30 +126,24 @@ x0=Location(country="美国",province="华盛顿",city="西雅图")
CalendarQA(type="TIME",target_time="现在",location=x0) CalendarQA(type="TIME",target_time="现在",location=x0)
``` ```
### 单 query + intent ### 单 query + 旧 tag / intent 标签
```text
地图导航
```
### 单 query + Agent 包装
```text ```text
Agent(tag="地图导航") Agent(tag="地图导航")
``` ```
### 用户明确要求 intent target 时
```text
地图导航
```
### 多指令 ### 多指令
```json ```text
[ complex=true
{ Agent(query="退出导航",tag="地图导航")
"condition": null, Agent(query="打开后视镜加热",tag="车载控制")
"querys": [
{"subquery": "关闭卧室的灯", "intent": "设备控制"},
{"subquery": "定一个明天下午四点的闹钟", "intent": "闹钟计时器"}
]
}
]
``` ```
### 自动任务 ### 自动任务
@@ -170,9 +163,9 @@ Agent(tag="地图导航")
以下情况不要硬猜: 以下情况不要硬猜:
- 用户要生成数据,但没说明 target 使用 function program、intent 还是 Agent 包装 - 用户明确要求 function program,但当前标签卡片没有 function 签名
- function 和 intent 都可能满足。 - function 和 Agent 形式都可能满足,且用户对 target 形式有特殊要求
- 旧标签资料里只有 tag,但输出能力目录里没有对应 function 或 intent - 旧标签资料里只有 tag,但用户强制要求 function program
- 多指令和单意图之间存在明显歧义。 - 多指令和单意图之间存在明显歧义。
- 自动任务和普通定时/延时控制存在冲突。 - 自动任务和普通定时/延时控制存在冲突。
- complex 维度需要作为数据字段输出,但用户没有定义格式。 - complex 维度需要作为数据字段输出,但用户没有定义格式。
@@ -180,8 +173,8 @@ Agent(tag="地图导航")
推荐提问方式: 推荐提问方式:
```text ```text
我能判断业务标签大概率是“地图导航”,但这批数据的最终 target 还需要确认: 我能判断业务标签大概率是“地图导航”。当前知识库没有确认可用的地图导航 function 签名,
你希望写成 Agent(tag="地图导航"),还是写成具体 function / intent 形式? 默认建议写成 Agent(tag="地图导航")。如果你希望走 function program,需要先补充地图导航的 function 定义。
``` ```
## 7. 推荐输出模板 ## 7. 推荐输出模板
@@ -198,7 +191,7 @@ Agent(tag="地图导航")
- 排除:餐饮服务,因为 query 明确要求导航动作 - 排除:餐饮服务,因为 query 明确要求导航动作
输出形态: 输出形态:
- 推荐:Agent 包装 / intent / function program / 待确认 - 推荐:Agent 包装 / function program / 待确认
- 候选:Agent(tag="地图导航")地图导航 intent - 候选:Agent(tag="地图导航")已确认 function program
- 需要确认:当前任务是否要求 Agent 包装 - 需要确认:当前任务是否强制要求 function program
``` ```
@@ -1,24 +1,32 @@
# 多指令判断 # 多指令判断
多指令是独立维度,不属于业务标签树。它用于判断一个 query 是否需要拆成多个可独立执行的子任务,以及每个子任务对应的业务标签或 intent 多指令是独立维度,不属于业务标签树。它用于判断一个 query 是否需要拆成多个可独立执行的子任务,以及每个子任务对应的业务标签或 function
## 输出目标 ## 输出目标
推荐结构 当前数据开发默认口径下,多指令最终 target 不是一个 JSON group,而是
```json 1. 先把原 query 拆成多个可独立判断的子句。
[ 2. 每个子句单独判断业务标签和输出形态。
{ 3. 每个子句单独输出一条叶子 target。
"condition": null, 4. 如果需要输出 complex,complex 作为独立行放在最前面,不属于任何单个子句。
"querys": [
{"subquery": "关闭卧室的灯", "intent": "设备控制"}, 示例:
{"subquery": "定一个明天下午四点的闹钟", "intent": "闹钟"}
] ```text
} complex=true
] Agent(query="退出导航",tag="地图导航")
Agent(query="打开后视镜加热",tag="车载控制")
``` ```
其中 `condition` 由自动任务维度负责判断;没有条件时为 `null` 其中 `query` 字段保留拆分后的子句文本,`tag` 字段是该子句的业务标签
注意:
- 多指令只决定“是否拆分、怎么拆分、如何改写子句”。
- 每个子句的 `tag` 或 function 仍要继续走业务标签判断和输出形态判断。
- 多指令不是和 `Agent(...)` / function 并列的最终标签,而是把多个叶子 target 组合起来的结构。
- `condition` 由自动任务维度负责;普通多指令没有 condition。
## 单意图 ## 单意图
@@ -52,50 +60,29 @@
### 动作继承 ### 动作继承
“打开空调和电视”应改写为 “打开空调和电视”应拆成两个子句并分别输出
```json ```text
[ Agent(query="打开空调",tag="设备控制")
{ Agent(query="打开电视",tag="设备控制")
"condition": null,
"querys": [
{"subquery": "打开空调", "intent": "设备控制"},
{"subquery": "打开电视", "intent": "设备控制"}
]
}
]
``` ```
### 无 trigger 的位置继承 ### 无 trigger 的位置继承
“打开客厅电视和吸顶灯”应改写为 “打开客厅电视和吸顶灯”应拆成两个子句,并继承必要位置信息
```json ```text
[ Agent(query="打开客厅电视",tag="设备控制")
{ Agent(query="打开客厅吸顶灯",tag="设备控制")
"condition": null,
"querys": [
{"subquery": "打开客厅电视", "intent": "设备控制"},
{"subquery": "打开客厅吸顶灯", "intent": "设备控制"}
]
}
]
``` ```
### 设备继承 ### 设备继承
“客厅吸顶灯调到最亮色温调到最大”应改写为 “客厅吸顶灯调到最亮色温调到最大”应拆成两个子句,并继承设备名
```json ```text
[ Agent(query="客厅吸顶灯调到最亮",tag="设备控制")
{ Agent(query="客厅吸顶灯色温调到最大",tag="设备控制")
"condition": null,
"querys": [
{"subquery": "客厅吸顶灯调到最亮", "intent": "设备控制"},
{"subquery": "客厅吸顶灯色温调到最大", "intent": "设备控制"}
]
}
]
``` ```
## 典型单意图例子 ## 典型单意图例子
@@ -1,6 +1,6 @@
# 标注输出形态 # 标注输出形态
这个维度用于判断最终监督标签应该写成 function program、intent,还是 `Agent(tag="xxx")` 包装。详细 object、function、intent 定义见 `../输出能力/` 这个维度用于判断最终监督标签应该写成 function program、`Agent(tag="xxx")` 包装,还是特殊结构化输出。详细 object、function、intent 定义见 `../输出能力/`
它和业务标签不同: 它和业务标签不同:
@@ -16,14 +16,44 @@
- `../输出能力/意图目录.md` - `../输出能力/意图目录.md`
- `../输出能力/输出组合规范.md` - `../输出能力/输出组合规范.md`
## 当前数据开发默认口径
在当前标签大师和数据开发链路里,最终 target 优先分成两类:
1. **Function 形式**:只有当某个能力已经有明确 function 定义和可用参数签名时,才输出 function program,例如 `QA()``CalendarQA(...)``Summarize(...)`
2. **Agent 形式**:没有明确 function 定义、或只是旧 tag / intent 业务标签时,默认输出 `Agent(tag="xxx")`,例如 `Agent(tag="地图导航")`
`intent` 名称可以作为业务标签名、拆分子句里的意图字段或兼容中间形态,但在当前数据开发默认口径下,不作为首选最终 target。除非用户明确要求“输出 intent 形式”,否则不要把 `intent = 地图导航``Agent(tag="地图导航")` 并列反问。
## 两层输出结构
最终输出先判断外层结构,再判断叶子 target:
| 层级 | 类型 | 说明 |
| --- | --- | --- |
| 外层结构 | 单意图 | 只有一个 query 和一个叶子 target。 |
| 外层结构 | 多指令 | 需要拆成多个子句,每个子句单独输出一条叶子 target,并按行组合。 |
| 外层结构 | 自动任务 | 需要输出 condition + querys,每个子任务再写自己的叶子 target。 |
| 叶子 target | function program | 已 function 化且签名明确的能力。 |
| 叶子 target | `Agent(tag="xxx")` | 未 function 化或旧 tag / intent 标签。 |
自动任务、多指令不是和 function / Agent 并列的叶子 target,而是包住 function / Agent 的结构化外壳。
多指令场景里,Agent 叶子 target 需要保留子句文本:
```text
Agent(query="退出导航",tag="地图导航")
Agent(query="打开后视镜加热",tag="车载控制")
```
## 基本原则 ## 基本原则
1. 不要默认把所有旧 `tag标签` 包装成 `Agent(tag="xxx")` 1. 已 function 化并且 function 签名明确的能力,优先使用 function program
2. object 只作为 function 参数,不单独作为最终 target。 2. object 只作为 function 参数,不单独作为最终 target。
3. function 可以是多行 program,允许先构造 object 再调用 function。 3. function 可以是多行 program,允许先构造 object 再调用 function。
4. intent 可以直接作为 target,也可以按任务要求包装成 `Agent(tag="xxx")` 4. 未 function 化或 function 签名不明确的旧 `tag标签` / intent 标签,默认使用 `Agent(tag="xxx")`
5. Agent 字段表示承接方,是知识维度,不等于最终 target。 5. Agent 字段表示承接方,是知识维度,不等于最终 target 里的 tag 名;不要写成 `Agent(tag="mapAgent")`
6. 如果当前数据任务没有明确要求 function、intent 还是 Agent 包装,必须向用户确认,不要自行决定 6. 如果用户明确要求 function program,但对应卡片没有 function 签名,必须说明 function 待补充,不要臆造函数名和参数
7. 对 QA 子类尤其要保守:`医疗问答``百科``美食问答` 等可能只是知识分类,最终输出可能是 `QA()`,不一定是 `Agent(tag="医疗问答")` 7. 对 QA 子类尤其要保守:`医疗问答``百科``美食问答` 等可能只是知识分类,最终输出可能是 `QA()`,不一定是 `Agent(tag="医疗问答")`
## 常见 Function 形态 ## 常见 Function 形态
@@ -41,7 +71,7 @@
## Agent 包装形态 ## Agent 包装形态
任务明确是规划模型的 Agent 标签数据,或者用户明确给出 `Agent(tag="xxx")`,可以使用 Agent 包装形态。 能力没有明确 function 定义,或者任务使用旧 tag / Agent 标签体系时,使用 Agent 包装形态。
例子: 例子:
@@ -51,7 +81,7 @@ Agent(tag="餐饮服务")
Agent(tag="设备控制") Agent(tag="设备控制")
``` ```
如果用户只说“地图导航标签”但没有说明输出格式,标签知识可以推荐业务标签,但生成数据前仍要确认最终 target 如果用户只说“地图导航标签”,且没有明确要求 function program 或 intent target,在当前数据开发默认口径下推荐 `Agent(tag="地图导航")`
## 推荐输出 ## 推荐输出
@@ -60,14 +90,13 @@ Agent(tag="设备控制")
```text ```text
业务标签:地图导航 业务标签:地图导航
输出形态候选: 输出形态候选:
- AgentAgent(tag="地图导航") - 推荐Agent(tag="地图导航")
- FunctionSearchRoute / Navigation / 其他地图 function 候选 - Function当前知识库没有确认可用的地图导航 function 签名,不要臆造 Navigation(...)
推荐:待用户确认,当前需求未说明使用 Agent 还是 Function
``` ```
做数据生成时,如果 target 不明确,必须先问: 做数据生成时,如果用户明确要求 function program,但对应标签没有可用 function 签名,必须先问:
```text ```text
这批数据最终 target 是使用 function program、intent 这批数据要求输出 function program,但当前标签卡片没有确认 function 签名。
还是使用 Agent 包装,例如 Agent(tag="地图导航") 是否先按 Agent(tag="地图导航") 生成,还是你补充地图导航 function 定义
``` ```
@@ -5,9 +5,9 @@
> 注意:旧标签资料中同时存在 tag 标签和 Function 定义。本卡片不直接声明最终训练标签;生成数据前必须结合 `判断维度/标注输出形态.md` 确认当前任务使用 Agent 形式还是 Function 形式。 > 注意:旧标签资料中同时存在 tag 标签和 Function 定义。本卡片不直接声明最终训练标签;生成数据前必须结合 `判断维度/标注输出形态.md` 确认当前任务使用 Agent 形式还是 Function 形式。
- 旧 tag 标签:地图导航 - 旧 tag 标签:地图导航
- Agent 包装候选(不代表最终)Agent(tag="地图导航") - 推荐输出形态Agent(tag="地图导航")
- Function 输出候选:待确认 - Function 输出候选:当前没有确认可用的 function 签名;典型 query 中的 Navigation、SwitchRoute、SearchPoi 等更像三级语义功能点,不要直接臆造成最终 function program
- 推荐输出形态:待确认 - 需要确认的情况:只有当用户明确要求地图导航走 function program 时,才需要先补充 function 名称、参数签名和示例
## 功能抽象 ## 功能抽象
@@ -27,7 +27,9 @@
## Function / Agent 说明 ## Function / Agent 说明
待补充 当前数据开发默认使用 `Agent(tag="地图导航")`
典型 query 中括号里的 Navigation、SwitchRoute、ModifyDestination、SearchPoi、SearchRoute 等,暂时作为功能点线索使用,用于理解地图导航内部能力边界;在 function 签名未正式补充前,不作为最终 target 输出。
## 满足边界问题 ## 满足边界问题
@@ -1411,16 +1411,16 @@
"scope": "待补充。" "scope": "待补充。"
}, },
{ {
"agent_candidate": "Agent(tag=\"地图导航\")", "agent_candidate": "",
"confusing_labels": "地图问答QA收藏和记忆生活服务", "confusing_labels": "地图问答QA收藏和记忆生活服务",
"domain": "地图导航", "domain": "地图导航",
"examples": "导航去云冈石窟走免费道路(Navigation)走着走另外一条路线(SwitchRoute)不去小米科技园了改去公司附近的充电站(ModifyDestination)变更下下个途径点(ModifyPassPoint)金属钛的钛(PoiMultiRoundCorrect,POI改写相关)导航到简单的简上海的尚简尚羽毛球馆(PoiSelfCorrectPOI改写相关)导航路线刷新一下(RefreshRoute)寻找沿路的美食(SearchAlongRoute)搜索附近中石油(SearchPoi)怎么走到骑马俱乐部最近(SearchRoute)添加途经点大义镇(AddPassPoint)继续更新全国的离线地图(AdjustOfflineMap)还有没有其他路可以选(AskOtherRoute)收藏充电站要小米自营的(CollectPoi)删了所有途径点(DeletePassPoint)不是这个地址是西三旗桥南(ModifyDestination) 修改一下最下的途径点(ModifyPassPoint)", "examples": "导航去云冈石窟走免费道路(Navigation)走着走另外一条路线(SwitchRoute)不去小米科技园了改去公司附近的充电站(ModifyDestination)变更下下个途径点(ModifyPassPoint)金属钛的钛(PoiMultiRoundCorrect,POI改写相关)导航到简单的简上海的尚简尚羽毛球馆(PoiSelfCorrectPOI改写相关)导航路线刷新一下(RefreshRoute)寻找沿路的美食(SearchAlongRoute)搜索附近中石油(SearchPoi)怎么走到骑马俱乐部最近(SearchRoute)添加途经点大义镇(AddPassPoint)继续更新全国的离线地图(AdjustOfflineMap)还有没有其他路可以选(AskOtherRoute)收藏充电站要小米自营的(CollectPoi)删了所有途径点(DeletePassPoint)不是这个地址是西三旗桥南(ModifyDestination) 修改一下最下的途径点(ModifyPassPoint)",
"function_candidate": "待确认。", "function_candidate": "当前没有确认可用的 function 签名;典型 query 中的 Navigation、SwitchRoute、SearchPoi 等更像三级语义功能点,不要直接臆造成最终 function program。",
"name": "地图导航", "name": "地图导航",
"old_tag": "地图导航", "old_tag": "地图导航",
"path": "knowledge/标签/地图导航/地图导航.md", "path": "knowledge/标签/地图导航/地图导航.md",
"principles": "边界1:导航-地图问答-QA执行上:地图问答先给导航,导航不召回,给QA(走哪问哪拆出来给导航)短线现状:导航需求,A到B路线查询可以。公交地铁站点查询等都不支持。问题:多轮下针对现有路线提问,很容易出现此类问题长线:原则1:依赖导航app接口查询结果的是地图问答,路线、公交地铁站等,现有接口不支持,走大模型兜底,而不是回复不支持产品问题@张睿@李循边界2:“在哪”,“去xxx”优先给导航,其他都是生活服务优先长线,计划“在哪”不区分导航和生活服务,统一满足边界3:单实体,默认QA,如果是导航需求则给导航和QA都算对。选项1:出富媒体卡片:百科+旅游+导航选项2:询问是否要去哪里单实体难以分端区分,应该在车载端满足时,单实体走poi搜索,有结果出一个导航的卡片。中控不做区分。各端的导航和生活服务单实体,都给导航优先,且QA满足应该调用搜索后出导航或生活类卡片。", "principles": "边界1:导航-地图问答-QA执行上:地图问答先给导航,导航不召回,给QA(走哪问哪拆出来给导航)短线现状:导航需求,A到B路线查询可以。公交地铁站点查询等都不支持。问题:多轮下针对现有路线提问,很容易出现此类问题长线:原则1:依赖导航app接口查询结果的是地图问答,路线、公交地铁站等,现有接口不支持,走大模型兜底,而不是回复不支持产品问题@张睿@李循边界2:“在哪”,“去xxx”优先给导航,其他都是生活服务优先长线,计划“在哪”不区分导航和生活服务,统一满足边界3:单实体,默认QA,如果是导航需求则给导航和QA都算对。选项1:出富媒体卡片:百科+旅游+导航选项2:询问是否要去哪里单实体难以分端区分,应该在车载端满足时,单实体走poi搜索,有结果出一个导航的卡片。中控不做区分。各端的导航和生活服务单实体,都给导航优先,且QA满足应该调用搜索后出导航或生活类卡片。",
"recommended_output_shape": "待确认。", "recommended_output_shape": "Agent(tag=\"地图导航\")",
"scope": "基于高德地图/百度地图等,进行导航需求满足特殊的需求:附近的加油站附近的充电桩附近的服务区" "scope": "基于高德地图/百度地图等,进行导航需求满足特殊的需求:附近的加油站附近的充电桩附近的服务区"
}, },
{ {
@@ -3,7 +3,7 @@
这里维护“最终 target 怎么写”的知识。它和 `标签/` 目录不同: 这里维护“最终 target 怎么写”的知识。它和 `标签/` 目录不同:
- `标签/` 负责判断 query 属于哪个业务能力范围。 - `标签/` 负责判断 query 属于哪个业务能力范围。
- `输出能力/` 负责判断最终监督标签应该写成 object、function program、intent,还是需要用户确认 - `输出能力/` 负责判断最终监督标签应该写成 function program、`Agent(tag="xxx")`,还是多指令/自动任务等结构化输出
## 三类返回类型 ## 三类返回类型
@@ -11,7 +11,7 @@
| --- | --- | --- | | --- | --- | --- |
| object | 给 function 当参数的对象,例如 `Location``PersonalDate``Resource` | 通常不单独作为最终 target | | object | 给 function 当参数的对象,例如 `Location``PersonalDate``Resource` | 通常不单独作为最终 target |
| function | 可直接输出的函数调用,例如 `CalendarQA(...)``VisionQA(...)``QA()` | 可以作为最终 target | | function | 可直接输出的函数调用,例如 `CalendarQA(...)``VisionQA(...)``QA()` | 可以作为最终 target |
| intent | 业务意图名,例如 `地图导航``餐饮服务``商品购买` | 可以作为 intent target,也可以按任务要求再包装为 Agent | | intent | 业务意图名,例如 `地图导航``餐饮服务``商品购买` | 当前数据开发默认不作为首选最终 target,通常映射为 `Agent(tag="xxx")`;也可用于多指令/自动任务结构里的意图字段 |
## 使用原则 ## 使用原则
@@ -24,8 +24,9 @@ x0=Location(country="美国",province="华盛顿",city="西雅图")
CalendarQA(type="TIME",target_time="现在",location=x0) CalendarQA(type="TIME",target_time="现在",location=x0)
``` ```
4. `Agent` 字段表示由哪个 Agent 承接,是知识维度,不等于最终 target 一定写 `Agent(tag="xxx")` 4. `Agent` 字段表示由哪个 Agent 承接,是知识维度,不等于最终 target 一定写 `Agent(tag="ToolsAgent")`
5. 如果用户没有说明最终数据使用 function、intent 还是 `Agent(tag="xxx")`,生成数据前必须确认 5. 当前数据开发默认口径:已 function 化且签名明确的能力用 function program;未 function 化或只是旧 tag / intent 的能力用 `Agent(tag="xxx")`
6. 如果用户明确要求 function program,但当前知识库没有 function 签名,必须向用户确认,不要臆造 function。
## 文件说明 ## 文件说明
@@ -8,11 +8,31 @@
```text ```text
业务标签:这句话属于哪个能力范围 业务标签:这句话属于哪个能力范围
输出能力:最终 target 写 function、intent 还是 Agent 包装 输出能力:最终 target 写 function program 还是 Agent 包装
结构维度:是否多指令、是否自动任务 结构维度:是否多指令、是否自动任务
复杂度维度:是否输出 `complex=false` 或 `complex=true` 复杂度维度:是否输出 `complex=false` 或 `complex=true`
``` ```
当前数据开发默认口径:
- 已 function 化且签名明确的能力,最终 target 写 function program。
- 未 function 化或只是旧 tag / intent 的业务标签,最终 target 写 `Agent(tag="xxx")`
- intent 名称可以作为业务标签名、拆分子句里的意图字段或兼容中间形态;除非用户明确要求 intent target,否则不作为首选最终 target。
- 多指令和自动任务是结构化外壳,不是和 function / Agent 并列的叶子 target。
## 两层组合方式
先确定外层结构:
- 单意图:直接输出一个叶子 target。
- 多指令:拆成多个子句,每个子句单独输出一条叶子 target,然后按行组合。
- 自动任务:输出 `condition``querys`,每个子任务有自己的叶子 target。
再确定叶子 target
- function program:例如 `QA()``Summarize()``CalendarQA(...)`
- Agent 包装:例如 `Agent(tag="地图导航")``Agent(tag="餐饮服务")`
## function program ## function program
当返回类型是 `function`,输出可以是单行或多行 program。 当返回类型是 `function`,输出可以是单行或多行 program。
@@ -51,11 +71,11 @@ x0=Location(country="美国",province="华盛顿",city="西雅图")
CalendarQA(type="TIME",target_time="现在",location=x0) CalendarQA(type="TIME",target_time="现在",location=x0)
``` ```
## intent target ## intent 与 Agent target
当返回类型是 `intent`可以直接输出 intent 名称,或按当前任务要求映射到 Agent 包装。 当返回类型是 `intent`在当前数据开发默认口径下优先映射到 Agent 包装。
intent 形式 业务标签 / 中间 intent 名称
```text ```text
地图导航 地图导航
@@ -71,7 +91,7 @@ Agent(tag="餐饮服务")
Agent(tag="商品购买") Agent(tag="商品购买")
``` ```
使用哪一种取决于当前训练/评测数据定义。没有明确说明时必须确认 除非用户明确要求输出 intent target,否则不要把 intent 名称作为首选最终 target
## Agent 字段 ## Agent 字段
@@ -88,20 +108,23 @@ Agent: mapAgent
## 多指令组合 ## 多指令组合
如果 query 被拆成多个子任务,最终结构可以包含多个 subquery,每个 subquery 有自己的 function 或 intent。 如果 query 被拆成多个子任务,当前数据开发默认按“多行 target”输出:每个子句单独一条 `Agent(query="...",tag="...")` function target。
complex 是独立维度,如果需要输出,作为单独一行放在最前面,不归属于某个子句。
示例: 示例:
```json ```text
[ complex=true
{ Agent(query="退出导航",tag="地图导航")
"condition": null, Agent(query="打开后视镜加热",tag="车载控制")
"querys": [ ```
{"subquery": "关闭卧室的灯", "intent": "设备控制"},
{"subquery": "定一个明天下午四点的闹钟", "intent": "闹钟计时器"} 再例如:
]
} ```text
] Agent(query="关闭卧室的灯",tag="设备控制")
Agent(query="定一个明天下午四点的闹钟",tag="闹钟计时器")
``` ```
## 自动任务组合 ## 自动任务组合
@@ -138,7 +161,7 @@ Agent: mapAgent
如果用户要生成训练/评测数据,需要确认: 如果用户要生成训练/评测数据,需要确认:
- target 使用 function program、intent,还是 `Agent(tag="xxx")` - target 是否要求 function program;如果没有明确 function 定义,默认使用 `Agent(tag="xxx")`
- object 是否需要展开进 function target。 - object 是否需要展开进 function target。
- 多指令和自动任务是否需要输出结构化 JSON。 - 多指令和自动任务是否需要输出结构化 JSON。
- complex 是否作为独立字段输出。 - complex 是否作为独立字段输出。