掌握你的第一个魔法
现代魔法编程思想
n8n 使用教程
n8n 实战案例
杂项
🌟AI节点详细介绍
type
status
date
slug
summary
tags
category
icon
password
author
标签
第三方接入
n8n 内置了可视化的 Langchain 节点,可以帮助我们快速接入和使用不同的 LLM 模型,搭建不同类型的工具。
在熟悉 n8n 的 AI 节点之前,我们可能要首先进行一些科普。
0. 大模型 AI 接入 n8n 的科普
0.1 什么是大语言模型?
大语言模型是一种深度学习模型,其目标是理解和生成人类语言。这些模型通过吸收大量的文本数据(比如网页、书籍等),学习语言的模式和结构,然后用这些知识来生成或者完成文本。例如,你可以输入一个问题或者一个句子的一部分,模型会尝试生成一个相关的回答或者完成这个句子。因为这些模型需要处理大量的文本数据,所以被称为“大”语言模型。
同样的, 你也可以输入一段自然语言,让它输出一段代码。输入一段素材,让它判断其中蕴含的情感等等……
0.2 我有 ChatGPT Plus 账号,足够了吗?
正如我们在 欢迎来到 n8n 中文教程 中提到的,AI 产品和 AI API 是两种完全不同的东西。
如果你已经可以正常使用 ChatGPT Plus,那么恭喜你,你具备了访问海外互联网的能力。这将为你的后续工作减少一些环节。
但遗憾的是,这并不代表你已经完成了所有准备工作,你需要一个开发者账号,来访问如 GPT-4、Gemini Pro 或 Claude 3 的 API。
API,即应用程序接口,是一套规定了软件组件之间交互的规则。它允许不同的软件系统之间进行通信,交换数据和功能。简单来说,ChatGPT 是 OpenAI 做来给你(人类)使用的界面,GPT-4 API 是 OpenAI 做来给其他程序(机器)使用的界面,n8n 是一个程序,因此在 n8n 系统中接入 AI 需要对应 AI 的 API。
不同的 AI 在注册开发者账号上略有不同,由于涉及比较敏感的内容,本站不教大家如何注册 OpenAI\Google\Claude 的开发者账号。
0.3 什么是 LangChain
LangChain 是一种特殊的大语言模型接口,专门为了将大语言模型接入 n8n 而设计。它可以将各种大语言模型(如 GPT-4、Gemini Pro 或 Claude 3)的 API 进行统一,使得我们在编写 AI 相关的程序时可以方便的使用不同的大语言模型进行各种任务,无需关心模型之间的差异性。简单来说,LangChain 就是在 AI 和程序员之间的一个“翻译器”。
在 n8n 中,LangChain 是一个包含子节点的 AI 节点。在你更换不同的 AI 服务时,可以不用重新设置所有的节点设置,大幅提高我们调试 Workflow 的效率。
1. 节点概览
在 n8n 中,Advaced AI 是一个专门的 node 类别,其下有多种不同的 AI 类型。在这里,我们会详细介绍两个最常用的 AI 节点,让你掌握 AI 在 n8n 中的接入逻辑。
大部分的 n8n AI 节点都在介绍里写明了自己的用处是什么,你还可以点击 AI Templates 从官方社区下载别人已经组合好的 Chain。这些部分在你理解了 n8n 的 AI 接入逻辑后,只需自己稍微探索就能学会。
本文详细介绍的是 Basic LLM Chain 和 AI Agent。
2. Basic LLM Chain
在 n8n 中,"Basic LLM Chain" 节点是用于连接大语言模型的最简单节点。它不适合用来做 Agent,也不太适合用来做对话。特别适合那种做一次性的文本处理与判断。
比如:文本总结、文本摘要、语法纠正、文本分类等等。
它的节点内逻辑非常简单:从上游节点获取数据、将参数设置中的 prompt 和数据一同提交给 LLM API、从 API 获得 LLM 返回的结果。
参数说明
- 必填:Prompt:
- Take From previous node automatically(从上游自动获取) 当节点在这个选项下工作时,它将自动将上游的 Chat Trigger(聊天触发器)中的最新一条消息作为 Prompt 发送给大模型。这个选项有一定迷惑性,如果你的 Prompt 是在上游节点中生成的动态 Prompt,但它并不来自一个 Chat Trigger,那你应该选 Define below。
- Define below(在下方定义) 当节点在这个选项下时,它会在参数页面额外增加一个 Text 参数,这里可以直接填写你所需要的 Prompt。
这是一个选项类的参数,它有两个选项,分别是:
- 必填:Text:
- 当你将 Prompt 参数设置为 Define below 时,这个参数就会出现。
- 在这里输入你想要语言模型回应的具体内容。这通常是一个问题或者是要求模型进行某种形式的文本生成的命令。
- 这个参数中支持上游变量,你可以将一部分固定的 Prompt 和上游自动生成的文本结合起来。比如:
其中 {{ $json.text }} 是上游节点带来的文章正文。
- 可选:Require Specific Output Format:
- 如果启用,这个设置要求输出格式符合特定的需求。这对于需要确保输出数据格式一致性的情况特别有用。
- 可选:Chat Messages (If Using a Chat Model):
- 如果你在使用一个专门为聊天设计的模型,并且打算做一个对话型应用,这里可以添加聊天提示。这允许节点处理上下文更丰富的对话,提高回答的相关性和准确性。
- 你可以在这里无限添加已预制的对话 Prompt,它的子参数包括 Type Name or ID(角色)、Message Type(图片、文字、URL)和 Message(对话内容)。
- 比如,你在一个角色扮演的情况下,你可以先预制 10 轮次的对话上文,用于模拟一个对话场景的中途。这样,当你在 Workflow 开始运转后,相当于用户是从这个场景的中途开始与 AI 对话。
- 必填:Model
n8n 中所有的 AI 节点,基本都要配置一个子节点。对于 Basic LLM Chain 来说,只有一个子节点就是 Model。
子节点的设置不在 Basic LLM Chain 的配置面板中,而在 Workflow 的编辑画布上。你需要像添加节点一样,为其添加一个子节点。
顾名思义,Model 子节点可以添加的类型,全都是各种 LLM。截止到目前,n8n 支持以下类型的 LLM 接入:
n8n 支持的模型列表
Google PaLM Chat Model | Google Gemini Chat Model | Groq Chat Model |
Mistral Cloud Chat Model | Ollama Chat Model | OpenAI Chat Model |
OpenAI Model | Ollama Model | Cohere Model |
Huagging Face Interence Model | Azure OpenAI Model | AWS Bedrock Chat Model |
Anthropic Chat Model | Cohere Model | ㅤ |
每个模型的子节点,根据模型支持的功能不同,参数设置上会略有不同。相关信息,可以在子节点中点击对应模型节点的官方文档查看。
2.5 Chat Trigger
在上文,我们提到了 Chat Trigger。这是 n8n 中的一个特殊的触发器,它允许你通过一个聊天窗口触发 Workflow。它的消息会默认传递给下一层的 AI 节点。
值得注意的是:
- Chat Trigger 没有参数设置,只要在画布中创建,就会将 Workflow 更改为聊天触发。
- Chat Trigger 的触发方式是,每发送一次消息,完整触发一次 Workflow。
- 在下游 AI 节点没有加入 Memory 服务的情况下,Chat Trigger 每次触发都会忘记上次的对话,也就是说它默认不具备动态上下文能力,AI 不会记得你上一句话说了什么。
- 当添加 Chat Trigger 时,n8n 会提示这个触发器需要与 AI 节点连接。实际上,这并不是必须的。你完全可以将 Chat Trigger 作为输入触发器。比如,你的一个 Workflow 需要从数据库中筛选指定日期的文章。你可以通过 Chat Trigger 来输入这个日期,并在后续的筛选中引用这个输入的日期进行筛选,而无需在每次运行时修改筛选条件。
3. AI Agent
AI Agent 节点,可以被视为 Basic LLM Chain 的进阶版本,它完全释放了 LangChain 的功能,允许在其上挂载更多子节点。 通过外观的节点我们也能看出来,它和 Basic LLM Chain 的主要区别,是多了几个可以插入子节点的卡槽。并且,外部的这些卡槽还会随着内部参数设置的变化而变化。
参数说明
- 必填:Agent
这是定义 AI Agent 与 Basic LLM Chain 不同的最主要参数,它主要是让你选择你究竟需要让 AI 来帮你完成什么任务。目前, n8n 的 AI Agent 支持以下类型的任务:
选项 | 支持的卡槽 | 简单说明 | 官方文档链接 |
Conversational Agent | Memory/Tool | 用于完成对话的模式,和 Basic LLM Chain 比增加了 Memory 和 Tool 卡槽,你可以为对话添加上下文记忆功能,还可以接入额外的工具,比如搜索或天气预报 | ‣ |
Tools Agent | Memory/Tool | 用自然语言操作一个工具,比如你可以用它来让 AI 算数,因为对于大语言模型来说,计算器就是一个工具。该模式不支持上下文记忆。 | ‣ |
OpenAI Functions Agent | Memory/Tool | 专门用于发起 Function Call 的模式 | ‣ |
Plan and Execute Agent | Tool | 用于通过自然语言调用工具的模型,允许连接多个工具,由 AI 自行计划使用哪些工具以及如何组合。 | ㅤ |
ReAct Agent | Memory/Tool | Plan and Execute Agent 的进阶版本,如果你用过 ChatGPT Plus 更好理解。AI 会根据你的自然语言任务,选择合适的工具执行任务,然后再检查工具返回的结果,如果结果不正确,就再试试其他方法。该模式可能会对 AI 发起多次请求。 | ‣ |
SQL Agent | Memory | 直接与 Sql 数据库对话。 | ‣ |
不同类型的 Agent 有不同的必填参数,你可以在配置页面查看,或者阅读相关类型 Agent 的官方节点。
- 可选:Memory
AI Agent 节点的部分任务类型支持使用 Memory 子节点,这个子节点的作用是为 AI 进行上下文记忆。这里同时指一次性的记忆和永久的记忆。
该节点支持以下类型的记忆服务:
Window Buffer Memory - 浏览器窗口缓存记忆,顾名思义,你不需要部署任何额外的服务,直接把对话的上下文存在浏览器窗口里。但缺点也很明显:刷新就消失了,不能永久保存。
Redis Chat Memory - 将聊天记录存储在服务器的 Redis 缓存服务器里,可以在刷新刘篮球窗口后找回之前的记忆,但这也是短时记忆,因为 Redis 会根据设置在指定的时间后清空缓存。
Motorhead - 一个专门为 AI 打造的开源记忆服务,它能简单的帮助 AI 服务存储、向量化和检索记忆,有开源版本。
Xata - 一个专门为 AI 打造的无服务器数据检索系统,它不开源,付费可用,无需部署。相当于你在别人的云服务里买了个可直接连接的数据库,填写授权即可存储、处理、读取数据。
Zep - 和 Xata 差不多,另一个专门为 AI 打造的长期记忆服务商,不开源,要付费,免部署。
- 可选:Tool
AI Agent 节点的部分任务类型支持使用 Tool 子节点,这个子节点是用来执行那些特定非 AI 任务的。比如:计算数字、搜索互联网页面、从维基百科获取相关信息等。
目前,n8n 支持以下几种类型的 Tool 子节点:
Calculator - 计算器,顾名思义,用传统方法进行数字计算,避免你的大模型出现“1+1=8”的智障行为。
Custom Code Tool - 你自己写一段代码作为一个工具让 AI 调用,支持 JavaScript 和 Python。
SerpAPI - Google 搜索 API,如果你希望你的 AI 节点能联网查资料,主要就靠它。申请 SerpAPI 的方法参见这里:
Wikipedia - 从 Wikipedia 获取相关信息,这样可以避免模型在不知道相关主题的情况下依据幻觉编造。
Wolfram Alpha - 一个国外很流行的更偏向学术的问答搜索引擎,比 Google 的信息质量更高,并且支持高级数学提问返回函数图像等等。
Custom n8n Workflow Tool - 将另一个 n8n Workflow 作为一个 Tool 来调用。大杀器,这意味着你可以接入任何不在此列的工作。
对于中国用户来说,Custom n8n Workflow Tool 是一个非常有用的工具。因为原生于海外的 n8n 缺少一些连接国内平台工具的能力,比如通过百度搜索,向飞书推送消息等等。
但 Custom n8n Workflow Tool 允许你将另一个你写好的 Workflow 作为工具调用。这意味着,你可以先制作一个“通过 Webhook 向飞书发送消息”的 Workflow,然后将它与这里的 AI 节点相连,这样就实现了在完成某个自动化任务之后,自动将消息推送到飞书。
4. 发散
正如我们在开头提到的,在 n8n 的 AI Nodes 中,还存在其他的节点类型,比如专为 OpenAI 优化的 OpenAI 节点支持绘画,文件上传等特殊功能,比如 Question and Answer Chain 专门优化了从特定知识库中进行问答的操作。
但总体来说万变不离其宗,如果你已经可以熟练掌握 Basic LLM Chain 和 AI Agent 这两个基础和进阶的节点,剩下的 AI 节点基本都遵循类似的逻辑:输入数据,规定 AI 动作,接入恰当的工具子节点,获取结果。
在 n8n 的官方社区中,还内嵌了一个模板市场,你可以通过节点添加界面的 Advaced AI > AI Templates 进入。这里有许多由志愿者贡献的已经组合好的 AI 功能模板,你可以一键将它复制到你的 Workflow 中使用。
除此之外,如果官方提供的所有 AI Node 都无法满足你的需求,你还可以在节点添加页面搜索 LangChain Code 节点。顾名思义,如果预制的 LangChain 节点无法满足你的需求,你可以通过这个节点来自己写个 LangChain 代码,来指挥 AI 如何完成任务。
广告
Loading...
Last update: 2024-06-17
🎉简单易懂的现代魔法 1.0 已经上线🎉
-- 感谢您的支持 ---
👏欢迎体验低代码的魅力👏