Skip to main content

处理

处理组件在流程中处理和转换数据。

在流程中使用处理组件

此流程中的 文本分割 处理组件将传入的数据分割成块,以便嵌入到向量存储组件中。

该组件提供对块大小、重叠和分隔符的控制,这些会影响向量存储检索结果中的上下文和粒度。

修改元数据

该组件修改输入对象的元数据。它可以添加新的元数据、更新现有元数据,以及删除指定的元数据字段。该组件适用于消息数据对象,也可以从用户提供的文本创建新的数据对象。

输入

名称显示名称信息
input_value输入要添加元数据的对象
text_in用户文本文本输入;该值将位于数据对象的 'text' 属性中。空文本条目将被忽略。
metadata元数据要添加到每个对象的元数据
remove_fields要删除的字段要删除的元数据字段

输出

名称显示名称信息
data数据输入对象列表,每个对象都添加了元数据

合并文本

该组件使用指定的分隔符将两个文本源连接成单个文本块。

输入

名称显示名称信息
first_text第一个文本要连接的第一个文本输入。
second_text第二个文本要连接的第二个文本输入。
delimiter分隔符用于分隔两个文本输入的字符串。默认为空格。

输出

名称显示名称信息
message消息包含合并文本的消息对象。

合并数据

该组件将多个数据源合并成单个统一的数据对象。

该组件遍历输入的数据对象列表,将它们合并成单个数据对象。如果输入列表为空,则返回空数据对象。如果只有一个输入数据对象,则原样返回该对象。合并过程使用加法运算符来组合数据对象。

输入

名称显示名称信息
data数据要合并的数据对象列表。

输出

名称显示名称信息
merged_data合并数据包含所有输入数据对象组合信息的单个数据对象。

DataFrame操作

该组件对 Pandas DataFrame执行以下操作:

操作描述必需输入
添加列添加具有常量值的新列new_column_name, new_column_value
删除列删除指定列column_name
过滤基于列值过滤行column_name, filter_value
头部返回前 n 行num_rows
重命名列重命名现有列column_name, new_column_name
替换值替换列中的值column_name, replace_value, replacement_value
选择列选择特定列columns_to_select
排序按列排序 DataFramecolumn_name, ascending
尾部返回后 n 行num_rows

输入

名称显示名称信息
dfDataFrame要操作的输入 DataFrame。
operation操作选择要执行的 DataFrame 操作。选项:添加列、删除列、过滤、头部、重命名列、替换值、选择列、排序、尾部
column_name列名用于操作的列名。
filter_value过滤值用于过滤行的值。
ascending升序排序是否按升序排序。
new_column_name新列名重命名或添加列时的新列名。
new_column_value新列值用于填充新列的值。
columns_to_select要选择的列要选择的列名列表。
num_rows行数要返回的行数(用于头部/尾部)。默认值:5
replace_value要替换的值要在列中替换的值。
replacement_value替换值要替换为的值。

输出

名称显示名称信息
outputDataFrame操作后的结果 DataFrame。

消息转数据

important

该组件处于遗留状态,这意味着从 Blaflow 1.3 版本开始不再进行积极开发。 请改用解析器组件。

important

在 Blaflow 1.1.3 版本之前,该组件名为 Parse Data

ParseData 组件使用指定的模板将数据对象转换为纯文本。 该组件将结构化数据转换为人类可读的文本格式,允许通过使用模板自定义输出。

输入

名称显示名称信息
data数据要转换为文本的数据。
template模板用于格式化数据的模板。它可以包含键 {text}{data} 或数据中的任何其他键。
sep分隔符用于分隔多个数据项的分隔符。

输出

名称显示名称信息
text文本作为消息对象的结果格式化文本字符串。

过滤数据

important

该组件从 Blaflow 1.1.3 版本开始处于测试状态,尚未完全支持。

该组件基于键列表过滤数据对象。

输入

名称显示名称信息
data数据要过滤的数据对象。
filter_criteria过滤条件用于过滤的键列表。

输出

