n8n-nodes-siliconflow-ai 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,10 +1,15 @@
1
1
  # n8n-nodes-siliconflow-ai
2
2
 
3
- 一个面向 [n8n](https://n8n.io) 的社区节点,封装 [SiliconFlow(硅基流动)](https://siliconflow.cn) 的 OpenAI 兼容 REST API:**Chat Completion**、**Embedding**、**Image Generation**、**Rerank**。
3
+ 一个面向 [n8n](https://n8n.io) 的社区节点,封装 [SiliconFlow(硅基流动)](https://siliconflow.cn) 的 OpenAI 兼容 REST API。提供**两个节点**:
4
4
 
5
- > 🎯 **核心目的**:解决 [QixYuanmeng/n8n-nodes-siliconflow](https://github.com/QixYuanmeng/n8n-nodes-siliconflow) 在最新 n8n 中因 `langchain` 与 `@langchain/core` 版本冲突(`ERESOLVE`)导致的安装失败问题。
5
+ - **SiliconFlow**(动作节点):Chat / Vision / Embeddings / Image Generation / Rerank
6
+ - **SiliconFlow Chat Model**(AI Agent 模型节点):LangChain 兼容,可接入 n8n 的 AI Agent / Tools Agent / AI Chain
7
+
8
+ > 🎯 **核心目的**:解决 [QixYuanmeng/n8n-nodes-siliconflow](https://github.com/QixYuanmeng/n8n-nodes-siliconflow) 在最新 n8n 中因把 `langchain@^0.3.29` 写进 `dependencies` 而与宿主 n8n 自带的 `@langchain/core@1.x` 产生 `ERESOLVE` 冲突、导致安装失败的问题。
6
9
  >
7
- > 本节点**零运行时三方依赖**(除 `n8n-workflow` 作为 peer dep),完全使用 n8n 内置 HTTP helper 直连 SiliconFlow,永不与宿主 n8n 冲突。
10
+ > **依赖策略(关键)**:
11
+ > - 动作节点 `SiliconFlow`:**零运行时三方依赖**,完全使用 n8n 内置 `httpRequestWithAuthentication` 直连 SiliconFlow,永不冲突。
12
+ > - 模型节点 `SiliconFlowChatModel`:`@langchain/openai` / `@langchain/core` 仅声明为**可选 peerDependencies(`"*"`)**,不打包、不安装,运行时直接复用 n8n 自带的 langchain —— 既保留 AI Agent 能力,又彻底消除 `ERESOLVE`。
8
13
 
9
14
  ---
10
15
 
@@ -63,12 +68,42 @@ USER node
63
68
 
64
69
  ## ✨ 支持的能力
65
70
 
71
+ ### 节点 1:SiliconFlow(动作节点)
72
+
66
73
  | Resource | Operation | 端点 | 说明 |
67
74
  |---|---|---|---|
68
- | Chat Completion | Send Message | `POST /chat/completions` | 兼容 OpenAI 格式的对话 |
69
- | Embedding | Create Embeddings | `POST /embeddings` | 文本向量化 |
70
- | Image Generation | Generate | `POST /images/generations` | 文生图 |
71
- | Rerank | Rerank Documents | `POST /rerank` | 文档重排序(RAG 后处理) |
75
+ | Chat | Complete | `POST /chat/completions` | 兼容 OpenAI 格式的对话,支持 thinking / tools 等参数 |
76
+ | Vision | Analyze | `POST /chat/completions` | 多模态视觉理解(支持二进制/URL/base64 图片) |
77
+ | Embeddings | Create | `POST /embeddings` | 文本向量化 |
78
+ | Image | Generate | `POST /images/generations` | 文生图 |
79
+ | Rerank | Create | `POST /rerank` | 文档重排序(RAG 后处理) |
80
+
81
+ ### 节点 2:SiliconFlow Chat Model(AI Agent 模型节点)
82
+
83
+ 输出 `AiLanguageModel` 连接,把 **SiliconFlow Chat Model** 节点连到 **AI Agent** / **Tools Agent** / **AI Chain** 即可让 Agent 使用 SiliconFlow 上的模型(含工具调用、推理模型 thinking 等)。底层复用 `@langchain/openai` 的 `ChatOpenAI` 指向 SiliconFlow base URL。
84
+
85
+ ---
86
+
87
+ ## 🧩 模型选择:From List / By ID
88
+
89
+ 每个资源(Chat / Vision / Embeddings / Image / Rerank)以及 Chat Model 节点的模型选择都支持两种模式(顶部 **Model Selection** 切换):
90
+
91
+ | 模式 | 说明 |
92
+ |---|---|
93
+ | **From List** | 从内置的常用模型清单里选(清单见下,已按 2026-06 模型广场整理) |
94
+ | **By ID** | 手动输入任意模型 ID,**支持表达式**(如 `={{$json.model}}`)。用于清单未收录、或刚上线尚未更新的模型 |
95
+
96
+ > SiliconFlow 模型会上下架,内置清单无法保证永远最新;遇到列表里没有的模型,直接切到 **By ID** 填入即可,无需等节点更新。
97
+
98
+ 内置清单(按你提供的模型广场整理):
99
+
100
+ - **Chat(21)**:GLM-5.2、Kimi-K2.7-Code、DeepSeek-V4-Pro/Flash、DeepSeek-V3.2(+Pro)、DeepSeek-R1、Nex-N2-Pro、MiniMax-M2.5(+Pro)、Qwen3.6/3.5 系列、Step-3.5-Flash、Ling-mini-2.0、Hunyuan-MT-7B、Seed-OSS-36B 等
101
+ - **Vision(14)**:Qwen3-VL-32B、Qwen3-Omni 系列、GLM-4.5V、DeepSeek-OCR 等
102
+ - **Embedding(8)**:Qwen3-Embedding 系列、bge-m3(+Pro)、bge-large-zh/en 等
103
+ - **Image(7)**:Z-Image(+Turbo)、ERNIE-Image-Turbo、Qwen-Image(+Edit)、Kolors 等
104
+ - **Rerank(6)**:Qwen3-Reranker 系列、bge-reranker-v2-m3(+Pro) 等
105
+
106
+ 清单源码位于 `nodes/shared/models.ts`,可直接增删维护。
72
107
 
73
108
  ---
74
109
 
@@ -122,6 +157,18 @@ USER node
122
157
 
123
158
  输出 `images[0].url` 即图片 URL(部分模型返回 base64)。
124
159
 
160
+ ### 5. 用 AI Agent 调用 SiliconFlow 模型
161
+
162
+ ```
163
+ [AI Agent] ←(Model)— [SiliconFlow Chat Model]
164
+
165
+ [其它 Tool 节点…]
166
+ ```
167
+
168
+ - 把 **SiliconFlow Chat Model** 节点的输出连到 **AI Agent** 的 Model 输入
169
+ - 在 Chat Model 节点选择模型(如 `deepseek-ai/DeepSeek-V3`、`Qwen/Qwen2.5-72B-Instruct`)
170
+ - Agent 即可使用该模型进行工具调用 / 推理
171
+
125
172
  ---
126
173
 
127
174
  ## 🧪 常见模型参考
@@ -141,10 +188,12 @@ USER node
141
188
 
142
189
  | 项 | 原项目 | 本项目 |
143
190
  |---|---|---|
144
- | 运行时依赖 | `langchain` + `@langchain/core` + `axios` + `zod` | **零**(只用 n8n 内置 helper) |
191
+ | `langchain` 声明位置 | `dependencies`(被 npm 安装 触发 `ERESOLVE`) | **可选 `peerDependencies`(`"*"`)**,不安装,运行时复用 n8n 自带版本 |
192
+ | 动作节点运行时依赖 | `axios` + `zod` | **零**(用 n8n 内置 `httpRequestWithAuthentication`) |
145
193
  | 最新 n8n 安装 | ❌ `ERESOLVE` 报错 | ✅ 干净通过 |
146
- | 包大小 | ~50MB+ | < 50KB |
147
- | 维护难度 | 跟随 langchain 升级 | 跟随 SiliconFlow API 变更即可 |
194
+ | AI Agent 模型节点 | | 保留(同样接入 AI Agent) |
195
+ | 包大小 | 较大(打包 langchain/axios) | 很小(不打包三方运行时依赖) |
196
+ | 维护难度 | 跟随 langchain 升级易冲突 | 复用 n8n 自带 langchain,跟随 SiliconFlow API 变更即可 |
148
197
 
149
198
  ---
150
199
 
@@ -162,7 +211,7 @@ npm install
162
211
  npm run build
163
212
 
164
213
  # 监听模式(自动编译)
165
- npm run dev
214
+ npm run build:watch
166
215
  ```
167
216
 
168
217
  修改源码后建议在本地 n8n 验证(见上文「方式 2:本地加载」)。
@@ -1,14 +1,15 @@
1
1
  import { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
2
  /**
3
- * SiliconFlow(硅基流动)AI 节点 v0.2.0
3
+ * SiliconFlow(硅基流动)AI 节点
4
4
  *
5
5
  * 本节点使用 n8n 内置的 helpers.httpRequestWithAuthentication 直接调用 SiliconFlow
6
- * 的 OpenAI 兼容 REST API,不引入任何 langchain axios 等三方依赖,从而彻底规避
7
- * 宿主 n8n 环境的 peer dependency 冲突。
6
+ * 的 OpenAI 兼容 REST API,不引入任何 langchain / axios 等三方运行时依赖,从而彻底
7
+ * 规避宿主 n8n 环境的 peer dependency(ERESOLVE)冲突。
8
8
  *
9
- * 支持的能力:
9
+ * 支持的资源:
10
10
  * - Chat Completion (POST /chat/completions)
11
- * - Embedding (POST /embeddings)
11
+ * - Vision (POST /chat/completions,多模态图片理解)
12
+ * - Embeddings (POST /embeddings)
12
13
  * - Image Generation (POST /images/generations)
13
14
  * - Rerank (POST /rerank)
14
15
  */