N8N中文教程
集成节点/Built in_nodes/Cluster_nodes/Root_nodes

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_vectorStore
  • data 包含您要添加的数据。有关 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_vectorStore
  • data 包含你想要添加的数据。有关 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_vectorStore
  • itemIndex 应始终为 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 文档。