Skip to Content

Операции с данными (Data Operations)

Описание

Компонент Data Operations предназначен для гибкого управления объектами типа Data. Данный модуль позволяет извлекать, фильтровать, переименовывать, а также редактировать ключи и значения непосредственно внутри информационного потока. Результатом выполнения операций становится новый объект, который содержит исключительно необходимые для дальнейшей обработки элементы.

Использование компонента в потоке

Для функционирования модуля требуется наличие как минимум одного входящего потока данных через порт Data.

Пример интеграции с Webhook

В данном сценарии рассматривается применение Data Operations для обработки информации, поступающей через внешний HTTP-запрос.

  1. Необходимо добавить в область проектирования компоненты Webhook и Data Operations, после чего соединить выход первого узла с входным портом второго.

    ⚠️

    Все действия внутри компонента требуют наличия входных данных строго типа Data. Если предшествующий элемент выдает информацию в ином формате, следует использовать Type Convert для переформатирования либо применить специализированные инструменты, такие как Parser или DataFrame Operations.

  2. В поле Operations следует указать конкретную задачу. Для текущего примера выбрана операция Select Keys (Выбрать ключи).

    ℹ️

    В одном компоненте можно выбрать только одну операцию. Если вам нужно выполнить несколько действий подряд, соедините несколько компонентов Data Operations в цепочку. Для сложных многоступенчатых преобразований используйте компонент Smart Transform.

  3. В разделе Select Keys добавьте ключи name, username и email. Используйте кнопку Add more, чтобы создать поле для каждого ключа.
    Предполагается, что Webhook будет получать структуру данных, всегда содержащую эти три ключа. Операция Select Keys извлечет их значения из общего объема данных.

  4. Опционально: Чтобы увидеть результат в интерфейсе чата, подключите выход Data Operations к компоненту Chat Output.

    component3

  5. Чтобы проверить работу, отправьте следующий запрос на адрес вашего 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_displayJSON для сопоставленияВходной параметр. Структура JSON для исследования при выборе пути. Применяется только для операции Path Selection.
selected_keyВыбрать путьВходной параметр. Выражение JSON path для извлечения значений. Применяется только для операции Path Selection.
queryВыражение JQВходной параметр. Выражение jq для продвинутой фильтрации и трансформации JSON. Применяется только для операции JQ Expression.

Доступные операции с данными:

Название (Name)Необходимые входные данные (Required Inputs)Процесс (Process)
Select Keysselect_keys_inputВыбирает определенные ключи из данных.
Literal EvalНетВычисляет строковые значения как литералы Python.
CombineНетОбъединяет несколько объектов данных в один.
Filter Valuesfilter_key, filter_values, operatorФильтрует данные на основе пары «ключ-значение».
Append or Updateappend_update_dataДобавляет или обновляет пары «ключ-значение».
Remove Keysremove_keys_inputУдаляет указанные ключи из данных.
Rename Keysrename_keys_inputПереименовывает ключи в данных.
Path Selectionmapped_json_display, selected_keyИзвлекает значения из вложенных структур JSON с помощью выражений пути.
JQ ExpressionqueryВыполняет расширенные JSON-запросы, используя синтаксис jq для фильтрации, проекции и преобразования.

Примеры продвинутого использования

1. Выбор пути (Path Selection)

Используется для работы со сложными, вложенными ответами от внешних API.

Пример: В JSON-ответе {"order": {"customer": {"name": "Ivan"}}}, чтобы получить только имя, выберите Path Selection и укажите путь .order.customer.name.

2. JQ-выражения

Идеально подходит для сложной фильтрации массивов или пересборки структуры объекта.

Пример: Выражение .users[] | {full_name: .name, contact: .email} создаст новый список объектов с переименованными полями.