内容生产线架构
graph TB
subgraph "输入源"
RSS[RSS 订阅]
Upload[手动上传]
API_In[API 推送]
end
subgraph "Dify Workflow - 内容工厂"
Ingest[内容接收] --> Extract[提取正文]
Extract --> Parallel[并行处理]
Parallel --> Summary[LLM: 生成摘要]
Parallel --> Translate[LLM: 多语言翻译]
Parallel --> SEO[LLM: SEO 优化]
Parallel --> Tags[LLM: 自动标签]
Summary --> Merge[汇总]
Translate --> Merge
SEO --> Merge
Tags --> Merge
Merge --> Format[Code: 格式化输出]
Format --> QA[LLM: 质量审核]
QA --> Publish[HTTP: 发布到 CMS]
end
subgraph "输出渠道"
CMS[WordPress / Ghost]
WeChat[微信公众号]
Newsletter[邮件通讯]
end
RSS --> Ingest
Upload --> Ingest
API_In --> Ingest
Publish --> CMS
Publish --> WeChat
Publish --> NewsletterWorkflow 核心节点
正文提取 (Code Node)
import re
def main(raw_html: str) -> dict:
"""从 HTML 中提取纯文本正文"""
# 移除 script/style 标签
clean = re.sub(r'<(script|style)[^>]*>.*?</\1>', '', raw_html, flags=re.DOTALL)
# 移除 HTML 标签
text = re.sub(r'<[^>]+>', '', clean)
# 清理空白
text = re.sub(r'\s+', ' ', text).strip()
return {
"content": text,
"word_count": len(text),
"language": detect_language(text)
}
def detect_language(text: str) -> str:
chinese_chars = len(re.findall(r'[\u4e00-\u9fff]', text))
return "zh" if chinese_chars > len(text) * 0.3 else "en"
多语言翻译 (LLM Node)
System Prompt:
你是一个专业的多语言翻译专家。
将以下{{#code_1.language#}}文章翻译为{{#start.target_languages#}}。
翻译要求:
1. 保持原文的语气和风格
2. 技术术语保留英文原文并加括号注释
3. 标题也要翻译
4. 输出 JSON 格式: {"zh": "...", "en": "...", "ja": "..."}
原文:
{{#code_1.content#}}
SEO 优化 (LLM Node)
System Prompt:
你是一个 SEO 优化专家。基于以下文章内容,生成:
1. SEO 标题 (50-60 字符)
2. Meta Description (120-160 字符)
3. 5 个关键词
4. Open Graph 描述
5. URL 友好的 slug
输出 JSON 格式:
{
"seo_title": "...",
"meta_description": "...",
"keywords": ["k1", "k2", ...],
"og_description": "...",
"slug": "..."
}
质量审核 (LLM Node)
System Prompt:
你是一个内容质量审核专家。检查以下内容并打分:
评分维度 (每项1-10分):
1. 准确性 - 信息是否准确
2. 可读性 - 结构和表达是否清晰
3. SEO 友好 - 是否包含合适的关键词
4. 完整性 - 内容是否完整
如果总分 < 28,标记为 "needs_revision"。
输出 JSON:
{
"scores": {"accuracy": 9, "readability": 8, ...},
"total": 35,
"status": "approved" | "needs_revision",
"feedback": "修改建议..."
}
发布到 CMS (HTTP Node)
# Code 节点:构建发布请求
def main(content: dict, seo: dict, translations: dict) -> dict:
return {
"publish_payload": {
"title": seo["seo_title"],
"slug": seo["slug"],
"content": content["formatted_content"],
"excerpt": seo["meta_description"],
"tags": seo["keywords"],
"status": "draft", # 先发到草稿
"translations": translations,
"meta": {
"og_description": seo["og_description"]
}
}
}