名称显示名称信息
filtered_data过滤后的数据过滤或转换后的数据对象
dataframeDataFrame过滤后的数据,以DataFrame形式展示。

过滤值

important

该组件从 Blaflow 1.1.3 版本开始处于测试状态,尚未完全支持。

过滤值组件基于指定的键、过滤值和比较运算符过滤数据项列表。

输入

名称显示名称信息
input_data输入数据要过滤的数据项列表。
filter_key过滤键用于过滤的键,例如 'route'。
filter_value过滤值用于过滤的值,例如 'CMIP'。
operator比较运算符用于比较值的运算符。

输出

名称显示名称信息
filtered_data过滤后的数据过滤后的数据项列表。

Lambda 过滤器

该组件使用 LLM 生成用于过滤或转换结构化数据的 Lambda 函数。

要使用 Lambda 过滤器组件,您必须将其连接到语言模型组件,该组件使用它来基于指令字段中的自然语言指令生成函数。

此示例从 https://jsonplaceholder.typicode.com/users API 端点获取 JSON 数据。 Lambda 过滤器组件中的指令字段指定任务 extract emails。 连接的 LLM 基于指令创建过滤器,并成功从 JSON 数据中提取电子邮件地址列表。

输入

名称显示名称信息
data数据要使用 Lambda 函数过滤或转换的结构化数据。
llm语言模型模型组件的连接端口。
filter_instruction指令如何使用 Lambda 函数过滤或转换数据的自然语言指令,例如 Filter the data to only include items where the 'status' is 'active'.
sample_size样本大小对于大型数据集,从数据集头部和尾部采样的字符数。
max_size最大大小数据被视为"大型"的字符数,这会触发按 sample_size 值进行采样。

输出

名称显示名称信息
filtered_data过滤后的数据过滤或转换后的数据
dataframeDataFrame过滤后的数据,以DataFrame形式展现。

LLM 路由器

该组件会根据 OpenRouter 模型规范,将请求路由到最合适的 LLM。

输入

名称显示名称信息
models语言模型可路由的 LLM 列表
input_value输入需要路由的输入消息
judge_llm判断 LLM用于评估并选择最合适模型的 LLM
optimization优化优化偏好(质量/速度/成本/平衡)

输出

名称显示名称信息
output输出选定模型的响应
selected_model选定的模型被选中的模型名称

消息转数据

该组件将消息对象转换为数据对象。

输入

名称显示名称信息
message消息要转换为数据对象的消息对象。

输出

名称显示名称信息
data数据转换后的数据对象。

解析器

该组件使用模板将 DataFrameData 对象格式化为文本,并可选择直接将输入转换为字符串(stringify)。

使用本组件时,在 模版 中为变量创建占位符,方式与提示词组件一致。对于 DataFrame,使用列名,如 Name: {Name};对于 数据 对象,使用 {text}

如需与结构化输出组件配合使用,请按如下步骤操作:

  1. 结构化输出组件的DataFrame输出连接到解析器组件的DataFrame输入。
  2. 文件组件连接到结构化输出组件的 Message 输入。
  3. OpenAI 模型组件的Language 模式 l输出连接到结构化输出组件的Language 模式 l输入。

流程示意如下:

解析器组件连接 OpenAI 和结构化输出

  1. 结构化输出组件中点击 Open Table,打开表格结构面板,表格包含 NameDescriptionTypeMultiple 等行。
  2. 创建与文件加载器数据对应的表格。例如,员工表可包含 idnameemail,类型均为 string
  3. 解析器组件的模版字段中,输入用于将结构化输出组件数据解析为结构化文本的模板。变量用法同提示词组件。 例如,Markdown 格式的员工表:

_10
# 员工信息
_10
## 个人信息
_10
- **姓名:** {name}
_10
- **ID:** {id}
_10
- **邮箱:** {email}

  1. 解析器组件中点击 运行流程。
  2. 解析器组件中点击 查看解析结果。
  3. 可选:连接聊天输出组件,打开试运行查看输出。

