n8n入门笔记:构建自动化工作流,迎接AI时代
引言
在数字化时代,我们每天都会面对大量的重复性任务,从图书馆预约、简历投递到监控招聘信息等。这些任务不仅耗时,而且容易因重复操作导致错误。n8n(一个开源的自动化工具)的出现,为我们提供了解决这些问题的有效途径。n8n通过可视化的方式,让我们能够设计复杂的工作流,将多个任务节点连接起来,实现自动化处理。无论是数据抓取、转换,还是与AI大模型(LLM)集成,n8n都能让这一切变得简单。
本笔记将带你从零开始了解n8n,包括其核心概念、安装方法、工作流构建步骤,以及如何将AI融入自动化流程。我们还将探讨n8n在未来的发展趋势,以及如何利用它来提升个人和团队的工作效率。
1. n8n概述
1.1 什么是n8n?
n8n是一个基于Node.js的开源工作流自动化工具。它的名字来源于“nodemation”(节点自动化),其核心思想是通过节点(Node)来构建工作流。每个节点代表一个特定的功能,例如触发事件、执行HTTP请求、处理数据等。用户可以通过拖拽这些节点并连接它们来创建自动化流程。
1.2 为什么选择n8n?
- 开源和可自托管:n8n提供开源版本,可以自行部署到私有服务器,保证数据安全。
- 强大的集成能力:n8n支持数百种内置节点,涵盖常见应用和服务(如HTTP、Email、Slack、GitHub等),同时允许自定义节点。
- 灵活性:支持复杂逻辑,如条件分支、循环、错误处理等,可以构建非常复杂的工作流。
- 低代码/零代码:通过可视化界面,非开发人员也能轻松构建自动化流程,同时开发人员可以通过编写JavaScript代码来扩展功能。
1.3 n8n与传统编程的对比
传统上,我们通过编写脚本(如Python、JavaScript)来实现自动化。虽然灵活,但开发、测试和维护成本较高。n8n将自动化过程可视化,降低了技术门槛,让业务人员也能参与构建自动化流程。同时,它并不排斥代码,在需要的时候仍然可以插入自定义代码,兼顾了易用性和灵活性。
2. 安装n8n
n8n的安装非常简单,主要有以下几种方式:
2.1 使用npm安装
如果你已经安装了Node.js(版本>=20),可以使用npm全局安装n8n:
bash
npm install n8n -g
安装完成后,运行以下命令启动n8n:
bash
n8n start
然后在浏览器中打开 http://localhost:5678 即可访问n8n的Web界面。
2.2 使用Docker安装
如果你更倾向于使用Docker,可以运行以下命令:
bash
docker run -it --rm --name n8n -p 5678:5678 -v ~/.n8n:/home/node/.n8n n8nio/n8n
同样,通过 http://localhost:5678 访问。
2.3 其他安装方式
n8n还支持通过Docker Compose、Kubernetes等方式部署,具体可参考官方文档。
3. 核心概念
在开始构建工作流之前,我们需要了解几个核心概念:
- 工作流(Workflow) :由多个节点组成的自动化流程。
- 节点(Node) :工作流中的基本单元,每个节点执行一个特定任务。节点有输入和输出,节点之间通过连接线传递数据。
- 触发器(Trigger) :工作流的起点,例如定时触发器、Webhook触发器。
- 操作(Action) :在触发之后执行的具体操作,如HTTP请求、数据转换等。
4. 构建第一个工作流:招聘信息监控与推送
我们将构建一个自动化工作流,实现以下功能:定时从Boss直聘获取招聘信息,清洗数据,过滤出符合条件的岗位,并通过短信发送到手机。
4.1 添加触发器节点
首先,我们需要一个触发器来启动工作流。这里我们使用Cron节点来定时触发。
- 在n8n编辑器中,点击“添加节点”按钮。
- 搜索“Cron”并选择它。
- 配置Cron表达式,例如每天上午8点执行:
0 8 * * *。
4.2 添加HTTP节点获取数据
接下来,我们添加一个HTTP节点来请求Boss直聘的API或网页。
- 添加HTTP节点,并将其连接到Cron节点。
- 在HTTP节点中配置URL(例如Boss直聘的API端点)和请求方法(GET)。
- 如果需要,可以设置查询参数、头部等。
注意:由于Boss直聘可能有反爬机制,实际应用中可能需要使用模拟浏览器或使用官方API(如果有的话)。这里我们假设有一个可用的API。
4.3 数据对齐与清洗
从API获取的数据可能不符合我们的需求,比如字段名不统一、缺少字段等。我们使用“Edit Fields”节点来调整数据。
- 添加“Edit Fields”节点(在n8n中可能是“Set”节点或“Edit Fields”节点)。
- 映射字段,例如将
jobTitle映射为title,company映射为companyName,salary映射为salary等。
然后,我们进行数据清理,例如去除salary为空的岗位。
- 添加“Filter”节点。
- 设置条件:只保留
salary不为空的岗位。
4.4 集成LLM进行智能处理
现在,我们引入AI大模型(如OpenAI GPT)来对岗位进行智能分析。例如,让AI判断岗位是否与前端、后端或AI相关,并提取关键要求。
- 添加“OpenAI”节点(需要先安装n8n的OpenAI节点,或者使用HTTP节点调用OpenAI API)。
- 配置API密钥和模型参数。
- 设计Prompt,让AI对每个岗位进行判断和摘要。
例如,Prompt可以是:
text
请分析以下招聘岗位,判断其是否与前端、后端或AI相关,并提取关键要求。岗位信息:{{ $json.title }},{{ $json.description }}。
4.5 推送结果
最后,我们将处理后的岗位信息通过短信发送到手机。
- 添加“Twilio SMS”节点(需要Twilio账户)。
- 配置Twilio的账户SID、认证令牌、发送号码和接收号码。
- 将AI处理后的信息作为短信内容。
4.6 测试与激活
完成以上步骤后,点击“执行工作流”进行测试。如果一切正常,就可以激活工作流,使其按计划运行。
5. 更多应用场景
n8n的应用场景非常广泛,以下是一些例子:
- 图书馆预约:定时检查图书馆座位资源,并在有空位时自动预约。
- 简历投递:监控Top 100公司的招聘信息,自动投递匹配的简历。
- 数据备份:定期将数据从一台服务器备份到另一台服务器。
- 社交媒体管理:自动发布内容到多个社交平台。
6. 未来工作:AI与自动化
随着AI技术的发展,我们可以将大模型(LLM)嵌入到n8n工作流中,使自动化流程更加智能。
- AI作为伙伴:AI可以理解自然语言指令,自主完成复杂任务。
- 工作流即AI Agent:每个工作流都可以看作一个AI Agent,它能够根据环境输入自动执行一系列动作。
- 人类角色的转变:从执行重复任务转变为设计、监督和优化工作流。
7. 如何成为AI时代的工程师?
- 掌握LLM:了解LLM的原理、应用场景和局限性。
- 识别自动化机会:将重复性、规则性的工作交给AI工作流。
- 熟练使用n8n等工具:学会构建、调试和优化工作流。
- 编码与可视化结合:在需要时使用JavaScript或Python编写自定义节点,扩展n8n功能。
8. 总结
n8n是一个强大的自动化工具,它通过可视化方式降低了自动化门槛,让非开发人员也能构建复杂的工作流。结合AI技术,n8n可以成为我们工作中的智能助手,处理重复任务,提高效率。