跳到主要内容

数据操作 (Data Operations)

数据操作 (Data Operations) 组件对 Data 对象执行操作,包括从 Data 中提取、过滤和编辑键值对。 有关所有选项,请参阅 可用数据操作。 输出是一个包含运行所选操作后修改后的数据的新 Data 对象。

在流中使用数据操作组件

以下示例演示了如何在流中使用 数据操作 组件来处理来自 webhook 负载的数据:

  1. 创建一个包含 Webhook 组件和 数据操作 组件的流,然后将 Webhook 组件的输出连接到 数据操作 组件的 数据 (Data) 输入。

    数据操作 组件中的所有操作都要求至少有一个来自其他组件的 Data 输入。 如果前一个组件不产生 Data 输出,您可以使用其他组件(如 类型转换 (Type Convert) 组件)在将数据传递给 数据操作 组件之前重新格式化数据。 或者,您可以考虑使用专门设计用于处理原始数据类型的组件,例如 解析器 (Parser) 组件DataFrame 操作 (DataFrame Operations) 组件

  2. 操作 (Operations) 字段中,选择您想要对传入的 Data 执行的操作。 在本例中,选择 选择键 (Select Keys) 操作。

    提示

    您只能选择一个操作。 如果您需要对数据执行多个操作,可以将多个 数据操作 组件链在一起以按顺序执行每个操作。 对于更复杂的多步操作,请考虑使用类似 智能转换 (Smart Transform) 组件 的组件。

  3. 选择键 (Select Keys) 下,添加 nameusernameemail 键。 点击 添加更多 (Add more) 为每个键添加一个字段。

    在本例中,假设 webhook 将接收包含 nameusernameemail 键的固定负载。 选择键 操作会从每个传入的负载中提取这些键的值。

  4. 可选:如果您想在 游乐场 (Playground) 中查看输出,请将 数据操作 组件的输出连接到 聊天输出 (Chat Output) 组件。

    包含 Webhook、数据��操作和聊天输出组件的流

  5. 要测试该流,请向流的 webhook 端点发送以下请求。 有关 webhook 端点的更多信息,请参阅 使用 Webhook 触发流


    _26
    curl -X POST "http://$LANGFLOW_SERVER_URL/api/v1/webhook/$FLOW_ID" \
    _26
    -H "Content-Type: application/json" \
    _26
    -H "x-api-key: $LANGFLOW_API_KEY" \
    _26
    -d '{
    _26
    "id": 1,
    _26
    "name": "Leanne Graham",
    _26
    "username": "Bret",
    _26
    "email": "Sincere@april.biz",
    _26
    "address": {
    _26
    "street": "Main Street",
    _26
    "suite": "Apt. 556",
    _26
    "city": "Springfield",
    _26
    "zipcode": "92998-3874",
    _26
    "geo": {
    _26
    "lat": "-37.3159",
    _26
    "lng": "81.1496"
    _26
    }
    _26
    },
    _26
    "phone": "1-770-736-8031 x56442",
    _26
    "website": "hildegard.org",
    _26
    "company": {
    _26
    "name": "Acme-Corp",
    _26
    "catchPhrase": "Multi-layered client-server neural-net",
    _26
    "bs": "harness real-time e-markets"
    _26
    }
    _26
    }'

  6. 要查看 选择键 操作产生的 Data,请执行以下操作之一:

    • 如果您连接了 聊天输出 组件,请打开 游乐场 以查看作为聊天消息的结果。
    • 点击 数据操作 组件上的 检查输出 (Inspect output)

数据操作参数

许多参数根据选定的 操作 (Operation) (operation) 条件性显示。

名称显示名称信息
data数据 (Data)输入参数。要操作的 Data 对象。
operation操作 (Operation)输入参数。要对数据执行的操作。请参阅 可用数据操作
select_keys_input选择键 (Select Keys)输入参数。要从数据中选择的键列表。
filter_key过滤键 (Filter Key)输入参数。用于过滤的键。
operator比较运算符 (Comparison Operator)输入参数。用于比较值的运算符。
filter_values过滤值 (Filter Values)输入参数。用于过滤的值列表。
append_update_data追加或更新 (Append or Update)输入参数。用于追加或更新现有数据的数据。
remove_keys_input移除键 (Remove Keys)输入参数。要从数据中移除的键列表。
rename_keys_input重命名键 (Rename Keys)输入参数。要在数据中重命名的键列表。
mapped_json_display要映射的 JSON (JSON to Map)输入参数。用于路径选择的 JSON 结构。仅适用于 路径选择 (Path Selection) 操作。更多信息请参阅 路径选择操作示例
selected_key选择路径 (Select Path)输入参数。用于提取值的 JSON 路径表达式。仅适用于 路径选择 (Path Selection) 操作。更多信息请参阅 路径选择操作示例
queryJQ 表达式 (JQ Expression)输入参数。用于高级 JSON 过滤和转换的 jq 表达式。仅适用于 JQ 表达式 (JQ Expression) 操作。更多信息请参阅 JQ 表达式操作示例

可用数据操作

operations 输入参数的选项如下。 所有操作均作用于传入的 Data 对象。

名称必需输入处理过程
选择键 (Select Keys)select_keys_input从数据中选择特定键。
字面量评估 (Literal Eval)将字符串值评估为 Python 字面量。
合并 (Combine)将多个数据对象合并为一个。
过滤值 (Filter Values)filter_key, filter_values, operator根据键值对过滤数据。
追加或更新 (Append or Update)append_update_data添加或更新键值对。
移除键 (Remove Keys)remove_keys_input从数据中移除指定的键。
重命名键 (Rename Keys)rename_keys_input重命名数据中的键。
路径选择 (Path Selection)mapped_json_display, selected_key使用路径表达式从嵌套 JSON 结构中提取值。
JQ 表达式 (JQ Expression)query使用 jq 语法执行高级 JSON 查询,用于过滤、投影和转换。

路径选择操作示例

使用“路径选择”操作,通过点符号路径从嵌套 JSON 结构中提取值。

  1. 操作 (Operations) 下拉菜单中,选择 路径选择 (Path Selection)

  2. 要映射的 JSON (JSON to Map) 字段中,输入您的 JSON 结构。

    本例使用以下 JSON 结构:


    _11
    {
    _11
    "user": {
    _11
    "profile": {
    _11
    "name": "John Doe",
    _11
    "email": "john@example.com"
    _11
    },
    _11
    "settings": {
    _11
    "theme": "dark"
    _11
    }
    _11
    }
    _11
    }

    选择路径 (Select Path) 下拉菜单将自动填充可用路径。

  3. 选择路径 下拉菜单中选择路径。 您可以选择 .user.profile.name 来提取 "John Doe",或者选择 .user.settings.theme 来提取 "dark"。

JQ 表达式操作示例

使用 JQ 表达式 (JQ Expressions) 操作,利用 jq 查询语言执行更高级的 JSON 过滤。

  1. 操作 (Operations) 下拉菜单中,选择 JQ 表达式 (JQ Expression)

  2. JQ 表达式 (JQ Expression) 字段中,输入一个针对 数据操作 组件的 Data 输入运行的 jq 过滤器。

    对于此示例 JSON 结构,输入 .user.profile.name 来提取 "John Doe",输入 .user.profile | {name, email} 将字段投影到新对象,或者输入 .user.profile | tostring 将字段转换为字符串。


    _11
    {
    _11
    "user": {
    _11
    "profile": {
    _11
    "name": "John Doe",
    _11
    "email": "john@example.com"
    _11
    },
    _11
    "settings": {
    _11
    "theme": "dark"
    _11
    }
    _11
    }
    _11
    }

Search