今天上线了一个我等了好久的功能:在 V4 仪表盘里直接「一键发布」公众号文章。
说实话,以前发文章要来回切页面、手动配图、改标题,特别麻烦。现在只要选个公众号、挑个类型(图文 or 小绿书)、输入个主题,剩下的全交给系统搞定——全程不用离开仪表盘。
说到这个,整个流程拆成六个关键步骤,每一步我都仔细调过。
第一个坑:LLM 写作
用的是智谱 AI 的 glm-4.5-air 模型,根据你给的主题提示,生成 khazix-writer 风格的文章。
图文消息要求 4000–8000 字,带 4–7 个小标题,还得有文化升维段落和固定结尾。
小绿书就简单多了,500 字以内,主打图片,不需要小标题。
提示词工程花了不少时间,光是让 LLM 输出能直接粘进微信的 Markdown 格式,就折腾了快一周。
文件结构也得安排上
写完文章后,自动建个目录:MMDD-XX.标题.md,顺便建个 imgs-jianfei/ 子目录放图。
这样以后查起来也方便,不会乱成一团。
配图最难搞,但最值得优化
调用 jianfei-cards 脚本,图文生成 4 张图,小绿书只生成 1 张。
这一步最耗时,一篇可能要 1–3 分钟。
所以我把它扔到后台异步跑,前端每两秒轮询一次进度,用户能看到“正在生成第 X 张图”这种实时反馈。
图片插入也有讲究
配图生成完,得把  插进去。
我设计了个简单的策略:在每个小标题后面或段落结束处均匀插,不堆一块儿,看着舒服。
标题不能随便写
标题优化用的是 jianfei-title --auto,让 LLM 从 6 种策略里挑最好的那个。
这一步很快,几秒钟就出结果,还能避免自己起标题太随意。
最后一步:发布到公众号
调用 wechat_markdown_uploader.py,传入文章路径、账号别名、配图目录、作者名、标题这些参数,就能直接发出去。
整个过程都在后台跑,用一个全局任务存储来跟踪进度。
前端轮询状态,进度条 + 终端日志同步更新,用户看得清清楚楚:
“LLM 正在写稿”、“配图生成中”、“发布成功”或者“失败了”。
回到正题:踩过的坑比功能还多
最坑的是发布脚本报错:“请设置 WECHAT_APP_ID 和 WECHAT_APP_SECRET 环境变量”。
排查半天才发现,config.yml 里的凭证被意外清空了——原来是之前写的版本切换 API 用 yaml.safe_dump 写入配置时,不小心把整个文件覆盖成了空的。
从外置 SSD 恢复回来才解决。
这事给我敲响警钟,后来专门写了篇记录,提醒自己以后别再犯这种低级错误。