mirror of
https://github.com/langflow-ai/langflow.git
synced 2026-07-24 03:55:34 +08:00
328 lines
103 KiB
HTML
328 lines
103 KiB
HTML
<!doctype html>
|
||
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-Components/components-processing" data-has-hydrated="false">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="generator" content="Docusaurus v3.7.0">
|
||
<title data-rh="true">Processing | Langflow Documentation</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://docs.langflow.org/components-processing"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Processing | Langflow Documentation"><meta data-rh="true" name="description" content="Processing components process and transform data within a flow."><meta data-rh="true" property="og:description" content="Processing components process and transform data within a flow."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://docs.langflow.org/components-processing"><link data-rh="true" rel="alternate" href="https://docs.langflow.org/components-processing" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.langflow.org/components-processing" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://UZK6BDPCVY-dsn.algolia.net" crossorigin="anonymous"><link rel="preconnect" href="https://www.google-analytics.com">
|
||
<link rel="preconnect" href="https://www.googletagmanager.com">
|
||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-SLQFLQ3KPT"></script>
|
||
<script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-SLQFLQ3KPT",{})</script>
|
||
|
||
|
||
|
||
|
||
|
||
<link rel="search" type="application/opensearchdescription+xml" title="Langflow Documentation" href="/opensearch.xml">
|
||
|
||
|
||
|
||
|
||
|
||
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Sora:wght@550;600&display=swap">
|
||
<script>!function(){window.semaphore=window.semaphore||[],window.ketch=function(){window.semaphore.push(arguments)};var e=document.createElement("script");e.type="text/javascript",e.src="https://global.ketchcdn.com/web/v3/config/datastax/langflow_org_web/boot.js",e.defer=e.async=!0,document.getElementsByTagName("head")[0].appendChild(e)}()</script>
|
||
<script defer="true">!function(){const e=e=>{if(window.gtag&&e.purposes&&"analytics"in e.purposes&&"targeted_advertising"in e.purposes){const n=!0===e.purposes.analytics?"granted":"denied",t=!0===e.purposes.targeted_advertising?"granted":"denied",a={analytics_storage:n,ad_personalization:t,ad_storage:t,ad_user_data:t};window.gtag("consent","update",a)}};window.ketch&&window.ketch("on","consent",e)}()</script><link rel="stylesheet" href="/assets/css/styles.556d0cc8.css">
|
||
<script src="/assets/js/runtime~main.36d0d05a.js" defer="defer"></script>
|
||
<script src="/assets/js/main.01cab6af.js" defer="defer"></script>
|
||
</head>
|
||
<body class="navigation-with-keyboard">
|
||
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,t("light"))}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top navbarHideable_m1mJ"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/lf-docs-light.svg" alt="Langflow" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="/img/lf-docs-dark.svg" alt="Langflow" class="themedComponent_mlkZ themedComponent--dark_xIcU"></div></a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/langflow-ai/langflow" target="_blank" class="navbar__item navbar__link header-github-link"></a><a href="https://twitter.com/langflow_ai" target="_blank" class="navbar__item navbar__link header-twitter-link"></a><a href="https://discord.gg/EqksyE2EX9" target="_blank" class="navbar__item navbar__link header-discord-link"></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite" aria-pressed="false"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search (Command+K)"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20" aria-hidden="true"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd sidebarWithHideableNavbar_wUlq"><a tabindex="-1" class="sidebarLogo_isFc" href="/"><img src="/img/lf-docs-light.svg" alt="Langflow" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="/img/lf-docs-dark.svg" alt="Langflow" class="themedComponent_mlkZ themedComponent--dark_xIcU"></a><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Welcome to Langflow</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/get-started-installation">Get started</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/basic-prompting">Templates</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/concepts-overview">Concepts</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" role="button" aria-expanded="true" href="/components-agents">Components</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/components-agents">Agents</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/components-bundle-components">Bundles</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/components-custom-components">Create custom Python components</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/components-data">Data</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/components-embedding-models">Embeddings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/components-helpers">Helpers</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/components-io">Inputs and outputs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/components-logic">Logic</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/components-memories">Memories</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/components-models">Models</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/components-processing">Processing</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/components-prompts">Prompts</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/components-tools">Tools</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/components-vector-stores">Vector stores</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/agents-overview">Agents</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/mcp-server">Model Context Protocol (MCP)</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/configuration-api-keys">Configuration</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/develop-overview">Develop</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/deployment-overview">Deployment</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/api">API reference</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/integrations-apify">Integrations</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/contributing-community">Contributing</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a href="https://github.com/langflow-ai/langflow/releases/latest" target="_blank" rel="noopener noreferrer" class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false">Changelog</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/luna-for-langflow">Support</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 sidebar-ad">
|
||
<a href="https://astra.datastax.com/signup?type=langflow" target="_blank" class="menu__link">
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-cloud"><path d="M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z"/></svg>
|
||
<div class="sidebar-ad-text-container">
|
||
<span class="sidebar-ad-text">Use Langflow in the cloud</span>
|
||
<span class="sidebar-ad-text sidebar-ad-text-gradient">Sign up for DataStax Langflow</span>
|
||
</div>
|
||
</a>
|
||
</li></ul></nav></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">Components</span><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Processing</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Processing</h1></header><style>[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }</style>
|
||
<!-- -->
|
||
<p>Processing components process and transform data within a flow.</p>
|
||
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="use-a-processing-component-in-a-flow">Use a processing component in a flow<a href="#use-a-processing-component-in-a-flow" class="hash-link" aria-label="Direct link to Use a processing component in a flow" title="Direct link to Use a processing component in a flow"></a></h2>
|
||
<p>The <strong>Split Text</strong> processing component in this flow splits the incoming <a href="/concepts-objects">Data</a> into chunks to be embedded into the vector store component.</p>
|
||
<p>The component offers control over chunk size, overlap, and separator, which affect context and granularity in vector store retrieval results.</p>
|
||
<p><img decoding="async" loading="lazy" src="/assets/images/vector-store-document-ingestion-fce32e9be440846a2545397e3a18b7bf.png" width="1804" height="1546" class="img_ev3q"></p>
|
||
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="dataframe-operations">DataFrame operations<a href="#dataframe-operations" class="hash-link" aria-label="Direct link to DataFrame operations" title="Direct link to DataFrame operations"></a></h2>
|
||
<p>This component performs operations on <a href="https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html" target="_blank" rel="noopener noreferrer">DataFrame</a> rows and columns.</p>
|
||
<p>To use this component in a flow, connect a component that outputs <a href="/concepts-objects#dataframe-object">DataFrame</a> to the <strong>DataFrame Operations</strong> component.</p>
|
||
<p>This example fetches JSON data from an API. The <strong>Lambda filter</strong> component extracts and flattens the results into a tabular DataFrame. The <strong>DataFrame Operations</strong> component can then work with the retrieved data.</p>
|
||
<p><img decoding="async" loading="lazy" alt="Dataframe operations with flattened dataframe" src="/assets/images/component-dataframe-operations-86f6e1111b6f414989aca7b5fe625830.png" width="983" height="696" class="img_ev3q"></p>
|
||
<ol>
|
||
<li>The <strong>API Request</strong> component retrieves data with only <code>source</code> and <code>result</code> fields.
|
||
For this example, the desired data is nested within the <code>result</code> field.</li>
|
||
<li>Connect a <strong>Lambda Filter</strong> to the API request component, and a <strong>Language model</strong> to the <strong>Lambda Filter</strong>. This example connects a <strong>Groq</strong> model component.</li>
|
||
<li>In the <strong>Groq</strong> model component, add your <strong>Groq</strong> API key.</li>
|
||
<li>To filter the data, in the <strong>Lambda filter</strong> component, in the <strong>Instructions</strong> field, use natural language to describe how the data should be filtered.
|
||
For this example, enter:</li>
|
||
</ol>
|
||
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>I want to explode the result column out into a Data object</span></div></div><br></code></div></div>
|
||
<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>tip</div><div class="admonitionContent_BuS1"><p>Avoid punctuation in the <strong>Instructions</strong> field, as it can cause errors.</p></div></div>
|
||
<ol start="5">
|
||
<li>To run the flow, in the <strong>Lambda Filter</strong> component, click <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-play" aria-label="Play icon"><polygon points="6 3 20 12 6 21 6 3"></polygon></svg>.</li>
|
||
<li>To inspect the filtered data, in the <strong>Lambda Filter</strong> component, click <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-text-search" aria-label="Inspect icon"><path d="M21 6H3"></path><path d="M10 12H3"></path><path d="M10 18H3"></path><circle cx="17" cy="15" r="3"></circle><path d="m21 19-1.9-1.9"></path></svg>.
|
||
The result is a structured DataFrame.</li>
|
||
</ol>
|
||
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>id | name | company | username | email | address | zip</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>---|------------------|----------------------|-----------------|------------------------------------|-------------------|-------</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>1 | Emily Johnson | ABC Corporation | emily_johnson | emily.johnson@abccorporation.com | 123 Main St | 12345</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>2 | Michael Williams | XYZ Corp | michael_williams| michael.williams@xyzcorp.com | 456 Elm Ave | 67890</span></div></div><br></code></div></div>
|
||
<ol start="7">
|
||
<li>Add the <strong>DataFrame Operations</strong> component, and a <strong>Chat Output</strong> component to the flow.</li>
|
||
<li>In the <strong>DataFrame Operations</strong> component, in the <strong>Operation</strong> field, select <strong>Filter</strong>.</li>
|
||
<li>To apply a filter, in the <strong>Column Name</strong> field, enter a column to filter on. This example filters by <code>name</code>.</li>
|
||
<li>Click <strong>Playground</strong>, and then click <strong>Run Flow</strong>.
|
||
The flow extracts the values from the <code>name</code> column.</li>
|
||
</ol>
|
||
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>name</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>Emily Johnson</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>Michael Williams</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>John Smith</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>...</span></div></div><br></code></div></div>
|
||
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="operations">Operations<a href="#operations" class="hash-link" aria-label="Direct link to Operations" title="Direct link to Operations"></a></h3>
|
||
<p>This component can perform the following operations on Pandas <a href="https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html" target="_blank" rel="noopener noreferrer">DataFrame</a>.</p>
|
||
<table><thead><tr><th>Operation</th><th>Required Inputs</th><th>Info</th></tr></thead><tbody><tr><td>Add Column</td><td>new_column_name, new_column_value</td><td>Adds a new column with a constant value.</td></tr><tr><td>Drop Column</td><td>column_name</td><td>Removes a specified column.</td></tr><tr><td>Filter</td><td>column_name, filter_value</td><td>Filters rows based on column value.</td></tr><tr><td>Head</td><td>num_rows</td><td>Returns first <code>n</code> rows.</td></tr><tr><td>Rename Column</td><td>column_name, new_column_name</td><td>Renames an existing column.</td></tr><tr><td>Replace Value</td><td>column_name, replace_value, replacement_value</td><td>Replaces values in a column.</td></tr><tr><td>Select Columns</td><td>columns_to_select</td><td>Selects specific columns.</td></tr><tr><td>Sort</td><td>column_name, ascending</td><td>Sorts DataFrame by column.</td></tr><tr><td>Tail</td><td>num_rows</td><td>Returns last <code>n</code> rows.</td></tr></tbody></table>
|
||
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Parameters</summary><div><div class="collapsibleContent_i85q"><p><strong>Inputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>df</td><td>DataFrame</td><td>The input DataFrame to operate on.</td></tr><tr><td>operation</td><td>Operation</td><td>The DataFrame operation to perform. Options include Add Column, Drop Column, Filter, Head, Rename Column, Replace Value, Select Columns, Sort, and Tail.</td></tr><tr><td>column_name</td><td>Column Name</td><td>The column name to use for the operation.</td></tr><tr><td>filter_value</td><td>Filter Value</td><td>The value to filter rows by.</td></tr><tr><td>ascending</td><td>Sort Ascending</td><td>Whether to sort in ascending order.</td></tr><tr><td>new_column_name</td><td>New Column Name</td><td>The new column name when renaming or adding a column.</td></tr><tr><td>new_column_value</td><td>New Column Value</td><td>The value to populate the new column with.</td></tr><tr><td>columns_to_select</td><td>Columns to Select</td><td>A list of column names to select.</td></tr><tr><td>num_rows</td><td>Number of Rows</td><td>The number of rows to return for head/tail operations. The default is 5.</td></tr><tr><td>replace_value</td><td>Value to Replace</td><td>The value to replace in the column.</td></tr><tr><td>replacement_value</td><td>Replacement Value</td><td>The value to replace with.</td></tr></tbody></table><p><strong>Outputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>output</td><td>DataFrame</td><td>The resulting DataFrame after the operation.</td></tr></tbody></table></div></div></details>
|
||
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="data-operations">Data operations<a href="#data-operations" class="hash-link" aria-label="Direct link to Data operations" title="Direct link to Data operations"></a></h2>
|
||
<p>This component performs operations on <a href="/concepts-objects#data-object">Data</a> objects, including selecting keys, evaluating literals, combining data, filtering values, appending/updating data, removing keys, and renaming keys.</p>
|
||
<ol>
|
||
<li>To use this component in a flow, connect a component that outputs <a href="/concepts-objects#data-object">Data</a> to the <strong>Data Operations</strong> component's input.
|
||
All operations in the component require at least one <a href="/concepts-objects#data-object">Data</a> input.</li>
|
||
<li>In the <strong>Operations</strong> field, select the operation you want to perform.
|
||
For example, send this request to the <strong>Webhook</strong> component.
|
||
Replace <code>YOUR_FLOW_ID</code> with your flow ID.</li>
|
||
</ol>
|
||
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->25</span><div style="display:inline-block;margin-left:16px"><span>curl -X POST "http://localhost:7860/api/v1/webhook/YOUR_FLOW_ID" \</span></div></div><div><span class="ch-code-line-number">_<!-- -->25</span><div style="display:inline-block;margin-left:16px"><span>-H 'Content-Type: application/json' \</span></div></div><div><span class="ch-code-line-number">_<!-- -->25</span><div style="display:inline-block;margin-left:16px"><span>-d '{</span></div></div><div><span class="ch-code-line-number">_<!-- -->25</span><div style="display:inline-block;margin-left:16px"><span> "id": 1,</span></div></div><div><span class="ch-code-line-number">_<!-- -->25</span><div style="display:inline-block;margin-left:16px"><span> "name": "Leanne Graham",</span></div></div><div><span class="ch-code-line-number">_<!-- -->25</span><div style="display:inline-block;margin-left:16px"><span> "username": "Bret",</span></div></div><div><span class="ch-code-line-number">_<!-- -->25</span><div style="display:inline-block;margin-left:16px"><span> "email": "Sincere@april.biz",</span></div></div><div><span class="ch-code-line-number">_<!-- -->25</span><div style="display:inline-block;margin-left:16px"><span> "address": {</span></div></div><div><span class="ch-code-line-number">_<!-- -->25</span><div style="display:inline-block;margin-left:16px"><span> "street": "Kulas Light",</span></div></div><div><span class="ch-code-line-number">_<!-- -->25</span><div style="display:inline-block;margin-left:16px"><span> "suite": "Apt. 556",</span></div></div><div><span class="ch-code-line-number">_<!-- -->25</span><div style="display:inline-block;margin-left:16px"><span> "city": "Gwenborough",</span></div></div><div><span class="ch-code-line-number">_<!-- -->25</span><div style="display:inline-block;margin-left:16px"><span> "zipcode": "92998-3874",</span></div></div><div><span class="ch-code-line-number">_<!-- -->25</span><div style="display:inline-block;margin-left:16px"><span> "geo": {</span></div></div><div><span class="ch-code-line-number">_<!-- -->25</span><div style="display:inline-block;margin-left:16px"><span> "lat": "-37.3159",</span></div></div><div><span class="ch-code-line-number">_<!-- -->25</span><div style="display:inline-block;margin-left:16px"><span> "lng": "81.1496"</span></div></div><div><span class="ch-code-line-number">_<!-- -->25</span><div style="display:inline-block;margin-left:16px"><span> }</span></div></div><div><span class="ch-code-line-number">_<!-- -->25</span><div style="display:inline-block;margin-left:16px"><span> },</span></div></div><div><span class="ch-code-line-number">_<!-- -->25</span><div style="display:inline-block;margin-left:16px"><span> "phone": "1-770-736-8031 x56442",</span></div></div><div><span class="ch-code-line-number">_<!-- -->25</span><div style="display:inline-block;margin-left:16px"><span> "website": "hildegard.org",</span></div></div><div><span class="ch-code-line-number">_<!-- -->25</span><div style="display:inline-block;margin-left:16px"><span> "company": {</span></div></div><div><span class="ch-code-line-number">_<!-- -->25</span><div style="display:inline-block;margin-left:16px"><span> "name": "Romaguera-Crona",</span></div></div><div><span class="ch-code-line-number">_<!-- -->25</span><div style="display:inline-block;margin-left:16px"><span> "catchPhrase": "Multi-layered client-server neural-net",</span></div></div><div><span class="ch-code-line-number">_<!-- -->25</span><div style="display:inline-block;margin-left:16px"><span> "bs": "harness real-time e-markets"</span></div></div><div><span class="ch-code-line-number">_<!-- -->25</span><div style="display:inline-block;margin-left:16px"><span> }</span></div></div><div><span class="ch-code-line-number">_<!-- -->25</span><div style="display:inline-block;margin-left:16px"><span>}'</span></div></div><br></code></div></div>
|
||
<ol start="3">
|
||
<li>In the <strong>Data Operations</strong> component, select the <strong>Select Keys</strong> operation to extract specific user information.
|
||
To add additional keys, click <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-plus" aria-label="Add"><path d="M5 12h14"></path><path d="M12 5v14"></path></svg> <strong>Add More</strong>.
|
||
<img decoding="async" loading="lazy" alt="A webhook and data operations component" src="/assets/images/component-data-operations-select-key-80bade862d29f2851b01ee26413d495f.png" width="4000" height="1920" class="img_ev3q"></li>
|
||
<li>Filter by <code>name</code>, <code>username</code>, and <code>email</code> to select the values from the request.</li>
|
||
</ol>
|
||
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>{</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> "name": "Leanne Graham",</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> "username": "Bret",</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> "email": "Sincere@april.biz"</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><br></code></div></div>
|
||
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="operations-1">Operations<a href="#operations-1" class="hash-link" aria-label="Direct link to Operations" title="Direct link to Operations"></a></h3>
|
||
<p>The component supports the following operations.
|
||
All operations in the <strong>Data operations</strong> component require at least one <a href="/concepts-objects#data-object">Data</a> input.</p>
|
||
<table><thead><tr><th>Operation</th><th>Required Inputs</th><th>Info</th></tr></thead><tbody><tr><td>Select Keys</td><td><code>select_keys_input</code></td><td>Selects specific keys from the data.</td></tr><tr><td>Literal Eval</td><td>None</td><td>Evaluates string values as Python literals.</td></tr><tr><td>Combine</td><td>None</td><td>Combines multiple data objects into one.</td></tr><tr><td>Filter Values</td><td><code>filter_key</code>, <code>filter_values</code>, <code>operator</code></td><td>Filters data based on key-value pair.</td></tr><tr><td>Append or Update</td><td><code>append_update_data</code></td><td>Adds or updates key-value pairs.</td></tr><tr><td>Remove Keys</td><td><code>remove_keys_input</code></td><td>Removes specified keys from the data.</td></tr><tr><td>Rename Keys</td><td><code>rename_keys_input</code></td><td>Renames keys in the data.</td></tr></tbody></table>
|
||
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Parameters</summary><div><div class="collapsibleContent_i85q"><p><strong>Inputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>data</td><td>Data</td><td>The <a href="/concepts-objects#data-object">Data</a> object to operate on.</td></tr><tr><td>operations</td><td>Operations</td><td>The operation to perform on the data.</td></tr><tr><td>select_keys_input</td><td>Select Keys</td><td>A list of keys to select from the data.</td></tr><tr><td>filter_key</td><td>Filter Key</td><td>The key to filter by.</td></tr><tr><td>operator</td><td>Comparison Operator</td><td>The operator to apply for comparing values.</td></tr><tr><td>filter_values</td><td>Filter Values</td><td>A list of values to filter by.</td></tr><tr><td>append_update_data</td><td>Append or Update</td><td>The data to append or update the existing data with.</td></tr><tr><td>remove_keys_input</td><td>Remove Keys</td><td>A list of keys to remove from the data.</td></tr><tr><td>rename_keys_input</td><td>Rename Keys</td><td>A list of keys to rename in the data.</td></tr></tbody></table><p><strong>Outputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>data_output</td><td>Data</td><td>The resulting Data object after the operation.</td></tr></tbody></table></div></div></details>
|
||
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="data-to-dataframe">Data to DataFrame<a href="#data-to-dataframe" class="hash-link" aria-label="Direct link to Data to DataFrame" title="Direct link to Data to DataFrame"></a></h2>
|
||
<p>This component converts one or multiple <a href="/concepts-objects#data-object">Data</a> objects into a <a href="/concepts-objects#dataframe-object">DataFrame</a>. Each Data object corresponds to one row in the resulting DataFrame. Fields from the <code>.data</code> attribute become columns, and the <code>.text</code> field (if present) is placed in a 'text' column.</p>
|
||
<ol>
|
||
<li>To use this component in a flow, connect a component that outputs <a href="/concepts-objects#data-object">Data</a> to the <strong>Data to Dataframe</strong> component's input.
|
||
This example connects a <strong>Webhook</strong> component to convert <code>text</code> and <code>data</code> into a DataFrame.</li>
|
||
<li>To view the flow's output, connect a <strong>Chat Output</strong> component to the <strong>Data to Dataframe</strong> component.</li>
|
||
</ol>
|
||
<p><img decoding="async" loading="lazy" alt="A webhook and data to dataframe" src="/assets/images/component-data-to-dataframe-3e921379e4e86fedf0e34e3ffae46b51.png" width="1221" height="468" class="img_ev3q"></p>
|
||
<ol start="3">
|
||
<li>Send a POST request to the <strong>Webhook</strong> containing your JSON data.
|
||
Replace <code>YOUR_FLOW_ID</code> with your flow ID.
|
||
This example uses the default Langflow server address.</li>
|
||
</ol>
|
||
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>curl -X POST "http://localhost:7860/api/v1/webhook/YOUR_FLOW_ID" \</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>-H 'Content-Type: application/json' \</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>-d '{</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> "text": "Alex Cruz - Employee Profile",</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> "data": {</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> "Name": "Alex Cruz",</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> "Role": "Developer",</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> "Department": "Engineering"</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> }</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>}'</span></div></div><br></code></div></div>
|
||
<ol start="4">
|
||
<li>In the <strong>Playground</strong>, view the output of your flow.
|
||
The <strong>Data to DataFrame</strong> component converts the webhook request into a <code>DataFrame</code>, with <code>text</code> and <code>data</code> fields as columns.</li>
|
||
</ol>
|
||
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>| text | data |</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>|:-----------------------------|:------------------------------------------------------------------------|</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>| Alex Cruz - Employee Profile | {'Name': 'Alex Cruz', 'Role': 'Developer', 'Department': 'Engineering'} |</span></div></div><br></code></div></div>
|
||
<ol start="5">
|
||
<li>Send another employee data object.</li>
|
||
</ol>
|
||
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>curl -X POST "http://localhost:7860/api/v1/webhook/YOUR_FLOW_ID" \</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>-H 'Content-Type: application/json' \</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>-d '{</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> "text": "Kalani Smith - Employee Profile",</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> "data": {</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> "Name": "Kalani Smith",</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> "Role": "Designer",</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> "Department": "Design"</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> }</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>}'</span></div></div><br></code></div></div>
|
||
<ol start="6">
|
||
<li>In the <strong>Playground</strong>, this request is also converted to <code>DataFrame</code>.</li>
|
||
</ol>
|
||
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>| text | data |</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>|:--------------------------------|:---------------------------------------------------------------------|</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>| Kalani Smith - Employee Profile | {'Name': 'Kalani Smith', 'Role': 'Designer', 'Department': 'Design'} |</span></div></div><br></code></div></div>
|
||
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Parameters</summary><div><div class="collapsibleContent_i85q"><p><strong>Inputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>data_list</td><td>Data or Data List</td><td>One or multiple Data objects to transform into a DataFrame.</td></tr></tbody></table><p><strong>Outputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>dataframe</td><td>DataFrame</td><td>A DataFrame built from each Data object's fields plus a text column.</td></tr></tbody></table></div></div></details>
|
||
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="lambda-filter">Lambda filter<a href="#lambda-filter" class="hash-link" aria-label="Direct link to Lambda filter" title="Direct link to Lambda filter"></a></h2>
|
||
<p>This component uses an LLM to generate a Lambda function for filtering or transforming structured data.</p>
|
||
<p>To use the <strong>Lambda filter</strong> component, you must connect it to a <a href="/components-models#language-model">Language Model</a> component, which the component uses to generate a function based on the natural language instructions in the <strong>Instructions</strong> field.</p>
|
||
<p>This example gets JSON data from the <code>https://jsonplaceholder.typicode.com/users</code> API endpoint.
|
||
The <strong>Instructions</strong> field in the <strong>Lambda filter</strong> component specifies the task <code>extract emails</code>.
|
||
The connected LLM creates a filter based on the instructions, and successfully extracts a list of email addresses from the JSON data.</p>
|
||
<p><img decoding="async" loading="lazy" src="/assets/images/component-lambda-filter-c409acffcea6f80062295f4d8de4e881.png" width="1742" height="1622" class="img_ev3q"></p>
|
||
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Parameters</summary><div><div class="collapsibleContent_i85q"><p><strong>Inputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>data</td><td>Data</td><td>The structured data to filter or transform using a Lambda function.</td></tr><tr><td>llm</td><td>Language Model</td><td>The connection port for a <a href="/components-models">Model</a> component.</td></tr><tr><td>filter_instruction</td><td>Instructions</td><td>The natural language instructions for how to filter or transform the data using a Lambda function, such as <code>Filter the data to only include items where the 'status' is 'active'</code>.</td></tr><tr><td>sample_size</td><td>Sample Size</td><td>For large datasets, the number of characters to sample from the dataset head and tail.</td></tr><tr><td>max_size</td><td>Max Size</td><td>The number of characters for the data to be considered "large", which triggers sampling by the <code>sample_size</code> value.</td></tr></tbody></table><p><strong>Outputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>filtered_data</td><td>Filtered Data</td><td>The filtered or transformed <a href="/concepts-objects#data-object">Data object</a>.</td></tr><tr><td>dataframe</td><td>DataFrame</td><td>The filtered data as a <a href="/concepts-objects#dataframe-object">DataFrame</a>.</td></tr></tbody></table></div></div></details>
|
||
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="llm-router">LLM router<a href="#llm-router" class="hash-link" aria-label="Direct link to LLM router" title="Direct link to LLM router"></a></h2>
|
||
<p>This component routes requests to the most appropriate LLM based on OpenRouter model specifications.</p>
|
||
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Parameters</summary><div><div class="collapsibleContent_i85q"><p><strong>Inputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>models</td><td>Language Models</td><td>A list of LLMs to route between.</td></tr><tr><td>input_value</td><td>Input</td><td>The input message to be routed.</td></tr><tr><td>judge_llm</td><td>Judge LLM</td><td>The LLM that evaluates and selects the most appropriate model.</td></tr><tr><td>optimization</td><td>Optimization</td><td>The optimization preference between quality, speed, cost, or balanced.</td></tr></tbody></table><p><strong>Outputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>output</td><td>Output</td><td>The response from the selected model.</td></tr><tr><td>selected_model</td><td>Selected Model</td><td>The name of the chosen model.</td></tr></tbody></table></div></div></details>
|
||
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="message-to-data">Message to data<a href="#message-to-data" class="hash-link" aria-label="Direct link to Message to data" title="Direct link to Message to data"></a></h2>
|
||
<p>This component converts <a href="/concepts-objects#message-object">Message</a> objects to <a href="/concepts-objects#data-object">Data</a> objects.</p>
|
||
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Parameters</summary><div><div class="collapsibleContent_i85q"><p><strong>Inputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>message</td><td>Message</td><td>The Message object to convert to a Data object.</td></tr></tbody></table><p><strong>Outputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>data</td><td>Data</td><td>The converted Data object.</td></tr></tbody></table></div></div></details>
|
||
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="parser">Parser<a href="#parser" class="hash-link" aria-label="Direct link to Parser" title="Direct link to Parser"></a></h2>
|
||
<p>This component formats <code>DataFrame</code> or <code>Data</code> objects into text using templates, with an option to convert inputs directly to strings using <code>stringify</code>.</p>
|
||
<p>To use this component, create variables for values in the <code>template</code> the same way you would in a <a href="/components-prompts">Prompt</a> component. For <code>DataFrames</code>, use column names, for example <code>Name: {Name}</code>. For <code>Data</code> objects, use <code>{text}</code>.</p>
|
||
<p>To use the <strong>Parser</strong> component with a <strong>Structured Output</strong> component, do the following:</p>
|
||
<ol>
|
||
<li>Connect a <strong>Structured Output</strong> component's <strong>DataFrame</strong> output to the <strong>Parser</strong> component's <strong>DataFrame</strong> input.</li>
|
||
<li>Connect the <strong>File</strong> component to the <strong>Structured Output</strong> component's <strong>Message</strong> input.</li>
|
||
<li>Connect the <strong>OpenAI</strong> model component's <strong>Language Model</strong> output to the <strong>Structured Output</strong> component's <strong>Language Model</strong> input.</li>
|
||
</ol>
|
||
<p>The flow looks like this:</p>
|
||
<p><img decoding="async" loading="lazy" alt="A parser component connected to OpenAI and structured output" src="/assets/images/component-parser-5f97943bbc863cee6b02c74d325a062f.png" width="2300" height="1436" class="img_ev3q"></p>
|
||
<ol start="4">
|
||
<li>In the <strong>Structured Output</strong> component, click <strong>Open Table</strong>.
|
||
This opens a pane for structuring your table.
|
||
The table contains the rows <strong>Name</strong>, <strong>Description</strong>, <strong>Type</strong>, and <strong>Multiple</strong>.</li>
|
||
<li>Create a table that maps to the data you're loading from the <strong>File</strong> loader.
|
||
For example, to create a table for employees, you might have the rows <code>id</code>, <code>name</code>, and <code>email</code>, all of type <code>string</code>.</li>
|
||
<li>In the <strong>Template</strong> field of the <strong>Parser</strong> component, enter a template for parsing the <strong>Structured Output</strong> component's DataFrame output into structured text.
|
||
Create variables for values in the <code>template</code> the same way you would in a <a href="/components-prompts">Prompt</a> component.
|
||
For example, to present a table of employees in Markdown:</li>
|
||
</ol>
|
||
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span># Employee Profile</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>## Personal Information</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>- **Name:** {name}</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>- **ID:** {id}</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>- **Email:** {email}</span></div></div><br></code></div></div>
|
||
<ol start="7">
|
||
<li>To run the flow, in the <strong>Parser</strong> component, click <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-play" aria-label="Play icon"><polygon points="6 3 20 12 6 21 6 3"></polygon></svg>.</li>
|
||
<li>To view your parsed text, in the <strong>Parser</strong> component, click <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-text-search" aria-label="Inspect icon"><path d="M21 6H3"></path><path d="M10 12H3"></path><path d="M10 18H3"></path><circle cx="17" cy="15" r="3"></circle><path d="m21 19-1.9-1.9"></path></svg>.</li>
|
||
<li>Optionally, connect a <strong>Chat Output</strong> component, and open the <strong>Playground</strong> to see the output.</li>
|
||
</ol>
|
||
<p>For an additional example of using the <strong>Parser</strong> component to format a DataFrame from a <strong>Structured Output</strong> component, see the <strong>Market Research</strong> template flow.</p>
|
||
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Parameters</summary><div><div class="collapsibleContent_i85q"><p><strong>Inputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>mode</td><td>Mode</td><td>The tab selection between "Parser" and "Stringify" modes. "Stringify" converts input to a string instead of using a template.</td></tr><tr><td>pattern</td><td>Template</td><td>The template for formatting using variables in curly brackets. For DataFrames, use column names, such as <code>Name: {Name}</code>. For Data objects, use <code>{text}</code>.</td></tr><tr><td>input_data</td><td>Data or DataFrame</td><td>The input to parse. Accepts either a DataFrame or Data object.</td></tr><tr><td>sep</td><td>Separator</td><td>The string used to separate rows or items. The default is a newline.</td></tr><tr><td>clean_data</td><td>Clean Data</td><td>When stringify is enabled, this option cleans data by removing empty rows and lines.</td></tr></tbody></table><p><strong>Outputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>parsed_text</td><td>Parsed Text</td><td>The resulting formatted text as a <a href="/concepts-objects#message-object">Message</a> object.</td></tr></tbody></table></div></div></details>
|
||
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="regex-extractor">Regex extractor<a href="#regex-extractor" class="hash-link" aria-label="Direct link to Regex extractor" title="Direct link to Regex extractor"></a></h2>
|
||
<p>This component extracts patterns from text using regular expressions. It can be used to find and extract specific patterns or information from text data.</p>
|
||
<p>To use this component in a flow:</p>
|
||
<ol>
|
||
<li>Connect the <strong>Regex Extractor</strong> to a <strong>URL</strong> component and a <strong>Chat Output</strong> component.</li>
|
||
</ol>
|
||
<p><img decoding="async" loading="lazy" alt="Regex extractor connected to url component" src="/assets/images/component-url-regex-8cae4a8d6491d360115ad552f0c467d3.png" width="1606" height="848" class="img_ev3q"></p>
|
||
<ol start="2">
|
||
<li>In the <strong>Regex Extractor</strong> tool, enter a pattern to extract text from the <strong>URL</strong> component's raw output.
|
||
This example extracts the first paragraph from the "In the News" section of <code>https://en.wikipedia.org/wiki/Main_Page</code>:</li>
|
||
</ol>
|
||
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>In the news\s*\n(.*?)(?=\n\n)</span></div></div><br></code></div></div>
|
||
<p>Result:</p>
|
||
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>Peruvian writer and Nobel Prize in Literature laureate Mario Vargas Llosa (pictured) dies at the age of 89.</span></div></div><br></code></div></div>
|
||
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="save-to-file">Save to File<a href="#save-to-file" class="hash-link" aria-label="Direct link to Save to File" title="Direct link to Save to File"></a></h2>
|
||
<p>This component saves <a href="/concepts-objects">DataFrames, Data, or Messages</a> to various file formats.</p>
|
||
<ol>
|
||
<li>To use this component in a flow, connect a component that outputs <a href="/concepts-objects">DataFrames, Data, or Messages</a> to the <strong>Save to File</strong> component's input.
|
||
The following example connects a <strong>Webhook</strong> component to two <strong>Save to File</strong> components to demonstrate the different outputs.</li>
|
||
</ol>
|
||
<p><img decoding="async" loading="lazy" alt="Two Save-to File components connected to a webhook" src="/assets/images/component-save-to-file-67ebbb733732670897bedd9fd1b87583.png" width="1458" height="1732" class="img_ev3q"></p>
|
||
<ol start="2">
|
||
<li>In the <strong>Save to File</strong> component's <strong>Input Type</strong> field, select the expected input type.
|
||
This example expects <strong>Data</strong> from the <strong>Webhook</strong>.</li>
|
||
<li>In the <strong>File Format</strong> field, select the file type for your saved file.
|
||
This example uses <code>.md</code> in one <strong>Save to File</strong> component, and <code>.xlsx</code> in another.</li>
|
||
<li>In the <strong>File Path</strong> field, enter the path for your saved file.
|
||
This example uses <code>./output/employees.xlsx</code> and <code>./output/employees.md</code> to save the files in a directory relative to where Langflow is running.
|
||
The component accepts both relative and absolute paths, and creates any necessary directories if they don't exist.</li>
|
||
</ol>
|
||
<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>tip</div><div class="admonitionContent_BuS1"><p>If you enter a format in the <code>file_path</code> that is not accepted, the component appends the proper format to the file.
|
||
For example, if the selected <code>file_format</code> is <code>csv</code>, and you enter <code>file_path</code> as <code>./output/test.txt</code>, the file is saved as <code>./output/test.txt.csv</code> so the file is not corrupted.</p></div></div>
|
||
<ol start="5">
|
||
<li>Send a POST request to the <strong>Webhook</strong> containing your JSON data.
|
||
Replace <code>YOUR_FLOW_ID</code> with your flow ID.
|
||
This example uses the default Langflow server address.</li>
|
||
</ol>
|
||
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>curl -X POST "http://localhost:7860/api/v1/webhook/YOUR_FLOW_ID" \</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>-H 'Content-Type: application/json' \</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>-d '{</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> "Name": ["Alex Cruz", "Kalani Smith", "Noam Johnson"],</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> "Role": ["Developer", "Designer", "Manager"],</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> "Department": ["Engineering", "Design", "Management"]</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>}'</span></div></div><br></code></div></div>
|
||
<ol start="6">
|
||
<li>In your local filesystem, open the <code>outputs</code> directory.
|
||
You should see two files created from the data you've sent: one in <code>.xlsx</code> for structured spreadsheets, and one in Markdown.</li>
|
||
</ol>
|
||
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>| Name | Role | Department |</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>|:-------------|:----------|:-------------|</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>| Alex Cruz | Developer | Engineering |</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>| Kalani Smith | Designer | Design |</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>| Noam Johnson | Manager | Management |</span></div></div><br></code></div></div>
|
||
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="file-input-format-options">File input format options<a href="#file-input-format-options" class="hash-link" aria-label="Direct link to File input format options" title="Direct link to File input format options"></a></h3>
|
||
<p>For <code>DataFrame</code> and <code>Data</code> inputs, the component can create:</p>
|
||
<ul>
|
||
<li><code>csv</code></li>
|
||
<li><code>excel</code></li>
|
||
<li><code>json</code></li>
|
||
<li><code>markdown</code></li>
|
||
<li><code>pdf</code></li>
|
||
</ul>
|
||
<p>For <code>Message</code> inputs, the component can create:</p>
|
||
<ul>
|
||
<li><code>txt</code></li>
|
||
<li><code>json</code></li>
|
||
<li><code>markdown</code></li>
|
||
<li><code>pdf</code></li>
|
||
</ul>
|
||
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Parameters</summary><div><div class="collapsibleContent_i85q"><p><strong>Inputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>input_text</td><td>Input Text</td><td>The text to analyze and extract patterns from.</td></tr><tr><td>pattern</td><td>Regex Pattern</td><td>The regular expression pattern to match in the text.</td></tr><tr><td>input_type</td><td>Input Type</td><td>The type of input to save.</td></tr><tr><td>df</td><td>DataFrame</td><td>The DataFrame to save.</td></tr><tr><td>data</td><td>Data</td><td>The Data object to save.</td></tr><tr><td>message</td><td>Message</td><td>The Message to save.</td></tr><tr><td>file_format</td><td>File Format</td><td>The file format to save the input in.</td></tr><tr><td>file_path</td><td>File Path</td><td>The full file path including filename and extension.</td></tr></tbody></table><p><strong>Outputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>data</td><td>Data</td><td>A list of extracted matches as Data objects.</td></tr><tr><td>text</td><td>Message</td><td>The extracted matches formatted as a Message object.</td></tr><tr><td>confirmation</td><td>Confirmation</td><td>The confirmation message after saving the file.</td></tr></tbody></table></div></div></details>
|
||
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="split-text">Split text<a href="#split-text" class="hash-link" aria-label="Direct link to Split text" title="Direct link to Split text"></a></h2>
|
||
<p>This component splits text into chunks based on specified criteria. It's ideal for chunking data to be tokenized and embedded into vector databases.</p>
|
||
<p>The <strong>Split Text</strong> component outputs <strong>Chunks</strong> or <strong>DataFrame</strong>.
|
||
The <strong>Chunks</strong> output returns a list of individual text chunks.
|
||
The <strong>DataFrame</strong> output returns a structured data format, with additional <code>text</code> and <code>metadata</code> columns applied.</p>
|
||
<ol>
|
||
<li>To use this component in a flow, connect a component that outputs <a href="/concepts-objects">Data or DataFrame</a> to the <strong>Split Text</strong> component's <strong>Data</strong> port.
|
||
This example uses the <strong>URL</strong> component, which is fetching JSON placeholder data.</li>
|
||
</ol>
|
||
<p><img decoding="async" loading="lazy" alt="Split text component and chroma-db" src="/assets/images/component-split-text-741a1ac37f9a2d6591ead075acc66b65.png" width="2198" height="1626" class="img_ev3q"></p>
|
||
<ol start="2">
|
||
<li>In the <strong>Split Text</strong> component, define your data splitting parameters.</li>
|
||
</ol>
|
||
<p>This example splits incoming JSON data at the separator <code>},</code>, so each chunk contains one JSON object.</p>
|
||
<p>The order of precedence is <strong>Separator</strong>, then <strong>Chunk Size</strong>, and then <strong>Chunk Overlap</strong>.
|
||
If any segment after separator splitting is longer than <code>chunk_size</code>, it is split again to fit within <code>chunk_size</code>.</p>
|
||
<p>After <code>chunk_size</code>, <strong>Chunk Overlap</strong> is applied between chunks to maintain context.</p>
|
||
<ol start="3">
|
||
<li>Connect a <strong>Chat Output</strong> component to the <strong>Split Text</strong> component's <strong>DataFrame</strong> output to view its output.</li>
|
||
<li>Click <strong>Playground</strong>, and then click <strong>Run Flow</strong>.
|
||
The output contains a table of JSON objects split at <code>},</code>.</li>
|
||
</ol>
|
||
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span>{</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span>"userId": 1,</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span>"id": 1,</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span>"title": "Introduction to Artificial Intelligence",</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span>"body": "Learn the basics of Artificial Intelligence and its applications in various industries.",</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span>"link": "https://example.com/article1",</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span>"comment_count": 8</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span>},</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span>{</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span>"userId": 2,</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span>"id": 2,</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span>"title": "Web Development with React",</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span>"body": "Build modern web applications using React.js and explore its powerful features.",</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span>"link": "https://example.com/article2",</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span>"comment_count": 12</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span>},</span></div></div><br></code></div></div>
|
||
<ol start="5">
|
||
<li>Clear the <strong>Separator</strong> field, and then run the flow again.
|
||
Instead of JSON objects, the output contains 50-character lines of text with 10 characters of overlap.</li>
|
||
</ol>
|
||
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>First chunk: "title": "Introduction to Artificial Intelligence""</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>Second chunk: "elligence", "body": "Learn the basics of Artif"</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>Third chunk: "s of Artificial Intelligence and its applications"</span></div></div><br></code></div></div>
|
||
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Parameters</summary><div><div class="collapsibleContent_i85q"><p><strong>Inputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>data_inputs</td><td>Input Documents</td><td>The data to split. The component accepts <a href="/concepts-objects#data-object">Data</a> or <a href="/concepts-objects#dataframe-object">DataFrame</a> objects.</td></tr><tr><td>chunk_overlap</td><td>Chunk Overlap</td><td>The number of characters to overlap between chunks. Default: <code>200</code>.</td></tr><tr><td>chunk_size</td><td>Chunk Size</td><td>The maximum number of characters in each chunk. Default: <code>1000</code>.</td></tr><tr><td>separator</td><td>Separator</td><td>The character to split on. Default: <code>newline</code>.</td></tr><tr><td>text_key</td><td>Text Key</td><td>The key to use for the text column. Default: <code>text</code>.</td></tr></tbody></table><p><strong>Outputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>chunks</td><td>Chunks</td><td>A list of split text chunks as <a href="/concepts-objects#data-object">Data</a> objects.</td></tr><tr><td>dataframe</td><td>DataFrame</td><td>A list of split text chunks as <a href="/concepts-objects#dataframe-object">DataFrame</a> objects.</td></tr></tbody></table></div></div></details>
|
||
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="update-data">Update data<a href="#update-data" class="hash-link" aria-label="Direct link to Update data" title="Direct link to Update data"></a></h2>
|
||
<p>This component dynamically updates or appends data with specified fields.</p>
|
||
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Parameters</summary><div><div class="collapsibleContent_i85q"><p><strong>Inputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>old_data</td><td>Data</td><td>The records to update.</td></tr><tr><td>number_of_fields</td><td>Number of Fields</td><td>The number of fields to add. The maximum is 15.</td></tr><tr><td>text_key</td><td>Text Key</td><td>The key for text content.</td></tr><tr><td>text_key_validator</td><td>Text Key Validator</td><td>Validates the text key presence.</td></tr></tbody></table><p><strong>Outputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>data</td><td>Data</td><td>The updated Data objects.</td></tr></tbody></table></div></div></details>
|
||
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="legacy-components">Legacy components<a href="#legacy-components" class="hash-link" aria-label="Direct link to Legacy components" title="Direct link to Legacy components"></a></h2>
|
||
<p><strong>Legacy</strong> components are available for use but are no longer supported.</p>
|
||
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="alter-metadata">Alter metadata<a href="#alter-metadata" class="hash-link" aria-label="Direct link to Alter metadata" title="Direct link to Alter metadata"></a></h3>
|
||
<div class="theme-admonition theme-admonition-important admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>important</div><div class="admonitionContent_BuS1"><p>This component is in <strong>Legacy</strong>, which means it is available for use but no longer in active development.
|
||
Instead, use the <a href="#data-operations">Data operations</a> component.</p></div></div>
|
||
<p>This component modifies metadata of input objects. It can add new metadata, update existing metadata, and remove specified metadata fields. The component works with both <a href="/concepts-objects#message-object">Message</a> and <a href="/concepts-objects#data-object">Data</a> objects, and can also create a new Data object from user-provided text.</p>
|
||
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Parameters</summary><div><div class="collapsibleContent_i85q"><p><strong>Inputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>input_value</td><td>Input</td><td>Objects to which Metadata should be added.</td></tr><tr><td>text_in</td><td>User Text</td><td>Text input; the value is contained in the 'text' attribute of the <a href="/concepts-objects#data-object">Data</a> object. Empty text entries are ignored.</td></tr><tr><td>metadata</td><td>Metadata</td><td>Metadata to add to each object.</td></tr><tr><td>remove_fields</td><td>Fields to Remove</td><td>Metadata fields to remove.</td></tr></tbody></table><p><strong>Outputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>data</td><td>Data</td><td>List of Input objects, each with added metadata.</td></tr></tbody></table></div></div></details>
|
||
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="combine-data">Combine data<a href="#combine-data" class="hash-link" aria-label="Direct link to Combine data" title="Direct link to Combine data"></a></h3>
|
||
<div class="theme-admonition theme-admonition-important admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>important</div><div class="admonitionContent_BuS1"><p>This component is in <strong>Legacy</strong>, which means it is available for use but no longer in active development.
|
||
Prior to Langflow version 1.1.3, this component was named <strong>Merge Data</strong>.</p></div></div>
|
||
<p>This component combines multiple data sources into a single unified <a href="/concepts-objects#data-object">Data</a> object.</p>
|
||
<p>The component iterates through the input list of data objects, merging them into a single data object. If the input list is empty, it returns an empty data object. If there's only one input data object, it returns that object unchanged. The merging process uses the addition operator to combine data objects.</p>
|
||
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Parameters</summary><div><div class="collapsibleContent_i85q"><p><strong>Inputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>data</td><td>Data</td><td>A list of data objects to be merged.</td></tr></tbody></table><p><strong>Outputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>merged_data</td><td>Merged Data</td><td>A single <a href="/concepts-objects#data-object">Data</a> object containing the combined information from all input data objects.</td></tr></tbody></table></div></div></details>
|
||
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="combine-text">Combine text<a href="#combine-text" class="hash-link" aria-label="Direct link to Combine text" title="Direct link to Combine text"></a></h3>
|
||
<div class="theme-admonition theme-admonition-important admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>important</div><div class="admonitionContent_BuS1"><p>This component is in <strong>Legacy</strong>, which means it is available for use but no longer in active development.</p></div></div>
|
||
<p>This component concatenates two text sources into a single text chunk using a specified delimiter.</p>
|
||
<ol>
|
||
<li>To use this component in a flow, connect two components that output <a href="/concepts-objects#message-object">Messages</a> to the <strong>Combine Text</strong> component's <strong>First Text</strong> and <strong>Second Text</strong> inputs.
|
||
This example uses two <strong>Text Input</strong> components.</li>
|
||
</ol>
|
||
<p><img decoding="async" loading="lazy" alt="Combine text component" src="/assets/images/component-combine-text-a73b71c22cc8099bf2a9ba22170ea701.png" width="1148" height="675" class="img_ev3q"></p>
|
||
<ol start="2">
|
||
<li>In the <strong>Combine Text</strong> component, in the <strong>Text</strong> fields of both <strong>Text Input</strong> components, enter some text to combine.</li>
|
||
<li>In the <strong>Combine Text</strong> component, enter an optional <strong>Delimiter</strong> value.
|
||
The delimiter character separates the combined texts.
|
||
This example uses <code>\n\n **end first text** \n\n **start second text** \n\n</code> to label the texts and create newlines between them.</li>
|
||
<li>Connect a <strong>Chat Output</strong> component to view the text combination.</li>
|
||
<li>Click <strong>Playground</strong>, and then click <strong>Run Flow</strong>.
|
||
The combined text appears in the <strong>Playground</strong>.</li>
|
||
</ol>
|
||
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>This is the first text. Let's combine text!</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>end first text</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>start second text</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>Here's the second part. We'll see how combining text works.</span></div></div><br></code></div></div>
|
||
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Parameters</summary><div><div class="collapsibleContent_i85q"><p><strong>Inputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>first_text</td><td>First Text</td><td>The first text input to concatenate.</td></tr><tr><td>second_text</td><td>Second Text</td><td>The second text input to concatenate.</td></tr><tr><td>delimiter</td><td>Delimiter</td><td>A string used to separate the two text inputs. The default is a space.</td></tr></tbody></table><p><strong>Outputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>message</td><td>Message</td><td>A Message object containing the combined text.</td></tr></tbody></table></div></div></details>
|
||
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="create-data">Create data<a href="#create-data" class="hash-link" aria-label="Direct link to Create data" title="Direct link to Create data"></a></h3>
|
||
<div class="theme-admonition theme-admonition-important admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>important</div><div class="admonitionContent_BuS1"><p>This component is in <strong>Legacy</strong>, which means it is available for use but no longer in active development.</p></div></div>
|
||
<p>This component dynamically creates a <a href="/concepts-objects#data-object">Data</a> object with a specified number of fields.</p>
|
||
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Parameters</summary><div><div class="collapsibleContent_i85q"><p><strong>Inputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>number_of_fields</td><td>Number of Fields</td><td>The number of fields to be added to the record.</td></tr><tr><td>text_key</td><td>Text Key</td><td>Key that identifies the field to be used as the text content.</td></tr><tr><td>text_key_validator</td><td>Text Key Validator</td><td>If enabled, checks if the given <code>Text Key</code> is present in the given <code>Data</code>.</td></tr></tbody></table><p><strong>Outputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>data</td><td>Data</td><td>A <a href="/concepts-objects#data-object">Data</a> object created with the specified fields and text key.</td></tr></tbody></table></div></div></details>
|
||
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="filter-data">Filter data<a href="#filter-data" class="hash-link" aria-label="Direct link to Filter data" title="Direct link to Filter data"></a></h3>
|
||
<div class="theme-admonition theme-admonition-important admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>important</div><div class="admonitionContent_BuS1"><p>This component is in <strong>Legacy</strong>, which means it is available for use but no longer in active development.
|
||
Instead, use the <a href="#data-operations">Data operations</a> component.</p></div></div>
|
||
<p>This component filters a <a href="/concepts-objects#data-object">Data</a> object based on a list of keys.</p>
|
||
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Parameters</summary><div><div class="collapsibleContent_i85q"><p><strong>Inputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>data</td><td>Data</td><td>The Data object to filter.</td></tr><tr><td>filter_criteria</td><td>Filter Criteria</td><td>A list of keys to filter by.</td></tr></tbody></table><p><strong>Outputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>filtered_data</td><td>Filtered Data</td><td>A new Data object containing only the key-value pairs that match the filter criteria.</td></tr></tbody></table></div></div></details>
|
||
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="filter-values">Filter values<a href="#filter-values" class="hash-link" aria-label="Direct link to Filter values" title="Direct link to Filter values"></a></h3>
|
||
<div class="theme-admonition theme-admonition-important admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>important</div><div class="admonitionContent_BuS1"><p>This component is in <strong>Legacy</strong>, which means it is available for use but no longer in active development.
|
||
Instead, use the <a href="#data-operations">Data operations</a> component.</p></div></div>
|
||
<p>The Filter values component filters a list of data items based on a specified key, filter value, and comparison operator.</p>
|
||
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Parameters</summary><div><div class="collapsibleContent_i85q"><p><strong>Inputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>input_data</td><td>Input data</td><td>The list of data items to filter.</td></tr><tr><td>filter_key</td><td>Filter Key</td><td>The key to filter on.</td></tr><tr><td>filter_value</td><td>Filter Value</td><td>The value to filter by.</td></tr><tr><td>operator</td><td>Comparison Operator</td><td>The operator to apply for comparing the values.</td></tr></tbody></table><p><strong>Outputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>filtered_data</td><td>Filtered data</td><td>The resulting list of filtered data items.</td></tr></tbody></table></div></div></details>
|
||
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="json-cleaner">JSON cleaner<a href="#json-cleaner" class="hash-link" aria-label="Direct link to JSON cleaner" title="Direct link to JSON cleaner"></a></h3>
|
||
<div class="theme-admonition theme-admonition-important admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>important</div><div class="admonitionContent_BuS1"><p>This component is in <strong>Legacy</strong>, which means it is available for use but no longer in active development.</p></div></div>
|
||
<p>The JSON cleaner component cleans JSON strings to ensure they are fully compliant with the JSON specification.</p>
|
||
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Parameters</summary><div><div class="collapsibleContent_i85q"><p><strong>Inputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>json_str</td><td>JSON String</td><td>The JSON string to be cleaned. This can be a raw, potentially malformed JSON string produced by language models or other sources that may not fully comply with JSON specifications.</td></tr><tr><td>remove_control_chars</td><td>Remove Control Characters</td><td>If set to True, this option removes control characters (ASCII characters 0-31 and 127) from the JSON string. This can help eliminate invisible characters that might cause parsing issues or make the JSON invalid.</td></tr><tr><td>normalize_unicode</td><td>Normalize Unicode</td><td>When enabled, this option normalizes Unicode characters in the JSON string to their canonical composition form (NFC). This ensures consistent representation of Unicode characters across different systems and prevents potential issues with character encoding.</td></tr><tr><td>validate_json</td><td>Validate JSON</td><td>If set to True, this option attempts to parse the JSON string to ensure it is well-formed before applying the final repair operation. It raises a ValueError if the JSON is invalid, allowing for early detection of major structural issues in the JSON.</td></tr></tbody></table><p><strong>Outputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>output</td><td>Cleaned JSON String</td><td>The resulting cleaned, repaired, and validated JSON string that fully complies with the JSON specification.</td></tr></tbody></table></div></div></details>
|
||
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="parse-dataframe">Parse DataFrame<a href="#parse-dataframe" class="hash-link" aria-label="Direct link to Parse DataFrame" title="Direct link to Parse DataFrame"></a></h3>
|
||
<div class="theme-admonition theme-admonition-important admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>important</div><div class="admonitionContent_BuS1"><p>This component is in <strong>Legacy</strong>, which means it is available for use but no longer in active development.
|
||
Instead, use the <a href="#parser">Parser</a> component.</p></div></div>
|
||
<p>This component converts DataFrames into plain text using templates.</p>
|
||
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Parameters</summary><div><div class="collapsibleContent_i85q"><p><strong>Inputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>df</td><td>DataFrame</td><td>The DataFrame to convert to text rows.</td></tr><tr><td>template</td><td>Template</td><td>Template for formatting (use <code>{column_name}</code> placeholders).</td></tr><tr><td>sep</td><td>Separator</td><td>String to join rows in output.</td></tr></tbody></table><p><strong>Outputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>text</td><td>Text</td><td>All rows combined into single text.</td></tr></tbody></table></div></div></details>
|
||
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="parse-json">Parse JSON<a href="#parse-json" class="hash-link" aria-label="Direct link to Parse JSON" title="Direct link to Parse JSON"></a></h3>
|
||
<div class="theme-admonition theme-admonition-important admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>important</div><div class="admonitionContent_BuS1"><p>This component is in <strong>Legacy</strong>, which means it is available for use but no longer in active development.</p></div></div>
|
||
<p>This component converts and extracts JSON fields using JQ queries.</p>
|
||
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Parameters</summary><div><div class="collapsibleContent_i85q"><p><strong>Inputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>input_value</td><td>Input</td><td>Data object to filter (<a href="/concepts-objects#message-object">Message</a> or <a href="/concepts-objects#data-object">Data</a>).</td></tr><tr><td>query</td><td>JQ Query</td><td>JQ Query to filter the data</td></tr></tbody></table><p><strong>Outputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>filtered_data</td><td>Filtered Data</td><td>Filtered data as list of <a href="/concepts-objects#data-object">Data</a> objects.</td></tr></tbody></table></div></div></details>
|
||
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="select-data">Select data<a href="#select-data" class="hash-link" aria-label="Direct link to Select data" title="Direct link to Select data"></a></h3>
|
||
<div class="theme-admonition theme-admonition-important admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>important</div><div class="admonitionContent_BuS1"><p>This component is in <strong>Legacy</strong>, which means it is available for use but no longer in active development.</p></div></div>
|
||
<p>This component selects a single <a href="/concepts-objects#data-object">Data</a> item from a list.</p>
|
||
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Parameters</summary><div><div class="collapsibleContent_i85q"><p><strong>Inputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>data_list</td><td>Data List</td><td>List of data to select from</td></tr><tr><td>data_index</td><td>Data Index</td><td>Index of the data to select</td></tr></tbody></table><p><strong>Outputs</strong></p><table><thead><tr><th>Name</th><th>Display Name</th><th>Info</th></tr></thead><tbody><tr><td>selected_data</td><td>Selected Data</td><td>The selected <a href="/concepts-objects#data-object">Data</a> object.</td></tr></tbody></table></div></div></details></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/components-models"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Models</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/components-prompts"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Prompts</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#use-a-processing-component-in-a-flow" class="table-of-contents__link toc-highlight">Use a processing component in a flow</a></li><li><a href="#dataframe-operations" class="table-of-contents__link toc-highlight">DataFrame operations</a><ul><li><a href="#operations" class="table-of-contents__link toc-highlight">Operations</a></li></ul></li><li><a href="#data-operations" class="table-of-contents__link toc-highlight">Data operations</a><ul><li><a href="#operations-1" class="table-of-contents__link toc-highlight">Operations</a></li></ul></li><li><a href="#data-to-dataframe" class="table-of-contents__link toc-highlight">Data to DataFrame</a></li><li><a href="#lambda-filter" class="table-of-contents__link toc-highlight">Lambda filter</a></li><li><a href="#llm-router" class="table-of-contents__link toc-highlight">LLM router</a></li><li><a href="#message-to-data" class="table-of-contents__link toc-highlight">Message to data</a></li><li><a href="#parser" class="table-of-contents__link toc-highlight">Parser</a></li><li><a href="#regex-extractor" class="table-of-contents__link toc-highlight">Regex extractor</a></li><li><a href="#save-to-file" class="table-of-contents__link toc-highlight">Save to File</a><ul><li><a href="#file-input-format-options" class="table-of-contents__link toc-highlight">File input format options</a></li></ul></li><li><a href="#split-text" class="table-of-contents__link toc-highlight">Split text</a></li><li><a href="#update-data" class="table-of-contents__link toc-highlight">Update data</a></li><li><a href="#legacy-components" class="table-of-contents__link toc-highlight">Legacy components</a><ul><li><a href="#alter-metadata" class="table-of-contents__link toc-highlight">Alter metadata</a></li><li><a href="#combine-data" class="table-of-contents__link toc-highlight">Combine data</a></li><li><a href="#combine-text" class="table-of-contents__link toc-highlight">Combine text</a></li><li><a href="#create-data" class="table-of-contents__link toc-highlight">Create data</a></li><li><a href="#filter-data" class="table-of-contents__link toc-highlight">Filter data</a></li><li><a href="#filter-values" class="table-of-contents__link toc-highlight">Filter values</a></li><li><a href="#json-cleaner" class="table-of-contents__link toc-highlight">JSON cleaner</a></li><li><a href="#parse-dataframe" class="table-of-contents__link toc-highlight">Parse DataFrame</a></li><li><a href="#parse-json" class="table-of-contents__link toc-highlight">Parse JSON</a></li><li><a href="#select-data" class="table-of-contents__link toc-highlight">Select data</a></li></ul></li></ul></div></div></div></div></main></div></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title"></div><ul class="footer__items clean-list"><li class="footer__item"><div class="footer-links">
|
||
<span>© 2025 Langflow</span>
|
||
<span id="preferenceCenterContainer"> · <a href="https://langflow.org/preferences">Manage Privacy Choices</a></span>
|
||
</div></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/img/lf-docs-light.svg" alt="Langflow" class="footer__logo themedComponent_mlkZ themedComponent--light_NVdE" width="160" height="40"><img src="/img/lf-docs-dark.svg" alt="Langflow" class="footer__logo themedComponent_mlkZ themedComponent--dark_xIcU" width="160" height="40"></div></div></div></footer><div style="position:fixed;right:20px;bottom:20px;z-index:100;display:flex;align-items:center;gap:10px;cursor:pointer"><div style="background-color:#f6f6f6;border-radius:50%;width:48px;height:48px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px rgba(0,0,0,0.1)"><img src="/img/langflow-icon-black-transparent.svg" style="width:40px" alt="Search"></div></div></div>
|
||
</body>
|
||
</html> |