这套工作流能做出什么
先说结果。跑完下面八个步骤,你会得到:
1. 一个可复用的选题库,不再是打开文档发呆,而是从十几条候选题里挑一条直接开工。
2. 一份结构化大纲(JSON 格式),每一节写什么、写多少字、放什么例子都提前定好。
3. 一篇 1500 到 2500 字的 Markdown 草稿,段落短、有小标题、有例子,不是那种一眼假的大段排比。
4. 一份排版好、能直接粘贴进公众号后台的成品,包括小标题样式、引用块、代码块和配图位置。
整条链路的顺序是:选题 → 素材 → 大纲 → 分节生成 → 人工润色 → 事实核查 → 排版 → 发布检查。模型负责的是"把已经有结构的内容写成通顺的中文",不负责"替你想清楚要说什么"。凡是把这两件事搞混的流程,最后都会得到一篇读起来通顺、但没人愿意读完的文章。
单篇耗时通常在 1 到 1.5 小时左右,具体取决于你对素材的熟悉程度和排版工具的熟练度。
前置条件清单
开工前确认这几样东西齐了:
- 一个能调用大模型的入口。可以是 API,也可以是网页版对话。用 API 的好处是能做批量和脚本化;只用网页版也完全能跑通,只是第五步要手动复制粘贴。API 的基础地址、模型名、计费方式,以服务商官方文档当前版本为准。
- Python 3 或任何能发 HTTP 请求的语言。本文示例用 Python。
- 一个环境变量存放密钥,不要把 key 写进代码里。
- 一个 Markdown 排版工具。常见的有 mdnice、Doocs md、微信 Markdown 编辑器等,它们能把你写的 Markdown 转成适配公众号的富文本,点"复制"再粘进后台即可。具体功能以各工具官方页面为准。
- 公众号后台的编辑权限,以及一篇已发布文章用来对照风格。
- 一个素材收集习惯。笔记软件、稍后读、浏览器书签都行,关键是平时就往里丢东西,而不是写稿当天现找。
第一步:把选题从"想法"变成"可执行的题目"
很多人卡在第一步,是因为大脑里只有"AI"、"效率"、"职场"这种词,没有题目。选题的最小可用单位不是关键词,而是一句话:
> 给谁看 + 他正卡在哪 + 看完他能立刻做什么
比如"AI 写作"不是选题,"用 AI 写周报,30 分钟压缩到 10 分钟,附一段可直接改的提示词"才是。
如果你已经零零散散记了十几条想法,可以让模型帮你整理。用下面这段提示词:
```text
你是中文公众号的选题编辑。这个账号的方向是【填写方向】,读者是【填写人群】。
下面是我积累的零散想法:
【粘贴你的 15 到 20 条】
请做三件事:
1. 合并明显重复的,输出 8 个候选选题;
2. 每个选题写成一句话,包含"给谁看 + 解决什么问题 + 看完能做什么";
3. 标出哪些选题必须有外部数据或案例支撑,并列出需要哪些数据。
要求:不要写成悬念式标题党,不要用问号结尾的钩子句。
```
拿到 8 个候选后,别一次全写。挑一个你手上有真实素材、而且自己踩过坑的,先做完一篇。
第二步:先攒素材,再让模型动笔
模型不知道你上周那个报错是怎么解决的。素材越具体,成稿越像人写的。
一篇 2000 字的文章,准备 5 到 8 条素材就够。素材分三类:
- 亲身经历:做砸的一次、改了三次的方案、某个工具用了一周后的真实感受。
- 可核实的事实:官方文档里的说明、产品页面的功能描述、行业报告里的结论。这类内容后文要单独核查。
- 读者反馈:留言、私信、群里被反复问到的问题。这类素材的价值高于你的自说自话。
把素材写成一个纯文本文件 materials.md,每条一行,标出来源:
```markdown
- 上周用脚本批量生成选题,30 条里有 4 条没法用,原因是……
- 官方文档说明 X 功能需要 Y 权限(来源:官方文档,日期)
- 读者留言问得最多的是"生成的内容读起来都一样怎么办"
```
第三步:用结构化的方式出大纲
不要直接说"帮我写一篇关于 XX 的文章"。先让模型出大纲,你改完再写正文。大纲用 JSON,方便后面脚本读取。
先准备一个 outline.json 的骨架:
```json
{
"title": "文章标题",
"audience": "读者是谁",
"tone": "语气,例如:像一个做过这件事的同事在讲经验",
"sections": [
{"title": "小标题", "points": ["要点一", "要点二"], "words": 400}
]
}
```
让模型填内容时,把素材一起给它:
```text
你是一位中文公众号作者。请根据下面的素材,为文章《【标题】》设计大纲。
读者:【人群】
【可用素材】
(粘贴 materials.md 全部内容)
输出一个 JSON,字段为 title / audience / tone / sections。
sections 为数组,每项包含 title、points(2 到 4 条)、words(预计字数)。
要求:
- 6 到 8 个小节,总字数【填写】字左右;
- 每节必须能用到上面的素材,用不到的素材不要硬塞;
- 只输出 JSON,不要解释。
```
拿到大纲后人工过一遍:删掉凑数的小节,把顺序调整成"读者最容易卡住的点放前面",把明显套路的标题换成具体说法。这一步花 10 分钟,能省掉后面半小时的返工。
第四步:分节生成正文
一次生成全文,模型会在后半程开始重复和注水。分节生成,质量明显更稳。
准备一个风格样例 style_sample.md,放你自己写得比较满意的两三百字旧文。这比任何"请用口语化风格"的描述都管用。
然后写你的写作提示词模板:
```text
你是一位中文公众号作者,读者是【人群】。
【风格样例】
(粘贴 style_sample.md)
【可引用的素材】
(粘贴 materials.md)
【本节大纲】
标题:{title}
要点:{points}
目标字数:{words} 字
【写作要求】
1. 只写这一节的正文,不要写其他小节的内容,不要重复标题;
2. 每段不超过 3 行,多用具体场景、数字、对话;
3. 不要用"首先/其次/最后"这类套话,不要排比堆砌;
4. 不确定的事实不要编,需要补充的地方写成 <待核实:……>;
5. 如果素材不足以支撑要点,直接说明缺什么,不要用空话填满字数。
```
第五步:脚本化批量生成
把上面的模板做成脚本,一次跑完全部小节。下面这段代码可以直接改:
```python
import json
import os
import time
from openai import OpenAI
client = OpenAI(
api_key=os.environ["LLM_API_KEY"],
base_url=os.environ.get("LLM_BASE_URL"), # 按服务商官方文档填写
)
MODEL = os.environ.get("LLM_MODEL", "按官方文档填写模型名")
def read(path: str) -> str:
with open(path, encoding="utf-8") as f:
return f.read()
def write_section(section: dict, style: str, material: str) -> str:
prompt = f"""你是一位中文公众号作者。
【风格样例】
{style}
【可引用的素材】
{material}
【本节大纲】
标题:{section['title']}
要点:{';'.join(section['points'])}
目标字数:{section['words']} 字
【写作要求】
1. 只写这一节的正文,不要重复标题;
2. 每段不超过 3 行,多用具体场景、数字、对话;
3. 不用"首先/其次/最后"这类套话,不排比堆砌;
4. 不确定的事实写成 <待核实:……>;
5. 素材不够就说明缺什么,不要用空话凑字数。
"""
resp = client.chat.completions.create(
model=MODEL,
messages=[{"role": "user", "content": prompt}],
temperature=0.7,
)
return resp.choices[0].message.content.strip()
def main() -> None:
outline = json.loads(read("outline.json"))
style = read("style_sample.md")
material = read("materials.md")
parts = []
for sec in outline["sections"]:
print("正在生成:", sec["title"])
body = write_section(sec, style, material)
parts.append(f"## {sec['title']}\n\n{body}")
time.sleep(1) # 简单限速,避免触发接口频率限制
with open("draft.md", "w", encoding="utf-8") as f:
f.write(f"# {outline['title']}\n\n" + "\n\n".join(parts))
print("草稿已写入 draft.md")
if __name__ == "__main__":
main()
```
运行前设置环境变量:
```bash
export LLM_API_KEY="你的密钥"
export LLM_BASE_URL="按服务商官方文档填写"
export LLM_MODEL="按官方文档填写"
python generate.py
```
如果只打算用网页版对话,第五步就手动做:一节一节复制粘贴,效果一样。
第六步:人工润色——把"AI 味"去掉
草稿出来后,先通读一遍,把下面这些特征逐个改掉:
| 典型症状 | 改法 |
|---|---|
| 每段都以"在当今……"开头 | 删掉铺垫,直接从具体场景进 |
| 三段式排比、"不仅……而且……" | 留下信息量最大的那一句 |
| "极大地提升了效率" | 换成"原来 40 分钟,现在 12 分钟" |
| 全篇没有主语 | 补上"我"或"你",或者换成具体动作 |
| 每节长度一模一样 | 重点小节写长,过渡小节两段带过 |
| 结尾必有"希望本文对你有帮助" | 换成下一篇文章的预告或一个具体问题 |
润色的核心动作只有一个:把抽象词换成具体物。"提升写作效率"是抽象词,"把选题这一步从 30 分钟压到 5 分钟"是具体物。
另外,挑一段读出声。读着别扭的地方,就是需要改的地方。
第七步:事实核查清单
这一步不能省。模型对数字、日期、版本、链接、引用的记忆并不可靠。
逐条核对:
- 所有数字:百分比、金额、数量、时长,回到原始来源确认。
- 所有时间:发布日期、生效日期、活动周期。
- 所有版本与规格:软件版本、功能名称、接口字段。以官方文档当前版本为准。
- 所有引用与人名:不要写"某位专家说",找不到出处就删。
- 所有链接:自己点一遍,确认可访问且指向正确页面。
- 所有绝对化表述:"最好""唯一""一定"这类词,要么给出依据,要么改掉。
- 平台规则:涉及合规、资质、广告的内容,以平台官方规则页面为准。
草稿里所有 <待核实:……> 标记,在这一步必须清零。
第八步:排版与发布
把 draft.md 丢进 Markdown 排版工具,选一个模板,点复制,粘进公众号后台。排版时守住几条规则:
```markdown
二级标题用于分节,全篇统一
正文段落控制在 1 到 3 行,手机上超过 4 行就开始劝退读者。
> 引用块用来放结论句或读者原话,全篇用两次左右即可。
1. 有序列表用于步骤
2. 无序列表用于并列要点
行内代码 用于命令、字段名、路径
```bash
代码块用来放可复制的命令
python generate.py
```
```
几条容易忽略的细节:
- 代码与报错:超过 6 行的代码,考虑截成图片或只留关键几行,手机屏幕放不下长代码。
- 配图:每 500 到 700 字插一张图,或者每隔两个小节插一张。图片来自自制截图或可商用图库,来源标注清楚。
- 封面与摘要:封面图尺寸、摘要字数上限以公众号后台当前提示为准。
- 样式克制:正文配色不超过三种,加粗只用于关键结论,全篇加粗段落控制在五处以内。
- 文末:放一句具体的互动问题,加一篇往期文章链接。
发布前最后过一遍检查清单:标题、摘要、封面、错别字、图片显示、代码块是否被截断、链接是否可点、原创声明、定时发送时间。
常见坑与排错
生成的内容每篇都一个味。
通常是 temperature 太低加上素材太少。把 temperature 调到 0.6 到 0.8 之间,同时把风格样例换成你自己的旧文,而不是让模型自由发挥。
模型编数据、编链接。
写作提示词里明确要求"不确定的写成 <待核实:……>",并且把事实核查固定成流程里的独立一步。指望模型自己保证准确,现在还不现实。
大纲和正文对不上。
大纲改完没有同步到 outline.json。改大纲时直接改 JSON 文件,不要只在脑子里改。
上下文太长,后半篇开始敷衍。
不要一次生成全文。分节生成,每节只带自己需要的素材。如果一定要一次生成,把前面的小节压缩成一两句摘要带进去。
粘贴到后台后样式全丢。
不要从 Markdown 编辑器直接复制源码,要用它的"复制"按钮复制渲染后的富文本。部分样式(表格、外链)会被后台过滤,发布前在手机预览一遍。
代码块在手机上串行。
手动折行,或者把长行拆成多行短命令,也可以整段截图。
敏感词和违规内容。
模型不会替你承担平台风险。发布前自己通读,涉及资质、承诺、金额的表述一律删掉或改写。
写完没人看。
问题多半不在文笔,在选题。把发布后的数据(打开率、读完率、留言)记下来,下一篇优先写读者问得最多的那个问题。
下一步建议
1. 把提示词存成模板库。选题、大纲、分节写作、标题、摘要,各存一份,下次直接替换变量。跑过三篇之后你会发现模板基本稳定了。
2. 建一个素材文件长期维护。每次踩坑、每次读者提问,随手记一行进去。写稿时直接粘贴,比临时搜集快得多。
3. 做一次复盘表。记录每篇的选题来源、发布时间、打开率、留言关键词。连记十篇,你会看出哪类选题真正有人读。
4. 逐步半自动化。熟练后可以把"读素材 → 出大纲 → 生成草稿"串成一条命令,但排版和事实核查这两步保留人工。
5. 控制频率。与其一周硬憋三篇,不如一周踏踏实实做一篇有素材、有例子、有核查的。写作这件事,可复用的流程比一次性的灵感可靠得多。
