Files
langflow/data-types.html
github-merge-queue[bot] a8f48e3a82 deploy: 4a06423818
2025-10-02 14:24:10 +00:00

213 lines
65 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-Develop/data-types" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.8.1">
<title data-rh="true">Langflow data types | 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/data-types"><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="Langflow data types | Langflow Documentation"><meta data-rh="true" name="description" content="Langflow components are designed to accept and produce specific types of inputs and outputs."><meta data-rh="true" property="og:description" content="Langflow components are designed to accept and produce specific types of inputs and outputs."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://docs.langflow.org/data-types"><link data-rh="true" rel="alternate" href="https://docs.langflow.org/data-types" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.langflow.org/data-types" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://UZK6BDPCVY-dsn.algolia.net" crossorigin="anonymous"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Use Langflow data types","item":"https://docs.langflow.org/data-types"}]}</script><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">
<script>!function(){var e="analytics",t=window[e]=window[e]||[];if(!t.initialize)if(t.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{t.invoked=!0,t.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","screen","once","off","on","addSourceMiddleware","addIntegrationMiddleware","setAnonymousId","addDestinationMiddleware","register"],t.factory=function(n){return function(){if(window[e].initialized)return window[e][n].apply(window[e],arguments);var r=Array.prototype.slice.call(arguments);if(["track","screen","alias","group","page","identify"].indexOf(n)>-1){var i=document.querySelector("link[rel='canonical']");r.push({__t:"bpc",c:i&&i.getAttribute("href")||void 0,p:location.pathname,u:location.href,s:location.search,t:document.title,r:document.referrer})}return r.unshift(n),t.push(r),t}};for(var n=0;n<t.methods.length;n++){var r=t.methods[n];t[r]=t.factory(r)}t.load=function(n,r){var i=document.createElement("script");i.type="text/javascript",i.async=!0,i.setAttribute("data-global-segment-analytics-key",e),i.src="https://cdn.segment.com/analytics.js/v1/"+n+"/analytics.min.js";var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(i,a),t._loadOptions=r},t._writeKey="60AfGDrVxy8nAGJngo3fCYWG4LvhMAlG",t.SNIPPET_VERSION="5.2.0",t.load("60AfGDrVxy8nAGJngo3fCYWG4LvhMAlG"),t.page()}}()</script>
<script>window.__SCROLL_TRACKING_CONFIG__={selectors:[{selector:"h1, h2, h3, h4, h5, h6",eventName:"Docs.langflow.org - Heading Viewed",properties:{element_type:"heading"}},{selector:".ch-codeblock",eventName:"Docs.langflow.org - Codeblock Viewed",properties:{element_type:"code",language:"helper:codeLanguage"}}]}</script>
<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.9488e50d.css">
<script src="/assets/js/runtime~main.e8f68371.js" defer="defer"></script>
<script src="/assets/js/main.8715c1c6.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")),document.documentElement.setAttribute("data-theme-choice",t||"system")}(),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="theme-layout-navbar navbar navbar--fixed-top navbarHideable_m1mJ"><div class="navbar__inner"><div class="theme-layout-navbar-left 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="theme-layout-navbar-right navbar__items navbar__items--right"><a href="https://github.com/langflow-ai/langflow" target="_blank" class="navbar__item navbar__link header-github-link" data-event="Docs.langflow.org - Social Clicked" data-platform="github"></a><a href="https://twitter.com/langflow_ai" target="_blank" class="navbar__item navbar__link header-twitter-link" data-event="Docs.langflow.org - Social Clicked" data-platform="x"></a><a href="https://discord.gg/EqksyE2EX9" target="_blank" class="navbar__item navbar__link header-discord-link" data-event="Docs.langflow.org - Social Clicked" data-platform="discord"></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP 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" aria-hidden="true" class="toggleIcon_g3eP 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><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill="currentColor" d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"></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="theme-layout-main 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-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</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">Flows</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">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-client">Model Context Protocol (MCP)</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="/api-keys-and-authentication">Develop</a></div><ul 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="/api-keys-and-authentication">API keys and authentication</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="/install-custom-dependencies">Install custom dependencies</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="/configuration-global-variables">Global variables</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="/environment-variables">Environment variables</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 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" tabindex="0" href="/concepts-file-management">Storage and memory</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 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" tabindex="0" href="/logging">Observability</a></div></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="/data-types">Use Langflow data types</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">Use voice mode</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="/configuration-cli">Use the Langflow CLI</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="/deployment-overview">Deploy</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-components">Components 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="/api-reference-api-examples">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="/contributing-community">Contribute</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="/release-notes">Release notes</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="/troubleshoot">Support</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 sidebar-ad">
<a href="https://www.langflow.org/desktop" target="_blank" class="menu__link">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1645_37)">
<path d="M12 17H20C21.1046 17 22 16.1046 22 15V13M12 17H4C2.89543 17 2 16.1046 2 15V5C2 3.89543 2.89543 3 4 3H10M12 17V21M8 21H12M12 21H16M11.75 10.2917H13.2083L16.125 7.375H17.5833L20.5 4.45833H21.9583M16.125 11.75H17.5833L20.5 8.83333H21.9583M11.75 5.91667H13.2083L16.125 3H17.5833" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</g>
<defs>
<clipPath id="clip0_1645_37">
<rect width="24" height="24" fill="white"/>
</clipPath>
</defs>
</svg>
<div class="sidebar-ad-text-container">
<span class="sidebar-ad-text">Get started in minutes</span>
<span class="sidebar-ad-text sidebar-ad-text-gradient">Download Langflow Desktop</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"><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">Develop</span></li><li class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link">Use Langflow data types</span></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>Langflow data types</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>Langflow components are designed to accept and produce specific types of inputs and outputs.
Input and output data types define the structure and flow of information between components.
Understanding these structures helps you build applications that provide valid input and correctly anticipate the output format.</p>
<p><a href="/concepts-components#component-ports">Component ports</a> represent the data types that each component can send and receive.
Some data types are self-evident from the fields they are attached to; for example, a <strong>System Message</strong> field accepts <a href="#message">message data</a>.
<a href="/concepts-components#port-colors">Port colors</a> also indicate the port&#x27;s data type.
For example <strong>Data</strong> ports, represented by <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="Red data port" style="color:#dc2626;fill:#dc2626"><circle cx="12" cy="12" r="10"></circle></svg>, either accept or emit <a href="#data">structured data objects</a>.</p>
<p>When building flows, connect output ports to input ports of the same type (color) to transfer that type of data between two components.</p>
<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"><ul>
<li>
<p>In the <a href="/concepts-overview#workspace">workspace</a>, hover over a port to see connection details for that port.
Click a port to <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-search" aria-hidden="true"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg> <strong>Search</strong> for compatible components.</p>
</li>
<li>
<p>If two components have incompatible data types, you can use a processing component like the <a href="/components-processing#type-convert"><strong>Type Convert</strong> component</a> to convert the data between components.</p>
</li>
</ul></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="data">Data<a href="#data" class="hash-link" aria-label="Direct link to Data" title="Direct link to Data"></a></h2>
<p><strong>Data</strong> ports <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="Red data port" style="color:#dc2626;fill:#dc2626"><circle cx="12" cy="12" r="10"></circle></svg> accept or produce the <code>Data</code> type, which is a structured data object, like a JSON payload that you might send to an API.
This data type is used to pass key-value pairs between components, such as user profiles, settings, or other structured information.</p>
<p><code>Data</code> objects include a primary text field, indicated by a <code>text_key</code>, and additional metadata.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="schema-and-attributes">Schema and attributes<a href="#schema-and-attributes" class="hash-link" aria-label="Direct link to Schema and attributes" title="Direct link to Schema and attributes"></a></h3>
<p>The schema is defined in <a href="https://github.com/langflow-ai/langflow/blob/main/src/backend/base/langflow/schema/data.py" target="_blank" rel="noopener noreferrer"><code>data.py</code></a>.</p>
<p>The following attributes are available:</p>
<ul>
<li><code>data</code>: A <code>Data</code> object stores key-value pairs within the <code>.data</code> attribute. This is the <code>Data</code> object&#x27;s core dictionary. Each key is a field name, and the values can be any supported data type.</li>
<li><code>text_key</code>: The key in <code>data</code> that is considered the primary text value.</li>
<li><code>default_value</code>: Fallback if <code>text_key</code> is missing. The default <code>text_key</code> is <code>&quot;text&quot;</code>.</li>
</ul>
<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>data_obj = Data(</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> text_key=&quot;text&quot;,</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> &quot;text&quot;: &quot;Hello world&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> &quot;name&quot;: &quot;Charlie&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> &quot;age&quot;: 28</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> default_value=&quot;&quot;</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>
<p><code>Data</code> objects can be serialized to JSON, created from JSON, or created from other dictionary data.
However, the resulting <code>Data</code> object is a structured object with validation and methods, not a plain dictionary.
For example, when serialized into JSON, the previous Python example becomes the following JSON object:</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>{</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> &quot;text_key&quot;: &quot;text&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> &quot;data&quot;: {</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> &quot;text&quot;: &quot;Hello world&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> &quot;name&quot;: &quot;Charlie&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> &quot;age&quot;: 28</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> &quot;default_value&quot;: &quot;&quot;</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>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="dataframe">DataFrame<a href="#dataframe" class="hash-link" aria-label="Direct link to DataFrame" title="Direct link to DataFrame"></a></h2>
<p><strong>DataFrame</strong> ports <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="Pink dataframe port" style="color:#ec4899;fill:#ec4899"><circle cx="12" cy="12" r="10"></circle></svg> accept or produce <a href="https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html" target="_blank" rel="noopener noreferrer">pandas DataFrames</a>, which are similar to the tabular CSV data.</p>
<p>Use the <code>DataFrame</code> type to work with data containing multiple rows or records.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="schema-and-attributes-1">Schema and attributes<a href="#schema-and-attributes-1" class="hash-link" aria-label="Direct link to Schema and attributes" title="Direct link to Schema and attributes"></a></h3>
<p>The schema is defined in <a href="https://github.com/langflow-ai/langflow/blob/main/src/backend/base/langflow/schema/dataframe.py" target="_blank" rel="noopener noreferrer"><code>dataframe.py</code></a>.</p>
<p>The following attributes are available:</p>
<ul>
<li>
<p><strong>Full pandas compatibility</strong>: All pandas DataFrame methods and functionality are supported</p>
</li>
<li>
<p><strong>Langflow integration</strong>: Accepts lists of <a href="#data"><code>Data</code> objects</a>, dictionaries, or existing DataFrames.</p>
</li>
<li>
<p><strong>Convenience methods</strong>:</p>
<ul>
<li><code>to_data_list()</code></li>
<li><code>add_row()</code></li>
<li><code>add_rows()</code></li>
<li><code>to_lc_documents()</code></li>
<li><code>to_data()</code></li>
<li><code>to_message()</code></li>
</ul>
</li>
<li>
<p><strong>Text key support</strong>: Maintains <code>text_key</code> and <code>default_value</code> attributes for <a href="#data"><code>Data</code> object</a> compatibility.</p>
</li>
</ul>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="dataframe-structure">DataFrame structure<a href="#dataframe-structure" class="hash-link" aria-label="Direct link to DataFrame structure" title="Direct link to DataFrame structure"></a></h3>
<p>A DataFrame has a tabular data structure with rows and columns.
Keys are columns, and each object in the array is a row.</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">_<!-- -->12</span><div style="display:inline-block;margin-left:16px"><span>[</span></div></div><div><span class="ch-code-line-number">_<!-- -->12</span><div style="display:inline-block;margin-left:16px"><span> {</span></div></div><div><span class="ch-code-line-number">_<!-- -->12</span><div style="display:inline-block;margin-left:16px"><span> &quot;name&quot;: &quot;Charlie Lastname&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->12</span><div style="display:inline-block;margin-left:16px"><span> &quot;age&quot;: 28,</span></div></div><div><span class="ch-code-line-number">_<!-- -->12</span><div style="display:inline-block;margin-left:16px"><span> &quot;email&quot;: &quot;charlie.lastname@example.com&quot;</span></div></div><div><span class="ch-code-line-number">_<!-- -->12</span><div style="display:inline-block;margin-left:16px"><span> },</span></div></div><div><span class="ch-code-line-number">_<!-- -->12</span><div style="display:inline-block;margin-left:16px"><span> {</span></div></div><div><span class="ch-code-line-number">_<!-- -->12</span><div style="display:inline-block;margin-left:16px"><span> &quot;name&quot;: &quot;Alexandra Example&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->12</span><div style="display:inline-block;margin-left:16px"><span> &quot;age&quot;: 34,</span></div></div><div><span class="ch-code-line-number">_<!-- -->12</span><div style="display:inline-block;margin-left:16px"><span> &quot;email&quot;: &quot;alexandra@example.com&quot;</span></div></div><div><span class="ch-code-line-number">_<!-- -->12</span><div style="display:inline-block;margin-left:16px"><span> }</span></div></div><div><span class="ch-code-line-number">_<!-- -->12</span><div style="display:inline-block;margin-left:16px"><span>]</span></div></div><br></code></div></div>
<p>When represented as tabular data, the preceding DataFrame object is structured as follows:</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>| name | age | email |</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>| Charlie Lastname | 28 | charlie.lastname@example.com |</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>| Alexandra Example | 34 | alexandra@example.com |</span></div></div><br></code></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="embeddings">Embeddings<a href="#embeddings" class="hash-link" aria-label="Direct link to Embeddings" title="Direct link to Embeddings"></a></h2>
<p><strong>Embeddings</strong> ports <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="Emerald embeddings port" style="color:#10b981;fill:#10b981"><circle cx="12" cy="12" r="10"></circle></svg> emit or ingest vector embeddings to support functions like similarity search.</p>
<p>The <code>Embeddings</code> data type is used specifically by components that either produce or consume vector embeddings, such as the <a href="/components-embedding-models">embedding model components</a> and vector store components.</p>
<p>For example, embedding model components output <code>Embeddings</code> data that you can connect to an <strong>Embedding</strong> input port on a vector store component.</p>
<p>For information about the underlying Python classes that produce <code>Embeddings</code>, see the <a href="https://python.langchain.com/docs/integrations/text_embedding/" target="_blank" rel="noopener noreferrer">LangChain Embedding models documentation</a>.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="languagemodel">LanguageModel<a href="#languagemodel" class="hash-link" aria-label="Direct link to LanguageModel" title="Direct link to LanguageModel"></a></h2>
<p>The <code>LanguageModel</code> type is a specific data type that can be produced by language model components and accepted by components that use an LLM.</p>
<p>When you change a language model component&#x27;s output type from <strong>Model Response</strong> to <strong>Language Model</strong>, the component&#x27;s output port changes from a <strong>Message</strong> port to a <strong>Language Model</strong> port <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="Fuchsia language model port" style="color:#c026d3;fill:#c026d3"><circle cx="12" cy="12" r="10"></circle></svg>.
Then, you connect the outgoing <strong>Language Model</strong> port to a <strong>Language Model</strong> input port on a compatible component, such as a <strong>Smart Transform</strong> component.</p>
<p>For more information about using these components in flows and toggling <code>LanguageModel</code> output, see <a href="/components-models#language-model-output-types">Language model components</a>.</p>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>LanguageModel is an instance of LangChain ChatModel</summary><div><div class="collapsibleContent_i85q"><p>Because Langflow is built on LangChain, <code>LanguageModel</code> is actually an instance of a <a href="https://python.langchain.com/docs/concepts/chat_models/" target="_blank" rel="noopener noreferrer">LangChain chat model</a> that uses the configuration parameters set in the originating component.</p><p>Often, components produce an instance of an <a href="https://python.langchain.com/docs/integrations/chat/" target="_blank" rel="noopener noreferrer">integrated chat model</a> that is designed to support the specific model provider, such as <a href="https://python.langchain.com/docs/integrations/chat/openai/" target="_blank" rel="noopener noreferrer"><code>ChatOpenAI</code></a> or <a href="https://python.langchain.com/docs/integrations/chat/anthropic/" target="_blank" rel="noopener noreferrer"><code>ChatAnthropic</code></a>.</p><p>You can inspect the <a href="/concepts-components#component-code">component code</a> to see the specific <code>Chat</code> instance it produces.</p></div></div></details>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="memory">Memory<a href="#memory" class="hash-link" aria-label="Direct link to Memory" title="Direct link to Memory"></a></h2>
<p><strong>Memory</strong> ports <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="Orange memory port" style="color:#f97316;fill:#f97316"><circle cx="12" cy="12" r="10"></circle></svg> are used to integrate a <strong>Message History</strong> component with external chat memory storage.</p>
<p>For more information, see the <a href="/components-helpers#message-history"><strong>Message History</strong> component</a>.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="message">Message<a href="#message" class="hash-link" aria-label="Direct link to Message" title="Direct link to Message"></a></h2>
<p><strong>Message</strong> ports <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="Indigo message port" style="color:#4f46e5;fill:#4f46e5"><circle cx="12" cy="12" r="10"></circle></svg> accept or produce <code>Message</code> data, which extends the <a href="#data"><code>Data</code> type</a> with additional fields and methods for text input typically used in chat flows.</p>
<p>This data type is used by many components.</p>
<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>Components that accept or produce <code>Message</code> data may not include all attributes in the incoming or outgoing <code>Message</code> data.
As long as the data is compatible with the <code>Message</code> schema, it can be valid.</p><p>When building flows, focus on the fields shown on each component in the workspace, rather than the data types passed between components.
The details of a particular data type are often only relevant when you are debugging a flow or component that isn&#x27;t producing the expected output.</p><p>For example, a <strong>Chat Input</strong> component only requires the content of the <strong>Input Text</strong> (<code>input_value</code>) field.
The component then constructs a complete <code>Message</code> object before passing the data to other components in the flow.</p></div></div>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="schema-structure-and-attributes">Schema, structure, and attributes<a href="#schema-structure-and-attributes" class="hash-link" aria-label="Direct link to Schema, structure, and attributes" title="Direct link to Schema, structure, and attributes"></a></h3>
<p>The <code>Message</code> schema is defined in <a href="https://github.com/langflow-ai/langflow/blob/main/src/backend/base/langflow/schema/message.py" target="_blank" rel="noopener noreferrer"><code>message.py</code></a>.
Some <code>Message</code> attributes have their own schema definitions, such as <a href="https://github.com/langflow-ai/langflow/blob/main/src/backend/base/langflow/schema/content_block.py" target="_blank" rel="noopener noreferrer"><code>content_block.py</code></a>.</p>
<p><code>Message</code> data is structured as a JSON object.
For example:</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>{</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> &quot;text&quot;: &quot;Name: Charlie Lastname, Age: 28, Email: charlie.lastname@example.com&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> &quot;sender&quot;: &quot;User&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> &quot;sender_name&quot;: &quot;Charlie Lastname&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> &quot;session_id&quot;: &quot;some-session-id&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> &quot;timestamp&quot;: &quot;2024-06-01T12:00:00Z&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> &quot;files&quot;: [],</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> &quot;content_blocks&quot;: [],</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span> &quot;category&quot;: &quot;message&quot;</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>
<p>The attributes included in a specific <code>Message</code> object depend on the context, including the component type, flow activity, and whether the message is a query or response.
Some common attributes include the following:</p>
<ul>
<li><code>text</code>: The main message content.</li>
<li><code>sender</code>: Identifies the originator of a chat message as either <code>User</code> or <code>Language Model</code>.</li>
<li><code>sender_name</code>: The display name for the sender. Defaults to <code>User</code> or <code>Language Model</code>.</li>
<li><code>session_id</code>: The chat <a href="/session-id">session identifier</a>.</li>
<li><code>flow_id</code>: The ID of the flow that the message is associated with. <code>flow_id</code> and <code>session_id</code> are the same if the flow doesn&#x27;t use custom session IDs.</li>
<li><code>timestamp</code>: The UTC timestamp that the message was sent.</li>
<li><code>files</code>: A list of file paths or images included with the message</li>
<li><code>content_blocks</code>: Container for rich content input, such as text, media, or code. Also contains error message information if the LLM can&#x27;t process the input.</li>
<li><code>category</code>: <code>&quot;message&quot;</code>, <code>&quot;error&quot;</code>, <code>&quot;warning&quot;</code>, or <code>&quot;info&quot;</code>.</li>
</ul>
<p>Not all attributes are required, and some components accept message-compatible input, such as raw text input.
The strictness depends on the component.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="message-data-in-input-and-output-components">Message data in Input and Output components<a href="#message-data-in-input-and-output-components" class="hash-link" aria-label="Direct link to Message data in Input and Output components" title="Direct link to Message data in Input and Output components"></a></h3>
<p>In flows with <a href="/components-io#chat-io"><strong>Chat Input and Output</strong> components</a>, <code>Message</code> data provides a consistent structure for chat interactions, and it is ideal for chatbots, conversational analysis, and other use cases based on a dialogue with an LLM or agent.
In these flows, the <strong>Playground</strong> chat interface prints only the <code>Message</code> attributes that are relevant to the conversation, such as <code>text</code>, <code>files</code>, and error messages from <code>content_blocks</code>.
To see all <code>Message</code> attributes, inspect the message logs in the <strong>Playground</strong>.</p>
<p>In flows with <a href="/components-io#text-io"><strong>Text Input and Output</strong> components</a>, <code>Message</code> data is used to pass simple text strings without the chat-related metadata.
These components handle <code>Message</code> data as independent text strings, not as part of an ongoing conversation.
For this reason, a flow with only <strong>Text Input and Output</strong> components isn&#x27;t compatible with the <strong>Playground</strong>.
For more information, see <a href="/components-io">Input and output components</a>.</p>
<p>When using the Langflow API, the response includes the <code>Message</code> object along with other response data from the flow run.
Langflow API responses can be extremely verbose, so your applications must include code to extract relevant data from the response to return to the user.
For an example, see the <a href="/get-started-quickstart">Langflow quickstart</a>.</p>
<p>Additionally, input sent to the input port of input/output components does <em>not</em> need to be a complete <code>Message</code> object because the component constructs the <code>Message</code> object that is then passed to other components in the flow or returned as flow output.
In fact, some components shouldn&#x27;t receive a complete <code>Message</code> object because some attributes, like <code>timestamp</code> should be added by the component for accuracy.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="tool">Tool<a href="#tool" class="hash-link" aria-label="Direct link to Tool" title="Direct link to Tool"></a></h2>
<p><strong>Tool</strong> ports <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="Cyan tool port" style="color:#06b6d4;fill:#06b6d4"><circle cx="12" cy="12" r="10"></circle></svg> connect tools to an <strong>Agent</strong> component.</p>
<p>Tools can be other components where you enabled <strong>Tool Mode</strong>, they can be the dedicated <strong>MCP Tools</strong> component, or they can be other components that only support <strong>Tool Mode</strong>.
Multiple tools can be connected to the same <strong>Agent</strong> component at the same port.</p>
<p>Functionally, <code>Tool</code> data is a LangChain <code>StructuredTool</code> object that can be used in agent flows.</p>
<p>For more information, see <a href="/agents-tools">Configure tools for agents</a> and <a href="/mcp-client">Use Langflow as an MCP client</a>.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="unknown-or-multiple-types">Unknown or multiple types<a href="#unknown-or-multiple-types" class="hash-link" aria-label="Direct link to Unknown or multiple types" title="Direct link to Unknown or multiple types"></a></h2>
<p>If a port can accept or produce multiple data types, it is represented by the gray port icon <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="Gray unknown port" style="color:#9CA3AF;fill:#9CA3AF"><circle cx="12" cy="12" r="10"></circle></svg>.</p>
<p>Hover over the port to see the accepted or produced data types.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="view-data-types-in-flows">View data types in flows<a href="#view-data-types-in-flows" class="hash-link" aria-label="Direct link to View data types in flows" title="Direct link to View data types in flows"></a></h2>
<p>In Langflow, you can use <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-hidden="true"><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> <strong>Inspect output</strong> to view the output of individual components.
This can help you learn about the different data type and debug problems with invalid or malformed inputs and output.</p>
<p>The following example shows how to inspect the output of a <a href="/components-processing#type-convert"><strong>Type Convert</strong> component</a>, which can convert data from one type to another:</p>
<ol>
<li>
<p>Create a flow, and then connect a <strong>Chat Input</strong> component to a <strong>Type Convert</strong> component.</p>
</li>
<li>
<p>In the <strong>Chat Input</strong> component, enter some text for the type converter to process.</p>
</li>
<li>
<p>On the <strong>Type Convert</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-hidden="true"><polygon points="6 3 20 12 6 21 6 3"></polygon></svg> <strong>Run component</strong>, and then 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-hidden="true"><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> <strong>Inspect output</strong>.</p>
<p>The default output is <code>Message</code> data, which is the same as the input coming from the <strong>Chat Input</strong> component.
To see the <code>Message</code> data converted to <code>Data</code> or <code>DataFrame</code>, change the <strong>Output Type</strong> on the <strong>Type Convert</strong> component, and then rerun the component.</p>
<div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">Message</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Data</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">DataFrame</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><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>Input text</span></div></div><br></code></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><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">_<!-- -->30</span><div style="display:inline-block;margin-left:16px"><span>{</span></div></div><div><span class="ch-code-line-number">_<!-- -->30</span><div style="display:inline-block;margin-left:16px"><span> &quot;timestamp&quot;: &quot;2025-07-15 20:56:20 UTC&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->30</span><div style="display:inline-block;margin-left:16px"><span> &quot;sender&quot;: &quot;User&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->30</span><div style="display:inline-block;margin-left:16px"><span> &quot;sender_name&quot;: &quot;User&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->30</span><div style="display:inline-block;margin-left:16px"><span> &quot;session_id&quot;: &quot;a0c7e888-4fd6-4242-b8c8-e761ad690aeb&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->30</span><div style="display:inline-block;margin-left:16px"><span> &quot;text&quot;: &quot;&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->30</span><div style="display:inline-block;margin-left:16px"><span> &quot;files&quot;: [],</span></div></div><div><span class="ch-code-line-number">_<!-- -->30</span><div style="display:inline-block;margin-left:16px"><span> &quot;error&quot;: false,</span></div></div><div><span class="ch-code-line-number">_<!-- -->30</span><div style="display:inline-block;margin-left:16px"><span> &quot;edit&quot;: false,</span></div></div><div><span class="ch-code-line-number">_<!-- -->30</span><div style="display:inline-block;margin-left:16px"><span> &quot;properties&quot;: {</span></div></div><div><span class="ch-code-line-number">_<!-- -->30</span><div style="display:inline-block;margin-left:16px"><span> &quot;text_color&quot;: &quot;&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->30</span><div style="display:inline-block;margin-left:16px"><span> &quot;background_color&quot;: &quot;&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->30</span><div style="display:inline-block;margin-left:16px"><span> &quot;edited&quot;: false,</span></div></div><div><span class="ch-code-line-number">_<!-- -->30</span><div style="display:inline-block;margin-left:16px"><span> &quot;source&quot;: {</span></div></div><div><span class="ch-code-line-number">_<!-- -->30</span><div style="display:inline-block;margin-left:16px"><span> &quot;id&quot;: null,</span></div></div><div><span class="ch-code-line-number">_<!-- -->30</span><div style="display:inline-block;margin-left:16px"><span> &quot;display_name&quot;: null,</span></div></div><div><span class="ch-code-line-number">_<!-- -->30</span><div style="display:inline-block;margin-left:16px"><span> &quot;source&quot;: null</span></div></div><div><span class="ch-code-line-number">_<!-- -->30</span><div style="display:inline-block;margin-left:16px"><span> },</span></div></div><div><span class="ch-code-line-number">_<!-- -->30</span><div style="display:inline-block;margin-left:16px"><span> &quot;icon&quot;: &quot;&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->30</span><div style="display:inline-block;margin-left:16px"><span> &quot;allow_markdown&quot;: false,</span></div></div><div><span class="ch-code-line-number">_<!-- -->30</span><div style="display:inline-block;margin-left:16px"><span> &quot;positive_feedback&quot;: null,</span></div></div><div><span class="ch-code-line-number">_<!-- -->30</span><div style="display:inline-block;margin-left:16px"><span> &quot;state&quot;: &quot;complete&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->30</span><div style="display:inline-block;margin-left:16px"><span> &quot;targets&quot;: []</span></div></div><div><span class="ch-code-line-number">_<!-- -->30</span><div style="display:inline-block;margin-left:16px"><span> },</span></div></div><div><span class="ch-code-line-number">_<!-- -->30</span><div style="display:inline-block;margin-left:16px"><span> &quot;category&quot;: &quot;message&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->30</span><div style="display:inline-block;margin-left:16px"><span> &quot;content_blocks&quot;: [],</span></div></div><div><span class="ch-code-line-number">_<!-- -->30</span><div style="display:inline-block;margin-left:16px"><span> &quot;id&quot;: &quot;9da72da2-efbb-4ccd-90ad-b32429b0418e&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->30</span><div style="display:inline-block;margin-left:16px"><span> &quot;flow_id&quot;: &quot;a0c7e888-4fd6-4242-b8c8-e761ad690aeb&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->30</span><div style="display:inline-block;margin-left:16px"><span> &quot;duration&quot;: null</span></div></div><div><span class="ch-code-line-number">_<!-- -->30</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><br></code></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><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>| Field | Value |</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>| timestamp | 2025-07-15 20:56:11 UTC |</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span>| sender | User |</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span>| sender_name | User |</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span>| session_id | a0c7e888-4fd6-4242-b8c8-e761ad690aeb |</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span>| text | (empty) |</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span>| files | [] |</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span>| error | False |</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span>| edit | False |</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span>| properties | text_color: &#x27;&#x27;, background_color: &#x27;&#x27;, edited: False, source: {id: None, display_name: None, source: None}, icon: &#x27;&#x27;, allow_markdown: False, positive_feedback: None, state: &#x27;complete&#x27;, targets: [] |</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span>| category | message |</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span>| content_blocks | [] |</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span>| id | 341686eb-7a39-4b80-a90a-d8bf267815ef |</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span>| flow_id | a0c7e888-4fd6-4242-b8c8-e761ad690aeb |</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span>| duration | (empty) |</span></div></div><br></code></div></div></div></div></div>
</li>
</ol>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="see-also">See also<a href="#see-also" class="hash-link" aria-label="Direct link to See also" title="Direct link to See also"></a></h2>
<ul>
<li><a href="/components-processing">Processing components</a></li>
<li><a href="/components-custom-components">Custom components</a></li>
<li><a href="https://docs.pydantic.dev/latest/api/base_model/" target="_blank" rel="noopener noreferrer">Pydantic Models</a></li>
<li><a href="https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html" target="_blank" rel="noopener noreferrer">pandas.DataFrame</a></li>
</ul></div></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/contributing-telemetry"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Telemetry</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/concepts-voice-mode"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Use voice mode</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="#data" class="table-of-contents__link toc-highlight">Data</a><ul><li><a href="#schema-and-attributes" class="table-of-contents__link toc-highlight">Schema and attributes</a></li></ul></li><li><a href="#dataframe" class="table-of-contents__link toc-highlight">DataFrame</a><ul><li><a href="#schema-and-attributes-1" class="table-of-contents__link toc-highlight">Schema and attributes</a></li><li><a href="#dataframe-structure" class="table-of-contents__link toc-highlight">DataFrame structure</a></li></ul></li><li><a href="#embeddings" class="table-of-contents__link toc-highlight">Embeddings</a></li><li><a href="#languagemodel" class="table-of-contents__link toc-highlight">LanguageModel</a></li><li><a href="#memory" class="table-of-contents__link toc-highlight">Memory</a></li><li><a href="#message" class="table-of-contents__link toc-highlight">Message</a><ul><li><a href="#schema-structure-and-attributes" class="table-of-contents__link toc-highlight">Schema, structure, and attributes</a></li><li><a href="#message-data-in-input-and-output-components" class="table-of-contents__link toc-highlight">Message data in Input and Output components</a></li></ul></li><li><a href="#tool" class="table-of-contents__link toc-highlight">Tool</a></li><li><a href="#unknown-or-multiple-types" class="table-of-contents__link toc-highlight">Unknown or multiple types</a></li><li><a href="#view-data-types-in-flows" class="table-of-contents__link toc-highlight">View data types in flows</a></li><li><a href="#see-also" class="table-of-contents__link toc-highlight">See also</a></li></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column 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></footer><div style="position:fixed;right:21px;bottom:21px;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>