n8n 入门与实战:用低代码方式构建 AI 自动化工作流

本文详细介绍了开源自动化工具 n8n 的使用方法,通过两个具体的实战案例——自动化处理邮件发票和构建 RAG 文档问答机器人,带你一步步掌握如何利用 n8n 搭建强大的 AI 自动化工作流,无需编写复杂代码。

阅读时长: 7 分钟
共 3385字
作者: eimoon.com

在日常工作和开发中,我们经常需要处理一些琐碎但重复的任务,比如从邮件里提取信息、在不同应用间同步数据。这些任务通常需要编写一堆“胶水代码”来连接各个 API。而 n8n 就是解决这类问题的一个利器,它是一个开源的自动化工具,能让你用可视化的方式把不同的应用和服务串联起来,构建自己的工作流。

这篇文章,我会带你走一遍 n8n 的核心概念,并上手两个挺有代表性的例子:

  1. 自动处理邮件发票:我们会搭一个 AI Agent,它能自动读取 Gmail 里的邮件,提取关键信息,然后存到 Google Sheet 里。
  2. 构建 RAG 问答机器人:我们会创建一个更智能的 Agent,它可以基于你提供的文档来回答问题。

什么是 n8n?

简单来说,n8n 是一个可视化的工作流自动化工具,你可以把它想象成一条数字化的流水线。在这条流水线上,每个“节点”(Node)代表一个操作步骤,比如读取邮件、调用 API、写入数据库等。你只需要通过拖拽的方式把这些节点连接起来,就能定义一个完整的数据处理流程。

下面这个图就是我们稍后要构建的第一个工作流,一眼看过去就很清晰:

n8n 工作流示例

这个流程做了三件事:

  1. 从 Gmail 邮箱接收新邮件。
  2. 把邮件内容扔给 ChatGPT 进行分析和提取。
  3. 最后把提取出的结构化信息保存到电子表格里。

和 Zapier 或 Make 这类商业工具相比,n8n 最大的优势是开源。这意味着你可以免费在本地运行,甚至自己部署到服务器上,拥有完全的数据控制权和极高的灵活性。

本地环境跑起来

n8n 提供了云服务(有免费试用),但自己本地跑起来更方便,而且完全免费。

只要你电脑上装了 Node.js,直接在终端里敲一行命令就行:

npx n8n

命令跑完后,终端会显示一个本地访问地址,通常是 http://localhost:5678。在浏览器里打开它,就能看到 n8n 的界面了。

在本地运行n8n

理解 n8n 的核心组件

在开始动手前,我们得先搞明白 n8n 的几个基本概念:

  • 工作流 (Workflow):就是你设计的整个自动化流程,由一系列节点组成。
  • 节点 (Node):工作流中的每一个独立操作单元。比如一个“读取文件”的节点,一个“发送 HTTP 请求”的节点。
  • 触发器 (Trigger Node):一种特殊的节点,它是整个工作流的起点,定义了工作流何时被触发。比如“每分钟执行一次”、“当收到新邮件时”或者“当收到一个 Webhook 请求时”。

数据在节点之间流动,前一个节点的输出可以作为后一个节点的输入,这样就形成了一条完整的数据处理链路。

实战一:自动化处理邮件发票

这个例子非常实用。假设我把房子分租给几个人,每个月收到水电网等账单后,需要把总金额记录到一个共享的表格里,方便大家分摊。这个过程手动做很繁琐,我们用 n8n 把它自动化。

我的做法是,专门设置一个邮箱来接收这些账单邮件。这样,我就知道这个邮箱里的每一封邮件都对应一张发票。

配置邮件触发器

首先,新建一个工作流,点击“Add first step…”。因为是第一个节点,所以必须是触发器。我们搜索 “Gmail” 并选择它。

选择Gmail触发器

选择唯一的触发事件 “On message received”(收到消息时)。

接下来需要授权 n8n 访问你的 Gmail 账户。点击 “New credential”,n8n 会提供非常详细的引导,教你如何在 Google Cloud Console 里创建 OAuth 凭证,并启用 Gmail API。按照指引操作,拿到 Client ID 和 Client Secret 填回去就行。

配置好后,可以点一下 “Fetch Test Event” 来测试。它会抓取你收件箱里最新的一封邮件作为样本数据。你会看到邮件的内容主要在 snippet 字段里。

为了方便后续调试,我建议你把这次的测试结果固定 (Pin) 住。点击右上角的图钉按钮,这样即使后面收到了新邮件,工作流也一直会用这份样本数据来测试,避免了不确定性。等整个 wokflow 都调试通了,再取消固定。

配置 ChatGPT 节点

现在,我们有了邮件内容,下一步是让 AI 来提取信息。点击 Gmail 节点右侧的“+”号,搜索 “OpenAI” 并添加一个 “Message a model” 节点。

同样,你需要配置 OpenAI 的凭证,也就是填入你的 API Key。

在节点配置里,模型我们选择 GPT-4.1 (或者其他你偏好的模型)。关键是 Message 字段,这里我们需要写一个 Prompt。

配置Prompt

Prompt 的核心是告诉模型我们需要作的到底是什么。这里我用 {{ $json.snippet }} 把上一个节点(Gmail)输出的邮件内容动态地插了进来。n8n 中,你可以通过这种表达式来引用前面节点的数据。

