三剪客 · 爆款标题工坊

SKILL内容创作
内容创作 未标注权限 许可证不明确
安装这个技能

给一个主题或产品,自动产出 N 个标题并按点击欲望、信息量、平台适配、合规四个维度打分排序,再给出「哪两个标题配对做 A/B 测试、测哪个变量」的组合建议。内置小红书 / 抖音 / 公众号 / 知乎四套标题公式与字数口径,自带广告法违禁词自检(命中标红并强制压分)。走 api.a7w.cn 的 OpenAI 兼容大模型端点,一个 Key 换模型即换风格,零第三方依赖。包内含完整操作文档与零依赖客户端(`SKILL.md` + `references/`)。需要自备 api.a7w.cn 的 API Key,注册领 Key 见 https://api.a7w.cn/ 。遇到问题可加技术微信 9872659。

累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install indiv-sanjianke/sanjianke-title-workshop

技能档案

内容创作
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方indiv-sanjianke仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791624965
正文体量18.6 KBSKILL.md 原文大小,越大说明说明书写得越细

SKILL.md 全文

18.6 KB
模型实际读到的说明书原文,来自技能仓库

三剪客 · 爆款标题工坊

> ## ⚠️ 先申请你自己的 API Key
>
> 本 Skill 不内嵌任何密钥,也不代付费用。 请到
> 算力集市 api.a7w.cn 注册并创建你自己的 API Key
> (新用户有赠送点数,可以先免费试跑几条)。
>
> 拿到后填进环境变量 A7W_API_KEY,或直接传给 --key 参数。
> 请勿使用他人提供的 Key —— 用量与费用都记在 Key 所属账号上。

能做什么

给一个主题或产品,自动产出 N 个标题并四维打分排序,附 A/B 测试组合建议。
它替代的是运营每天最耗时的那个环节:不是"想不出标题",而是"想出 30 个之后不知道该用哪个"。

一条命令跑完四件事:

  1. 出稿 —— 按你选的平台口径一次生成 N 个标题(默认 30),四套公式轮换,避免同一句式刷屏
  2. 打分 —— 点击欲望 / 信息量 / 平台适配 / 合规,各 1~10 分,加权合成总分降序排列
  3. 卡两道闸 —— 本地内置广告法违禁词表 + 模板污染检查(公式名/占位符泄漏),
    命中就标红、强制压分、退出码变 3,能进 CI 当门禁
  4. 给打法 —— 从排行里挑出"只差一个变量"的标题配对,告诉你这一对测什么变量、赢了说明什么
你最关心 答案
多少钱 按 tokens 计费,一次生成 30 条标题通常几千 token,成本很低
要多久 一次调用出一批,实测十几秒到一分钟(取决于模型与条数)
要装什么 什么都不用装。只用 Python 标准库,不需要 pip install 任何东西
支持哪些平台 小红书 / 抖音 / 公众号 / 知乎,字数上限与语感口径各不相同
会瞎编数据吗 不提供 --evidence 就不许编数字,提示词里写死了这条约束

怎么用(命令行)

第 0 步:获取 API Key

到 api.a7w.cn 注册,创建一个 API Key(形如 sk-...)。

第 1 步:装依赖

零依赖。 不需要 pip install 任何东西,只要机器上有 Python 3.7+:

python3 --version

包里自带的 scripts/a7w.py 是零依赖客户端(只用 urllib / json / mimetypes),
scripts/run.py 也只用标准库。

第 2 步:填 Key

# Linux / macOS
export A7W_API_KEY=sk-你的key

# Windows PowerShell
$env:A7W_API_KEY="sk-你的key"

也可以存进配置文件反复用(推荐):

python3 scripts/a7w.py login --key sk-你的key

第 3 步:先确认网关通(免费,不花点数)

python3 scripts/run.py models

这个命令打的是 GET https://api.a7w.cn/api/v1/models,会列出当前在架的模型。

> 模型名会变,一定用 models 子命令现查,别写死在脚本里。
> 但要注意:deepseek-chat 这个别名实测可用(会路由到 deepseek-flash),
> 而它不在 /api/v1/models 的返回列表里 —— 所以"列表里没有"不等于"不能用"。

第 4 步:跑第一个例子

python3 scripts/run.py gen --topic "便携榨汁杯" --platform xiaohongshu --count 12

