当前位置: 首页 > news >正文

n8n、Workflow实战

概述

一款开源的低代码工作流自动化平台,旨在帮助用户将各种应用和服务连接起来,实现自动化任务处理。直观的可视化界面使用户无需编写大量代码即可创建复杂的自动化流程,适用于技术和非技术用户。

设计理念是为了让复杂的工作流变得简单易用,同时也支持高度的自定义,可以轻松地将AI技术融入到自动化工作流程中。

特点:

  • 开源与自托管:n8n采用Apache 2.0协议,允许用户自托管,确保对数据和部署的完全控制;
  • 广泛集成能力:内置超过400个节点,支持与各种应用和服务的集成,包括CRM、社交媒体、数据库等;
  • 自定义代码支持:允许编写JS或Python代码自定义节点,增强灵活性;
  • 数据处理与转换:高效处理不同系统间的数据交换
  • 可视化工作流设计:提供拖放式界面,用户可直观地设计和管理多步骤的自动化流程;
  • AI功能:n8n结合AI能力,允许用户构建智能代理和高级自动化流程;
  • 社区驱动:开源社区活跃,持续改进。

应用场景:

  • 数据同步:在不同平台之间自动同步数据,确保信息一致性,异常数据自动告警;
  • 通知系统:根据特定事件触发通知,提高响应速度;
  • 报告生成:定期自动生成并发送报告,节省时间和精力;
  • 营销自动化:电商订单自动同步至CRM,并触发个性化邮件;
  • 开发运维:GitHub合并请求自动触发Jenkins构建+通知;
  • AI增强:接入DeepSeek/Claude分析用户评论,生成日报;
  • 更多

对比

对比项ZapierMaken8n
易用性最高,极易上手中等,可视化强大,学习曲线平缓较低,偏技术用户,灵活性高
功能性多连接,应用集成多全面强大,数据处理强,高级功能丰富灵活可扩展,技术深度,本地集成强
灵活性有限,简单流程较强,可构建复杂流程极高,无限定制可能,技术驱动
扩展性云端,平台自动扩展云端,平台自动扩展云端/自托管,自托管高度自定义
价格按任务付费,付费版较高按操作付费,付费版灵活开源/按工作流付费,自托管免费
目标用户非技术用户,小型企业中小型企业,技术业务人员技术用户,开发者,大型企业
开源闭源闭源开源
社区支持官方+社区,商业支持完善官方+社区,技术社区活跃社区为主(开源),企业版提供官方支持
总评最易用,快速上手,连接丰富功能强大,灵活实用,数据处理优秀极致灵活,高度定制,开源免费(自托管)
适合场景(简要)简单自动化,快速集成,非技术用户复杂业条流理,数据密集型,中小型企业高度定制化,企业级集成,技术驱动型用户

n8n早于Dify等AI时代的工作流平台

特性n8nDifyCoze
工作流自动化强大的自动化能力有限,专注AI应用仅限聊天自动化
AI与LLM集成第三方AI集成内置LLM支持AI聊天机器人
易用性技术用户适中低/无代码初学者友好
扩展性与API支持高,支持自定义节点AI集成为主对话式API集成
部署与托管自托管或云部署仅云部署仅云部署
定价与授权免费开源,自托管可选开源订阅制
最佳用途工作流自动化与API整合AI应用开发对话式AI与聊天机器人
示例场景业务流程自动化、API管理、数据处理、DevOpsAI助手、内容生成、推荐系统、客户支持客服机器人、电商自动化、企业内部沟通
优点开源自托管,灵活定制,广泛集成AI原生,低代码开发,企业级应用聊天机器人易于构建,强大的NLP能力,多平台部署
缺点学习曲线陡峭,无内置AI,需维护基础设施自动化能力有限,无自托管选项,依赖第三方AI模型自动化功能局限于聊天机器人,无自托管选项,需持续优化AI响应

总结

  • 若需求侧重于工作流自动化与数据处理,选用n8n;
  • 若需求侧重于构建AI驱动应用,则选择Dify;
  • 若需求侧重于智能聊天机器人与对话式AI,则选择Coze。

工作流

