我用Python搭了一条“AI写稿→自动配图→定时发布“的流水线,每天3篇不用管

发布时间:2026/9/12 19:24:15
我用Python搭了一条“AI写稿→自动配图→定时发布“的流水线,每天3篇不用管 我用 Python 搭了一条AI 写稿→自动配图→定时发布的流水线每天 3 篇不用管很多人问我你公众号/博客天天更新哪来那么多时间答案很简单写一篇内容的是人但把内容变成每天稳定产出的是一套代码流水线。这篇文章把我的完整方案拆开讲AI 写稿、自动配图、定时发布三个环节怎么串起来每一步给出可复用的思路和关键代码片段。不求你能一次抄完但至少你抄走其中一环就值回票价。一、整体架构一句话版定时器触发 ↓ ① AI 写稿大模型 API按 Prompt 模板生成正文 ↓ ② 自动配图AI 生图 API生成无文字封面 ↓ ③ 定时发布调度器 浏览器自动化上传发布 ↓ 日志记录每天产出自动归档核心思想就四个字管道化Pipeline。每个环节只做一件事环节之间用产物文件交接正文 md、封面 png互不耦合。这样任何一个环节挂了替换掉它就行不会整条线瘫痪。二、环节①AI 写稿写稿不是丢一句话给模型就完事。稳定产出的关键是Prompt 模板化 输出校验。2.1 固定一个高质量 Prompt 模板以科技 AI 新闻解读类文章为例我会给模型明确的角色、结构、风格要求你是一名科技编辑请根据以下素材写一篇 CSDN 技术博客文章 1. 标题紧扣主题含具体信息点如模型名、数字不超过 60 字 2. 开头一句话点题交代为什么值得读 3. 正文分 3-5 个小节每节一个小标题技术点用列表或代码块呈现 4. 结尾一句话总结 提示关注 5. 全文 1000-1500 字口语化避免空洞套话 素材粘贴新闻/资料用 Python 调用时把模板放进一个函数import openai def generate_article(material: str, prompt_template: str PROMPT_TEMPLATE) - str: 调用大模型生成文章正文返回 Markdown 文本 resp openai.ChatCompletion.create( modelgpt-4o-mini, messages[ {role: system, content: 你是一名资深科技编辑。}, {role: user, content: prompt_template.format(materialmaterial)}, ], temperature0.7, max_tokens2000, ) return resp[choices][0][message][content] article build_article(materialOpenAI 发布 GPT-6 Astra……)关键经验把角色设定 结构约束 风格要求写死在 Prompt 里而不是每次重新口述生成后必做校验标题长度、是否含关键数字、段落数。校验不过就重试一次最多 2 次别让坏稿进入流水线def validate_article(text: str) - bool: 简单校验有标题、有代码块或列表、字数达标 if len(text) 800: return False if not text.startswith(# ): return False return True三、环节②自动配图配图是很多人的痛点不会设计又不想用有版权风险的图。我的方案是直接调文生图 API 生成无文字科技风封面。3.1 用图像生成接口一行代码出封面def gen_cover(topic: str, out_path: str cover.png) - str: 按主题生成封面图返回文件路径 prompt ( f科技风封面无任何文字。主题{topic}。 深蓝黑背景冷光蓝与青色霓虹点缀高细节扁平插画3D混合风格。 ) # 调用你的生图 API如 Seedream / DALL·E / SD保存到 out_path save_image(api_generate(prompt), out_path) return out_path要点Prompt 里写死无任何文字——AI 生图最容易翻车的点就是画面里的文字乱码直接避免封面尺寸按平台要求如 16:9 或 3:1生成时指定避免上传后被裁切封面风格固定一套深蓝科技风形成账号视觉一致性读者一眼认出你3.2 为什么无文字封面更专业平台封面位通常很小一堆字上去反而看不清。纯视觉封面 标题文字由平台渲染观感干净点击率反而更高。这也是大厂科技号通用的做法。四、环节③定时发布写稿和配图都在本地发布必须上平台。这里有两个层次4.1 层次 A简单方案——定时任务 浏览器自动化用浏览器自动化如 Playwright模拟人工操作把打开编辑器→填标题→贴正文→传封面→选标签→点发布这一串动作脚本化from playwright.sync_api import sync_playwright def publish(article: dict): with sync_playwright() as p: browser p.chromium.launch(headlessTrue) page browser.new_page() page.goto(https://editor.example.com) page.fill(#title, article[title]) page.fill(#content, article[content]) page.set_input_files(#cover, article[cover_path]) page.click(button:has-text(发布)) browser.close()注意这类脚本要处理登录态Cookie 复用、弹窗、网络延迟属于能用但需要维护的方案。适合个人日常。4.2 方案 B平台官方 API如果有如果平台提供 API 就更干净。CSDN 这类社区有开放能力的话直接 POST 文章 JSON 即可稳定性远高于浏览器模拟。有 API 优先用 API。4.3 定时器三个典型时段# cron 表达式分钟 小时 日 月 周 0 8 * * * # 每天 08:00 发晨间文 30 12 * * * # 每天 12:30 发午间文 0 20 * * * # 每天 20:00 发晚间文注意发布频率要低于平台风控阈值如每天 3 篇封顶不要贪多稳定才长久。五、流水线运行与容错流水线跑起来之后要盯的不是成功而是失败。我的经验1.每一步都留日志正文 md、封面 png、发布结果全落盘到 output/ 目录随时可查2.失败重试写稿失败重试 2 次配图失败换一个 prompt 再试发布失败则标记为待人工处理3.人工兜底发布前留一个人工确认开关。特别涉及平台规则的内容宁可慢一点六、效果与心得这套流水线跑下来我的实际体感指标自动化前自动化后每天产出0-1 篇看状态3 篇稳定每篇耗时2-3 小时30 分钟审核微调配图一致性无固定风格最大的收获不是省时间而是建立了确定性——内容生产从靠灵感变成靠系统。灵感会枯竭系统不会。写在最后如果你也想跑这套流水线从最简单的一步开始先把你的发文流程拆成 3 个环节再一个个自动化。不要一上来就想全自动先做半自动人点一下触发跑顺了再全自动。如果这篇对你有帮助欢迎收藏。下一篇我准备写智能体如何自己联网检索再回答彻底告别胡说八道附 RAG 实战想看的评论区扣 1。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询