用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/mkurman/zorai --skill synthlabs-curation命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | synthlabs-curation |
| description | Use when SynthLabs dataset curation should run as repeatable background HTTP jobs instead of manual UI work. |
| tags | ["synthlabs","synthlabs-curation"] |
Use this skill for SynthLabs dataset curation that runs through existing HTTP job routes instead of manual UI-first work. This is workflow guidance for an external app; do not assume zorai exposes dedicated SynthLabs tools.
Use this skill when:
Do not use this skill when:
synthlabs-setup still needs to start or repair it.jobId, then poll until it reaches completed or failed.apiKey value.synthlabs-ui-operator.GET /api/jobs or session state so you do not start duplicate jobs.GET /api/jobs/:id until the job is completed or failed.progress, result, and error fields before declaring success.synthlabs-ui-operator instead of continuing in blind HTTP mode.List recent jobs, optionally filtered by type or status:
curl -fsS "http://localhost:8787/api/jobs?type=rewrite&status=running&limit=20"
Fetch the full state of one job after start:
curl -fsS "http://localhost:8787/api/jobs/job_123"
Prefer GET /api/jobs/:id once you have a jobId; use GET /api/jobs for discovery, queue visibility, or to confirm whether a similar run is already active.
POST /api/jobs/autoscoreUse autoscore when a session's items need model-based 1-5 scoring.
curl -fsS -X POST "http://localhost:8787/api/jobs/autoscore" \
-H "Content-Type: application/json" \
-d '{
"sessionId": "session_abc",
"provider": "openai",
"model": "gpt-4.1-mini",
"baseUrl": "https://api.openai.com/v1",
"apiKey": "<encrypted iv:ciphertext value>",
"limit": 100,
"offset": 0,
"concurrency": 1,
"maxRetries": 2,
"retryDelay": 2000,
"sleepMs": 500,
"force": false
}'
POST /api/jobs/rewriteUse rewrite when the backend should improve query, reasoning, or answer fields in place.
curl -fsS -X POST "http://localhost:8787/api/jobs/rewrite" \
-H "Content-Type: application/json" \
-d '{
"sessionId": "session_abc",
"provider": "openai",
"model": "gpt-4.1-mini",
"baseUrl": "https://api.openai.com/v1",
"apiKey": "<encrypted iv:ciphertext value>",
"fields": ["reasoning", "answer"],
"limit": 50,
"concurrency": 1,
"sleepMs": 500
}'
Autoscore and rewrite both call the SynthLabs AI client and decrypt the submitted apiKey. Use an encrypted value compatible with the backend's VITE_API_KEY_SALT or API_KEY_SALT behavior. Do not send a plaintext provider key and do not invent your own encryption flow.
POST /api/jobs/remove-itemsUse remove-items for deterministic cleanup. This route does not need model credentials.
Dry-run a threshold cleanup first:
curl -fsS -X POST "http://localhost:8787/api/jobs/remove-items" \
-H "Content-Type: application/json" \
-d '{
"sessionId": "session_abc",
"scoreThreshold": 3,
"scoreField": "score",
"dryRun": true
}'
The route accepts exactly one removal method: indices or scoreThreshold, never both.
POST /api/jobs/migrate-reasoningUse migrate-reasoning to move assistant <think> content into reasoning_content fields for a session. This route does not need model credentials.
curl -fsS -X POST "http://localhost:8787/api/jobs/migrate-reasoning" \
-H "Content-Type: application/json" \
-d '{
"sessionId": "session_abc",
"limit": 200,
"offset": 0,
"concurrency": 5,
"sleepMs": 100,
"force": false
}'
GET /api/logs/stats for log-level summaries before or after a curation pass.curl -fsS "http://localhost:8787/api/logs/stats?sessionUid=session_abc"
GET /api/tags, POST /api/tags, DELETE /api/tags/:uid, GET /api/sessions/:sessionUid/tags, POST /api/sessions/:sessionUid/tags, and DELETE /api/sessions/:sessionUid/tags.POST /api/orphans/check when you need a background scan for orphaned logs.curl -fsS -X POST "http://localhost:8787/api/orphans/check"
{ "jobId": ... } response without polling GET /api/jobs/:id.synthlabs-ui-operator.