通过将一个复杂任务分解成多个较小步骤,减少对Prompt Engineering和模型推理能力的依赖,提高LLM应用面向复杂任务的性能。

主要包含以下关键组件:

  • 开始节点:每一个工作流都需要一个开始节点,在开始节点内定义输入变量支持文本、段落、下拉选项、数字、文件。配置完成后,在工作流执行时会要求输入开始节点中定义的变量值;
  • 结束节点:每一个工作流在完整执行后都需要至少一个结束节点,用于输出完整执行的最终结果。结束节点需要声明一个或多个输出变量,声明时可以引用任意上游节点的输出变量;
  • 直接回复:可以在文本编辑器中自由定义回复格式,包括自定义一段固定的文本内容、使用前置步骤中的输出变量作为回复内容、或者将自定义文本与变量组合后回复;
  • LLM大模型:LLM 是Workflow 的核心节点,利用大语言模型的对话/生成/分类/处理等能力,根据给定的提示词处理广泛的任务类型,并能够在工作流的不同环节使用;
  • 知识检索:即记忆模块中介绍的RAG能力,从知识库中检索与用户问题相关的文本内容,可作为下游 LLM 节点的上下文来使用;
  • 问题分类:通过定义分类描述,问题分类器能够根据用户输入推理与之相匹配的分类并输出分类结果。常见的使用情景包括客服对话意图分类、产品评价分类、邮件批量分类等;
  • 条件分支:允许用户根据 if/else 条件将 workflow 拆分成多个分支,极大地提升workflow的灵活性;
  • 代码执行:该节点极大地增强了开发人员的灵活性,使他们能够在工作流程中嵌入自定义的 Python 或 Javascript 脚本,并以预设节点无法达到的方式操作变量。比如结构化数据处理、科学计算、数据拼接;
  • 变量聚合:变量聚合节点是工作流程中的一个关键节点,它负责整合不同分支的输出结果,确保无论哪个分支被执行,其结果都能通过一个统一的变量来引用和访问。比如问题分类节点后、条件分支节点后的多路聚合;
  • 参数提取:利用LLM从自然语言推理并提取结构化参数,用于后置的工具调用或HTTP请求;
  • HTTP请求:允许通过HTTP协议发送服务器请求,适用于获取外部数据、webhook、生成图片、下载文件等情景;
  • 工具:包括谷歌搜索、天气查询等内置工具;通过 OpenAPI/Swagger 标准格式导入或配置的自定义工具;已发布为工具的工作流,也可以被其他工作流当做工具来引用

实战

使用方式

方式费用适用场景功能限制数据隐私
官网试用免费14天快速体验部分高级功能受限数据在n8n云端
本机安装永久免费个人/轻量用户全功能可用数据完全本地存储
服务器部署永久免费企业/团队使用全功能+高性能私有化掌控

部署

本地搭建n8n方式:

  • 源码
  • npx
  • docker run
  • docker-compose

源码

git clone https://github.com/n8n-io/n8n.git
cd n8n
npm install

docker

docker volume create n8n_data
docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n
# 和RAGFlow有端口冲突
docker run -it --rm --name n8n -p 9300:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n
# 如果有问题,使用国内镜像源
docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.m.daocloud.io/n8nio/n8n

遇到的问题:
在这里插入图片描述
用5678端口,和RAGFlow发生冲突:
在这里插入图片描述
镜像已经下载成功,也可以打开Docker Desktop,进入Images标签页,找到n8n,点击Run:
在这里插入图片描述
需要设置,虽然说是可选的;如果没有任何设置,浏览器打开http://localhost:5678打不开:
在这里插入图片描述
因为没有暴露端口出来。

如果确定命令行或Docker Desktop参数没有问题,还是出现上面问题,则等一下(看电脑配置):
在这里插入图片描述
在Docker Desktop上配置参数等同于命令行启动:
在这里插入图片描述
注:如果5678端口被占用,则换一个。

启动成功示意图:
在这里插入图片描述
上面的输出其实有问题,我本地映射的端口是9300,不是5678。

Ollama集成

