Blaflow 组件概述
组件是流程中的单个构建块,具有定义其功能的输入、输出、函数和参数。单个组件就像大型应用程序中的一个类。
要将组件添加到流程中,请将其从组件菜单拖到工作区。
在本页面上了解更多关于组件及其工作原理的信息。
组件菜单
每个组件都是独特的,但所有组件在顶部都有一个菜单栏,如下所示:

使用组件控件可以执行以下操作:
- 代码 — 修改组件的 Python 代码并保存更改。
- 控件 — 调整所有组件参数。
- 冻结 — 组件运行后,锁定其先前的输出状态以防止重新运行。
点击 全部 查看组件的其他选项。
要查看组件的输出和日志,请点击 图标。
要运行单个组件,请点击 播放。
对勾 表示组件运行成功。
使用播放按钮运行单个组件与运行整个流程不同。在单个组件运行中,调用build_vertex函数,该函数仅构建和运行单个组件,并通过 UI 提供直接输入(inputs_dict参数)。VertexBuildResult数据传递给build_and_run方法,该方法调用组件的build方法并运行它。与运行完整流程不同,运行单个组件不会自动执行其上游依赖项。
组件端口
组件侧面的把手()表示可以在该端口连接的输入和输出类型。将鼠标悬停在把手上可查看连接详情。
组件端口数据类型颜色
下表列出了把手颜色及其对应的数据类型:
| 数据类型 | 把手颜色 | 把手 |
|---|---|---|
| BaseLanguage 模式 l | 紫红色 | |
| Data | 红色 | |
| Document | 酸橙色 | |
| 嵌入 | 翠绿色 | |
| Language 模式 l | 紫红色 | |
| Message | 靛蓝色 | |
| 提示词 | 紫罗兰色 | |
| str | 靛蓝色 | |
| Text | 靛蓝色 | |
| unknown | 灰色 |
组件代码
组件继承自定义其接口和行为的基类Component。
_58from typing import Any_58_58from langchain_text_splitters import RecursiveCharacterTextSplitter, TextSplitter_58_58from blaflow.base.textsplitters.model import LCTextSplitterComponent_58from blaflow.inputs.inputs import DataInput, IntInput, MessageTextInput_58from blaflow.utils.util import unescape_string_58_58class 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.blaflow.com/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 中以颜色编码的端口表示。
输入定义: 每个输入(如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 | 打开 playground。 |
| 输出检查 | O | O | 打开输出检查。 |
| 播放 | P | P | 播放/执行流程。 |
| API | R | R | 打开 API 视图。 |
在工作区中分组组件
多个组件可以组合成一个组件以供重用。这在将大型流程(例如带有向量数据库的 RAG)组合成单个组件并节省空间时很有用 。
- 按住Shift并拖动以选择组件。
- 选择分组。 组件合并为单个组件。
- 双击名称和描述以更改它们。
- 将分组的组件保存到侧边栏以供以后使用。
组件版本
组件的初始状态存储在数据库中。一旦您将组件从侧边栏拖到工作区,这两个组件就不再同步。
组件保持其初始化到工作区时的版本号。如果组件在拖到工作区时版本为1.0,它将保持1.0版本,直到您更新它。
当组件的工作区版本落后于数据库版本且有更新可用时,Blaflow 会通知您。
点击 更新组件 图标将组件更新到最新版本。这将更改组件的代码,因此您可以通过在更新前后检查其 Python 代码来验证组件是否已更新。
组件侧边栏
组件按组件类型在侧边栏中列出。
组件包是按提供商分组的组件。例如,Langchain 模块如RunnableExecutor和CharacterTextSplitter在Langchain包下分组。
侧边栏包括组件