最近用 n8n 搭建自动化流程,结合 AI 编程,有一种指哪打哪儿的快感。
我可以用一条工作流完成油管或者 B 站上一个复杂教学视频的结构化拆解。
油管技术视频批量自动化分析|含n8n 中 http 请求节点 timeout 的处理方法
从这种需要逐帧学习的多模态视频:
变成这样的待学习指南:
但对于国内的开发者和玩家来说,n8n总有一个不大不小的痛。国产模型节点,只支持 DeepSeek!
想用其他懂中文、响应更快、成本更低的国产大模型(比如 Kimi、通义千问),却发现 n8n 里没有现成的节点!
别急!如果我告诉你,有一把“万能钥匙”可以轻松打开几乎所有主流国产大模型接入 n8n 的大门,整个过程甚至不需要你写一行代码,你信吗?
这把钥匙,就是 “兼容OpenAI接口规范”。
这听起来可能有点技术,但别担心,这篇指南会把这个概念彻底掰开揉碎,变成你动动鼠标就能完成的简单操作。准备好,我们要开始给你的 n8n换上强大的“中国芯”了!
看一下我的成果:我配置了哪些中国模型:魔塔、kimi、腾讯混元。
接下来,我们就可以kimi-k2模型的配置方式,给大家做示范,教大家如何一步一步完成中国模型配置。
先到kimi的开发者平台申请 APIkey。
地址如下:https://platform.moonshot.cn/console/api-keys
拷贝 api 请求地址:如下图,只需要 v1 及之前这一段就好了。https://api.moonshot.cn/v1
相关文档地址如下:https://platform.moonshot.cn/docs/api/chat#chat-completion
老样子,请出我们的 AIAgent 节点。
触发节点:Chat,配置 AIAgent 节点。
点击 ChatModel,拉到最后,选择:OpenAI Chat Model。只要兼容OpenAI接口规范的模型,都可以用这个大模型节点来做配置。
然后,到n8n配置权限,分别填入apikey 和 baseURL。
注意,kimi的 baseURL 应该填我们刚才记录的:https://api.moonshot.cn/v1
当你看到上面的 Connection tested successfully,就代表认证成功了!
好的,接下来,选择模型。
然后,返回 OpenAI Chat Model 节点,在 From list 节点选择模型。我们这次要体验的是 kimi-k2。
OK,返回测试:
好的,配置完成了!
判断一个模型或服务是否兼容OpenAI的API规范,是能否将其作为“平替”或“drop-in replacement”接入n8n model节点工具的关键。
你可以通过这个最简单的方法来判断:查阅官方文档 (最直接、最可靠的方法)
在模型提供方(无论是云服务商还是本地模型工具)的官方文档中,寻找以下关键词或描述:
-
“OpenAI-Compatible” / “与OpenAI兼容”: 这是最直接的信号。很多服务会明确以此为卖点。
-
“Drop-in Replacement”: 意为“直接替换”,说明你可以几乎不改代码就换掉OpenAI的接口。
python 调用的方式有 from openai import OpenAI
检查核心API技术规范 (技术细节核对)
一个API要与OpenAI兼容,必须在以下几个核心方面保持一致:
a. Endpoint (接口路径)
最核心的聊天接口路径必须匹配。标准的路径是:
POST /v1/chat/completions
如果一个服务的接口是 POST /api/v1/generate 或者其他自定义路径,那它就不是OpenAI兼容的。
b. Authentication (认证方式)
认证信息通常通过HTTP请求头传递,格式必须是:
Authorization: Bearer YOUR_API_KEY
YOUR_API_KEY 是服务提供方给你的密钥。
c. Request Body (请求体JSON结构)
发送给接口的JSON数据结构必须与OpenAI的规范一致。对于聊天模型,关键字段包括:
- model (string): 你要使用的模型名称(这个值会因服务商而异)。
- messages (array): 一个包含对话历史的数组。
- 每个元素都是一个对象,包含 role ("user", "assistant", "system") 和 content (string)。
- stream (boolean, optional): 是否使用流式传输。
- 其他可选参数如 temperature, max_tokens, top_p 等。
一个兼容的请求体示例:
client = OpenAI(
api\_key = "$MOONSHOT\_API\_KEY",
base\_url = "https://api.moonshot.cn/v1",)
completion = client.chat.completions.create(
model = "kimi-k2-0711-preview",
messages = [ {"role": "system", "content": "你是 Kimi,由 Moonshot AI 提供的人工智能助手,你更擅长中文和英文的对话。你会为用户提供安全,有帮助,准确的回答。同时,你会拒绝一切涉及恐怖主义,种族歧视,黄色暴力等问题的回答。Moonshot AI 为专有名词,不可翻译成其他语言。"}, {"role": "user", "content": "你好,我叫李雷,1+1等于多少?"} ],
temperature = 0.6,)
d. Response Body (响应体JSON结构)
模型返回的JSON数据结构也必须一致,这样你的代码才能正确解析。
-
非流式 (Non-streaming): 关键是 choices 数组,其中包含了 message 对象。
-
流式 (Streaming): 必须遵循Server-Sent Events (SSE) 格式,每一条消息都是一个以 data: 开头的JSON块。
一个兼容的响应体示例-非 Streaming 的返回内容:
{ "id": "cmpl-04ea926191a14749b7f2c7a48a68abc6",
"object": "chat.completion",
"created": 1698999496,
"model": "kimi-k2-0711-preview",
"choices": [ {
"index": 0,
"message": {
"role": "assistant",
"content": " 你好,李雷!1+1等于2。如果你有其他问题,请随时提问!" }, "finish\_reason": "stop" } ],
"usage": {
"prompt\_tokens": 19,
"completion\_tokens": 21,
"total\_tokens": 40 }}
以上就是一个非常简单的n8n国产大模型配置指南了。关于n8n还有哪些想学习和了解的,欢迎评论区留言。
