跳到主要内容

Langflow 组件概览

组件(component)是流程中的一个独立构建块,具有定义其功能的输入、输出、函数和参数。单个组件就像大型应用程序中的一个类。

要将组件添加到流程中,请将其从 组件 菜单拖动到 工作区

在本页了解有关组件及其工作原理的更多信息。

组件菜单

每个组件都是独一无二的,但顶部都有一个菜单栏,看起来像这样:

Open AI component

使用组件控件执行以下操作:

  • 代码 — 修改组件的 Python 代码并保存您的更改。
  • 控件 — 调整所有组件参数。
  • 冻结 — 组件运行后,锁定其先前的输出状态,以防止它再次运行。

点击  全部 以查看组件的其他选项。

要查看组件的输出和日志,请单击图标。

要运行单个组件,请单击 运行.

一个对勾 表示组件成功运行。

使用 运行 按钮运行单个组件与运行整个流程不同。在单个组件运行时,将调用 build_vertex 函数,该函数仅构建并运行通过 UI 直接提供的输入(inputs_dict 参数)的单个组件。VertexBuildResult 数据将传递给 build_and_run 方法,该方法调用组件的 build 方法并运行它。与运行完整流程不同,运行单个组件不会自动执行其上游依赖项。

组件端口

句柄()位于组件侧面,指示可以在该端口连接的输入和输出类型。将鼠标悬停在句柄上以查看连接详细信息。

Prompt component

组件端口数据类型颜色

下表列出了句柄颜色及其对应的数据类型:

数据类型句柄颜色句柄
BaseLanguageModel紫红色
数据红色
文档酸橙色
嵌入翠绿色
LanguageModel紫红色
消息靛蓝色
提示紫罗兰色
str靛蓝色
文本靛蓝色
未知灰色

组件代码

组件继承自一个定义其接口和行为的基础 Component 类。

例如,递归字符文本分割器LCTextSplitterComponent 类的子类。

递归字符文本分割器代码

_58
from typing import Any
_58
_58
from langchain_text_splitters import RecursiveCharacterTextSplitter, TextSplitter
_58
_58
from langflow.base.textsplitters.model import LCTextSplitterComponent
_58
from langflow.inputs.inputs import DataInput, IntInput, MessageTextInput
_58
from langflow.utils.util import unescape_string
_58
_58
class RecursiveCharacterTextSplitterComponent(LCTextSplitterComponent)
_58
display_name: str = "Recursive Character Text Splitter"
_58
description: str = "Split text trying to keep all related text together."
_58
documentation: str = "https://docs.langflow.org.cn/components-processing"
_58
name = "RecursiveCharacterTextSplitter"
_58
icon = "LangChain"
_58
_58
inputs = [
_58
IntInput(
_58
name="chunk_size",
_58
display_name="Chunk Size",
_58
info="The maximum length of each chunk.",
_58
value=1000,
_58
),
_58
IntInput(
_58
name="chunk_overlap",
_58
display_name="Chunk Overlap",
_58
info="The amount of overlap between chunks.",
_58
value=200,
_58
),
_58
DataInput(
_58
name="data_input",
_58
display_name="Input",
_58
info="The texts to split.",
_58
input_types=["Document", "Data"],
_58
),
_58
MessageTextInput(
_58
name="separators",
_58
display_name="Separators",
_58
info='The characters to split on.\nIf left empty defaults to ["\\n\\n", "\\n", " ", ""].',
_58
is_list=True,
_58
),
_58
]
_58
_58
def get_data_input(self) -> Any
_58
return self.data_input
_58
_58
def build_text_splitter(self) -> TextSplitter
_58
if not self.separators
_58
separators: list[str] | None = None
_58
else
_58
# check if the separators list has escaped characters
_58
# if there are escaped characters, unescape them
_58
separators = [unescape_string(x) for x in self.separators]
_58
_58
return RecursiveCharacterTextSplitter(
_58
separators=separators,
_58
chunk_size=self.chunk_size,
_58
chunk_overlap=self.chunk_overlap,
_58
)

