基于 Dify 编排的自动化多模态内容合成流水线
设计目的:
独立站和垂直博客的 SEO 极度依赖高频、优质的内容更新,但跨语种的人工撰稿与排版成本高昂。与此同时,海外高活跃社区(如 Reddit 的 r/China, r/SSD 等垂直板块)每天都在产生海量硬核的 UGC(用户生成内容)讨论,这是一座巨大的流量金矿。
项目背景
为了高效开采这些数据,我设计了这套基于 Dify 编排的 Agentic ETL(大模型驱动的数据流转)系统。它用 AI 替代传统爬虫进行“语义级过滤”,将原本繁琐的“数据抓取 -> 价值筛选 -> 翻译润色 -> HTML排版 -> 鉴权发布”漏斗,压缩为一条极具弹性的自动化流水线。更重要的是,在工程层面,该系统彻底攻克了 AI 输出非确定性文本时最致命的“JSON 格式化崩溃”顽疾,将 AI 落地为了真正的工业级生产力工具。
整体架构
graph TD
subgraph "数据摄取(外部)"
A[Reddit API: r/China, r/shenzhen] -->|原始 JSON| B(Dify HTTP 节点)
end
subgraph "ETL与认知处理(Dify编排)"
B -->|获取| C[Python节点:载荷剥离]
C -->|清洗后 JSON| D{LLM:相关性过滤}
D -->|不相关| Z[丢弃]
D -->|发现目标| E[LLM:内容生成]
E -->|Markdown| F[Python节点:json.dumps转义]
end
subgraph "交付与验证"
F -->|安全载荷| G{HITL节点:人工审核}
G -->|拒绝| Z
G -->|通过| H(HTTP节点:WP REST API)
end
H -->|成功| I[WordPress 后端]
H -->|错误 500/40x| J[Slack Webhook 告警]
核心亮点
1. JSON 序列化与数据一致性 这是落地时最容易出问题的地方。LLM 输出的非确定性文本经常包含未闭合的双引号或特殊的换行符。如果不处理直接往 WordPress 接口推,一定会触发 HTTP 400 Bad Request。解决方案是在 HTTP 请求节点前强制串联一个 Python 节点,对 LLM 生成的内容执行 json.dumps 强转义,隔离非法字符,保证 Payload 格式合法。
2. 引入 HITL 风控拦截 生产环境不能把发布权全交给大模型。我在流转到远端服务器的交付层前,加了 HITL(Human-in-the-Loop)审批节点。逻辑很简单:AI 负责拉数据、洗数据和写草稿,人工在 Dify 面板点通过后才执行 API 推送。用来防御 AI 幻觉和不可控的违规内容。
3. 异常捕获与告警 单向流水线很容易断。我在访问 WP REST API 的末端节点拉了异常分支。只要返回 500 或 40x 状态码,系统直接走 Webhook 把错误堆栈推到 Slack。保证出问题时能及时跟进。
4. 意图路由过滤 直接扔全部数据给生成节点会导致 Token 浪费和低质量产出。系统先用一层 LLM 做路由器,通过设定 Prompt 阈值,把情绪宣泄和无营养的水贴直接丢弃分支,只把具备信息增量的帖子放行给下游。
具体功能模块

- 前置数据清洗:通过 Python 节点剥离 Reddit 原始数据里的冗余属性(作者 ID、时间戳等),缩小传递给大模型的 Context 窗口。 核心代码如下:
# 使用正则匹配出所有的 <entry> 区块(每个区块就是一个帖子)
entries = re.findall(r'<entry>(.*?)</entry>', rss_xml, re.DOTALL | re.IGNORECASE)
...
# 3. 极速清洗:把 HTML 转义符还原,并扒掉所有的 HTML 标签,只留纯文本
content_html = content_html.replace('<', '<').replace('>', '>').replace('&', '&').replace(''', "'").replace('"', '"')
clean_text = re.sub(r'<[^>]+>', ' ', content_html)
clean_text = re.sub(r'\s+', ' ', clean_text).strip()
- 文本重塑:将碎片化的帖子重写为结构化的
Markdown格式(含代码块和引用语法)。 - 鉴权与发布组装:使用
WordPress Application Passwords结合Basic Auth - 样式美化卡片生成:使用精准的提示词生成WordPress 可识别的代码片段,自动组装符合 WP 规范的
JSON Payload并完成发布。 核心提示词:
你精通 WordPress 自动化的前端开发专家。你的任务是根据【上下文】,生成一段能够直接嵌入 WordPress 正文并完美渲染的“日漫线条风”生存指南卡片代码。
## 视觉风格硬约束(Manga/Comic Style)
1. 配色:高反差纯黑白。边框使用 border-4 border-black,不使用圆角 (rounded-none)。
2. 阴影:使用硬块阴影(box-shadow: 6px 6px 0px #000)。背景使用 CSS 网点纸(Halftone)特效。
3. 排版:超大号英文字体加粗,搭配全大写英文点缀。
## WordPress 兼容性要求(关键)
1. 依赖库:必须在代码最顶部通过 CDN 引入 TailwindCSS 3.0+ 和 Font Awesome 6。
- <script src="[https://cdn.tailwindcss.com](https://cdn.tailwindcss.com)"></script>
1. 容器限制:最外层主容器必须使用 `w-full max-w-[393px] mx-auto`,确保在 WP 不同主题下都能居中且不溢出。
....
实现效果截图

可应用场景
这套架构跑通后,改一两个节点就能复用到其他场景:
- 垂直领域资讯站维护:不需要人工找选题,直接用 Hacker News 或 Reddit 的高价值讨论填充博客。
- 多语言内容聚合:调一下生成节点的 Prompt,把提取到的英文内容翻译并重构成中文发布,用来做信息差流量。
- 社区监控告警:把最后一步的 WordPress HTTP 节点替换成内部 IM(飞书/钉钉),系统就变成了一个指定社区关键词的实时监控机器人。