🇨🇳n8n如何接入国产大模型?

type
status
date
slug
summary
tags
category
icon
password
author
标签
第三方接入
 
🌟
AI节点详细介绍
中,我们介绍了 n8n 自带的 AI 节点要如何使用。n8n 官方目前支持的模型有:
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
但这其中,不包含任何国产的闭源模型。如果我们想要在 n8n 中接入智谱、文心一言、讯飞星火或通义千问等国产模型的 API 怎么办呢?
我们有两种思路,其一是通过 HTTP Request 节点接入,这是一个向任意 URL 发起请求的节点。你可以通过这个节点接入任何不在 n8n 中预制的第三方 API,也包括国产 AI 模型。
但这有一些问题,一个是使用 HTTP Request 调用模型较为复杂,另外一个则是如果我们使用 HTTP Request,就无法使用 n8n 内置的 LangChain 节点了。因为 HTTP Request 是无法作为子节点挂在 LangChain 节点下方的,这会让 Workflow 的编排难度大幅度提升,也限制了 n8n 在 AI 领域的发挥。
为此,我们推荐第二种方法,也就是本篇教程将要介绍的方法:将国产大模型的 API 转换为 OpenAI API 接入 n8n

1. 准备工作-使用 1Panel 一键部署 OneAPI

本篇教程将使用额外的开源工具 OneAPI,这是一个开源的大模型 API 管理工具,可以进行分销、均衡负载和模型转发,因为涉及到工具部署。我们将假设你按照《如何在服务器部署 n8n》教程的方法,拥有一台已经安装了 1Panel 面板的服务器。
如果你还没有一台独立服务器,建议你可以去 CloudCone 买一个,n8n 只有运行在服务器上菜能发挥最大的功效。在性能方面如果你不是让 Workflow 一直跑,一般 2v2GB RAM 的服务器就够用了,一年的成本只有 30 刀左右。
广告完毕,让我们继续。
1. 进入 1Panel 后台,依次进入 应用商店>AI/大模型>One API (或直接 在应用商店里搜索 One API)。
  1. 点击安装 按钮,弹出安装面板,进行安装。所有设置保持默认(端口 3000)就可以,记得不要勾选“端口外部访问”。
  1. 在 1Panel 后台,依次进入 网站>网站>创建网站 进入新建网站面板。 在网站类型中选择 反向代理主域名填入一个你为 OneAPI 设立的域名(我们后文假设为 OneAPI.abc.com)。 代号OneAPI ,代理地址填写 http://localhost:3000/ 端口与上文填写的一致即可。 然后点击确认
  1. 在 1Panel 后台,依次进入 网站>网站>OneAPI.abc.com>HTTPS 选择或创建域名的证书,并保存。(这一步不懂的话,可以参阅《如何在服务器部署 n8n》相关部分举一反三)
到这里,如果一切正常,你应该能直接在浏览器中访问 https://OneAI.abc.com 进入 One AI 的主界面了。
One API 默认界面
One API 默认界面
通过 1Panel 一键安装的 One API 的超级管理员账号密码如下:

2. 配置 OneAPI

2.1 基础安全性配置

首先,先把超级管理员的账号密码都改了,由于 One API 不支持二步验证,建议将密码设置到 16 位以上的随机生成安全密码。
然后,如果这个系统你不打算让不特定对象公开使用,要在 设置>系统设置>配置登录注册 中取消勾选所有的允许注册的选项。
进一步建议,在系统设置中开启 CloudFlare 的 Turnstile 验证码功能,以提高 One API 的安全性。
你可以在 CloudFlare 官网了解到更多信息,基本上是注册完了获得两个 Key 填回来就行。
如果你在生产环境中使用 One API,还建议你额外在搜索引擎中屏蔽它,并配置好它的告警系统,这些操作就请自行参与 One API 的官方 Github 了。
之所以将安全性配置放在第一步,是由于我们后续要将我们的国产大模型 API Key 都放在 One API 中,该系统一旦被攻破将有盗刷风险。

2.2 配置渠道

