跳到主要内容

数据操作 (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) 下,添加 name、username 和 email 键。 点击 添加更多 (Add more) 为每个键添加一个字段。

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

  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