手把手教你用 LangGraph + Dify 混搭,30分钟搭建一个带人工审核的AI内容生成应用
想象一下这样的场景:你的营销团队需要批量生成产品文案,但每篇内容必须经过经理审核才能发布。传统方式需要人工反复修改邮件往来,而今天我们将用LangGraph的工作流控制和Dify的低代码界面,构建一个全自动化的AI审核流水线。下面这个真实案例来自某跨境电商团队——他们用这套方案将内容生产周期从3天缩短到30分钟。
1. 环境准备与工具选型
在开始前,我们需要明确两个框架的分工原则:
- Dify:负责前端交互、知识库管理和最终输出格式化
- LangGraph:处理条件判断、循环修正和人工审核路由
开发环境配置清单:
# 基础环境 pip install langgraph dify-client python-dotenv必备账号准备:
- Dify社区版账号(免费)
- OpenAI或 Anthropic 的API密钥
- 一个可公开访问的Webhook地址(用于人工审核回调)
提示:生产环境建议使用Dify的企业版,以获得更稳定的工作流执行保障
2. 构建Dify应用骨架
登录Dify控制台,新建"营销文案生成器"应用时,关键配置如下:
模型参数优化表:
| 参数项 | 推荐值 | 作用说明 |
|---|---|---|
| Temperature | 0.7 | 平衡创意与规范性 |
| Max Tokens | 1500 | 覆盖长文案需求 |
| Stop Sequences | ["###"] | 防止内容截断 |
在Prompt工作室中,插入动态变量:
根据产品特性生成营销文案,要求: - 目标人群:{{target_audience}} - 核心卖点:{{key_features}} - 风格要求:{{tone_style}}3. 设计LangGraph工作流
核心业务流程建模为状态机:
from langgraph.graph import StateGraph workflow = StateGraph(initial_state={ "draft": None, "approval_status": "pending" }) # 定义生成节点 def generate_content(state): response = dify_api.generate( variables=state["product_info"] ) return {"draft": response.content} # 定义审核路由 def route_to_approval(state): if state["draft"].contains_sensitive: return "requires_revision" return "awaiting_approval" # 构建工作流 workflow.add_node("generate", generate_content) workflow.add_conditional_edges( "generate", route_to_approval, { "requires_revision": "generate", "awaiting_approval": "approve" } )4. 实现人工审核接口
当工作流进入approve状态时,需要触发人工干预。这里我们使用Dify的Webhook功能:
from fastapi import FastAPI app = FastAPI() @app.post("/approval-webhook") async def handle_decision(payload: dict): if payload["decision"] == "approved": return {"new_state": "publish"} else: return { "new_state": "revise", "feedback": payload["comments"] }关键字段映射:
decision: 审核结果(approved/rejected)comments: 修改意见(将自动注入下次生成)
5. 混合架构调试技巧
常见问题排查指南:
性能优化对照表:
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 审核延迟超过5分钟 | Webhook响应超时 | 检查回调URL可达性 |
| 生成内容重复 | 状态未正确更新 | 在LangGraph中增加去重逻辑 |
| 格式丢失 | Dify输出模板冲突 | 禁用自动HTML转义 |
调试时建议开启LangGraph的追踪模式:
workflow.set_config({ "debug": True, "stream_output": True })6. 生产环境部署方案
对于企业级部署,推荐以下架构:
用户端 → Dify界面 → LangGraph工作流 → 审核系统 → 发布渠道 ↑ ↓ 知识库 日志监控关键安全措施:
- 为Dify配置IP白名单
- LangGraph工作流添加速率限制
- 敏感内容自动过滤中间件
class ContentFilter: def __init__(self): self.blacklist = ["竞品A", "敏感词B"] def check(self, text): return any(word in text for word in self.blacklist)7. 扩展应用场景
这套架构稍作修改即可适用于:
- 法律文件合规性检查
- 用户生成内容(UGC)预审
- 自动化报告生成与校验
比如在客服场景中,只需修改LangGraph的路由条件:
def route_customer_query(state): if state["query"].contains_complaint: return "escalate_to_manager" elif state["query"].requires_knowledge: return "search_knowledge_base" else: return "generate_response"我在实际部署中发现,最影响用户体验的往往是审核反馈的明确性。建议在Dify的拒绝模板中加入类似结构:
请根据以下意见修改: 1. 第一点具体问题... 2. 第二点改进建议...这种结构化反馈能使修改效率提升40%以上。现在你可以尝试用我们提供的示例代码仓库快速启动自己的第一个混合AI应用了。