更多用法可参考 Market Research 模板流程。

输入

名称显示名称信息
mode模式"解析器" 与 "字符串" 模式切换。"字符串"模式将输入直接转为字符串。
pattern模板使用花括号变量的格式化模板。DataFrame用列名,如 Name: {Name},Data 对象用 {text}
input_dataData 或 DataFrame要解析的输入,支持DataFrame或 Data 对象。
sep分隔符用于分隔行/项的字符串,默认换行。
clean_data清理数据启用 stringify 时,移除空行和空数据。

输出

名称显示名称信息
parsed_text解析后的文本解析后格式化为消息的文本。

保存到文件

该组件可将DataFrame、数据或消息保存为多种文件格式。

  1. 在流程中,将输出DataFrame、数据或消息 的组件连接到保存到文件组件的输入。 下图为 Webhook 组件连接两个保存到文件组件,演示不同输出。

Webhook 连接两个保存到文件组件

  1. 保存到文件组件的输入类型字段选择输入类型。 示例中选择 WebhookData
  2. 文件格式字段选择保存的文件类型。 示例中一个保存为 .md,另一个为 .xlsx
  3. 文件路径字段输入保存路径。 示例中分别为 ./output/employees.xlsx./output/employees.md,路径相对 Blaflow 运行目录。 支持相对和绝对路径,自动创建所需目录。
    tip

    file_path 格式不被接受,组件会自动补全正确格式。例如选择 csv,但路径为 ./output/test.txt,则实际保存为 ./output/test.txt.csv,避免文件损坏。

  4. Webhook 发送包含 JSON 数据的 POST 请求,替换 YOUR_FLOW_ID 为实际流程 ID。 示例使用默认 Blaflow 服务器地址:

_10
curl -X POST "http://127.0.0.1:7860/api/v1/webhook/YOUR_FLOW_ID" \
_10
-H 'Content-Type: application/json' \
_10
-d '{
_10
"Name": ["Alex Cruz", "Kalani Smith", "Noam Johnson"],
_10
"Role": ["Developer", "Designer", "Manager"],
_10
"Department": ["Engineering", "Design", "Management"]
_10
}'

  1. 在本地文件系统打开 outputs 目录,可看到生成的 .xlsx.md 文件。

_10
| Name | Role | Department |
_10
|:-------------|:----------|:-------------|
_10
| Alex Cruz | Developer | Engineering |
_10
| Kalani Smith | Designer | Design |
_10
| Noam Johnson | Manager | Management |

文件输入格式选项

对于 DataFrameData 输入,支持生成:

  • csv
  • excel
  • json
  • markdown
  • pdf

对于 Message 输入,支持生成:

  • txt
  • json
  • markdown
  • pdf

输入

名称显示名称信息
input_type输入类型选择要保存的输入类型。
dfDataFrame要保存的DataFrame。
dataData要保存的 Data 对象。
message消息要保存的消息。
file_format文件格式选择保存输入的文件格式。
file_path文件路径包含文件名和扩展名的完整路径。

输出

名称显示名称信息
confirmation确认信息保存文件后的确认信息

文本分割

该组件可根据指定规则将文本分割为多个片段。

输入

名称显示名称信息
data_inputs输入文档要分割的数据,支持数据DataFrame对象。
chunk_overlap块重叠相邻片段之间重叠的字符数。默认:200
chunk_size块大小每个片段的最大字符数。默认:1000
separator分隔符用于分割的字符。默认:换行。
text_key文本键用于文本列的键(高级)。默认:text

输出

名称显示名称信息
chunks分割后各片段组成的数据列表。
dataframeDataFrame分割后各片段组成的DataFrame列表。

更新数据

该组件可动态更新或追加指定字段的数据。

输入

名称显示名称信息
old_dataData要更新的记录
number_of_fields字段数量要添加的字段数量(最多 15)
text_key文本键文本内容的键
text_key_validator文本键验证器校验文本键是否存在

输出

名称显示名称信息
data数据更新后的数据对象。