Langflow 组件概览
组件(component)是流程中的一个独立构建块,具有定义其功能的输入、输出、函数和参数。单个组件就像大型应用程序中的一个类。
要将组件添加到流程中,请将其从 组件 菜单拖动到 工作区。
在本页了解有关组件及其工作原理的更多信息。
组件菜单
每个组件都是独一无二的,但顶部都有一个菜单栏,看起来像这样:

使用组件控件执行以下操作:
- 代码 — 修改组件的 Python 代码并保存您的更改。
- 控件 — 调整所有组件参数。
- 冻结 — 组件运行后,锁定其先前的输出状态,以防止它再次运行。
点击 全部 以查看组件的其他选项。
要查看组件的输出和日志,请单击图标。
要运行单个组件,请单击 运行.
一个对勾 表示组件成功运行。
使用 运行 按钮运行单个组件与运行整个流程不同。在单个组件运行时,将调用 build_vertex
函数,该函数仅构建并运行通过 UI 直接提供的输入(inputs_dict
参数)的单个组件。VertexBuildResult
数据将传递给 build_and_run
方法,该方法调用组件的 build
方法并运行它。与运行完整流程不同,运行单个组件不会自动执行其上游依赖项。
组件端口
句柄()位于组件侧面,指示可以在该端口连接的输入和输出类型。将鼠标悬停在句柄上以查看连接详细信息。

