Skip to main content

Blaflow 组件概述

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

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

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

组件菜单

每个组件都是独特的,但所有组件在顶部都有一个菜单栏,如下所示:

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

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

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

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

要运行单个组件,请点击 播放

对勾 表示组件运行成功。

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

组件端口

组件侧面的把手()表示可以在该端口连接的输入和输出类型。将鼠标悬停在把手上可查看连接详情。

提示词 component

组件端口数据类型颜色

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

数据类型把手颜色把手
BaseLanguage 模式 l紫红色
Data红色
Document酸橙色
嵌入翠绿色
Language 模式 l紫红色
Message靛蓝色
提示词紫罗兰色
str靛蓝色
Text靛蓝色
unknown灰色

组件代码

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


_58
from typing import Any
_58
_58
from langchain_text_splitters import RecursiveCharacterTextSplitter, TextSplitter
_58
_58
from blaflow.base.textsplitters.model import LCTextSplitterComponent
_58
from blaflow.inputs.inputs import DataInput, IntInput, MessageTextInput
_58
from blaflow.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.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 中以颜色编码的端口表示。

输入定义: 每个输入(如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打开 playground。
输出检查OO打开输出检查。
播放PP播放/执行流程。
APIRR打开 API 视图。

在工作区中分组组件

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

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

组件版本

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

组件保持其初始化到工作区时的版本号。如果组件在拖到工作区时版本为1.0,它将保持1.0版本,直到您更新它。

当组件的工作区版本落后于数据库版本且有更新可用时,Blaflow 会通知您。 点击 更新组件 图标将组件更新到最新版本。这将更改组件的代码,因此您可以通过在更新前后检查其 Python 代码来验证组件是否已更新。

组件侧边栏

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

组件是按提供商分组的组件。例如,Langchain 模块如RunnableExecutorCharacterTextSplitterLangchain包下分组。

侧边栏包括组件搜索栏,并包括显示或隐藏BetaLegacy组件的标志。

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

Legacy组件可供使用但不再受支持。