组件概述
组件是构建流的基石。就像应用程序中的类一样,每个组件都针对特定的用例或集成而设计。
Langflow 为工作区提供键盘快捷键。
在 Langflow 顶栏中,点击您的个人资料图标,选择 Settings (设置),然后点击 Shortcuts (快捷键) 即可查看可用快捷键。
向流中添加组件
要向流中添加组件,请将组件从 Core components (核心组件) 或 Bundles (捆绑包) 菜单拖入 workspace (工作区)。
组件按类型或提供商分组,部分组件默认处于隐藏状态
-
Core components (核心组件):Langflow 的基础组件按用途分组,例如 Inputs and Outputs (输入与输出) 或 Data (数据)。这些组件要么提供通用功能(如循环和解析),要么提供支持多种第三方集成的单一组件。
-
Bundles (捆绑包):包含一个或多个支持特定第三方集成的组件,按服务提供商分组。
-
Legacy (遗留):这些组件默认隐藏。欲了解更多信息,请参阅 Legacy components (遗留组件)。
配置组件
将组件添加到流后,配置组件的参数并将其连接到流中的其他组件。
每个组件都有与其用途相关的输入、输出、参数和控件。默认情况下,组件仅显示必填项和常用选项。要访问其他设置和控件(包括元设置),请使用 组件页眉菜单。
组件页眉菜单
要访问组件的页眉菜单,请在工作区中点击该组件。

页眉菜单上直接提供了一些选项。例如:
- Code (代码):通过直接编辑组件的 Python 代码来修改组件设置。
- Controls (控件):调整所有组件参数,包括默认隐藏的可选设置。
- Tool Mode (工具模式):将组件与 Agent (智能体) 组件结合使用时,请启用此选项。
对于所有其他选项,包括 Delete (删除) 和 Duplicate (复制) 控件,请点击 Show More (显示更多).
重命名组件
要修改组件的名称或描述,请在工作区点击该组件,然后点击 Edit (编辑)。组件描述支持 Markdown 语法。
运行组件
要运行单个组件,请点击 Run component (运行组件)。Last Run (上次运行) 的值表示组件已成功运行。
运行单个组件与运行整个流不同。在单组件运行时,系统会调用 build_vertex 函数,该函数仅构建并运行由可视化编辑器直接提供输入(inputs_dict 参数)的单个组件。VertexBuildResult 数据会传递给 build_and_run 方法,该方法调用组件的 build 方法并执行。与运行整个流不同,运行单个组件不会自动执行其上游依赖项。
检查组件输出和日志
要查看单个组件的输出和日志,请点击 Inspect (检查).
冻结组件
冻结一个组件同时也会冻结该组件的所有上游组件。
如果您期望从某个组件及其所有上游组件获得一致的输出,并且只需要运行这些组件一次,请使用冻结选项。
冻结组件可防止该组件及其所有上游组件重新运行,并保留这些组件的最后输出状态。未来的流运行将直接使用保留的输出。
要冻结组件,请在工作区点击该组件以调出页眉菜单,点击 Show More (显示更多),然后选择 Freeze (冻结)。
组件端口
在每个组件的边缘,都有类似的圆形端口图标。这些表示组件的连接点或端口。
端口接受特定数据类型的输入或生成该类型的输出。您可以从端口所在的字段或从 端口颜色 推断数据类型。例如,System Message (系统消息) 字段接受 消息数据,如蓝色端口图标所示.

构建流时,将输出端口连接到相同类型(颜色)的输入端口,以便在两个组件之间传输该类型的数据。有关各数据类型的编程表示信息,请参阅 Langflow 数据类型。
-
在工作区中,将鼠标悬停在端口上可查看该端口的连接详细信息。点击端口可 Search (搜索) 兼容的组件。
-
如果两个组件的数据类型不兼容,您可以使用处理组件(如 Type Convert 组件)在组件之间转换数据。
动态端口
某些组件的端口是动态添加或删除的。例如,Prompt Template (提示词模板) 组件接受 包裹在花括号中的输入,当在 Template (模板) 字段中检测到花括号包裹的值时,就会开启新的端口。

输出类型选择
所有组件产生的输出要么发送到流中的另一个组件,要么作为最终流结果返回。
某些组件可以产生多种类型的输出
-
如果组件同时发出所有类型的输出,则该组件在可视化编辑器中具有多个输出端口。在组件代码中,这由
group_outputs=True表示。 -
如果组件仅发出一种类型,您必须通过点击输出端口附近的输出标签并选择所需的输出类型。在组件代码中,这由
group_outputs=False或省略group_outputs参数表示。
例如,语言模型组件可以输出 Model Response (模型响应) 或 Language Model (语言模型)。Model Response 输出产生 Message 数据,可以传递给另一个组件的 Message 端口。Language Model 输出必须连接到具有 Language Model 输入的组件,例如 Structured Output 组件,该组件利用连接的 LLM 来驱动接收组件的推理。