为了让输出更稳定,我们可以要求模型返回 JSON 格式。在配置里把输出格式从 “String” 改成 “JSON”,这样模型就会直接返回结构化的数据,而不是一段纯文本。

配置输出为JSON

再次测试,你会看到输出已经变成了我们想要的 invoice_idprice 字段。

数据发送到 Google Sheet

最后一步,把提取到的数据写入 Google Sheet。在 OpenAI 节点后添加一个 “Google Sheets” 节点,选择 “Append row in sheet” 操作。

你需要先手动创建一个有 “Invoice ID” 和 “Total” 两列的表格。在节点配置里,选择这个表格,然后把 OpenAI 节点输出的 invoice_idprice 字段分别拖拽到对应的列上。

配置Google Sheets节点

运行工作流

好了,整个流程搭建完毕!点击底部的 “Test workflow” 跑一次,然后去你的 Google Sheet 里看看,是不是多了一行新数据?

最后别忘了,默认情况下触发器可能每分钟都会检查一次邮件,对这个场景来说太频繁了。双击 Gmail 触发器节点,在 “Poll Times” 里可以把它调整成更合理的频率,比如每天一次。

实战二:构建一个 RAG 文档问答机器人

第二个例子更有趣,也更复杂。我们要构建一个 RAG (Retrieval-Augmented Generation) 机器人。RAG 的核心思想是,当需要回答一个问题时,先从一个知识库(比如一堆文档)里检索出最相关的信息,然后把这些信息连同问题一起交给大语言模型,让它基于这些上下文来生成答案。

这个技术非常适合用来打造针对特定领域知识的问答机器人。比如,我喜欢玩桌游,但经常和朋友为规则争论不休。如果我能把游戏规则手册做成一个 RAG 机器人,下次有疑问直接问它就行了。

这个项目需要两个工作流:

  1. 数据加载流:一个一次性的流程,负责读取文档、处理并存入 Pinecone 向量数据库。
  2. RAG 问答流:一个交互式的流程,负责接收用户问题,从 Pinecone 检索信息,并生成回答。

第一步:数据准备与索引

Pinecone 是一个专门用于存储向量的数据库,非常适合 RAG 场景。

这个数据加载流我们只需要手动执行一次,所以触发器选择 “Manual” 即可。

  1. 读取文档:添加一个 “Google Drive” 节点,配置它去下载你的规则文档(比如一个 .txt 文件)。
  2. 存入 Pinecone:添加一个 “Pinecone Vector Store” 节点,操作选择 “Add documents to vector store”。
    • 你需要去 Pinecone 官网注册并创建一个索引 (Index),拿到 API Key。在创建索引时,注意维度要和你的嵌入模型匹配。
    • Embedding Model:在 Pinecone 节点下,需要配置一个嵌入模型。我们添加一个 “OpenAI Embedding” 节点,模型选择 text-embedding-3-small
    • Data Loader & Text Splitter:数据加载器(Data Loader)我们用默认的就行。但很关键的一步是配置文本分割器(Text Splitter)。因为文档可能很长,我们需要把它切成小块(chunks)再进行向量化。这里我们用 “Recursive Character Text Splitter” 节点,设置合适的 chunk sizechunk overlap

最终,这个数据加载工作流看起来是这样的:

数据加载工作流

运行这个工作流,你的文档数据就被处理并存入 Pinecone 了。

第二步:创建 RAG 智能体

现在来搭建真正的问答机器人。

RAG Agent工作流

  1. 触发器:使用 “On chat message” 触发器,这样我们就能启动一个聊天会话。
  2. AI Agent 节点:这是核心。添加一个 “AI Agent” 节点。
  3. 配置 Agent:这个节点下面可以挂载三个东西:
    • AI Model:选择一个 “OpenAI Chat Model”,比如 gpt-4.1
    • Memory:配置一个 “Simple Memory” 节点,这样 Agent 就能记住之前的对话上下文。
    • Tools:这里是关键。添加一个 “Pinecone Vector Store” 节点作为工具。在描述(Description)里,你要清楚地说明这个工具是用来干嘛的,比如 “Use this tool to answer questions about game rules”。Agent 会根据这个描述来判断何时应该使用这个工具。

配置好后,你就可以在 n8n 界面右侧的聊天窗口里和你的机器人对话了。当你提问时,能看到 Agent 的思考过程:它会先调用 Pinecone 工具检索相关规则,然后再调用 OpenAI 模型生成最终答案。

n8n 模板库

如果你觉得从零开始搭建工作流有点复杂,n8n 提供了一个非常实用的模板库。里面有大量由社区和官方创建的预置工作流,覆盖了各种常见场景。你可以直接导入一个模板,然后根据自己的需求修改配置,能节省不少时间。

总结

我们今天只是浅尝了 n8n 的能力。它的强大之处在于其庞大的节点生态系统,可以连接上千种不同的服务和工具。

通过这两个例子,你应该能感受到 n8n 的魅力:它把复杂的编程任务,变成了一系列直观的、可视化的步骤。对于开发者来说,它可以快速验证想法、搭建原型;对于非技术人员,它也提供了一个强大的工具来自动化自己的工作。当然,在一些场景下,他处理复杂逻辑的能力可能不如直接写代码灵活,但这正体现了选择合适工具的重要性。

关于

关注我获取更多资讯

公众号
📢 公众号
个人号
💬 个人号
使用 Hugo 构建
主题 StackJimmy 设计