解析器
Parser 组件用于从结构化数据(DataFrame 或 Data)中提取文本。
你既可以基于模板生成文本,也可以直接把输入整体字符串化。
最终输出为一个包含解析结果的 Message。
它是流程中非常实用的数据提取与重组组件。 以下场景都可以参考它的用法:
- Batch Run 组件示例
- Structured Output 组件示例
- Financial Report Parser 模板
- 通过 Webhook 触发流程
- 创建向量 RAG 聊天机器人

解析模式
Parser 组件有两种模式:Parser 与 Stringify。
- Parser(模板)模式
- Stringify 模式
在 Parser 模式中,你可以定义一个文本模板,模板里既可以包含固定字符串,也可以包含用于提取键值的变量。
你可以在模板任意位置使用大括号定义变量。
变量名必须与输入 DataFrame 或 Data 中的键一致,例如列名。
例如,{name} 会提取 name 这个键的值。
有关 DataFrame 与 Data 的内容结构,请参阅SkillFlaw 数据类型。
如果你的模板同时包含字面文本和变量,你可以使用双层花括号来转义字面花括号,从而避免该文本被解释为变量。
例如:This is a template with {{literal text in curly braces}} and a {variable}。
流程运行时,Parser 会遍历输入数据,并为每条解析结果生成一个 Message。
例如,对 DataFrame 进行解析时,会按行生成多个 Message,每条消息都填充该行对应字段的值。
员工摘要模板
下面这个模板会把员工数据转换成自然语言摘要,描述其入职时间与当前岗位:
_10{employee_first_name} {employee_last_name} was hired on {start_date}._10Their current position is {job_title} ({grade}).
生成的 Message 会用实际提取值替换变量,例如:
_10Renlo Kai was hired on 11-July-2017._10Their current position is Software Engineer (Principal).
员工档案模板
下面这个模板使用 Markdown 和员工数据生成一份员工档案:
_10# Employee Profile_10## Personal Information_10- **Name:** {name}_10- **ID:** {id}_10- **Email:** {email}
流程运行时,Parser 会遍历 DataFrame 的每一行,把模板变量替换为对应字段值,并把每一行的结果输出为一个 Message。
以下是 Parser 模式下可用的参数。
有些参数在可视化编辑器中默认处于隐藏状态。 你可以通 过组件标题栏菜单中的 控件 来修改全部参数。
| Name | Display Name | Info |
|---|---|---|
| input_data | Data or DataFrame | 输入参数。要解析的 Data 或 DataFrame。 |
| pattern | Template | 输入参数。解析模板,支持纯文本和键变量({KEY_NAME})。详见上方示例。 |
| sep | Separator | 输入参数。定义多行/多条输出间的分隔符。默认值为 \n(换行)。 |
| clean_data | Clean Data | 输入参数。是否清除 DataFrame 或 Data 中每个单元格/键里的空行和空值。默认启用(true)。 |
Stringify 模式会直接把整个输入转成文本。 该模式不支持模板,也不支持选择特定键。
以下是 Stringify 模式下可用的参数。
有些参数在可视化编辑器中默认处于隐藏状态。 你可以通过组件标题栏菜单中的 控件 来修改全部参数。
| Name | Display Name | Info |
|---|---|---|
| input_data | Data or DataFrame | 输入参数。要解析的 Data 或 DataFrame。 |
| sep | Separator | 输入参数。定义多行/多条输出间的分隔符。默认值为 \n(换行)。 |
| clean_data | Clean Data | 输入参数。是否清除 DataFrame 或 Data 中每个单元格/键里的空行和空值。默认启用(true)。 |
测试与排查解析结果
如需测试 Parser,点击 Run component,再点击 Inspect output,查看解析后的 Message。
如果你希望在 Playground 中直接看到结果,也可以把它连接到 Chat Output。
如果 Parser 输出的 Message 中存在空值或异常值,通常意味着:输入与解析模式之间的映射有误、源数据本身有缺失,或输入内容并不适合直接抽取为纯文本。
例如,假设你使用如下模板解析某个 DataFrame:
_10{employee_first_name} {employee_last_name} is a {job_title} ({grade}).
如果某一行中 employee_first_name 为空、grade 为 null,则可能生成类似这样的 Message:
_10 Smith is a Software Engineer (null).
要排查这类问题,可以从以下几方面入手:
-
确认模板中的变量名与传入 Parser 的
Data或DataFrame键名一致。 如果你想直接查看传入 Parser 的数据,请在上游组件上点击 Inspect output。 -
检查源数据本身是否存在缺失值或错误值。 你可以通过多种方式处理这些问题:
- 直接修正源数据。
- 在数据进入 Parser 前,用其他组件进行补全、转换或过滤。 具体可根据目标选择,例如 Data Operations 组件、Structured Output 组件 或 Smart Transform 组件。
- 启用 Parser 的 Clean Data 参数,跳过空白行或空内容。