输出是按总分降序的 Markdown 排行表 + 逐条说明,命中违禁词的标题会标红并压分。
想先看不花钱的提示词:

python3 scripts/run.py gen --topic "便携榨汁杯" --platform xiaohongshu --dry-run

完整工作流

# 1) 生成 30 条并落盘(JSON,便于后续处理)
python3 scripts/run.py gen --topic "便携榨汁杯" --platform xiaohongshu --count 30 \
    --evidence "实测一次榨 350ml、清洗 40 秒、USB-C 充电 90 分钟满" \
    --json --out titles.json

# 2) 拿 A/B 配对建议
python3 scripts/run.py ab --file titles.json

# 3) 给已有的标题单独打分(不改写原文)
python3 scripts/run.py score --file my-titles.txt --platform zhihu

直接用 curl 调(不依赖本包脚本)

标题工坊底层就是一个标准的 OpenAI 兼容调用:

curl -sS -X POST "https://api.a7w.cn/api/v1/chat/completions" \
  -H "Authorization: Bearer $A7W_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-chat",
    "messages": [{"role": "user", "content": "给「便携榨汁杯」写 5 个小红书标题,只输出 JSON"}],
    "temperature": 0.8,
    "max_tokens": 2048,
    "response_format": {"type": "json_object"}
  }'

参数说明

全局

参数 说明
--key 临时指定 Key;优先级最高。别把它写进脚本或文档
--json 以 JSON 输出,写在子命令前面或后面都可以(gen --json --out titles.json 可直接喂给 ab);JSON 模式下 stdout 只有一个完整 JSON,人读的进度与提示走 stderr
--out <文件> 把结果写到文件
--model 模型名,默认 deepseek-chat(实测可用)。用 models 现查在架模型
--temperature 采样温度,默认 0.8;想要更发散用 1.0,想更稳用 0.5
--max-tokens 最大输出 token,默认 4096;生成 30 条标题建议不低于 4096
--dry-run 只打印将发送的提示词,不调模型、不花钱
--no-json-mode 不要求上游返回 JSON 对象(个别模型不支持 response_format 时用)

gen —— 生成并打分

参数 说明
--topic 必填。主题 / 产品 / 选题
--platform xiaohongshu(默认) / douyin / wechat / zhihu
--count 要几条标题,默认 30
--product 产品名(与 topic 不同时用)
--audience 目标人群
--evidence 可用的真实证据(实测数据 / 检测报告)。没写就不许编数字

score —— 给已有标题打分

参数 说明
--titles "标题1" "标题2" 直接给标题,可多条(也可直接跟在命令后当位置参数)
--file <文件> 从文件读:.txt 一行一条;.json 读 gen --json 的结果
--platform 按哪个平台口径打分,默认 xiaohongshu

score 只打分不改写原文;模型漏掉的条目会用原文补回并按默认分兜底,保证一条不丢。

ab —— A/B 配对建议

参数 说明
--file <文件> gen --json --out 的结果文件(推荐用法)
--titles ... 也可直接给标题(此时按默认分配对)
--platform 平台口径;用 --file 时默认跟随文件里记录的平台
--pairs 最多给几对,默认 5

ab 是纯本地确定性逻辑,不再花 token。它优先在同公式的标题之间配对
(同公式 = 钩子相同,差异只来自句式与信息密度),这样跑出来的胜负才可归因。

models —— 列出在架模型

参数 说明
--type 模型类型,默认 text;传 all 看全部在架模型
--json 原始 JSON

四维评分与权重

维度 权重 打分依据
点击欲望 35% 陌生人刷到会不会停一下
信息量 25% 看完标题是否知道能得到什么
平台适配 25% 字数上限与语感口径(超字数会被强制压分)
合规 15% 绝对化用语 / 虚假承诺 / 医疗投资功效 / 站外导流(命中会被强制封顶);模板污染也计在这一维