打开http://localhost:9300,来到注册页面
在这里插入图片描述
第一次使用,可能会要摸索一阵子,好在有人写过很详细的步骤,见文末。

Ollama并不是Docker方式部署,n8n是Docker方式部署,连接11434端口的正确方式:http://host.docker.internal:11434
在这里插入图片描述
选择本地部署的mini模型:
在这里插入图片描述
在这里插入图片描述
完成一个超简单的对话。截图如上,信息量还是非常多的。

界面

上面已经完成一个简单的对话机器人。还是再回过头来看看页面布局,功能菜单啥的。

左上角新增按钮,可新增三类资源:

  • Workflow:工作流;
  • Credential:远端API,或本地模型配置;
  • Project:项目,企业付费模式才能使用。

在这里插入图片描述
在这里插入图片描述
左侧边栏:

  • 模板:跳转到官方模板库,目前有4563个,大致浏览几个,都是免费的,推测应该有付费模板(不管是官方提供还是个人开发者上传);
  • 变量:付费版才能使用,通过JS表达式,如$vars.host
    在这里插入图片描述
  • 洞察:提供类似于Dify监测、LangSmith、Langfuse类指标数据监控。默认查看最近7天,如果想切换其他统计维度(如24小时,最近一个月),需付费升级到企业版。提供指标包括:
    • Prod.executions:生产运行次数,手动执行不计入统计;
    • Failed prod. executions:失败的生产运行次数
    • Failure rate:失败率
    • Time saved:节省时间
    • Run time (avg.):(平均)运行时间

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
左下角设置:
在这里插入图片描述
在这里插入图片描述
提供功能:

  • 用户:支持邀请,2FA验证企业版可用;
  • API:
  • 外部密钥:企业版可用;
  • 环境:企业版可用;
  • SSO:单点登录,支持SAML、OIDC两种方式,企业版可用;
  • LDAP:支持LDAP集成,这个功能只对企业用户有意义,事实上也确实是企业版才能使用;
  • Log Streaming:企业版可用;
  • Community nodes:待研究。

工作流

n8n-workflows,开源的工作流集合,为开发者精心打造的专业仓库,收录多达2055个即用型自动化工作流,并配备一套高性能的文档与搜索(基于SQLite和FTS5全文搜索技术)系统。

核心目标是解决在自动化实践中发现和实施工作流的普遍难题,通过提供一个全面、可快速搜索的资源库,极大地降低自动化开发的门槛,为个人开发者、团队乃至企业提供丰富的灵感、学习资源和可直接复用的解决方案。

本地部署:

# 下载代码
git clone https://github.com/Zie619/n8n-workflows.git
cd n8n-workflows
# 安装依赖
pip install -r requirements.txt
# 启动WebUI
python run.py

可能遇到的问题:
在这里插入图片描述
解决方法:PYTHONIOENCODING=utf-8 python run.py

浏览器体验地址:http://localhost:8000:
在这里插入图片描述
在n8n里也能看到active的按钮:
在这里插入图片描述

其中Trigger类型有4种:

  • Webhook:Webhook URL触发
  • Scheduled:定时任务
  • Manual:手动触发
  • Complex:复杂

在这里插入图片描述
点击任何一个工作流,此处还是以最简单的Ollama为例:
在这里插入图片描述
工作流以配置化的通用的JSON格式存储,便于分享。页面上支持JSON预览,JSON下载,还有个展示Diagram按钮,复制Diagram文本(实际上就是支持markdown渲染的mermaid流程图)功能,非常人性化。

CSDN也支持渲染:

When chat message received
(@n8n/n8n-nodes-langchain.chatTrigger)
Ollama Chat Model
(@n8n/n8n-nodes-langchain.lmChatOllama)
Sticky Note
(stickyNote)
Sticky Note1
(stickyNote)
Chat LLM Chain
(@n8n/n8n-nodes-langchain.chainLlm)

拿到JSON文件后,回到n8n工作台,不难找到导入入口:
在这里插入图片描述
放大页面,找到Ollama:
在这里插入图片描述
右侧的三个点并没有找到模型配置入口,同时注意到红色警告符号,符合预期,模型尚未配置。

