/ ⚔ 四海兵器榜 / 275浏览

N8N 自动化可编排流程,解放你的双手

在漫长的折腾生涯中,玩过太多东西,但是大浪淘沙,最终剩下来常用的只有那么几款。 在这个系列中,准备介绍一些非常有意思的开源产品。

n8n 是一个开源免费的自动化工作流平台,它提供了 200 多个不同的节点来自动化工作流程,通过编排,可以实现跨不同服务的自动化流程。

相比市面上已有的 Zapier 等其他商业化自动化工具,n8n 稍显稚嫩。但是免费开源以及强大的拓展性和自定义能力使得 n8n 在这个领域也是独树一帜。

部署

n8n 分为两个版本:

  • 云服务版本: 官方提供的云服务版本,到官网上注册账号使用,需要付费

  • 自托管版本: n8n 项目本身有开源版本,可以自己编译源码部署,也可以通过官方提供的 Docker 镜像,使用 Docker 部署

推荐使用 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

在默认情况下,n8n 会使用 SQLite 数据库进行数据存储,我们可以通过配置环境变量,把存储切换到 PostgresDB

docker volume create n8n_data

docker run -it --rm \
 --name n8n \
 -p 5678:5678 \
 -e DB_TYPE=postgresdb \
 -e DB_POSTGRESDB_DATABASE=<POSTGRES_DATABASE> \
 -e DB_POSTGRESDB_HOST=<POSTGRES_HOST> \
 -e DB_POSTGRESDB_PORT=<POSTGRES_PORT> \
 -e DB_POSTGRESDB_USER=<POSTGRES_USER> \
 -e DB_POSTGRESDB_SCHEMA=<POSTGRES_SCHEMA> \
 -e DB_POSTGRESDB_PASSWORD=<POSTGRES_PASSWORD> \
 -v n8n_data:/home/node/.n8n \
 docker.n8n.io/n8nio/n8n

部署完成之后,打开 http://<IP>:5678

注册之后,就会正式进入 n8n 系统中

图例可以看到,n8n 的主界面分为两部分, Workflows 和 Credentials。Workflows 主要负责流程的编排 + 运行控制。Credentials 主要负责流程运行中与其他第三方应用的连接与授权。

功能节点介绍

n8n 中的功能节点共分为 6 类,分别是:

  1. Action in an app

连接海量的第三方应用,包括常用的 Notion、AWS 相关产品、Google 相关产品以及长用的数据库类产品(MySQL、Redis、Elasticsearch 等) 和社交类产品(Facebook、Twitter)等等共 1013 个

详情可以参考: https://n8n.io/integrations/

  1. Data transformation

关于数据转换相关的节点,包括时间操作、数据修改、数据过滤、循环遍历、数据统计、数据排序、自定义代码处理等。

  1. Flow

关于流程相关的节点,包括流程分支判断、流程过滤、流程合并、流程等待以及错误流程处理等相关。

  1. Core

核心节点,包括代码执行(JavaScript、Python)、HTTP 请求、Webhook、指令执行、等等。

  1. Advanced AI

关于 AI 大模型相关节点,包括 OpenAI 相关调用、其他 LLM 相关调用以及 AI 相关的记忆功能节点、联网功能节点等。

  1. Trigger

触发器相关,n8n 支持手动触发、定时触发 webhook 触发、聊天消息触发等多种触发方式。

绘制第一个自动化流程

接下来通过制作一个基于 OpenAI 的聊天机器人来熟悉一下自动化流程的制作。整体流程如图。

接下来从头一步一步来讲一下

首先,在 Workflow 中新建一张画布,点击画布中的加号,添加第一个节点。在弹出的抽屉中,可以通过搜索功能,直接定位到 Chat Trigger。

可以对 Chat Trigger 进行一些初始化设置。例如: 添加 Options 控制跨域、文件上传等。也可以开启公共服务选项,设置一些授权、聊天模式等。具体的不赘述。

接下来点击 Chat 节点后的加号,添加 AI Agent 节点用于连接大模型,处理聊天相关内容。

AI Agent 可以设置类型(工具类、聊天类、函数调用类、SQL 执行类等等,还是非常丰富的)、设置自定义 Prompt、可以通过其他的 OutputParser 节点对输出内容进行格式化等,可玩性非常高。

在 AI Agent 节点上,可以看到,需要连接 ChatModel(必要)、Memory(非必要)、Tool(非必要)、OutputParser(非必要)等节点。点击 ChatModel 的加号,添加对应的大模型接口。

可以看到目前工人支持 7 类接口。这里可以根据自己的情况选择对应的节点。 理论上配置完 chat model 节点之后,就已经完成了一个基础的基于大模型的聊天工具。点击下方的 caht 按钮,便可以开始聊天了。

拓展:

如果你不满足于仅仅制作一个类似 chatgpt 的聊天工具,那么推荐一些其他辅助工具帮助你打造一个更加个性化的聊天助手:

  • Memory

通过 memory 接口可以使聊天具备历史记忆功能,每次聊天的时候可以让大模型知道前因后果。 memory 接口有:(Window Buffer Memory、Motorthead、Postgres Chat Memory、Redis Chat Memory、Xata、Zep 等选择)

  • HTTP Request Tool 可以让你的大模型具备给指定接口发送请求的能力

  • Calculator 可以让你的大模型具备算数计算的能力

  • SerpApi 可以让你的大模型具备 Google 搜索的能力

  • Vector Store Tool 可以让你的大模型具备知识库检索的能力

  • Call n8n Workflow 可以让你的大模型能够调用其他的 n8n 流程

流程模板推荐

此外,官方还提供了一个模板库,允许你使用一些官方分享或者其他人分享的优秀流程

参考地址: https://n8n.io/workflows/

例如:

  • 以下流程可以检查工作流中内置节点的版本号是不是最新版

  • 从 Zigbee2mqtt 请求和接收 Zigbee 备份并通过 SFTP 保存

  • 网页爬虫,并通过电子邮件把结果以 CSV 格式发送并保存到 Google 表格和 Microsoft Excel

n8n 最大的优势是自由,通过自由开放的方式,集成了众多能力。你只要有需求,基本上都能在 n8n 中找到解决方案,以上远远不是 n8n 的极限,只是我们想象力的极限而已。

Obsidian + Hugo 最佳配置推荐
Hugo 博客写作最佳实践
把 Obsidian 变为 Hugo 博客的集成管理平台
把 Obsidian 变为 Hugo 博客的集成管理平台