两个本地硬闸门(模型自评会被覆盖):

  • 违禁词:命中按风险等级封顶合规维(高=1 / 中=4 / 低=7)
  • 模板污染:标题里残留 { 或 }、出现公式名本身、或以「公式名+:/、/—/|」起头,
    一律把合规维封顶到 3 分。这类标题不可直接发布——公式名和占位符都不是文案。
  • 抄提示词示例(prompt_echo):标题与提示词里的示例去掉标点后相等、
    字符二元组 Jaccard ≥ 0.75、或示例的二元组覆盖度 ≥ 0.60,三条任一命中就按模板污染处理。
    第三条是补漏:Jaccard 会被长度差摊薄——示例原样嵌进更长的标题里,实测相似度掉到 0.696
    (放行),而覆盖度是 1.00(拦下)。覆盖度只看"示例被抄了多少",不看产出有多长。
    长度门槛是相对的 max(6, 示例长度/2),不是写死的 12。
    为什么单列一条:实测模型会锚定提示词里的示例,曾有一轮最高分 89.0 的标题
    一字不差就是提示词示例
    ——最高分变成"抄标准答案"而不是"真最好",排序就废了。
    提示词侧的对策是不出现任何可复制的完整标题,举例统一用不同主题(电动车充电桩)。

两闸门任一命中都会标红 + 汇总到 stderr + 退出码变 3。

总分 = (点击欲望 × 0.35 + 信息量 × 0.25 + 平台适配 × 0.25 + 合规 × 0.15) × 10

评分细则见 references/scoring-rubric.md。

退出码(可直接用于 CI)

退出码 含义
0 全部干净
3 有标题命中违禁词,或有模板污染(结果已输出,必须人工复核后才可发布)
4 调用失败(网络 / 鉴权 / 点数 / 模型名)
130 用户中断

--json 输出契约(给流水线与 agent 消费,只在 --json 下生效):

  • 成功:结果对象里多一个 "ok": true;顶层是数组时包成 {"ok": true, "data": [...]}
  • 失败:stdout 输出一个 JSON 信封,形如
    {"ok": false, "exit": 3, "error": {"kind": "gate", "message": "…"}}(exit 就是本次真实退出码),
    kind 取 gate / usage / budget / call / interrupt / internal。
    internal 是没预料到的异常(代码 bug)的兜底:此时 stdout 给信封、
    完整 traceback 原样打到 stderr、退出码固定 1 —— 报 bug,不藏 bug
    —— 只有在本次还没吐过任何 JSON 结果时才补这个信封;已经吐过结果时
    (例如跑到一半才发现比例不合格),ok 就写在那个结果里,退出码不变
  • 人读文案照旧走 stderr;退出码语义一个都不变;非 --json 模式输出与以前完全一致
  • --json 写在子命令前面或后面都可以

平台字数上限

平台 上限(字符) 语感口径
xiaohongshu 20 口语、真诚、像朋友安利,emoji 最多 2 个
douyin 15 前 3 个字出冲突或悬念,口语到能直接念
wechat 25 双段式或完整句,偏理性克制,有信息势能
zhihu 25 专业、有信息密度,提问或结论前置

已知特性:产出普遍明显短于上限,这是有意保留的行为,不是缺陷。

实测(每平台 2 轮 × 12 条,主题"便携榨汁杯"):

平台 上限 实测均字数 占上限
小红书 20 10.8 ~ 12.4 54% ~ 62%
抖音 15 9.2 ~ 9.3 61% ~ 62%
公众号 25 14.8 ~ 16.8 59% ~ 67%
知乎 25 14.9 ~ 15.8 60% ~ 63%

上限在这个包里只当"硬红线"用,不当目标值。 我们试过加一条"长度建议落在上限
70%~90%"的描述性约束,四平台各跑 2 轮,结果是回退掉了(依据见下):

平台 加约束前 加约束后 变化
小红书 11.6 11.9 +2%(两轮 13.0 / 10.8,轮间差 2.2 字)
抖音 9.2 11.0 +19%(最有效的平台)
公众号 15.8 17.6 +11%
知乎 15.4 14.9 -3%(反向)

回退理由:
1. 效果不一致——抖音/公众号变长,小红书几乎不动,知乎反而更短;
小红书两轮之间就差了 2.2 字,只有 2 次采样时这个改动的收益落在噪声范围内。
2. 最需要变长的知乎(上限 25,实测最短)恰好没反应,说明"提问式/反直觉"这类
平台结构本身有长度天花板,加一句比例约束撬不动它。
3. 引入了新的坏味道——96 条里出现 2 条(2.1%)填充词标题("通勤包里塞它真的不占地"),
即约束里明令禁止的"真的"仍被用来凑长度。为长度指标引入语言质量风险,不划算。