组件端口数据类型颜色
下表列出了句柄颜色及其对应的数据类型:
数据类型 | 句柄颜色 | 句柄 |
---|---|---|
BaseLanguageModel | 紫红色 | |
数据 | 红色 | |
文档 | 酸橙色 | |
嵌入 | 翠绿色 | |
LanguageModel | 紫红色 | |
消息 | 靛蓝色 | |
提示 | 紫罗兰色 | |
str | 靛蓝色 | |
文本 | 靛蓝色 | |
未知 | 灰色 |
组件代码
组件继承自一个定义其接口和行为的基础 Component
类。
例如,递归字符文本分割器 是 LCTextSplitterComponent 类的子类。
递归字符文本分割器代码
_58from typing import Any_58_58from langchain_text_splitters import RecursiveCharacterTextSplitter, TextSplitter_58_58from langflow.base.textsplitters.model import LCTextSplitterComponent_58from langflow.inputs.inputs import DataInput, IntInput, MessageTextInput_58from langflow.utils.util import unescape_string_58_58class RecursiveCharacterTextSplitterComponent(LCTextSplitterComponent)_58display_name: str = "Recursive Character Text Splitter"_58description: str = "Split text trying to keep all related text together."_58documentation: str = "https://docs.langflow.org.cn/components-processing"_58name = "RecursiveCharacterTextSplitter"_58icon = "LangChain"_58_58inputs = [_58IntInput(_58name="chunk_size",_58display_name="Chunk Size",_58info="The maximum length of each chunk.",_58value=1000,_58 ),_58IntInput(_58name="chunk_overlap",_58display_name="Chunk Overlap",_58info="The amount of overlap between chunks.",_58value=200,_58 ),_58DataInput(_58name="data_input",_58display_name="Input",_58info="The texts to split.",_58input_types=["Document", "Data"],_58 ),_58MessageTextInput(_58name="separators",_58display_name="Separators",_58info='The characters to split on.\nIf left empty defaults to ["\\n\\n", "\\n", " ", ""].',_58is_list=True,_58 ),_58 ]_58_58def get_data_input(self) -> Any_58return self.data_input_58_58def build_text_splitter(self) -> TextSplitter_58if not self.separators_58separators: list[str] | None = None_58else_58# check if the separators list has escaped characters_58# if there are escaped characters, unescape them_58separators = [unescape_string(x) for x in self.separators]_58_58return RecursiveCharacterTextSplitter(_58separators=separators,_58chunk_size=self.chunk_size,_58chunk_overlap=self.chunk_overlap,_58 )
组件包含输入和输出的定义,这些定义在 UI 中以颜色编码的端口表示。
输入定义: 每个输入(例如 IntInput
或 DataInput
)都指定输入的类型、名称和显示属性,这些属性在组件的 UI 面板中显示为可配置字段。
方法: 组件有处理其功能的方法或函数。此组件有两个方法。get_data_input
从组件的输入中检索待分割的文本数据。这使得数据可供类使用。build_text_splitter
通过调用其父类的 build
方法来创建一个 RecursiveCharacterTextSplitter
对象。使用创建的分割器分割文本并将其传递给下一个组件。在流程中使用时,此组件
- 在 UI 中显示其配置选项。
- 根据输入类型验证用户输入。
- 使用配置的参数处理数据。
- 将结果传递给下一个组件。
冻结
组件运行后,冻结 锁定组件先前的输出状态,以防止其再次运行。
如果您期望组件产生一致的输出且无需再次运行,请点击 冻结。
启用 冻结 会冻结所选组件的所有上游组件。
其他组件选项
点击 全部 以查看组件的其他选项。
要修改组件的名称或描述,请双击 名称 或 描述 字段。组件描述支持 Markdown 语法。
组件快捷键
选择组件后,可以使用以下键盘快捷键。
菜单项 | Windows 快捷键 | Mac 快捷键 | 描述 |
---|---|---|---|
代码 | Space | Space | 打开组件的代码编辑器。 |
高级设置 | Ctrl + Shift + A | ⌘ + Shift + A | 打开组件的高级设置。 |
保存更改 | Ctrl + S | ⌘ + S | 保存对当前流程的更改。 |
保存组件 | Ctrl + Alt + S | ⌘ + Alt + S | 将当前组件保存到已保存的组件中。 |
复制 | Ctrl + D | ⌘ + D | 创建组件的副本。 |
复制 | Ctrl + C | ⌘ + C | 复制选定的组件。 |
剪切 | Ctrl + X | ⌘ + X | 剪切选定的组件。 |
粘贴 | Ctrl + V | ⌘ + V | 粘贴复制/剪切的组件。 |
文档 | Ctrl + Shift + D | ⌘ + Shift + D | 打开相关文档。 |
最小化 | Ctrl + . | ⌘ + . | 最小化当前组件。 |
冻结 | Ctrl + Shift + F | ⌘ + Shift + F | 冻结组件状态和上游组件。 |
下载 | Ctrl + J | ⌘ + J | 将组件下载为 JSON。 |
删除 | Backspace | Backspace | 删除组件。 |
分组 | Ctrl + G | ⌘ + G | 分组选定的组件。 |
撤消 | Ctrl + Z | ⌘ + Z | 撤消上一个操作。 |
重做 | Ctrl + Y | ⌘ + Y | 重做上次撤消的操作。 |
重做(备用) | Ctrl + Shift + Z | ⌘ + Shift + Z | 重做的备用快捷键。 |
分享组件 | Ctrl + Shift + S | ⌘ + Shift + S | 分享组件。 |
分享流程 | Ctrl + Shift + B | ⌘ + Shift + B | 分享整个流程。 |
切换侧边栏 | Ctrl + B | ⌘ + B | 显示/隐藏侧边栏。 |
搜索组件 | / | / | 将焦点移动到组件搜索栏。 |
工具模式 | Ctrl + Shift + M | ⌘ + Shift + M | 切换工具模式。 |
更新 | Ctrl + U | ⌘ + U | 更新组件。 |
打开实验场 | Ctrl + K | ⌘ + K | 打开实验场。 |
输出检查 | O | O | 打开输出检查。 |
运行 | P | P | 运行/执行流程。 |
API | R | R | 打开 API 视图。 |
在工作区中分组组件
多个组件可以组合成一个组件以便重用。这在将大型流程(例如带有向量数据库的 RAG)组合成单个组件时非常有用,并且可以节省空间。
- 按住 Shift 并拖动以选择组件。
- 选择 分组。这些组件合并成一个组件。
- 双击名称和描述以更改它们。
- 将分组的组件保存到侧边栏,以便以后使用。
组件版本
组件的初始状态存储在数据库中。一旦您将组件从侧边栏拖动到工作区,这两个组件就不再同步。
组件会保留初始化到工作区时的版本号。如果一个组件在拖动到工作区时是 1.0
版本,它将一直保持在 1.0
版本,直到您更新它。
查看并更新组件
当组件的工作区版本落后于数据库版本且有可用更新时,组件会显示通知。如果组件更新中存在潜在的破坏性更改,Langflow 会通过额外的对话框通知您。
破坏性更改会修改组件的输入和输出,可能会破坏您的流程或要求您重新连接组件边缘。
组件上的 更新就绪 通知表示组件更新不包含破坏性更改。要更新单个组件,请点击 更新。
有可用更新 通知表示组件更新包含潜在的破坏性更改。
- 要查看所有有待更新的组件,请在组件或对话框中点击 查看。更新组件 面板将出现。此面板列出了流程中具有破坏性更改的组件,并包含在更新前保存流程快照的选项。
- 要在更新单个组件之前保存流程,请启用 在更新前创建备份流程 选项。
- 要更新单个组件,请在列表中选择它们,然后点击 更新组件。您的组件将更新到当前版本。如果您创建了备份流程,它将与原始流程位于同一项目文件夹中,名称后附加
(backup)
。
组件侧边栏
组件按组件类型在侧边栏中列出。
组件捆绑包 是按提供者分组的组件。例如,诸如 RunnableExecutor 和 CharacterTextSplitter 之类的 Langchain 模块被分组在 Langchain 捆绑包下。
侧边栏包含组件 搜索 栏,并包含用于显示或隐藏 Beta 和 旧版 组件的标志。
Beta 组件仍在测试中,不适合生产工作负载。
旧版组件仍然可用,但不再受支持。