OneAPI 的基本概念有以下几个不要搞混:
概念
说明
渠道
其实是指上游令牌。也就是比如你有三个文心一言的Key,一个智谱的Key,你想要均匀的使用他们,就需要配置四个渠道,把这四个 Key 分别填进去。
令牌
OneAPI 的令牌,指通过 OneAPI 发起请求的时候,需要的 Key。比如你希望通过 OneAPI 均匀向上面那四个 API 发起请求,就要建立一个 OneAPI 令牌,并将所有的模型授权给这个令牌。
用户
就是访问 OneAPI 的不同用户,用户权限决定了它能否创建、使用令牌,以及每个用户能用多少 Token。
接下来,让我们先学会如何配置渠道。
让我们以智谱为例,首先,去智谱AI开放平台注册、认证开发者,并获得一个 API Key:
notion image
回到 OneAPI 后台,点击渠道>添加新的渠道 进入如下界面:
notion image
各项按照如下填写:
类型 - 你要添加的是智谱,所以这里就选智谱 ChatGLM。
名称 - 随便起名,只影响 OneAPI 管理界面。
分组 - 随便。
模型 - 先点击 填入相关模型,然后再手动输入 gpt-4 和 gpt-3.5-turbo,我们稍后解释为什么。
模型重定向 - 把这个粘贴进去:
密钥 - 你从智谱那获取的 Key,填在这里。
我们来解释一下,首先第一个问题是为什么要在智谱的渠道里添加 gpt-4 和 gpt-3.5 turbo?
这是因为 n8n 只识别特定种类的模型,这一步操作是方便我们后续在 n8n 里的操作。
第二个问题是,模型重定向的代码是什么意思——模型重定向,就是将用户对 OneAPI 的请求转换为其他模型向真实模型发起请求。在这里,我们的代码代表的意思是,当用户请求 gpt-3.5-turbo 的时候,实际请求的是智谱的 glm-4。
设置完成后,我们点击确定。

2.3 令牌配置

进入 OneAPI 的 令牌>添加新的令牌,进入令牌创建页面:
notion image
名称 - 随便起。
模型范围 - 将你实际要使用的模型(这里是 glm-4)和你伪装过的模型名(这里是 gpt-3.5-turbo)添加进去,点确定。
回到令牌列表,点击复制按钮即可获得这个令牌的 Key:
notion image

3. 配置 n8n

回到 n8n,让我们新建一个 Workflow,添加一个 Chat Trigger,一个 Basic LLM Chain 和一个 OpenAI Chat Model
notion image
点进 OpenAI Chat Model 里在 Credential 边上点击铅笔图标,新增一个凭证。
notion image
notion image
在这里,我们将刚刚创建的 OneAPI Key 填进去,点击保存时,n8n 将提示我们这个 Key 无法正常与 OpenAI 建立链接,这是当然的,因为这压根不是 OpenAI 的 Key,我们只是借用一下凭证的壳子,因此无视错误直接保存即可。
返回 OpenAI Chat Model 节点,我们选择刚刚新建的凭证,然后在 Option 里添加一个 Base URL。
这里特别要注意,它不是你的 OneAPI 安装地址,而是后面还要有个 v1。
比如,你的 OneAPI 安装在了 https://oneai.abc.com。那么这里就要填写 https://oneai.abc.com/v1
notion image
在上面的 Model 处,点击三个点,然后选择 Refresh List 就能看到已经伪装好的 gpt-3.5-turbo 啦。
重要:修改完 Base URL,你需要保存整个 Workflow,退出编辑器,重新进入才能让 Base URL 彻底生效,仅仅能刷出模型并不意味着 Workflow 会向正确的 URL 发送请求,这似乎是个 BUG。
好,进行完上述操作之后,让我们点击 Chat 按钮,测试一下这个 Workflow 吧:
notion image

4. 发散

知道了这个原理之后,你可以通过 OneAPI 给 n8n 接入所有它不支持的国产大模型。
但有的模型可能因为和 OpenAI 的调用格式差异过大,在使用过程中存在一些问题。
另外,就是模型重定向其实是个可选项,如果你要接入的国产大模型数量过多,以至于 OpenAI 的模型名都不够给你伪装了,你也可以压根不伪装。
省去上文建立渠道时设置模型重定向的步骤,取而代之的是你可以在 n8n 的 OpenAI Chat Model 节点中,手动设置模型名,就像这样:
notion image
也就是将 Model 的变量模式改为 Expression,然后手动敲一个模型名字进去。实测,这样也是可以正常调用的,只不过参数设置这里会一直有一个红色惊叹号。
除此之外,如果你的 OneAPI 和 n8n 在一个服务器上,我建议你学习一下相关运维知识,然 OneAPI 只能从本机调用,这样可以进一步避免 Key 泄露后被盗刷的可能性。
广告
半开放式节点(Code/HTTP Request)详细介绍n8n内建变量与方法
Loading...
目录