5.1 KiB
5.1 KiB
name, description, when_to_use, aliases, allowed_tools
| name | description | when_to_use | aliases | allowed_tools |
|---|---|---|---|---|
| model-labeling | 对已有数据集调用线上模型 generate 接口批量打标,支持 canonical records、训练 jsonl、评测 CSV 和同事流转表格的统一归一化。 | 当用户已有一份数据,或刚通过 product-data / online-mining-v2 生成数据后,希望指定线上模型 URL 批量请求模型、得到预测标签、对比真实标签或产出标注结果时使用。 | batch-labeling, model-annotation, online-model-labeling, 模型打标 | read_file, write_file, grep_search, glob_search, ask_user_question, python_exec |
Model Labeling
使用这个 skill 处理“已有数据 -> 统一样本格式 -> 调线上模型接口批量打标 -> 输出预测结果”的流程。
线上模型 URL 经常变化,不要猜 URL。如果用户没有明确提供 http://.../generate 或等价接口地址,必须先询问用户。
能力组织
skills/model-labeling/
SKILL.md
knowledge/
input_formats.md
scripts/
batch_label_model.py
batch_label_model.py 是 portable script,只依赖 Python 标准库。它会:
- 识别 canonical records JSON/JSONL。
- 识别 product-data 导出的训练 JSONL。
- 识别 eval/planning CSV,优先使用
newPrompt。 - 识别同事流转 CSV,使用
query、prev_session、context、function。 - 对未知格式返回结构化错误,要求用户提供字段映射,不要擅自转换。
- 调用用户提供的模型接口,默认请求体为:
{
"inputs": "<prompt>",
"parameters": {
"max_new_tokens": 64
}
}
交互规则
开始执行前必须确认:
- 输入数据路径:用户给出的文件路径,或上一轮产物路径。
- 模型接口 URL:必须是用户明确提供的 URL;没有就问。
- 输入格式是否可识别:canonical records、训练 jsonl、eval CSV、同事流转表格可以直接处理。
- 未知格式的字段映射:如果脚本提示 unknown format,需要问用户:
- 哪列是 query?
- 哪列是 prompt?
- 哪列是真实标签?
- 是否有历史上下文、context?
- 输出路径:默认写到当前 session 的
output/model_predictions.jsonl。
不要在没有 URL 的情况下开始打标。不要把临时结果写到项目根目录。所有输出优先放当前 session 的 output/。
推荐流程
1. 找到输入文件
如果用户说“刚才生成的数据”“这份数据”,先用会话文件面板或 glob_search / read_file 找到实际路径。常见路径:
output/records.jsonl
output/training.jsonl
output/eval_planning.csv
output/records.csv
2. 确认模型 URL
如果用户没有提供 URL,直接问:
请提供这次要调用的线上模型 generate 接口 URL,例如 http://.../generate。
如果 ask_user_question 可用,优先使用;不可用就普通回复提问并停止。
3. 先 dry run 识别格式
先执行一次 dry_run=true,只识别格式和样例,不请求模型:
{
"script_path": "skills/model-labeling/scripts/batch_label_model.py",
"stdin": {
"input_path": "output/records.jsonl",
"model_url": "http://example/generate",
"dry_run": true,
"max_records": 3
},
"timeout_seconds": 60,
"max_output_chars": 20000
}
如果返回 ok=false 且 needs_mapping=true,必须把错误和已识别字段展示给用户,让用户说明映射。
4. 批量请求模型
确认格式后执行:
{
"script_path": "skills/model-labeling/scripts/batch_label_model.py",
"stdin": {
"input_path": "output/records.jsonl",
"model_url": "http://example/generate",
"output_path": "output/model_predictions.jsonl",
"parameters": {
"max_new_tokens": 64
},
"timeout_seconds": 60
},
"timeout_seconds": 600,
"max_output_chars": 20000
}
output_path 使用相对 output/...,平台会路由到当前 session output 目录。
5. 展示结果
执行完成后,简短展示:
- 输入格式。
- 处理条数、成功数、失败数。
- 输出路径。
- 抽 3 条预测样例。
如果存在真实标签,说明输出里包含 gold_label,后续可以继续做准确率或错误分析。
输出格式
默认输出 JSONL,一行一条紧凑 JSON:
{"index":0,"request_id":"...","query":"...","gold_label":"complex=false\nAgent(tag=\"地图导航\")","prediction":"...","ok":true,"latency_ms":123}
如果请求失败:
{"index":0,"query":"...","gold_label":"...","prediction":"","ok":false,"error":"HTTP 500 ...","latency_ms":123}
默认不把完整 prompt 写入结果,避免文件过大。如确实需要排查,可传 include_prompt=true。
注意事项
- URL、鉴权 header、特殊请求体字段都以用户提供为准。
- 默认接口字段是
inputs和parameters;如果用户说明接口不同,需要在脚本输入里传request_template。 - 大批量请求前先小样本 dry run。
- 打标脚本只负责请求模型和记录预测结果,不负责修改原始数据。
- 后续准确率统计、错误聚类、补数计划可以再交给其他 skill。