端口颜色
组件端口颜色指示该端口摄取或发出的数据类型。例如,Message 端口接受或发出 Message 数据。
下表列出了组件数据类型及其对应的端口颜色
| 数据类型 | 端口颜色 | 端口图标示例 |
|---|---|---|
| 数据 (Data) | 红色 | |
| 数据帧 (DataFrame) | 粉色 | |
| 嵌入 (Embeddings) | 翠绿色 | |
| 语言模型 (LanguageModel) | 紫红色 | |
| 记忆 (Memory) | 橙色 | |
| 消息 (Message) | 靛蓝色 | |
| 工具 (Tool) | 青色 | |
| 未知或多种类型 | 灰色 |
组件代码
您可以在 workspace (工作区) 中编辑组件,也可以在代码中编辑。编辑流时,选择一个组件,然后点击 Code (代码) 以查看并编辑组件底层的 Python 代码。
所有组件都有底层代码,决定了您如何配置它们以及它们可以执行的操作。在创建和运行流的过程中,组件代码起以下作用:
- 决定在可视化编辑器中显示哪些配置选项。
- 根据组件定义的输入类型验证输入。
- 使用配置的参数、方法和函数处理数据。
- 将结果传递给流中的下一个组件。
所有组件都继承自基础 Component 类,该类定义了组件的接口和行为。例如,Recursive Character Text Splitter 组件 是 LCTextSplitterComponent 类的子类。
每个组件的代码都包含输入和输出的定义,这些定义在工作区中表示为 组件端口。例如,RecursiveCharacterTextSplitter 有四个输入。每个输入定义指定了输入类型(如 IntInput),以及该特定输入的编码名称、显示名称、描述和其他参数。这些值决定了组件的设置,如可视化编辑器中的显示名称和工具提示。
此外,组件具有处理其功能的方法或函数。例如,RecursiveCharacterTextSplitter 有两个方法:
get_data_input 方法从组件输入中检索要分割的文本,使其在类中可用。build_text_splitter 方法通过调用其父类的 build 方法创建一个 RecursiveCharacterTextSplitter 对象。然后,文本被创建的分割器分割并传递给下一个组件。
组件版本
组件版本和状态存储在 Langflow 内部数据库中。当您向流中添加组件时,您是基于数据库信息创建了一个该组件的独立副本。这些副本与主 Langflow 数据库分离,不会随 Langflow 版本的升级而自动同步更新。
换句话说,组件的单个实例会保留其被添加到特定流那一刻的版本号和状态。例如,如果您添加组件时其版本为 1.0,除非您手动更新,否则它在该流中将始终保持为 1.0 版本。
更新组件版本
在工作区编辑流时,如果组件的工作区版本落后于数据库版本,Langflow 会通知您,以便您更新该组件:
-
Update ready (更新就绪):表示组件更新不包含破坏性变更。
-
Update available (有可用更新):表示组件更新可能包含破坏性变更。
破坏性变更会修改组件的输入和输出,导致组件断开连接并破坏流。更新组件后,您可能需要重新编辑组件设置或重新连接端口。
有两种更新组件的方法:
-
点击 Update (更新) 以更新单个组件。推荐用于无破坏性变更的更新。
-
点击 Review (查看) 以查看所有可用更新,并在更新前创建快照。推荐用于包含破坏性变更的更新。
要在更新组件前保存流的快照,请启用 Create backup flow before updating (更新前创建备份流)。备份流将存储在与原流相同的项目文件夹中,后缀为
(backup)。要更新特定组件,请选择要更新的组件,然后点击 Update Components (更新组件)。
组件将根据您运行的 Langflow 版本更新到最新的可用版本。
组合组件
多个组件可以组合成一个单一组件以便重复使用。这对于通过合并相关组件(例如 RAG Agent 及其关联的工具或向量库组件)来组织大型流非常有用。
-
按住 Shift 键,然后点击并拖动以高亮显示要合并的所有组件。组件必须完全位于选择区域内才能被合并。
或者,要逐个选择组件进行合并,请在 Windows 上按住 Ctrl 或在 Mac 上按住 Cmd,然后点击每个组件将其添加到组中。
-
松开鼠标和键盘,然后点击 Group (组合) 将组件合并为单个组组件。
组合后的组件作为单一组件进行配置和管理,包括其名称、代码和设置。
要取消组合,请在工作区点击该组件以调出页眉菜单,点击 Show More (显示更多),然后选择 Ungroup (取消组合)。
如果您想在其他流中重用此组合,请在工作区点击该组件调出页眉菜单,点击 Show More (显示更多),然后选择 Save (保存) 将其作为自定义组件保存到 Core components (核心组件) 菜单中。
遗留组件
遗留组件不再受支持,并可能在未来的版本中移除。您可以继续在现有流中使用它们,但建议您尽快将其替换为受支持的组件。流中组件上的 Legacy (遗留) 横幅包含了建议的替代方案。只要有可能,发布说明和 Langflow 文档中也会提供这些信息。
如果您不确定如何替换遗留组件,请: 按提供商、服务或组件名称 Search (搜索) 组件。该组件可能已被废弃,取而代之的是全新的组件、类似的组件或不同类别下的新版本组件。
如果没有明显的替代品,请考虑是否可以调整另一个组件来适应您的用例。例如,许多 Core components (核心组件) 提供了可以支持多个提供商和用例的通用功能,例如 API Request (API 请求) 组件。
如果这些选项都不可行,您可以使用遗留组件的代码来创建您自己的自定义组件,或者针对该遗留组件 发起讨论。
为了不鼓励在新的流中使用遗留组件,这些组件默认处于隐藏状态。在可视化编辑器中,您可以点击 Component settings (组件设置) 来切换 Legacy (遗留) 过滤器。