跳到主内容
快讯直播
AI智模界
教程

AI写公众号长文:从选题到排版的完整工作流

这套工作流能做出什么

先说结果。跑完下面八个步骤,你会得到:

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. 控制频率。与其一周硬憋三篇,不如一周踏踏实实做一篇有素材、有例子、有核查的。写作这件事,可复用的流程比一次性的灵感可靠得多。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。