摘要:工作流平台让 AI 应用开发从代码编写转变为可视化编排,大大降低了开发门槛。
4.1 工作流平台对比
平台定位特点适用场景Starsn8n通用自动化开源、400+ 节点、自托管IT 自动化、数据管道50k+DifyAI 原生应用RAG、Agent、工作流一体化AI 应用开发50k+FlowiseLLM 可视化低代码、拖拽式快速原型35k+LangFlowLangChain 可视化与 LangChain 无缝集成开发者友好40k+ 平台选型决策树 ┌─────────────────────────────────────────────────────────┐ │ 工作流平台选型 │ ├─────────────────────────────────────────────────────────┤ │ │ │ 主要需求是什么? │ 否 ──▶ Flowise │ │ │ │ │ ├── 通用自动化 ──▶ n8n │ │ │ │ │ └── LangChain 可视化 ──▶ LangFlow │ │ │ └───下一篇: Coze 零代码平台
欢迎关注的我的公众号《码上未来》,一起交流AI前沿技术! 添加我微信 return_not_null 进群聊AI
工作流平台让 AI 应用开发从代码编写转变为可视化编排,大大降低了开发门槛。
┌─────────────────────────────────────────────────────────┐ │ 工作流平台选型 │ ├─────────────────────────────────────────────────────────┤ │ │ │ 主要需求是什么? │ │ │ │ │ ├── AI 应用开发 ──▶ 需要企业级功能? │ │ │ │ │ │ │ ├── 是 ──▶ Dify │ │ │ │ │ │ │ └── 否 ──▶ Flowise │ │ │ │ │ ├── 通用自动化 ──▶ n8n │ │ │ │ │ └── LangChain 可视化 ──▶ LangFlow │ │ │ └─────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐ │ Dify 架构 │ ├─────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ 工作流编排 │ │ 知识库管理 │ │ 应用管理 │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │ │ │ │ │ │ └───────────────┴────────────────┘ │ │ │ │ │ ┌──────────────────────▼──────────────────────┐ │ │ │ 核心引擎 │ │ │ │ • LLM 调度 • RAG Pipeline │ │ │ │ • 工具调用 • 变量管理 │ │ │ └─────────────────────────────────────────────┘ │ │ │ │ │ ┌──────────────────────▼──────────────────────┐ │ │ │ 数据层 │ │ │ │ PostgreSQL │ Redis │ Vector DB │ │ │ └─────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────┘
节点类型: 基础节点: - 开始节点: 工作流入口,定义输入变量 - 结束节点: 工作流出口,定义输出格式 LLM 节点: - 大模型调用: 调用 GPT/Claude/Gemini 等 - 参数: model, prompt, temperature, max_tokens 知识库节点: - 知识检索: 从向量库检索相关内容 - 参数: dataset_id, query, top_k, score_threshold 工具节点: - HTTP 请求: 调用外部 API - 代码执行: 运行 Python/JavaScript - 内置工具: 天气、搜索、计算器等 逻辑节点: - 条件分支: if-else 判断 - 迭代: 循环处理数组 - 并行: 多任务同时执行 变换节点: - 变量聚合: 合并多个变量 - 模板转换: 格式化输出 - 变量读取: 提取 JSON 字段
构建一个合同审查工作流,实现:
开始 ──▶ 文档解析 ──▶ 条款提取 ──▶ 知识检索 ──▶ 风险分析 ──▶ 报告生成 ──▶ 结束 │ ▼ 规则引擎
# contract_review_workflow.yaml app: mode: workflow name: 智能合同审查 workflow: graph: nodes: # 开始节点 - id: start type: start data: variables: - variable: contract_file type: file label: 合同文件 required: true - variable: contract_type type: select label: 合同类型 options: - 销售合同 - 服务合同 - 劳动合同 - 其他 # 文档解析节点 - id: document_parser type: code data: code_language: python3 code: | import pdfplumber import json def main(contract_file): """解析合同文件""" text = "" with pdfplumber.open(contract_file) as pdf: for page in pdf.pages: text += page.extract_text() or "" return { "content": text, "page_count": len(pdf.pages) } variables: - variable: contract_file value_selector: ["start", "contract_file"] # 条款提取节点 - id: clause_extractor type: llm data: model: provider: openai name: gpt-4 completion_params: temperature: 0.1 max_tokens: 4000 prompt: type: template template: | 你是一位资深法务专家,请分析以下合同文本,提取关键条款。 合同类型:{{contract_type}} 合同内容: {{document_content}} 请以 JSON 格式输出以下条款: 1. contract_parties: 合同双方信息 2. contract_amount: 合同金额 3. contract_period: 履行期限 4. breach_clause: 违约条款 5. dispute_resolution: 争议解决方式 6. special_terms: 特殊条款 输出格式: ```json { "contract_parties": {...}, "contract_amount": {...}, ... }
variables: - variable: contract_type value_selector: ["start", "contract_type"] - variable: document_content value_selector: ["document_parser", "content"] # 知识检索节点 - id: knowledge_retrieval type: knowledge-retrieval data: dataset_ids: ["legal_knowledge_base_id"] query_selector: ["document_parser", "content"] retrieval_mode: hybrid # 关键词 + 向量 top_k: 5 score_threshold: 0.7 # 风险分析节点 - id: risk_analyzer type: llm data: model: provider: openai name: gpt-4 prompt: type: template template: | 作为法律风险顾问,请基于以下信息分析合同风险。 ## 提取的条款 {{clauses}} ## 相关法律知识 {{knowledge}} ## 合同类型 {{contract_type}} 请识别以下风险并评分(高/中/低): 1. 法律合规风险 - 评估依据 - 风险等级 - 建议措施 2. 商业风险 - 评估依据 - 风险等级 - 建议措施 3. 操作风险 - 评估依据 - 风险等级 - 建议措施 输出为 JSON 格式。 variables: - variable: clauses value_selector: ["clause_extractor", "text"] - variable: knowledge value_selector: ["knowledge_retrieval", "result"] - variable: contract_type value_selector: ["start", "contract_type"] # 报告生成节点 - id: report_generator type: template-transform data: template: | # 合同审查报告 ## 一、基本信息 | 项目 | 内容 | |------|------| | 合同类型 | {{contract_type}} | | 页数 | {{page_count}} | | 审查时间 | {{current_time}} | ## 二、条款摘要 {{clauses_summary}} ## 三、风险分析 {{risk_analysis}} ## 四、审查建议 {{recommendations}} --- *本报告由 AI 合同审查助手生成,仅供参考,不构成法律意见。* variables: - variable: contract_type value_selector: ["start", "contract_type"] - variable: page_count value_selector: ["document_parser", "page_count"] - variable: clauses_summary value_selector: ["clause_extractor", "text"] - variable: risk_analysis value_selector: ["risk_analyzer", "text"] # 结束节点 - id: end type: end data: outputs: - variable: report value_selector: ["report_generator", "output"] # 连接边 edges: - source: start target: document_parser - source: document_parser target: clause_extractor - source: clause_extractor target: knowledge_retrieval - source: knowledge_retrieval target: risk_analyzer - source: risk_analyzer target: report_generator - source: report_generator target: end
--- ## 4.4 n8n:通用自动化平台 ### 核心优势 | 特性 | 说明 | |------|------| | **开源免费** | 可自托管,数据完全掌控 | | **400+ 节点** | 覆盖主流 SaaS 服务 | | **分支与合并** | 支持复杂逻辑流 | | **错误处理** | 内置重试和异常处理 | | **Webhook 触发** | 支持 API 触发 | ### 实战案例:自动化内容发布流程
┌─────────────────────────────────────────────────────────┐ │ 自动内容发布工作流 │ ├─────────────────────────────────────────────────────────┤ │ │ │ 定时触发 ──▶ AI 生成 ──▶ 图片生成 ──▶ 内容审核 │ │ │ │ │ ┌────────────┴────────┐ │ │ │ │ │ │ ▼ ▼ │ │ 发布成功 发布失败 │ │ │ │ │ │ ▼ ▼ │ │ 通知用户 错误日志 │ └─────────────────────────────────────────────────────────┘
### n8n 工作流配置 ```json { "name": "自动内容发布", "nodes": [ { "name": "定时触发", "type": "n8n-nodes-base.scheduleTrigger", "position": [250, 300], "parameters": { "rule": { "interval": [{"field": "hours", "hoursInterval": 6}] } } }, { "name": "生成主题", "type": "n8n-nodes-base.httpRequest", "position": [450, 300], "parameters": { "url": "https://api.openai.com/v1/chat/completions", "method": "POST", "authentication": "predefinedCredentialType", "nodeCredentialType": "openAiApi", "sendBody": true, "bodyParameters": { "parameters": [ {"name": "model", "value": "gpt-4"}, {"name": "messages", "value": "[{\"role\": \"user\", \"content\": \"生成一个AI领域的热点话题\"}]"} ] } } }, { "name": "内容生成", "type": "n8n-nodes-base.httpRequest", "position": [650, 300], "parameters": { "url": "https://api.openai.com/v1/chat/completions", "method": "POST", "sendBody": true, "bodyParameters": { "parameters": [ {"name": "model", "value": "gpt-4"}, {"name": "messages", "value": "={{[{\"role\": \"system\", \"content\": \"你是内容创作专家\"}, {\"role\": \"user\", \"content\": $json.choices[0].message.content}]}"}"} ] } } }, { "name": "图片生成", "type": "n8n-nodes-base.httpRequest", "position": [850, 300], "parameters": { "url": "https://api.openai.com/v1/images/generations", "method": "POST", "sendBody": true, "bodyParameters": { "parameters": [ {"name": "prompt", "value": "={{$json.choices[0].message.content}}"}, {"name": "size", "value": "1024x1024"} ] } } }, { "name": "内容审核", "type": "n8n-nodes-base.httpRequest", "position": [1050, 300], "parameters": { "url": "https://api.openai.com/v1/moderations", "method": "POST", "sendBody": true, "bodyParameters": { "parameters": [ {"name": "input", "value": "={{$json.choices[0].message.content}}"} ] } } }, { "name": "条件判断", "type": "n8n-nodes-base.if", "position": [1250, 300], "parameters": { "conditions": { "boolean": [ {"value1": "={{$json.results[0].flagged}}", "value2": false} ] } } }, { "name": "发布内容", "type": "n8n-nodes-base.httpRequest", "position": [1450, 200], "parameters": { "url": "https://api.your-platform.com/publish", "method": "POST", "sendBody": true, "bodyParameters": { "parameters": [ {"name": "title", "value": "AI 趋势洞察"}, {"name": "content", "value": "={{$json.content}}"}, {"name": "image", "value": "={{$json.image_url}}"} ] } } }, { "name": "发送通知", "type": "n8n-nodes-base.slack", "position": [1650, 200], "parameters": { "channel": "#content-updates", "text": "内容发布成功!" } }, { "name": "记录错误", "type": "n8n-nodes-base.httpRequest", "position": [1450, 400], "parameters": { "url": "https://api.logging-service.com/error", "method": "POST", "sendBody": true, "bodyParameters": { "parameters": [ {"name": "error", "value": "内容审核不通过"}, {"name": "timestamp", "value": "={{$now}}"} ] } } } ], "connections": { "定时触发": {"main": [[{"node": "生成主题", "type": "main", "index": 0}]]}, "生成主题": {"main": [[{"node": "内容生成", "type": "main", "index": 0}]]}, "内容生成": {"main": [[{"node": "图片生成", "type": "main", "index": 0}]]}, "图片生成": {"main": [[{"node": "内容审核", "type": "main", "index": 0}]]}, "内容审核": {"main": [[{"node": "条件判断", "type": "main", "index": 0}]]}, "条件判断": { "main": [ [{"node": "发布内容", "type": "main", "index": 0}], [{"node": "记录错误", "type": "main", "index": 0}] ] }, "发布内容": {"main": [[{"node": "发送通知", "type": "main", "index": 0}]]} } }
# 克隆仓库 git clone https://github.com/langgenius/dify.git cd dify/docker # 复制环境变量 cp .env.example .env # 启动服务 docker compose up -d # 查看状态 docker compose ps # 访问 http://localhost
方式一:Docker 快速部署
docker run -it --rm \ --name n8n \ -p 5678:5678 \ -v ~/.n8n:/home/node/.n8n \ -e N8N_BASIC_AUTH_ACTIVE=true \ -e N8N_BASIC_AUTH_USER=admin \ -e N8N_BASIC_AUTH_PASSWORD=your_password \ n8nio/n8n
方式二:Docker Compose 部署
# docker-compose.yml version: "3.8" services: n8n: image: n8nio/n8n ports: - "5678:5678" volumes: - ./n8n-data:/home/node/.n8n environment: - N8N_BASIC_AUTH_ACTIVE=true - N8N_BASIC_AUTH_USER=admin - N8N_BASIC_AUTH_PASSWORD=secure_password - N8N_HOST=0.0.0.0 - N8N_PORT=5678 - WEBHOOK_URL=https://your-domain.com/ restart: unless-stopped postgres: image: postgres:15 environment: - POSTGRES_USER=n8n - POSTGRES_PASSWORD=n8n_password - POSTGRES_DB=n8n volumes: - ./postgres-data:/var/lib/postgresql/data restart: unless-stopped
# 方式一:NPM 安装 npm install -g flowise npx flowise start # 方式二:Docker 部署 docker run -d \ --name flowise \ -p 3000:3000 \ -v ~/.flowise:/root/.flowise \ flowiseai/flowise
✅ 好的设计 工作流/ ├── 子流程1: 数据预处理 ├── 子流程2: 核心处理 └── 子流程3: 结果输出 ❌ 不好的设计 一个巨大的工作流包含所有逻辑
error_handling: retry_policy: max_retries: 3 retry_delay: 5s exponential_backoff: true fallback: - condition: "api_timeout" action: "use_cached_result" - condition: "rate_limit" action: "queue_for_later" - condition: "unknown_error" action: "notify_admin"
optimization: parallel_execution: true # 并行执行独立节点 caching: enabled: true ttl: 3600 # 1小时缓存 resource_limits: max_execution_time: 300 # 5分钟超时 max_memory: 512MB
下一篇: Coze 零代码平台
欢迎关注的我的公众号《码上未来》,一起交流AI前沿技术!
添加我微信 return_not_null 进群聊AI
return_not_null
暂无回复,快来抢沙发吧!
本次需消耗银元:
100
当前账户余额: 0 银元
4.1 工作流平台对比
平台定位特点适用场景Starsn8n通用自动化开源、400+ 节点、自托管IT 自动化、数据管道50k+DifyAI 原生应用RAG、Agent、工作流一体化AI 应用开发50k+FlowiseLLM 可视化低代码、拖拽式快速原型35k+LangFlowLangChain 可视化与 LangChain 无缝集成开发者友好40k+ 平台选型决策树 ┌─────────────────────────────────────────────────────────┐ │ 工作流平台选型 │ ├─────────────────────────────────────────────────────────┤ │ │ │ 主要需求是什么? │ 否 ──▶ Flowise │ │ │ │ │ ├── 通用自动化 ──▶ n8n │ │ │ │ │ └── LangChain 可视化 ──▶ LangFlow │ │ │ └───下一篇: Coze 零代码平台
欢迎关注的我的公众号《码上未来》,一起交流AI前沿技术! 添加我微信 return_not_null 进群聊AI
4.1 工作流平台对比
平台选型决策树
4.2 Dify 深度解析
架构概览
工作流节点类型
节点类型: 基础节点: - 开始节点: 工作流入口,定义输入变量 - 结束节点: 工作流出口,定义输出格式 LLM 节点: - 大模型调用: 调用 GPT/Claude/Gemini 等 - 参数: model, prompt, temperature, max_tokens 知识库节点: - 知识检索: 从向量库检索相关内容 - 参数: dataset_id, query, top_k, score_threshold 工具节点: - HTTP 请求: 调用外部 API - 代码执行: 运行 Python/JavaScript - 内置工具: 天气、搜索、计算器等 逻辑节点: - 条件分支: if-else 判断 - 迭代: 循环处理数组 - 并行: 多任务同时执行 变换节点: - 变量聚合: 合并多个变量 - 模板转换: 格式化输出 - 变量读取: 提取 JSON 字段Dify 应用类型
4.3 实战案例:智能合同审查工作流
业务场景
构建一个合同审查工作流,实现:
工作流设计
开始 ──▶ 文档解析 ──▶ 条款提取 ──▶ 知识检索 ──▶ 风险分析 ──▶ 报告生成 ──▶ 结束 │ ▼ 规则引擎Dify 工作流 DSL 配置
# contract_review_workflow.yaml app: mode: workflow name: 智能合同审查 workflow: graph: nodes: # 开始节点 - id: start type: start data: variables: - variable: contract_file type: file label: 合同文件 required: true - variable: contract_type type: select label: 合同类型 options: - 销售合同 - 服务合同 - 劳动合同 - 其他 # 文档解析节点 - id: document_parser type: code data: code_language: python3 code: | import pdfplumber import json def main(contract_file): """解析合同文件""" text = "" with pdfplumber.open(contract_file) as pdf: for page in pdf.pages: text += page.extract_text() or "" return { "content": text, "page_count": len(pdf.pages) } variables: - variable: contract_file value_selector: ["start", "contract_file"] # 条款提取节点 - id: clause_extractor type: llm data: model: provider: openai name: gpt-4 completion_params: temperature: 0.1 max_tokens: 4000 prompt: type: template template: | 你是一位资深法务专家,请分析以下合同文本,提取关键条款。 合同类型:{{contract_type}} 合同内容: {{document_content}} 请以 JSON 格式输出以下条款: 1. contract_parties: 合同双方信息 2. contract_amount: 合同金额 3. contract_period: 履行期限 4. breach_clause: 违约条款 5. dispute_resolution: 争议解决方式 6. special_terms: 特殊条款 输出格式: ```json { "contract_parties": {...}, "contract_amount": {...}, ... }variables: - variable: contract_type value_selector: ["start", "contract_type"] - variable: document_content value_selector: ["document_parser", "content"] # 知识检索节点 - id: knowledge_retrieval type: knowledge-retrieval data: dataset_ids: ["legal_knowledge_base_id"] query_selector: ["document_parser", "content"] retrieval_mode: hybrid # 关键词 + 向量 top_k: 5 score_threshold: 0.7 # 风险分析节点 - id: risk_analyzer type: llm data: model: provider: openai name: gpt-4 prompt: type: template template: | 作为法律风险顾问,请基于以下信息分析合同风险。 ## 提取的条款 {{clauses}} ## 相关法律知识 {{knowledge}} ## 合同类型 {{contract_type}} 请识别以下风险并评分(高/中/低): 1. 法律合规风险 - 评估依据 - 风险等级 - 建议措施 2. 商业风险 - 评估依据 - 风险等级 - 建议措施 3. 操作风险 - 评估依据 - 风险等级 - 建议措施 输出为 JSON 格式。 variables: - variable: clauses value_selector: ["clause_extractor", "text"] - variable: knowledge value_selector: ["knowledge_retrieval", "result"] - variable: contract_type value_selector: ["start", "contract_type"] # 报告生成节点 - id: report_generator type: template-transform data: template: | # 合同审查报告 ## 一、基本信息 | 项目 | 内容 | |------|------| | 合同类型 | {{contract_type}} | | 页数 | {{page_count}} | | 审查时间 | {{current_time}} | ## 二、条款摘要 {{clauses_summary}} ## 三、风险分析 {{risk_analysis}} ## 四、审查建议 {{recommendations}} --- *本报告由 AI 合同审查助手生成,仅供参考,不构成法律意见。* variables: - variable: contract_type value_selector: ["start", "contract_type"] - variable: page_count value_selector: ["document_parser", "page_count"] - variable: clauses_summary value_selector: ["clause_extractor", "text"] - variable: risk_analysis value_selector: ["risk_analyzer", "text"] # 结束节点 - id: end type: end data: outputs: - variable: report value_selector: ["report_generator", "output"] # 连接边 edges: - source: start target: document_parser - source: document_parser target: clause_extractor - source: clause_extractor target: knowledge_retrieval - source: knowledge_retrieval target: risk_analyzer - source: risk_analyzer target: report_generator - source: report_generator target: end--- ## 4.4 n8n:通用自动化平台 ### 核心优势 | 特性 | 说明 | |------|------| | **开源免费** | 可自托管,数据完全掌控 | | **400+ 节点** | 覆盖主流 SaaS 服务 | | **分支与合并** | 支持复杂逻辑流 | | **错误处理** | 内置重试和异常处理 | | **Webhook 触发** | 支持 API 触发 | ### 实战案例:自动化内容发布流程┌─────────────────────────────────────────────────────────┐ │ 自动内容发布工作流 │ ├─────────────────────────────────────────────────────────┤ │ │ │ 定时触发 ──▶ AI 生成 ──▶ 图片生成 ──▶ 内容审核 │ │ │ │ │ ┌────────────┴────────┐ │ │ │ │ │ │ ▼ ▼ │ │ 发布成功 发布失败 │ │ │ │ │ │ ▼ ▼ │ │ 通知用户 错误日志 │ └─────────────────────────────────────────────────────────┘
### n8n 工作流配置 ```json { "name": "自动内容发布", "nodes": [ { "name": "定时触发", "type": "n8n-nodes-base.scheduleTrigger", "position": [250, 300], "parameters": { "rule": { "interval": [{"field": "hours", "hoursInterval": 6}] } } }, { "name": "生成主题", "type": "n8n-nodes-base.httpRequest", "position": [450, 300], "parameters": { "url": "https://api.openai.com/v1/chat/completions", "method": "POST", "authentication": "predefinedCredentialType", "nodeCredentialType": "openAiApi", "sendBody": true, "bodyParameters": { "parameters": [ {"name": "model", "value": "gpt-4"}, {"name": "messages", "value": "[{\"role\": \"user\", \"content\": \"生成一个AI领域的热点话题\"}]"} ] } } }, { "name": "内容生成", "type": "n8n-nodes-base.httpRequest", "position": [650, 300], "parameters": { "url": "https://api.openai.com/v1/chat/completions", "method": "POST", "sendBody": true, "bodyParameters": { "parameters": [ {"name": "model", "value": "gpt-4"}, {"name": "messages", "value": "={{[{\"role\": \"system\", \"content\": \"你是内容创作专家\"}, {\"role\": \"user\", \"content\": $json.choices[0].message.content}]}"}"} ] } } }, { "name": "图片生成", "type": "n8n-nodes-base.httpRequest", "position": [850, 300], "parameters": { "url": "https://api.openai.com/v1/images/generations", "method": "POST", "sendBody": true, "bodyParameters": { "parameters": [ {"name": "prompt", "value": "={{$json.choices[0].message.content}}"}, {"name": "size", "value": "1024x1024"} ] } } }, { "name": "内容审核", "type": "n8n-nodes-base.httpRequest", "position": [1050, 300], "parameters": { "url": "https://api.openai.com/v1/moderations", "method": "POST", "sendBody": true, "bodyParameters": { "parameters": [ {"name": "input", "value": "={{$json.choices[0].message.content}}"} ] } } }, { "name": "条件判断", "type": "n8n-nodes-base.if", "position": [1250, 300], "parameters": { "conditions": { "boolean": [ {"value1": "={{$json.results[0].flagged}}", "value2": false} ] } } }, { "name": "发布内容", "type": "n8n-nodes-base.httpRequest", "position": [1450, 200], "parameters": { "url": "https://api.your-platform.com/publish", "method": "POST", "sendBody": true, "bodyParameters": { "parameters": [ {"name": "title", "value": "AI 趋势洞察"}, {"name": "content", "value": "={{$json.content}}"}, {"name": "image", "value": "={{$json.image_url}}"} ] } } }, { "name": "发送通知", "type": "n8n-nodes-base.slack", "position": [1650, 200], "parameters": { "channel": "#content-updates", "text": "内容发布成功!" } }, { "name": "记录错误", "type": "n8n-nodes-base.httpRequest", "position": [1450, 400], "parameters": { "url": "https://api.logging-service.com/error", "method": "POST", "sendBody": true, "bodyParameters": { "parameters": [ {"name": "error", "value": "内容审核不通过"}, {"name": "timestamp", "value": "={{$now}}"} ] } } } ], "connections": { "定时触发": {"main": [[{"node": "生成主题", "type": "main", "index": 0}]]}, "生成主题": {"main": [[{"node": "内容生成", "type": "main", "index": 0}]]}, "内容生成": {"main": [[{"node": "图片生成", "type": "main", "index": 0}]]}, "图片生成": {"main": [[{"node": "内容审核", "type": "main", "index": 0}]]}, "内容审核": {"main": [[{"node": "条件判断", "type": "main", "index": 0}]]}, "条件判断": { "main": [ [{"node": "发布内容", "type": "main", "index": 0}], [{"node": "记录错误", "type": "main", "index": 0}] ] }, "发布内容": {"main": [[{"node": "发送通知", "type": "main", "index": 0}]]} } }4.5 平台部署指南
Dify 私有化部署
# 克隆仓库 git clone https://github.com/langgenius/dify.git cd dify/docker # 复制环境变量 cp .env.example .env # 启动服务 docker compose up -d # 查看状态 docker compose ps # 访问 http://localhostn8n 私有化部署
方式一:Docker 快速部署
docker run -it --rm \ --name n8n \ -p 5678:5678 \ -v ~/.n8n:/home/node/.n8n \ -e N8N_BASIC_AUTH_ACTIVE=true \ -e N8N_BASIC_AUTH_USER=admin \ -e N8N_BASIC_AUTH_PASSWORD=your_password \ n8nio/n8n方式二:Docker Compose 部署
# docker-compose.yml version: "3.8" services: n8n: image: n8nio/n8n ports: - "5678:5678" volumes: - ./n8n-data:/home/node/.n8n environment: - N8N_BASIC_AUTH_ACTIVE=true - N8N_BASIC_AUTH_USER=admin - N8N_BASIC_AUTH_PASSWORD=secure_password - N8N_HOST=0.0.0.0 - N8N_PORT=5678 - WEBHOOK_URL=https://your-domain.com/ restart: unless-stopped postgres: image: postgres:15 environment: - POSTGRES_USER=n8n - POSTGRES_PASSWORD=n8n_password - POSTGRES_DB=n8n volumes: - ./postgres-data:/var/lib/postgresql/data restart: unless-stoppedFlowise 部署
# 方式一:NPM 安装 npm install -g flowise npx flowise start # 方式二:Docker 部署 docker run -d \ --name flowise \ -p 3000:3000 \ -v ~/.flowise:/root/.flowise \ flowiseai/flowise4.6 工作流最佳实践
1. 模块化设计
2. 错误处理策略
error_handling: retry_policy: max_retries: 3 retry_delay: 5s exponential_backoff: true fallback: - condition: "api_timeout" action: "use_cached_result" - condition: "rate_limit" action: "queue_for_later" - condition: "unknown_error" action: "notify_admin"3. 性能优化
optimization: parallel_execution: true # 并行执行独立节点 caching: enabled: true ttl: 3600 # 1小时缓存 resource_limits: max_execution_time: 300 # 5分钟超时 max_memory: 512MB4.7 GitHub 项目推荐
下一篇: Coze 零代码平台