组件包含输入和输出的定义,这些定义在 UI 中以颜色编码的端口表示。

输入定义: 每个输入(例如 IntInputDataInput)都指定输入的类型、名称和显示属性,这些属性在组件的 UI 面板中显示为可配置字段。

方法: 组件有处理其功能的方法或函数。此组件有两个方法。get_data_input 从组件的输入中检索待分割的文本数据。这使得数据可供类使用。build_text_splitter 通过调用其父类的 build 方法来创建一个 RecursiveCharacterTextSplitter 对象。使用创建的分割器分割文本并将其传递给下一个组件。在流程中使用时,此组件

  1. 在 UI 中显示其配置选项。
  2. 根据输入类型验证用户输入。
  3. 使用配置的参数处理数据。
  4. 将结果传递给下一个组件。

冻结

组件运行后,冻结 锁定组件先前的输出状态,以防止其再次运行。

如果您期望组件产生一致的输出且无需再次运行,请点击 冻结

启用 冻结 会冻结所选组件的所有上游组件。

其他组件选项

点击  全部 以查看组件的其他选项。

要修改组件的名称或描述,请双击 名称描述 字段。组件描述支持 Markdown 语法。

组件快捷键

选择组件后,可以使用以下键盘快捷键。

菜单项Windows 快捷键Mac 快捷键描述
代码SpaceSpace打开组件的代码编辑器。
高级设置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。
删除BackspaceBackspace删除组件。
分组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打开实验场。
输出检查OO打开输出检查。
运行PP运行/执行流程。
APIRR打开 API 视图。

在工作区中分组组件

多个组件可以组合成一个组件以便重用。这在将大型流程(例如带有向量数据库的 RAG)组合成单个组件时非常有用,并且可以节省空间。

  1. 按住 Shift 并拖动以选择组件。
  2. 选择 分组。这些组件合并成一个组件。
  3. 双击名称和描述以更改它们。
  4. 将分组的组件保存到侧边栏,以便以后使用。

组件版本

组件的初始状态存储在数据库中。一旦您将组件从侧边栏拖动到工作区,这两个组件就不再同步。

组件会保留初始化到工作区时的版本号。如果一个组件在拖动到工作区时是 1.0 版本,它将一直保持在 1.0 版本,直到您更新它。

查看并更新组件

当组件的工作区版本落后于数据库版本且有可用更新时,组件会显示通知。如果组件更新中存在潜在的破坏性更改,Langflow 会通过额外的对话框通知您。

破坏性更改会修改组件的输入和输出,可能会破坏您的流程或要求您重新连接组件边缘。

组件上的 更新就绪 通知表示组件更新不包含破坏性更改。要更新单个组件,请点击 更新

有可用更新 通知表示组件更新包含潜在的破坏性更改。

  1. 要查看所有有待更新的组件,请在组件或对话框中点击 查看更新组件 面板将出现。此面板列出了流程中具有破坏性更改的组件,并包含在更新前保存流程快照的选项。
  2. 要在更新单个组件之前保存流程,请启用 在更新前创建备份流程 选项。
  3. 要更新单个组件,请在列表中选择它们,然后点击 更新组件。您的组件将更新到当前版本。如果您创建了备份流程,它将与原始流程位于同一项目文件夹中,名称后附加 (backup)

组件侧边栏

组件按组件类型在侧边栏中列出。

组件捆绑包 是按提供者分组的组件。例如,诸如 RunnableExecutorCharacterTextSplitter 之类的 Langchain 模块被分组在 Langchain 捆绑包下。

侧边栏包含组件 搜索 栏,并包含用于显示或隐藏 Beta旧版 组件的标志。

Beta 组件仍在测试中,不适合生产工作负载。

旧版组件仍然可用,但不再受支持。

Search