Операции с данными (Data Operations)
Описание
Компонент Data Operations предназначен для гибкого управления объектами типа Data. Данный модуль позволяет извлекать, фильтровать, переименовывать, а также редактировать ключи и значения непосредственно внутри информационного потока. Результатом выполнения операций становится новый объект, который содержит исключительно необходимые для дальнейшей обработки элементы.
Использование компонента в потоке
Для функционирования модуля требуется наличие как минимум одного входящего потока данных через порт Data.
Пример интеграции с Webhook
В данном сценарии рассматривается применение Data Operations для обработки информации, поступающей через внешний HTTP-запрос.
-
Необходимо добавить в область проектирования компоненты Webhook и Data Operations, после чего соединить выход первого узла с входным портом второго.
⚠️Все действия внутри компонента требуют наличия входных данных строго типа
Data. Если предшествующий элемент выдает информацию в ином формате, следует использоватьType Convertдля переформатирования либо применить специализированные инструменты, такие как Parser или DataFrame Operations. -
В поле Operations следует указать конкретную задачу. Для текущего примера выбрана операция Select Keys (Выбрать ключи).
ℹ️В одном компоненте можно выбрать только одну операцию. Если вам нужно выполнить несколько действий подряд, соедините несколько компонентов Data Operations в цепочку. Для сложных многоступенчатых преобразований используйте компонент Smart Transform.
-
В разделе Select Keys добавьте ключи
name,usernameиemail. Используйте кнопку Add more, чтобы создать поле для каждого ключа.
Предполагается, что Webhook будет получать структуру данных, всегда содержащую эти три ключа. Операция Select Keys извлечет их значения из общего объема данных. -
Опционально: Чтобы увидеть результат в интерфейсе чата, подключите выход Data Operations к компоненту Chat Output.

-
Чтобы проверить работу, отправьте следующий запрос на адрес вашего Webhook-узла:
`curl -X POST "http://$LANGFLOW_SERVER_URL/api/v1/webhook/$FLOW_ID" \`
`-H "Content-Type: application/json" \`
`-H "x-api-key: $LANGFLOW_API_KEY" \`
`-d '{`
`"id": 1,`
`"name": "Leanne Graham",`
`"username": "Bret",`
`"email": "Sincere@april.biz",`
`"address": {`
`"street": "Main Street",`
`"suite": "Apt. 556",`
`"city": "Springfield",`
`"zipcode": "92998-3874",`
`"geo": {`
`"lat": "-37.3159",`
`"lng": "81.1496"`
`}`
`},`
`"phone": "1-770-736-8031 x56442",`
`"website": "hildegard.org",`
`"company": {`
`"name": "Acme-Corp",`
`"catchPhrase": "Multi-layered client-server neural-net",`
`"bs": "harness real-time e-markets"`
`}`
`}'`
Для ознакомления с данными, которые были отфильтрованы при помощи операции Select Keys, можно воспользоваться одним из следующих способов:
-
Использование интерфейса Playground
Если в схеме было настроено подключение к Chat Output, необходимо открыть окно Playground. Итоговый результат будет представлен в формате стандартного сообщения чата. -
Инспекция компонента
Существует возможность нажать на иконку Inspect output (Просмотр вывода), расположенную непосредственно на корпусе компонента Data Operations. Данный метод позволяет мгновенно увидеть структуру и содержание обработанного объекта во всплывающем окне без запуска полноценного чата.
Параметры
Параметры операций с данными:
| Техническое имя | Отображаемое имя | Описание |
|---|---|---|
data | Данные | Входной параметр. Объект Data, над которым выполняется операция. |
operation | Операция | Входной параметр. Операция, которую необходимо выполнить над данными. |
select_keys_input | Выбрать ключи | Входной параметр. Список ключей для выбора из данных. |
filter_key | Ключ фильтрации | Входной параметр. Ключ, по которому выполняется фильтрация. |
operator | Оператор сравнения | Входной параметр. Оператор, применяемый для сравнения значений. |
filter_values | Значения фильтра | Входной параметр. Список значений для фильтрации. |
append_update_data | Добавить или обновить | Входной параметр. Данные для добавления или обновления существующих данных. |
remove_keys_input | Удалить ключи | Входной параметр. Список ключей для удаления из данных. |
rename_keys_input | Переименовать ключи | Входной параметр. Список ключей для переименования в данных. |
mapped_json_display | JSON для сопоставления | Входной параметр. Структура JSON для исследования при выборе пути. Применяется только для операции Path Selection. |
selected_key | Выбрать путь | Входной параметр. Выражение JSON path для извлечения значений. Применяется только для операции Path Selection. |
query | Выражение JQ | Входной параметр. Выражение jq для продвинутой фильтрации и трансформации JSON. Применяется только для операции JQ Expression. |
Доступные операции с данными:
| Название (Name) | Необходимые входные данные (Required Inputs) | Процесс (Process) |
|---|---|---|
| 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 Expression | query | Выполняет расширенные JSON-запросы, используя синтаксис jq для фильтрации, проекции и преобразования. |
Примеры продвинутого использования
1. Выбор пути (Path Selection)
Используется для работы со сложными, вложенными ответами от внешних API.
Пример: В JSON-ответе {"order": {"customer": {"name": "Ivan"}}}, чтобы получить только имя, выберите Path Selection и укажите путь .order.customer.name.
2. JQ-выражения
Идеально подходит для сложной фильтрации массивов или пересборки структуры объекта.
Пример: Выражение .users[] | {full_name: .name, contact: .email} создаст новый список объектов с переименованными полями.