Data Generator
将用户指令列表转换为标准 JSONL 训练数据。
输入
两个必填参数:
| 参数 | 类型 | 说明 |
|---|
| INLINECODE0 | string | 工具名,如 dev_control、scene_generator、 INLINECODE3 |
| INLINECODE4 |
string[] | 用户指令列表,如
["5分钟后打开空调", "3分钟后关灯"] |
输出 JSONL 格式
CODEBLOCK0
格式规则
- 1. human value = 完整上下文,格式固定:
<当前用户指令>用户原始指令</当前用户指令>
<本地设备>设备名(类型)</本地设备>
<当前时间>YYYY-MM-DD HH:mm:ss</当前时间>
<用户场景列表>[{"scene_id":xxx,"scene_name":"场景名","room_name":"房间名"},...]</用户场景列表>
<用户设备列表>{"房间":["设备名(类型)",...]}</用户设备列表>
- 2. assistant toolcall = 直接输出 toolcall 标签,无垫音前缀
- observation =
<tool_response>...</tool_response> 或 <tool_call>{...}</tool_call>(dev_info/weather 等工具) - assistant 终接回复 = 直接回复内容,无垫音前缀
- system = "",history = []
工作流
CODEBLOCK2
提示词拼接
拼接规则:
CODEBLOCK3
拼接脚本: INLINECODE8
工具与文件对照
| 工具 | 要求文件 |
|---|
| INLINECODE9 | INLINECODE10 |
| INLINECODE11 |
references/tools/scene_generator.txt |
|
alarm_remind |
references/tools/alarm_remind.txt |
|
weather |
references/tools/weather.txt |
|
scene_control |
references/tools/scene_control.txt |
|
dev_info |
references/tools/dev_info.txt |
|
exit_dialog |
references/tools/exit_dialog.txt |
|
GreeQA |
references/tools/GreeQA.txt |
|
scene_guide |
references/tools/scene_guide.txt |
|
chat |
references/tools/chat.txt |
使用示例
输入:
CODEBLOCK4
输出字段说明:
| 字段 | 说明 |
|---|
| INLINECODE29 | 含 <当前用户指令> + 完整上下文 |
| INLINECODE31 |
<tool_call>{"tool_name":"dev_info"}</tool_call> |
|
conversations[2].value | dev_info 返回结果(设备列表) |
|
conversations[3].value | 文字终接回复 |
|
system | 空字符串
"" |
|
history | 空数组
[] |
BUG 修复数据
当传入 tool_name 为修复后的正确工具时,生成的数据应体现:
- - 工具调用格式正确(符合工具要求文件)
- query 字段格式正确(如延时类指令含
timing 字段) - 文字回复符合预期(含延时时间描述)
具体格式参考:references/tools/scene_generator.txt。
数据生成器
将用户指令列表转换为标准 JSONL 训练数据。
输入
两个必填参数:
| 参数 | 类型 | 说明 |
|---|
| toolname | string | 工具名,如 devcontrol、scenegenerator、weather |
| userinstructions |
string[] | 用户指令列表,如 [5分钟后打开空调, 3分钟后关灯] |
输出 JSONL 格式
json
{conversations:[
{from:human,value:<当前用户指令>打开客厅空调当前用户指令>\n<本地设备>格力冷静王(空调)本地设备>\n<当前时间>2026-03-15 14:22:47当前时间>\n<用户场景列表>[{\sceneid\:1001,\scenename\:\回家模式\,\roomname\:\全屋\},{\sceneid\:1002,\scenename\:\睡眠模式\,\roomname\:\主卧\}]用户场景列表>\n<用户设备列表>{\客厅\:[\格力冷静王(空调)\,\洗碗机A1(洗碗机)\],\主卧\:[\美的舒省风(空调)\]}用户设备列表>},
{from:assistant,value:call>{\toolname\:\devcontrol\,\query\:\打开客厅空调\}call>},
{from:observation,value:response>客厅空调已打开response>},
{from:assistant,value:好的,客厅空调已经打开啦~}
],system:,history:[]}
格式规则
- 1. human value = 完整上下文,格式固定:
<当前用户指令>用户原始指令当前用户指令>
<本地设备>设备名(类型)本地设备>
<当前时间>YYYY-MM-DD HH:mm:ss当前时间>
<用户场景列表>[{sceneid:xxx,scenename:场景名,room_name:房间名},...]用户场景列表>
<用户设备列表>{房间:[设备名(类型),...]}用户设备列表>
- 2. assistant toolcall = 直接输出 toolcall 标签,无垫音前缀
- observation = response>...response> 或 call>{...}call>(dev_info/weather 等工具)
- assistant 终接回复 = 直接回复内容,无垫音前缀
- system = ,history = []
工作流
- 1. 接收 toolname + userinstructions[]
↓
- 2. 加载提示词:通用要求 + 工具特定要求(references/tools/{tool}.txt)
↓
- 3. 将 user_instructions 注入提示词
↓
- 4. 生成 JSONL(每条独立)
↓
- 5. 输出 .jsonl 文件
提示词拼接
拼接规则:
[通用要求]
═══════════════════════════════════════════════════════════════════
【工具特定要求】
本次只调用:{TOOL_NAME}
────────────────────────────────────────────────────────────────
[references/tools/{TOOL_NAME}.txt 内容]
拼接脚本:scripts/build_prompt.py
工具与文件对照
| 工具 | 要求文件 |
|---|
| devcontrol | references/tools/devcontrol.txt |
| scenegenerator |
references/tools/scenegenerator.txt |
| alarm
remind | references/tools/alarmremind.txt |
| weather | references/tools/weather.txt |
| scene
control | references/tools/scenecontrol.txt |
| dev
info | references/tools/devinfo.txt |
| exit
dialog | references/tools/exitdialog.txt |
| GreeQA | references/tools/GreeQA.txt |
| scene
guide | references/tools/sceneguide.txt |
| chat | references/tools/chat.txt |
使用示例
输入:
toolname: devinfo
user_instructions: [家里空调数量, 有几个空调]
输出字段说明:
| 字段 | 说明 |
|---|
| conversations[0].value | 含 <当前用户指令> + 完整上下文 |
| conversations[1].value |
call>{toolname:devinfo}call> |
| conversations[2].value | dev_info 返回结果(设备列表) |
| conversations[3].value | 文字终接回复 |
| system | 空字符串 |
| history | 空数组 [] |
BUG 修复数据
当传入 tool_name 为修复后的正确工具时,生成的数据应体现:
- - 工具调用格式正确(符合工具要求文件)
- query 字段格式正确(如延时类指令含 timing 字段)
- 文字回复符合预期(含延时时间描述)
具体格式参考:references/tools/scene_generator.txt。