Improve long product-data generation runs
This commit is contained in:
@@ -66,4 +66,10 @@ cat input.json | python skills/product-data/scripts/<tool>.py
|
||||
|
||||
最后从 `scratchpad/normalized_records.jsonl` 统一校验和导出。
|
||||
|
||||
为避免长时间连续生成导致模型请求超时,单轮最多连续生成 3 批;超过 24 条时先阶段性停顿,用户回复“继续生成”后先统计 `scratchpad/normalized_records.jsonl` 已有行数,再从下一批 append。
|
||||
用户确认计划后,生成任务应在同一轮内尽量跑完整个批次链路;不要因为超过 24 条就主动停顿等待继续。每批工具调用前用固定格式输出进度,方便 Web 摘要行展示:
|
||||
|
||||
```text
|
||||
进度:批 i/n,已生成 x/y,主题
|
||||
```
|
||||
|
||||
如果确实因为超时、取消或工具错误中断,用户回复继续后先统计 `scratchpad/normalized_records.jsonl` 已有行数,再从下一批 append。
|
||||
|
||||
@@ -171,7 +171,7 @@ review 展示必须简短清晰,不要重复解释工具和流程。每次 rev
|
||||
11. 分批生成 dataset draft text v1,每批最多 8 条,不要用 `write_file` 保存 `draft_part*.txt` 这类中间草稿。
|
||||
12. 如果是继续一个已确认但中断/超时的生成任务,先检查 `scratchpad/normalized_records.jsonl` 是否已存在;存在时先用 `python_exec` 统计已有记录数,然后从下一批继续追加,禁止覆盖已有记录。
|
||||
13. 每生成一批,立刻使用 `python_exec` 的 `script_path` 模式执行 `skills/product-data/scripts/normalize_dataset_draft.py`:通过 `stdin` 传入小批量 JSON,必须带 `confirmed_plan_id`、`records_output_path="scratchpad/normalized_records.jsonl"`、`append=true`、`return_records=false`;draft 中每条 case 都必须有 `complex: true/false`。
|
||||
14. 单轮最多连续生成并 normalize 3 批;如果计划还没完成,先停止并汇报“已生成 X/Y 条,回复继续生成可从下一批继续”,不要在同一轮里继续生成第 4 批。
|
||||
14. 批次数超过 1 时,每批工具调用前必须用一句阶段说明标记进度,格式固定为:`进度:批 i/n,已生成 x/y,主题`。例如:`进度:批 3/7,已生成 16/50,路线偏好追加`。摘要行会优先展示这个格式。
|
||||
15. 所有批次 normalize 完成后,使用 `python_exec` 执行 `skills/product-data/scripts/validate_dataset_records.py`,传 `records_path="scratchpad/normalized_records.jsonl"`。
|
||||
16. 如果用户要求落盘 canonical records,使用 `python_exec` 执行 `skills/product-data/scripts/export_dataset_records.py`,逻辑输出固定为 `output/records.jsonl`,默认导出紧凑 JSONL,并同时生成同目录 `records.csv` 表格,不要用 `write_file` 手写 JSON 或 CSV。
|
||||
17. 如果用户已经明确要训练数据,使用 `python_exec` 执行 `skills/product-data/scripts/export_training_jsonl.py`,优先传 `records_path`,输出固定为 `output/training.jsonl`。
|
||||
@@ -181,7 +181,8 @@ review 展示必须简短清晰,不要重复解释工具和流程。每次 rev
|
||||
生成阶段要避免一次性把大量数据塞进工具参数:
|
||||
|
||||
- 单次 `normalize_dataset_draft.py` 最多处理 8 条 case;计划数量更多时,分批生成、分批 normalize 到同一个 `scratchpad/normalized_records.jsonl`,再统一校验和导出。
|
||||
- 单轮最多推进 3 批,超过 24 条的数据要做阶段性停顿,等待用户回复“继续生成”再继续;这是为了避免模型长时间连续生成导致请求超时。
|
||||
- 不要因为批次数多就中途停止等待用户继续;用户确认计划后,除非遇到工具错误、模型错误、用户取消或标签/边界歧义,否则在同一轮里把所有批次生成、校验和导出跑完。
|
||||
- 每个批次工具调用前的自然语言进度必须使用 `进度:批 i/n,已生成 x/y,主题`,让 Web 摘要行能展示当前进度。
|
||||
- 继续生成前必须先统计 `scratchpad/normalized_records.jsonl` 的现有行数;如果已有记录,后续 normalize 必须 `append=true`,不要重新从第 1 批覆盖。
|
||||
- dataset draft 中的 Agent target 推荐写成单引号形式,例如 `target: Agent(tag='地图导航')`。工具会规范化为 `Agent(tag="地图导航")`,这样可以降低 tool call JSON 里双引号转义失败的概率。
|
||||
- `complex:` 独立写一行,不要写进 `target:`;工具会在导出训练数据和流转表格时自动组合成 `complex=false\nAgent(...)`。
|
||||
|
||||
Reference in New Issue
Block a user