鼠标放置到羊驼上,找到配置入口,并选择gemma3:1b超迷你模型:
在这里插入图片描述
告警图标消失后,左下角发起Query;另外,注意看ollama ps输出,此时并没有启动任何模型。
在这里插入图片描述
等待44秒后(原谅我电脑配置太低)。
在这里插入图片描述
chat有输出,同时成功启动模型;不过使用下载的配置文件,有个解析JSON错误。

因为模型输出是带markdown语法标记的:
在这里插入图片描述
这是一个JSON String,而不是Object。解决方法,在上面报错截图里有提示,不过效果不好。
在这里插入图片描述
切换Mode为JSON:
在这里插入图片描述
支持编辑JS表达式,可实时预览解析效果:
在这里插入图片描述
一个很挫的方法,明明已经解析成功,还是出现红色警告字体:
在这里插入图片描述
还是将Mode切回Manual Mapping,类型选String,JS表达式不变,成功解析到Response
在这里插入图片描述

JS表达式

在这里插入图片描述
如上图,输入$自动提示可选项:

  • $json:等价于$input.item.json
  • $now:返回当前时间
  • $if():条件判断
  • $ifEmpty():条件判断
  • $('Basic LLM Chain')
  • $('When chat message received')
  • $jmespath():类似于JSONPath
  • $fromAI():内置函数,传参
  • $max():取最大值,需传参;
  • $min():取最小值,需传参;
  • $execution
  • $itemIndex
  • $input
  • $parameter
  • $prevNode
  • $runIndex
  • $today:返回今天0点时间
  • $vars
  • $workflow
  • $nodeVersion

插件

Tavily,https://tavily.com/

连接方式:STDIO和SSE。

待研究。

MCP

n8n-nodes-mcp:与MCP服务器交互,待研究。

参考

  • 使用Docker安装n8n并配置ollama本地模型
  • n8n开启自动化
http://www.dtcms.com/a/327505.html

相关文章:

  • Redis序列化配置类
  • 【从零开始java学习|第四篇】IntelliJ IDEA 入门指南
  • 采暖管道安装、分类、计量-文字查找快速定位、批量测量一键计算
  • OBOO鸥柏丨智能会议平板教学查询一体机交互式触摸终端招标投标核心标底参数要求
  • 115-基于Flask的医疗保健数据预测分析系统
  • 2025年渗透测试面试题总结-15(题目+回答)
  • 【前端Vue】如何优雅地展示带行号的日志文件或文本内容(log-viewer组件的使用)
  • Java数据结构之ArrayList
  • 《算法导论》第 20 章 - van Emde Boas 树
  • 《前端性能监控深解:从指标捕获到数据洞察的完整脉络》
  • Windows已经安装了一个MySQL8,通过修改配置文件的端口号跑2个或多个Mysql服务方法,并注册为系统服务
  • linux远程部署dify和mac本地部署dify
  • 【3】Transformers快速入门:大语言模型LLM是啥?
  • 电商双 11 美妆数据分析总结
  • 自然语言处理( NLP)基础
  • Elasticsearch Node.js 客户端连接指南(Connecting)
  • 2025年最新原创多目标算法:多目标酶作用优化算法(MOEAO)求解MaF1-MaF15及工程应用---盘式制动器设计,提供完整MATLAB代码
  • 机器学习算法篇(十):TF-IDF算法详解与应用实战
  • 成都影像产业园实训考察:重庆五一职院关注技能就业
  • 人大BABEC地平线高效率具身导航!Aux-Think:探索视觉语言导航中数据高效的推理策略
  • PaddlePaddle 模型训练技巧
  • 深入C#异步编程基石:BeginInvoke与EndInvoke全解析
  • 代码随想录算法训练营四十二天|单调栈part02
  • 【Activiti】要点初探
  • 迈向具身智体人工智能:LLM 和 VLM 驱动的机器人自主性和交互性
  • 11-docker单机版的容器编排工具docker-compose基本使用
  • Qt中定时器介绍和使用
  • 文字转语音 edge_tts
  • Spring IoC实现原理详解
  • [激光原理与应用-251]:理论 - 几何光学 - 长焦与短焦的比较