LangChain 代码节点#
使用 LangChain 代码节点(LangChain Code node)来导入 LangChain。这意味着即使 n8n 尚未为某项功能创建专用节点,你仍然可以使用它。通过配置 LangChain 代码节点的连接器,你可以像使用普通节点、根节点或子节点一样使用它。 在本页面中,你将找到该节点的参数、配置指南以及更多资源链接。 在 Cloud 上不可用 此节点仅适用于自托管(self-hosted)的 n8n 实例。
节点参数#
添加代码#
添加你的自定义代码。选择 Execute(执行) 或 Supply Data(提供数据) 模式。你只能使用其中一种模式。 与 代码节点 不同,LangChain 代码节点不支持 Python。
- Execute:像使用 n8n 自带的代码节点一样使用 LangChain 代码节点。该模式接收工作流中的输入数据,对其进行处理,并将结果作为节点输出返回。此模式需要主输入和主输出,你必须在 Inputs(输入) 和 Outputs(输出) 中创建这些连接。
- Supply Data:将 LangChain 代码节点用作子节点,向根节点发送数据。此模式使用非主输出(main output)的其他输出端口。
默认情况下,您无法在此节点中加载内置或外部模块。自托管用户可以启用内置和外部模块。
输入#
选择输入类型。 主输入(Main)是所有 n8n 工作流中常见的普通连接器。如果节点中设置了主输入和主输出,则必须填写 Execute 代码。
输出#
选择输出类型。 主输出(Main)是所有 n8n 工作流中常见的普通连接器。如果节点中设置了主输入和主输出,则必须填写 Execute 代码。
节点输入与输出配置#
通过配置 LangChain Code 节点的连接器(输入和输出),您可以将其用作应用节点(App node)、根节点(Root node)或子节点(Sub-node)。 包含四个 LangChain 节点的工作流截图,配置为不同类型的节点
| 节点类型 | 输入 | 输出 | 代码模式 |
|---|---|---|---|
| 应用节点(App node)。类似于 Code 节点。 | 主输入(Main) | 主输出(Main) | Execute |
| 根节点(Root node) | 主输入(Main);至少一种其他类型 | 主输出(Main) | Execute |
| 子节点(Sub-node) | 无 | 非主类型的一种输出。必须与您要连接的输入类型匹配。 | Supply Data |
| 带有子节点的子节点(Sub-node with sub-nodes) | 非主类型的一种输入 | 非主类型的一种输出。必须与您要连接的输入类型匹配。 | Supply Data |
内置方法#
n8n 提供了以下方法,以便更轻松地在 LangChain Code 节点中执行常见任务。
| 方法 | 说明 |
|---|---|
this.addInputData(inputName, data) | 填充指定的非主输入数据。可用于模拟数据(mocking data)。 |
inputName是输入连接类型,必须为以下之一:ai_agent,ai_chain,ai_document,ai_embedding,ai_languageModel,ai_memory,ai_outputParser,ai_retriever,ai_textSplitter,ai_tool,ai_vectorRetriever,ai_vectorStoredata包含您要添加的数据。有关 n8n 所期望的数据结构,请参考 数据结构文档。
this.addOutputData(outputName, data) | 填充指定非主输出(non-main output)的数据。可用于模拟数据(mocking data)。
outputName为输入连接类型,必须是以下之一:ai_agent,ai_chain,ai_document,ai_embedding,ai_languageModel,ai_memory,ai_outputParser,ai_retriever,ai_textSplitter,ai_tool,ai_vectorRetriever,ai_vectorStoredata包含你想要添加的数据。有关 n8n 所期望的数据结构,请参考 数据结构文档。
this.getInputConnectionData(inputName, itemIndex, inputIndex?) | 获取来自指定非主输入(non-main input)的数据。
inputName为输入连接类型,必须是以下之一:ai_agent,ai_chain,ai_document,ai_embedding,ai_languageModel,ai_memory,ai_outputParser,ai_retriever,ai_textSplitter,ai_tool,ai_vectorRetriever,ai_vectorStoreitemIndex应始终为0(此参数将在后续功能中使用)- 如果有多个节点连接到指定输入,可使用
inputIndex参数来区分。
this.getInputData(inputIndex?, inputName?) | 获取主输入的数据。
this.getNode() | 获取当前节点。
this.getNodeOutputs() | 获取当前节点的输出。
this.getExecutionCancelSignal() | 当工作流停止时,使用此方法来终止函数的执行。大多数情况下 n8n 会自动处理,但如果你正在构建自定义链(chains)或智能代理(agents),可能需要手动调用它。该方法替代了在常规 LangChain 应用中使用的 取消运行中的 LLMChain 代码。
模板与示例#
🤖 面向文档的 AI 驱动 RAG 聊天机器人 + Google Drive + Gemini + Qdrant 作者:Joseph LePage 查看模板详情
使用 JavaScript 编写的自定义 LangChain 智能代理 作者:n8n 团队 查看模板详情
在 n8n 中使用任意 LangChain 模块(通过 LangChain 代码节点) 作者:David Roberts 查看模板详情
浏览 LangChain Code 集成模板,或 搜索所有模板
相关资源#
查看 n8n 的 高级 AI 文档。