将用户指令列表转换为标准 JSONL 训练数据。
两个必填参数:
参数类型说明tool_namestring工具名,如 dev_control、 scene_generator、 weather``user_instructionsstring[]用户指令列表,如 ["5分钟后打开空调", "3分钟后关灯"]
json
{"conversations":[
{"from":"human","value":"<当前用户指令>打开客厅空调</当前用户指令>\n<本地设备>格力冷静王(空调)</本地设备>\n<当前时间>2026-03-15 14:22:47</当前时间>\n<用户场景列表>[{\"scene_id\":1001,\"scene_name\":\"回家模式\",\"room_name\":\"全屋\"},{\"scene_id\":1002,\"scene_name\":\"睡眠模式\",\"room_name\":\"主卧\"}]</用户场景列表>\n<用户设备列表>{\"客厅\":[\"格力冷静王(空调)\",\"洗碗机A1(洗碗机)\"],\"主卧\":[\"美的舒省风(空调)\"]}</用户设备列表>"},
{"from":"assistant","value":"<tool_call>{\"tool_name\":\"dev_control\",\"query\":\"打开客厅空调\"}</tool_call>"},
{"from":"observation","value":"<tool_response>客厅空调已打开</tool_response>"},
{"from":"assistant","value":"好的,客厅空调已经打开啦~"}
],"system":"","history":[]}
human value = 完整上下文,格式固定: text
<当前用户指令>用户原始指令</当前用户指令>
<本地设备>设备名(类型)</本地设备>
<当前时间>YYYY-MM-DD HH:mm:ss</当前时间>
<用户场景列表>[{"scene_id":xxx,"scene_name":"场景名","room_name":"房间名"},...]</用户场景列表>
<用户设备列表>{"房间":["设备名(类型)",...]}</用户设备列表>
assistant tool_call = 直接输出 tool_call 标签, 无垫音前缀
observation = <tool_response>...</tool_response> 或 <tool_call>{...}</tool_call>(dev_info/weather 等工具)
assistant 终接回复 = 直接回复内容, 无垫音前缀
system = "", history = []
text
1. 接收 tool_name + user_instructions[]
↓
2. 加载提示词:通用要求 + 工具特定要求(references/tools/{tool}.txt)
↓
3. 将 user_instructions 注入提示词
↓
4. 生成 JSONL(每条独立)
↓
5. 输出 .jsonl 文件
拼接规则:
text
[通用要求]
# ═══════════════════════════════════════════════════════════════════
# 【工具特定要求】
# 本次只调用:{TOOL_NAME}
# ────────────────────────────────────────────────────────────────
[references/tools/{TOOL_NAME}.txt 内容]
拼接脚本: scripts/build_prompt.py
工具要求文件dev_control``references/tools/dev_control.txt``scene_generator``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
输入:
text
tool_name: "dev_info"
user_instructions: ["家里空调数量", "有几个空调"]
输出字段说明:
字段说明conversations[0].value含 <当前用户指令> + 完整上下文conversations[1].value``<tool_call>{"tool_name":"dev_info"}</tool_call>``conversations[2].valuedev_info 返回结果(设备列表)conversations[3].value文字终接回复system空字符串 ""``history空数组 []
当传入 tool_name 为修复后的正确工具时,生成的数据应体现:
timing 字段)具体格式参考: references/tools/scene_generator.txt。