所以:远短于上限是可接受的,不要用指标去拽它。 如果你确实需要更长的标题,
优先用 --evidence "…" 提供具体事实(信息量自然变长),
而不是加长度约束——前者是加信息,后者是加字。

排错

现象 / 报错 原因 怎么办
Missing or invalid relay API key(HTTP 401) Key 无效、已过期或写错 重新到 https://api.a7w.cn/ 领取;确认没把 Bearer 重复写进环境变量
点数不足(HTTP 402) 账号点数用完 到 https://api.a7w.cn/ 充值后重试
模型不存在(HTTP 404) 模型名写错或已下架 python3 scripts/run.py models 现查在架模型名
上游 502 / upstream timeout 网关到上游的瞬时抖动,实测很常见 脚本已内置退避重试(最多 4 次)。连续失败就换模型,或降低 --count 分批跑
鉴权失败(401) A7W_API_KEY 为空或含空格 echo $env:A7W_API_KEY 检查;用 --key 临时覆盖验证
模型返回的不是合法 JSON 模型在 JSON 前后多吐了字符或解释 脚本已用 json.JSONDecoder().raw_decode() 扫描第一个完整对象。仍失败就加 --no-json-mode 并换模型
模型没产出任何可用标题 输出被 max_tokens 截断 加大 --max-tokens(30 条建议 4096 以上),或减小 --count
标题全部挤在 8 分以上 模型没在区分,标尺漂移 把 --temperature 提到 1.0 重跑,或换一个模型
标题超字数很多 模型无视字数上限 脚本已把超限标题的平台适配分强制压到 5 分(超 5 字以上压到 3 分)并标注超字数
标题里出现「结论前置:」这类公式名 模型把公式名当成了标题前缀 脚本已把它判为模板污染:合规维封顶到 3 分、标红、退出码 3。删掉公式名前缀即可发布
大量标题命中违禁词 主题本身涉及医疗 / 金融等高压类目 见 references/compliance.md,改动文案角度,或直接人工重写
PermissionError / [Errno 13] 输出目录不可写 换 --out 路径;确认不在只读目录里跑
Windows 下中文乱码 控制台代码页不是 UTF-8 先执行 chcp 65001,或加 PYTHONIOENCODING=utf-8

收集排错信息时请附上:完整命令、--dry-run 的输出、原始报错文本。
不要在报错信息或截图里带上你的 API Key。

文件结构

sanjianke-title-workshop/
├── SKILL.md                       本文件
├── README.md                      给人看的说明
├── LICENSE.md                     MIT,署名三剪客
├── references/
│   ├── title-formulas.md          各平台标题公式与字数口径
│   ├── scoring-rubric.md          四维评分标准与权重
│   └── compliance.md              合规红线与违禁词
└── scripts/
    ├── a7w.py                     api.a7w.cn 零依赖客户端
    └── run.py                     标题生成 / 打分 / A/B 配对 / 模型清单

端点速查

用途 方法与路径
大模型对话(本包全部能力都走这个) POST https://api.a7w.cn/api/v1/chat/completions
模型清单 GET https://api.a7w.cn/api/v1/models

协议是 OpenAI 兼容:Authorization: Bearer <Key>,请求体用
model / messages / temperature / max_tokens / response_format。

联系我们

  • 技术微信:9872659 —— 加好友时说一下是从哪个 Skill 找过来的,直接给你配套的 API Key 与能跑的示例。
  • 要算力 / 要 API Key:算力集市 · 注册领 API Key —— 一个 Key 调用全部 AI 算力,注册、充值、创建 Key 都在这里。
  • 更多 AI 插件与接口:AI 插件市场。

相关链接

  • 算力集市 api.a7w.cn(注册领 Key):https://api.a7w.cn/
  • 平台标题公式:references/title-formulas.md
  • 四维评分标准:references/scoring-rubric.md
  • 合规红线与违禁词:references/compliance.md

> 免责声明:本包内置的违禁词表与判定口径是启发式自检工具,来自公开经验整理,
> 不构成法律意见,也不代表任何平台的官方审核标准。标题与内容的使用与合规责任由使用者承担;
> 医疗、保健食品、金融、母婴、特殊化妆品等高风险类目必须人工复核。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。