Files
langflow/concepts-components.html
github-merge-queue[bot] dff8ebb9fa deploy: d4fca1fe40
2025-06-20 18:43:03 +00:00

133 lines
54 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-Concepts/concepts-components" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.7.0">
<title data-rh="true">Components | 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/concepts-components"><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="Components | Langflow Documentation"><meta data-rh="true" name="description" content="A component is a single building block within a flow with inputs, outputs, functions, and parameters that define its functionality. A single component is like a class within a larger application."><meta data-rh="true" property="og:description" content="A component is a single building block within a flow with inputs, outputs, functions, and parameters that define its functionality. A single component is like a class within a larger application."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://docs.langflow.org/concepts-components"><link data-rh="true" rel="alternate" href="https://docs.langflow.org/concepts-components" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.langflow.org/concepts-components" 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&amp;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"><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="/concepts-overview">Concepts</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="/concepts-overview">Langflow overview</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="/concepts-playground">Playground</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="/concepts-components">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="/concepts-flows">Flows</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="/concepts-objects">Langflow objects</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="/concepts-publish">Publish flows</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="/embedded-chat-widget">Embedded chat widget</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="/concepts-file-management">Manage files</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="/concepts-voice-mode">Voice mode</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="/components-agents">Components</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="/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">Concepts</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">Components</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"><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>
<!-- -->
<header><h1>Langflow components overview</h1></header>
<p>A component is a single building block within a flow with inputs, outputs, functions, and parameters that define its functionality. A single component is like a class within a larger application.</p>
<p>To add a component to a flow, drag it from the <strong>Component</strong> menu to the <strong>Workspace</strong>.</p>
<p>Learn more about components and how they work on this page.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="component-menu">Component menu<a href="#component-menu" class="hash-link" aria-label="Direct link to Component menu" title="Direct link to Component menu"></a></h2>
<p>All components have a <strong>Component menu</strong> that contains meta settings for the component.</p>
<p>To access this menu for a specific component, select a component in a flow.
The menu appears above the selected component.</p>
<img src="/img/openai-model-component.png" alt="OpenAI component with the component menu visible" style="display:block;margin:auto;width:300px">
<p>You can use the controls in the <strong>Component menu</strong> to manage and configure the component on a high level, including the following actions:</p>
<ul>
<li><strong>Code</strong>: Modify the component settings by directly editing the component&#x27;s Python code.</li>
<li><strong>Controls</strong>: Adjust all component parameters, including optional settings that are hidden by default.</li>
<li><strong>Tool Mode</strong>: Enable tool mode when combining a component with an agent component.</li>
<li><strong>Freeze</strong>: After a component runs, lock its previous output state to prevent it from re-running.</li>
</ul>
<p>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-ellipsis" aria-label="Horizontal ellipsis"><circle cx="12" cy="12" r="1"></circle><circle cx="19" cy="12" r="1"></circle><circle cx="5" cy="12" r="1"></circle></svg> <strong>All</strong> to see additional options for a component.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="component-logs">Component logs<a href="#component-logs" class="hash-link" aria-label="Direct link to Component logs" title="Direct link to Component logs"></a></h2>
<p>To view a component&#x27;s output and logs, click the <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> icon.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="run-one-component">Run one component<a href="#run-one-component" class="hash-link" aria-label="Direct link to Run one component" title="Direct link to Run one component"></a></h2>
<p>To run a single 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 button"><polygon points="6 3 20 12 6 21 6 3"></polygon></svg> <strong>Play</strong>.</p>
<p>Running a single component with the <strong>Play</strong> button is different from running the entire flow. In a single component run, the <code>build_vertex</code> function is called, which builds and runs only the single component with direct inputs provided through the UI (the <code>inputs_dict</code> parameter). The <code>VertexBuildResult</code> data is passed to the <code>build_and_run</code> method, which calls the component&#x27;s <code>build</code> method and runs it. Unlike running the full flow, running a single component does not automatically execute its upstream dependencies.</p>
<p>A <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-check" aria-label="Checkmark"><path d="M20 6 9 17l-5-5"></path></svg> <strong>Checkmark</strong> indicates that the component ran successfully.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="component-ports">Component ports<a href="#component-ports" class="hash-link" aria-label="Direct link to Component ports" title="Direct link to Component ports"></a></h2>
<p>Handles (<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle" aria-label="A circle on the side of a component"><circle cx="12" cy="12" r="10"></circle></svg>) on the side of a component indicate the types of inputs and outputs that can be connected at that port. Hover over a handle to see connection details.</p>
<img src="/img/prompt-component.png" alt="Prompt component" style="display:block;margin:auto;width:300px">
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="component-port-data-type-colors">Component port data type colors<a href="#component-port-data-type-colors" class="hash-link" aria-label="Direct link to Component port data type colors" title="Direct link to Component port data type colors"></a></h3>
<p>The following table lists the handle colors and their corresponding data types:</p>
<table><thead><tr><th>Data type</th><th>Handle color</th><th>Handle</th></tr></thead><tbody><tr><td>Data</td><td>Red</td><td><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle" aria-label="A circle on the side of a component" style="color:#dc2626"><circle cx="12" cy="12" r="10"></circle></svg></td></tr><tr><td>DataFrame</td><td>Pink</td><td><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle" aria-label="A circle on the side of a component" style="color:#ec4899"><circle cx="12" cy="12" r="10"></circle></svg></td></tr><tr><td>Embeddings</td><td>Emerald</td><td><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle" aria-label="A circle on the side of a component" style="color:#10b981"><circle cx="12" cy="12" r="10"></circle></svg></td></tr><tr><td>LanguageModel</td><td>Fuchsia</td><td><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle" aria-label="A circle on the side of a component" style="color:#c026d3"><circle cx="12" cy="12" r="10"></circle></svg></td></tr><tr><td>Memory</td><td>Orange</td><td><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle" aria-label="A circle on the side of a component" style="color:#f97316"><circle cx="12" cy="12" r="10"></circle></svg></td></tr><tr><td>Message</td><td>Indigo</td><td><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle" aria-label="A circle on the side of a component" style="color:#4f46e5"><circle cx="12" cy="12" r="10"></circle></svg></td></tr><tr><td>Text</td><td>Indigo</td><td><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle" aria-label="A circle on the side of a component" style="color:#4f46e5"><circle cx="12" cy="12" r="10"></circle></svg></td></tr><tr><td>Tool</td><td>Cyan</td><td><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle" aria-label="A circle on the side of a component" style="color:#06b6d4"><circle cx="12" cy="12" r="10"></circle></svg></td></tr><tr><td>unknown</td><td>Gray</td><td><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle" aria-label="A circle on the side of a component" style="color:#9CA3AF"><circle cx="12" cy="12" r="10"></circle></svg></td></tr></tbody></table>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="component-code">Component code<a href="#component-code" class="hash-link" aria-label="Direct link to Component code" title="Direct link to Component code"></a></h2>
<p>A component inherits from a base <code>Component</code> class that defines its interface and behavior.</p>
<p>For example, the <a href="https://github.com/langflow-ai/langflow/blob/main/src/backend/base/langflow/components/langchain_utilities/recursive_character.py" target="_blank" rel="noopener noreferrer">Recursive character text splitter</a> is a child of the <a href="https://github.com/langflow-ai/langflow/blob/main/src/backend/base/langflow/base/textsplitters/model.py" target="_blank" rel="noopener noreferrer">LCTextSplitterComponent</a> class.</p>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Recursive character text splitter code</summary><div><div class="collapsibleContent_i85q"><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">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span>from typing import Any</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span>from langchain_text_splitters import RecursiveCharacterTextSplitter, TextSplitter</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span>from langflow.base.textsplitters.model import LCTextSplitterComponent</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span>from langflow.inputs.inputs import DataInput, IntInput, MessageTextInput</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span>from langflow.utils.util import unescape_string</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span>class RecursiveCharacterTextSplitterComponent(LCTextSplitterComponent):</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> display_name: str = &quot;Recursive Character Text Splitter&quot;</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> description: str = &quot;Split text trying to keep all related text together.&quot;</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> documentation: str = &quot;https://docs.langflow.org/components-processing&quot;</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> name = &quot;RecursiveCharacterTextSplitter&quot;</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> icon = &quot;LangChain&quot;</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> inputs = [</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> IntInput(</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> name=&quot;chunk_size&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> display_name=&quot;Chunk Size&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> info=&quot;The maximum length of each chunk.&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> value=1000,</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> ),</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> IntInput(</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> name=&quot;chunk_overlap&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> display_name=&quot;Chunk Overlap&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> info=&quot;The amount of overlap between chunks.&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> value=200,</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> ),</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> DataInput(</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> name=&quot;data_input&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> display_name=&quot;Input&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> info=&quot;The texts to split.&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> input_types=[&quot;Document&quot;, &quot;Data&quot;],</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> ),</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> MessageTextInput(</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> name=&quot;separators&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> display_name=&quot;Separators&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> info=&#x27;The characters to split on.\nIf left empty defaults to [&quot;\\n\\n&quot;, &quot;\\n&quot;, &quot; &quot;, &quot;&quot;].&#x27;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> is_list=True,</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> ),</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> ]</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> def get_data_input(self) -&gt; Any:</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> return self.data_input</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> def build_text_splitter(self) -&gt; TextSplitter:</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> if not self.separators:</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> separators: list[str] | None = None</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> else:</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> # check if the separators list has escaped characters</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> # if there are escaped characters, unescape them</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> separators = [unescape_string(x) for x in self.separators]</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span></span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> return RecursiveCharacterTextSplitter(</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> separators=separators,</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> chunk_size=self.chunk_size,</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> chunk_overlap=self.chunk_overlap,</span></div></div><div><span class="ch-code-line-number">_<!-- -->58</span><div style="display:inline-block;margin-left:16px"><span> )</span></div></div><br></code></div></div></div></div></details>
<p>Components include definitions for inputs and outputs, which are represented in the UI with color-coded ports.</p>
<p><strong>Input Definition:</strong> Each input (like <code>IntInput</code> or <code>DataInput</code>) specifies an input&#x27;s type, name, and display properties, which appear as configurable fields in the component&#x27;s UI panel.</p>
<p><strong>Methods:</strong> Components have methods or functions that handle their functionality. This component has two methods.
<code>get_data_input</code> retrieves the text data to be split from the component&#x27;s input. This makes the data available to the class.
<code>build_text_splitter</code> creates a <code>RecursiveCharacterTextSplitter</code> object by calling its parent class&#x27;s <code>build</code> method. The text is split with the created splitter and passed to the next component.
When used in a flow, this component:</p>
<ol>
<li>Displays its configuration options in the UI.</li>
<li>Validates user inputs based on the input types.</li>
<li>Processes data using the configured parameters.</li>
<li>Passes results to the next component.</li>
</ol>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="freeze">Freeze<a href="#freeze" class="hash-link" aria-label="Direct link to Freeze" title="Direct link to Freeze"></a></h2>
<p>After a component runs, <strong>Freeze</strong> locks the component&#x27;s previous output state to prevent it from re-running.</p>
<p>If you&#x27;re expecting consistent output from a component and don&#x27;t need to re-run it, click <strong>Freeze</strong>.</p>
<p>Enabling <strong>Freeze</strong> freezes all components upstream of the selected component.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="additional-component-options">Additional component options<a href="#additional-component-options" class="hash-link" aria-label="Direct link to Additional component options" title="Direct link to Additional component options"></a></h2>
<p>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-ellipsis" aria-label="Horizontal ellipsis"><circle cx="12" cy="12" r="1"></circle><circle cx="19" cy="12" r="1"></circle><circle cx="5" cy="12" r="1"></circle></svg> <strong>All</strong> to see additional options for a component.</p>
<p>To modify a component&#x27;s name or description, click the <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-pencil-line" aria-label="Pencil line"><path d="M12 20h9"></path><path d="M16.376 3.622a1 1 0 0 1 3.002 3.002L7.368 18.635a2 2 0 0 1-.855.506l-2.872.838a.5.5 0 0 1-.62-.62l.838-2.872a2 2 0 0 1 .506-.854z"></path><path d="m15 5 3 3"></path></svg> icon. Component descriptions accept Markdown syntax.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="component-shortcuts">Component shortcuts<a href="#component-shortcuts" class="hash-link" aria-label="Direct link to Component shortcuts" title="Direct link to Component shortcuts"></a></h3>
<p>The following keyboard shortcuts are available when a component is selected.</p>
<table><thead><tr><th>Menu item</th><th>Windows shortcut</th><th>Mac shortcut</th><th>Description</th></tr></thead><tbody><tr><td>Code</td><td><kbd>Space</kbd></td><td><kbd>Space</kbd></td><td>Opens the code editor for the component.</td></tr><tr><td>Advanced Settings</td><td><kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>A</kbd></td><td><kbd></kbd> + <kbd>Shift</kbd> + <kbd>A</kbd></td><td>Opens advanced settings for the component.</td></tr><tr><td>Save Changes</td><td><kbd>Ctrl</kbd> + <kbd>S</kbd></td><td><kbd></kbd> + <kbd>S</kbd></td><td>Saves changes to the current flow.</td></tr><tr><td>Save Component</td><td><kbd>Ctrl</kbd> + <kbd>Alt</kbd> + <kbd>S</kbd></td><td><kbd></kbd> + <kbd>Alt</kbd> + <kbd>S</kbd></td><td>Saves the current component to Saved components.</td></tr><tr><td>Duplicate</td><td><kbd>Ctrl</kbd> + <kbd>D</kbd></td><td><kbd></kbd> + <kbd>D</kbd></td><td>Creates a duplicate of the component.</td></tr><tr><td>Copy</td><td><kbd>Ctrl</kbd> + <kbd>C</kbd></td><td><kbd></kbd> + <kbd>C</kbd></td><td>Copies the selected component.</td></tr><tr><td>Cut</td><td><kbd>Ctrl</kbd> + <kbd>X</kbd></td><td><kbd></kbd> + <kbd>X</kbd></td><td>Cuts the selected component.</td></tr><tr><td>Paste</td><td><kbd>Ctrl</kbd> + <kbd>V</kbd></td><td><kbd></kbd> + <kbd>V</kbd></td><td>Pastes the copied/cut component.</td></tr><tr><td>Docs</td><td><kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>D</kbd></td><td><kbd></kbd> + <kbd>Shift</kbd> + <kbd>D</kbd></td><td>Opens related documentation.</td></tr><tr><td>Minimize</td><td><kbd>Ctrl</kbd> + <kbd>.</kbd></td><td><kbd></kbd> + <kbd>.</kbd></td><td>Minimizes the current component.</td></tr><tr><td>Freeze</td><td><kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>F</kbd></td><td><kbd></kbd> + <kbd>Shift</kbd> + <kbd>F</kbd></td><td>Freezes component state and upstream components.</td></tr><tr><td>Download</td><td><kbd>Ctrl</kbd> + <kbd>J</kbd></td><td><kbd></kbd> + <kbd>J</kbd></td><td>Downloads the component as JSON.</td></tr><tr><td>Delete</td><td><kbd>Backspace</kbd></td><td><kbd>Backspace</kbd></td><td>Deletes the component.</td></tr><tr><td>Group</td><td><kbd>Ctrl</kbd> + <kbd>G</kbd></td><td><kbd></kbd> + <kbd>G</kbd></td><td>Groups selected components.</td></tr><tr><td>Undo</td><td><kbd>Ctrl</kbd> + <kbd>Z</kbd></td><td><kbd></kbd> + <kbd>Z</kbd></td><td>Undoes the last action.</td></tr><tr><td>Redo</td><td><kbd>Ctrl</kbd> + <kbd>Y</kbd></td><td><kbd></kbd> + <kbd>Y</kbd></td><td>Redoes the last undone action.</td></tr><tr><td>Redo (alternative)</td><td><kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>Z</kbd></td><td><kbd></kbd> + <kbd>Shift</kbd> + <kbd>Z</kbd></td><td>Alternative shortcut for redo.</td></tr><tr><td>Share Component</td><td><kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>S</kbd></td><td><kbd></kbd> + <kbd>Shift</kbd> + <kbd>S</kbd></td><td>Shares the component.</td></tr><tr><td>Share Flow</td><td><kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>B</kbd></td><td><kbd></kbd> + <kbd>Shift</kbd> + <kbd>B</kbd></td><td>Shares the entire flow.</td></tr><tr><td>Toggle Sidebar</td><td><kbd>Ctrl</kbd> + <kbd>B</kbd></td><td><kbd></kbd> + <kbd>B</kbd></td><td>Shows/hides the sidebar.</td></tr><tr><td>Search Components</td><td><kbd>/</kbd></td><td><kbd>/</kbd></td><td>Focuses the component search bar.</td></tr><tr><td>Tool Mode</td><td><kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>M</kbd></td><td><kbd></kbd> + <kbd>Shift</kbd> + <kbd>M</kbd></td><td>Toggles tool mode.</td></tr><tr><td>Update</td><td><kbd>Ctrl</kbd> + <kbd>U</kbd></td><td><kbd></kbd> + <kbd>U</kbd></td><td>Updates the component.</td></tr><tr><td>Open Playground</td><td><kbd>Ctrl</kbd> + <kbd>K</kbd></td><td><kbd></kbd> + <kbd>K</kbd></td><td>Opens the playground.</td></tr><tr><td>Output Inspection</td><td><kbd>O</kbd></td><td><kbd>O</kbd></td><td>Opens output inspection.</td></tr><tr><td>Play</td><td><kbd>P</kbd></td><td><kbd>P</kbd></td><td>Plays/executes the flow.</td></tr><tr><td>API</td><td><kbd>R</kbd></td><td><kbd>R</kbd></td><td>Opens the API view.</td></tr></tbody></table>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="group-components-in-the-workspace">Group components in the workspace<a href="#group-components-in-the-workspace" class="hash-link" aria-label="Direct link to Group components in the workspace" title="Direct link to Group components in the workspace"></a></h2>
<p>Multiple components can be grouped into a single component for reuse. This is useful when combining large flows into single components, for example RAG with a vector database, and saving space.</p>
<ol>
<li>Hold <kbd>Shift</kbd> and drag to select components.</li>
</ol>
<p>The components merge into a single component.</p>
<ol start="2">
<li>To modify the name and description of the single grouped component, in the grouped component, click the <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-pencil-line" aria-label="Pencil line"><path d="M12 20h9"></path><path d="M16.376 3.622a1 1 0 0 1 3.002 3.002L7.368 18.635a2 2 0 0 1-.855.506l-2.872.838a.5.5 0 0 1-.62-.62l.838-2.872a2 2 0 0 1 .506-.854z"></path><path d="m15 5 3 3"></path></svg> icon.</li>
<li>Save your grouped component to the sidebar for later use.</li>
</ol>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="component-version">Component version<a href="#component-version" class="hash-link" aria-label="Direct link to Component version" title="Direct link to Component version"></a></h2>
<p>A component&#x27;s initial state is stored in a database. As soon as you drag a component from the sidebar to the workspace, the two components are no longer in parity.</p>
<p>A component keeps the version number it is initialized to the workspace with. If a component is at version <code>1.0</code> when it is dragged to the workspace, it will stay at version <code>1.0</code> until you update it.</p>
<p>Langflow notifies you when a component&#x27;s workspace version is behind the database version and an update is available.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="review-and-update-components">Review and update components<a href="#review-and-update-components" class="hash-link" aria-label="Direct link to Review and update components" title="Direct link to Review and update components"></a></h3>
<p>When a component&#x27;s workspace version is behind the database version and an update is available, the component displays a notification.
If there are potentially breaking changes in the component updates, Langflow notifies you with an additional dialog.</p>
<p>Breaking changes modify component inputs and outputs, and may break your flows or require you to re-connect component edges.</p>
<p>An <strong>Update ready</strong> notification on a component indicates the component update contains no breaking changes. To update a single component, click <strong>Update</strong>.</p>
<p>An <strong>Update available</strong> notification indicates the component update contains potentially breaking changes.</p>
<ol>
<li>To review all components with pending updates, in the component or in the dialog, click <strong>Review</strong>.
The <strong>Update components</strong> pane appears.
This pane lists components in your flow with breaking changes, and includes an option to save a flow snapshot before updating.</li>
<li>To save your flow before updating individual components, enable the <strong>Create backup flow before updating</strong> option.</li>
<li>To update individual components, select them in the list, and then click <strong>Update Component</strong>.
Your components are updated to the current version.
If you created a backup flow, it&#x27;s available in the same project folder as the original flow, with <code>(backup)</code> added to its name.</li>
</ol>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="components-sidebar">Components sidebar<a href="#components-sidebar" class="hash-link" aria-label="Direct link to Components sidebar" title="Direct link to Components sidebar"></a></h2>
<p>Components are listed in the sidebar by component type.</p>
<p><strong>Bundles</strong> are components grouped by provider. For example, Langchain modules like <strong>RunnableExecutor</strong> and <strong>CharacterTextSplitter</strong> are grouped under the <strong>Langchain</strong> bundle.</p>
<p><strong>Beta</strong> components are still being tested and are not suitable for production workloads.</p>
<p><strong>Legacy</strong> components are available for use but are no longer supported. By default, legacy components are hidden in the sidebar.</p>
<p>The sidebar includes a component <strong>Search</strong> bar with options for showing or hiding <strong>Beta</strong> and <strong>Legacy</strong> components.
To change the sidebar&#x27;s behavior, click the <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-sliders-horizontal" aria-hidden="true"><line x1="21" x2="14" y1="4" y2="4"></line><line x1="10" x2="3" y1="4" y2="4"></line><line x1="21" x2="12" y1="12" y2="12"></line><line x1="8" x2="3" y1="12" y2="12"></line><line x1="21" x2="16" y1="20" y2="20"></line><line x1="12" x2="3" y1="20" y2="20"></line><line x1="14" x2="14" y1="2" y2="6"></line><line x1="8" x2="8" y1="10" y2="14"></line><line x1="16" x2="16" y1="18" y2="22"></line></svg>, and then show or hide <strong>Legacy</strong> or <strong>Beta</strong> components.</p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/concepts-playground"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Playground</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/concepts-flows"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Flows</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="#component-menu" class="table-of-contents__link toc-highlight">Component menu</a></li><li><a href="#component-logs" class="table-of-contents__link toc-highlight">Component logs</a></li><li><a href="#run-one-component" class="table-of-contents__link toc-highlight">Run one component</a></li><li><a href="#component-ports" class="table-of-contents__link toc-highlight">Component ports</a><ul><li><a href="#component-port-data-type-colors" class="table-of-contents__link toc-highlight">Component port data type colors</a></li></ul></li><li><a href="#component-code" class="table-of-contents__link toc-highlight">Component code</a></li><li><a href="#freeze" class="table-of-contents__link toc-highlight">Freeze</a></li><li><a href="#additional-component-options" class="table-of-contents__link toc-highlight">Additional component options</a><ul><li><a href="#component-shortcuts" class="table-of-contents__link toc-highlight">Component shortcuts</a></li></ul></li><li><a href="#group-components-in-the-workspace" class="table-of-contents__link toc-highlight">Group components in the workspace</a></li><li><a href="#component-version" class="table-of-contents__link toc-highlight">Component version</a><ul><li><a href="#review-and-update-components" class="table-of-contents__link toc-highlight">Review and update components</a></li></ul></li><li><a href="#components-sidebar" class="table-of-contents__link toc-highlight">Components sidebar</a></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"> ·&nbsp; <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>