前天我介绍了使用 n8n 搭建一个邮件处理智能体,那么在今天我们将构建一个更复杂的 RAG 智能体工作流。
当我们拥有一个特定的知识库(例如一篇长文档),并希望构建一个能够就此回答问题的智能体时,RAG 就非常有用。
我自己喜欢玩桌游,但朋友们经常会因为规则问题争论不休,然后花大量时间查规则,结果游戏都玩不成,这真的挺让人沮丧。而基于游戏规则构建一个 RAG 智能体就是一个很好的解决方案——下次再有疑问,我们只需问这个智能体就好了。
为了构建这个智能体,我们将设计两个工作流:
-
一个工作流只运行一次,用来将数据上传到 Pinecone 数据库;
-
另一个工作流则为 RAG 智能体提供服务,它会使用 Pinecone 数据库来回答我们的提问。
将数据加载到 Pinecone
Pinecone 是一种向量数据库,它以向量的形式管理数据。对于我们的 RAG 智能体来说,像 Pinecone 这样的向量数据库非常适合,因为它可以帮助智能体快速查找并理解相关信息,从而更高效地提供准确答案。
由于这个数据加载的工作流只需运行一次,我们可以使用一个手动触发节点。这是一个用于手动启动工作流的触发节点。

将手动触发节点连接到一个 “Google Drive” 节点,以便从 Google Drive 下载数据。


我使用了公开可用的 mtgrules.txt 文件,它包含了集换式卡牌游戏《万智牌》(Magic: The Gathering)的规则。当然,你也可以使用任何你想要提问的文件,工作流的搭建方式是一样的。
要配置 Pinecone,首先登录 Pinecone 账号,复制 API 密钥,然后点击 “Create index(创建索引)” 按钮来创建一个索引。我将这个索引命名为 rules,并选择了 text-embedding-3-small 模型。
https://app.pinecone.io/

回到 n8n,将 Google Drive 节点的输出连接到一个 Pinecone Vector Store 节点,并选择操作类型为 “Add documents to vector store”(将文档添加到向量存储)。

要配置该节点,我们需要创建一个凭据,方法是粘贴 API 密钥并选择我们刚刚创建的 Pinecone 索引。在 Pinecone Vector Store 节点下方,我们可以看到需要配置两个内容:一个嵌入模型(embedding model)和一个数据加载器(data loader)。





在选择块大小和块重叠度时,对于较长的文档,请考虑使用较大的块大小来捕获足够的内容;对于较长的文档,请考虑使用较小的重叠度来保持片段之间的上下文,避免冗余。
最终的工作流程如下所示:

我们可以通过点击“Test workflow(测试工作流)”来运行它,完成后,我们可以在 Pinecone 中验证数据是否已加载。
创建 RAG 智能体
以下是 RAG 智能体的最终架构:

我们先从“On chat message(聊天消息)”触发节点开始。它用于创建聊天工作流。

接下来,我们将聊天触发器连接到具有默认选项的“AI Agent”节点。

在 AI Agent 下方,我们可以看到可以配置三项内容:
-
智能体使用的 AI 模型。
-
Memory 定义了智能体如何记忆对话上下文。
-
智能体可以使用的工具。在本例中,我们将提供 Pinecone 数据库作为工具,以便智能体能够回答有关我们文档的问题。
对于 AI 模型,我们选择“OpenAI Chat Model(OpenAI 聊天模型)”节点并使用 GPT-4.1 模型:

对于记忆,我们使用一个“Simple Memory(简单记忆)”节点,其上下文窗口长度为 5。这意味着智能体在回答问题时会记住并考虑之前的五次交互。
最后,在工具中,我们添加了一个“Pinecone Vector Store(Pinecone向量存储)”节点,其配置如下:

在描述字段中,务必指定何时使用这些工具。智能体将根据这些信息来确定是否应该调用该工具。
最后一步是配置向量存储使用的嵌入。和之前一样,我们使用 OpenAI Embedding 节点,模型为 text-embedding-3-small:

工作流程配置完成了,我们可以与智能体聊天了:

我们可以在右侧看到智能体回答我们问题的步骤。具体来说,它访问了 Pinecone 数据库以获取相关的规则信息。
n8n 模板
n8n 提供了一个实用的功能,可以显著加快我们的工作流创建过程:n8n 模板库。
https://n8n.io/workflows/
这个库集合了社区和 n8n 专家精心打造的预建工作流。无论我们尝试自动化简单任务还是更复杂的流程,很可能已经有人构建了符合我们需求的工作流。
将工作流导入我们的 n8n 设置意味着我们不必总是从头开始。相反,我们可以利用其他用户开发的创新解决方案。导入工作流后,我们只需使用我们的凭据进行配置,并根据我们的确切需求进行调整即可。
对于我们希望自动化的任何任务,从电子邮件处理到社交媒体管理,库中很可能都有可用的模板。
结论
n8n 提供了庞大的集成生态系统,使我们能够连接上千种服务和工具来创建智能体。本教程中,我们只是粗略地介绍了 n8n 的功能。通过探索如何使用 n8n 构建智能体来自动化日常任务,我们才刚刚开始挖掘它的潜力。
加入星球获取提示工程、RAG和Agent开发实践教程。

(文:PyTorch研习社)