n8n 概述
n8n 是一个近期在网络上非常热门的开源自动化工具,读作“nodemation”。其名称来源于“nodemation”这个词,首字母“n”代表“node”,末尾部分“mation”代表“automation”,中间有八个字母,因此简称为“n8n”。这种命名方式类似于“i18n”(国际化,Internationalization 的缩写,首字母“i”和末尾“n”之间有18个字母)。
什么是 n8n?
n8n 的全称“nodemation”由两个核心概念组成:
- Node(节点):指的是基于节点的界面,用户通过连接各个节点来构建工作流程。每个节点代表一个特定动作或触发器,而 n8n 本身基于 Node.js 开发,赋予了“node”更深的技术含义。
- Mation(自动化):强调工具的核心目标——自动化重复性任务,简化工作流程。
n8n 是一个低代码平台,用户无需编写大量代码即可创建复杂的工作流程,但也支持通过自定义代码实现高级功能。它可以与众多应用和服务集成,例如 Google、OpenAI 的 ChatGPT 和 LINE,允许用户通过一键操作实现跨平台自动化。主要优势包括:
- 高度自定义:根据需求定制工作流程。
- 易用性:通过 npm 或 Docker 等工具轻松设置。
- 数据隐私:支持本地部署,确保数据安全和隐私。
n8n 定价
n8n 提供云端和本地部署两种方式。云端版本在14天试用期后需付费,试用期内可执行10,000次工作流程步骤,并创建最多15个工作流程。若试用期满28天未升级,工作区内所有项目将被自动删除,因此需提前备份。作为开源工具,n8n 支持免费本地部署,适合预算有限的用户。
与其他自动化平台比较
n8n 常与 Zapier 和 Make 比较,以下是对三者的分析:
- 易用性:n8n 学习曲线较陡,需要一定编程基础,而 Zapier 和 Make 对新手更友好。
- 技术要求:n8n 适合有编程经验的用户,灵活性更高;Zapier 和 Make 适合无编程基础的用户。
- 灵活性:n8n 的高技术门槛带来更大的灵活性,而 Zapier 和 Make 的灵活性相对较低。
- 价格:Zapier 和 Make 试用期后需付费,n8n 支持免费开源部署。
- 集成:Zapier 支持超6000个应用,Make 约1500个,n8n 约1000个(社区贡献不断增加)。
- 复杂性:n8n 支持复杂逻辑和分支,适合高级工作流程;Zapier 和 Make 更适合简单任务。
n8n 界面
n8n 的界面直观,包含以下主要部分:
- 工作流程(Workflows)标签:展示所有创建的工作流程,通过节点连接定义流程。
- 凭证(Credentials)标签:存储 API 密钥等凭证信息。
- 执行记录(Executions)标签:记录已执行的工作流程历史。
- 节点工具栏:用于添加节点或触发器,如 AI 模块、Google 服务或 LINE 集成。
- 测试与执行:支持在部署前测试工作流程。
n8n 节点类型
n8n 的工作流程通过以下节点类型构建:
- 触发器与动作(Triggers and Actions):
- 手动触发器:通过点击手动启动工作流程。
- 定时触发器:按设定时间运行(如每日8点推送股票更新)。
- 聊天消息触发器:根据用户在聊天界面的输入触发流程。
- 核心节点(Core Nodes):处理 API 调用(如 LINE 或 Google API)或 HTTP 请求(如获取股价数据)。
- 集群节点(Cluster Nodes):聚合多个节点,如 AI Agent 节点,包含模型、工具和解析器等子节点。
- 凭证(Credentials):安全存储 API 密钥。
- 社区节点(Community Nodes):开发者共享的自定义节点,扩展功能。
课程结构:构建 AI 财经助理 LINE 机器人
本课程为期四周,目标是引导学员创建一款 AI 驱动的 LINE 财经助理机器人,能够回答股票相关问题、提供财经知识,甚至给出买卖建议。
第一周:简介与环境搭建
- 目标:了解 n8n 并搭建本地环境。
- 内容:
- 介绍 n8n 及其基于节点的自动化机制。
- 介绍 Docker,一个用于本地部署 n8n 的容器化工具。
- 任务:
- 安装 Docker 并使用以下命令搭建本地 n8n 服务器:
docker volume create n8n_data docker run -p 5678:5678 -v n8n_data:/home/node/.n8n n8n
- 或者使用
docker-compose.yml
文件简化管理:services: n8n: image: n8nio/n8n:latest ports: - "127.0.0.1:5678:5678" volumes: - n8n_storage:/home/node/.n8n volumes: n8n_storage:
- 通过
http://localhost:5678
访问 n8n 界面。
- 安装 Docker 并使用以下命令搭建本地 n8n 服务器:
第二周:整合 LINE
- 目标:使用 n8n 构建 LINE 机器人。
- 核心概念:
- LINE Messaging API:
- 推送 API(Push API):机器人主动发送消息(需付费)。
- 回复 API(Reply API):机器人响应用户消息(免费)。
- Ngrok:为本地 n8n 服务器生成临时公开 URL,支持 webhook 功能。
- LINE Messaging API:
- 任务:
- 在 LINE Developers 创建 LINE 官方账号并配置 Messaging API。
- 使用 Ngrok 生成公开 URL:
ngrok http 5678
- 更新 n8n 的
docker-compose.yml
,加入 Ngrok URL:services: n8n: image: n8nio/n8n:latest ports: - "127.0.0.1:5678:5678" environment: - WEBHOOK_URL={ngrok_url} volumes: - n8n_storage:/home/node/.n8n volumes: n8n_storage:
- 在 LINE Developers 配置 webhook,使用 n8n 的 Production URL。
第三周:股票 API 集成
- 目标:将 n8n 连接到股票 API,实现自动化更新。
- 任务:
- 使用 n8n 的 HTTP Request 节点获取股票数据。
- 设置定时触发器,通过 LINE 推送股票更新(如每日8点)。
- 测试并优化工作流程。
第四周:构建 AI 财经助理
- 目标:使用大型语言模型(LLM)和检索增强生成(RAG)技术创建 AI 驱动的 LINE 机器人。
- 核心概念:
- 大型语言模型(LLM):如 ChatGPT,用于生成智能回复。
- 检索增强生成(RAG,Retrieval-Augmented Generation):
- 检索(Retrieval):获取相关财经文档或数据。
- 增强(Augmented):将检索到的数据与用户问题结合,提升上下文。
- 生成(Generation):使用 LLM 生成准确的、上下文相关的回复。
- RAG 工作流程:
- 分块(Chunking):将文档切分为小块。
- 向量化(Vectorization):通过嵌入模型将分块转换为向量。
- 存储:将向量存储在向量数据库中。
- 查询:比较用户问题与向量的相似度,增强问题后传递给 LLM。
- RAG 的优势:
- 通过检索获取最新信息。
- 基于可靠数据减少幻觉(错误信息)。
- 可追溯答案来源。
- 任务:
- 使用 n8n 的 AI Agent 节点集成 LLM(如 OpenAI 的 GPT)。
- 实现 RAG,连接向量数据库并检索财经数据。
- 测试机器人回答股票问题和提供建议的能力。
了解 Docker
Docker 是一个开源容器化平台,简化了应用的开发、部署和运行。它通过容器将应用及其依赖项打包,确保在不同环境(如 macOS、Windows、Linux)中的一致性。
Docker 核心概念
- 镜像(Image):包含应用及其依赖的模板(如 n8n 的镜像
n8nio/n8n
)。 - 容器(Container):镜像的运行实例,彼此隔离。
- 卷(Volume):用于持久化数据存储,避免容器停止时数据丢失。
- Dockerfile:自动化构建镜像的脚本。
Docker 架构
- Docker 客户端(Docker Client):向 Docker Daemon 发送命令(如
docker run
、docker pull
)。 - Docker Daemon:管理 Docker Host 上的容器和镜像。
- Docker Registry:存储镜像的平台(如 Docker Hub,用于拉取 n8n 镜像)。
Docker 的优势
- 可移植性:在不同系统上运行一致的应用。
- 高效性:容器比虚拟机轻量,资源占用少。
- 速度:容器启动速度快,远超虚拟机。
LINE Messaging API
LINE Messaging API 实现机器人通信:
- 推送 API:主动发送消息(需付费)。
- 回复 API:响应用户消息(免费,轻量用户每月限200条消息)。
- Webhook:允许 LINE 主动通知机器人新消息,提高效率。
LINE 账号设置
- LINE 官方账号后台(Official Account Manager):管理非编程任务,如优惠券或问卷。
- LINE Developers:处理 API 集成,如 Messaging API 或 LINE Login。
- 提供者(Provider)与频道(Channel):
- 提供者:个人或组织,管理服务并获取用户数据。
- 频道:提供者下的具体服务(如 Messaging API)。同一提供者下用户的 UID 一致,不同提供者则不同。
使用 Ngrok 进行本地测试
本地 n8n 服务器(localhost:5678
)无法被外部访问,Ngrok 可生成临时公开 URL,支持 webhook 测试:
- 在 Ngrok 官网注册并下载执行文件。
- 运行
ngrok http 5678
生成公开 URL。 - 在 LINE Developers 配置 n8n 的 webhook URL。
结论
本课程通过 n8n 的自动化功能、Docker 的容器化技术和 LINE 的 Messaging API,帮助学员构建一款智能的 AI 财经助理 LINE 机器人。通过集成股票 API 和 RAG 技术,机器人能够提供准确的财经信息,展现现代自动化工具的强大能力。