diff --git a/404.html b/404.html index ba17d202f4..37a1f9e884 100644 --- a/404.html +++ b/404.html @@ -10,7 +10,7 @@ - + diff --git a/Deployment/deployment-docker.html b/Deployment/deployment-docker.html index b64157f2bf..337cd80629 100644 --- a/Deployment/deployment-docker.html +++ b/Deployment/deployment-docker.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -
Skip to main content

Dockers

This guide will help you get LangFlow up and running using Docker and Docker Compose.

+

Dockers

This guide will help you get LangFlow up and running using Docker and Docker Compose.

Prerequisites


    @@ -69,6 +69,6 @@
  • langflow-postgres: This volume is mapped to /var/lib/postgresql/data in the container.

Switch to a specific LangFlow version

-

If you want to use a specific version of LangFlow, you can modify the image field under the langflow service in the Docker Compose file. For example, to use version 1.0-alpha, change langflowai/langflow:latest to langflowai/langflow:1.0-alpha.

Hi, how can I help you?

+

If you want to use a specific version of LangFlow, you can modify the image field under the langflow service in the Docker Compose file. For example, to use version 1.0-alpha, change langflowai/langflow:latest to langflowai/langflow:1.0-alpha.

Hi, how can I help you?

\ No newline at end of file diff --git a/agents-overview.html b/agents-overview.html index 762b436b96..d3e93506c5 100644 --- a/agents-overview.html +++ b/agents-overview.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -
Skip to main content

Agents overview

Agents are AI systems that use LLMs as a brain to analyze problems and select external tools.

+

Agents overview

Agents are AI systems that use LLMs as a brain to analyze problems and select external tools.

Instead of developers having to create logical statements to direct every possible path of a program, an agent can operate with autonomy. An agent can leverage external tools and APIs to gather information and take action, demonstrate chain-of-thought reasoning, and generate tailored text for specific purposes.

To simplify the development of agents, Langflow created a custom Tool calling agent component that simplifies configuration and lets developers focus on solving problems with agents.

Prompt component diff --git a/agents-tool-calling-agent-component.html b/agents-tool-calling-agent-component.html index 90ef6293b8..015fb2fe02 100644 --- a/agents-tool-calling-agent-component.html +++ b/agents-tool-calling-agent-component.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

Create a problem-solving agent

+

Create a problem-solving agent

Developing agents in Langchain is complex.

The AgentComponent is a component for easily creating an AI agent capable of analyzing tasks using tools you provide.

The component contains all of the elements you'll need for creating an agent. Instead of managing LLM models and providers, pick your model and enter your API key. Instead of connecting a Prompt component, enter instructions in the component's Agent Instruction fields.

diff --git a/api.html b/api.html index e06d6a4938..5907ef5b6a 100644 --- a/api.html +++ b/api.html @@ -10,7 +10,7 @@ - + diff --git a/api/add-user.html b/api/add-user.html index 651d6fda1c..6a7cac469b 100644 --- a/api/add-user.html +++ b/api/add-user.html @@ -10,7 +10,7 @@ - + diff --git a/api/auto-login.html b/api/auto-login.html index ec7990bc68..ba4d63df10 100644 --- a/api/auto-login.html +++ b/api/auto-login.html @@ -10,7 +10,7 @@ - + diff --git a/api/build-flow.html b/api/build-flow.html index 13d230b947..f70904f708 100644 --- a/api/build-flow.html +++ b/api/build-flow.html @@ -10,7 +10,7 @@ - + diff --git a/api/build-vertex-stream.html b/api/build-vertex-stream.html index f7ce24b7cc..22d53b4123 100644 --- a/api/build-vertex-stream.html +++ b/api/build-vertex-stream.html @@ -10,7 +10,7 @@ - + diff --git a/api/build-vertex.html b/api/build-vertex.html index 6731d222ac..c43a365bb9 100644 --- a/api/build-vertex.html +++ b/api/build-vertex.html @@ -10,7 +10,7 @@ - + diff --git a/api/check-if-store-has-api-key.html b/api/check-if-store-has-api-key.html index 9f794c079b..1211e9da25 100644 --- a/api/check-if-store-has-api-key.html +++ b/api/check-if-store-has-api-key.html @@ -10,7 +10,7 @@ - + diff --git a/api/check-if-store-is-enabled.html b/api/check-if-store-is-enabled.html index 7358850c6c..9b9eefef68 100644 --- a/api/check-if-store-is-enabled.html +++ b/api/check-if-store-is-enabled.html @@ -10,7 +10,7 @@ - + diff --git a/api/create-api-key-route.html b/api/create-api-key-route.html index 85d15c4998..f7ff399780 100644 --- a/api/create-api-key-route.html +++ b/api/create-api-key-route.html @@ -10,7 +10,7 @@ - + diff --git a/api/create-flow.html b/api/create-flow.html index bfa1e53c55..6f6320e882 100644 --- a/api/create-flow.html +++ b/api/create-flow.html @@ -10,7 +10,7 @@ - + diff --git a/api/create-flows.html b/api/create-flows.html index 039102cebf..3a20f9b910 100644 --- a/api/create-flows.html +++ b/api/create-flows.html @@ -10,7 +10,7 @@ - + diff --git a/api/create-folder.html b/api/create-folder.html index f0c6c806b7..fa64ab539e 100644 --- a/api/create-folder.html +++ b/api/create-folder.html @@ -10,7 +10,7 @@ - + diff --git a/api/create-upload-file.html b/api/create-upload-file.html index e626991bc3..853d762ce7 100644 --- a/api/create-upload-file.html +++ b/api/create-upload-file.html @@ -10,7 +10,7 @@ - + diff --git a/api/create-variable.html b/api/create-variable.html index 7c09ab5bfd..5e4f2c0e76 100644 --- a/api/create-variable.html +++ b/api/create-variable.html @@ -10,7 +10,7 @@ - + diff --git a/api/custom-component-update.html b/api/custom-component-update.html index 7334e1a887..90ab069a71 100644 --- a/api/custom-component-update.html +++ b/api/custom-component-update.html @@ -10,7 +10,7 @@ - + diff --git a/api/custom-component.html b/api/custom-component.html index 22ec978fed..a2404296a4 100644 --- a/api/custom-component.html +++ b/api/custom-component.html @@ -10,7 +10,7 @@ - + diff --git a/api/delete-api-key-route.html b/api/delete-api-key-route.html index 2c5ebdc8e3..5193aeb094 100644 --- a/api/delete-api-key-route.html +++ b/api/delete-api-key-route.html @@ -10,7 +10,7 @@ - + diff --git a/api/delete-file.html b/api/delete-file.html index 2fdcc24cbe..fa35f33caa 100644 --- a/api/delete-file.html +++ b/api/delete-file.html @@ -10,7 +10,7 @@ - + diff --git a/api/delete-flow.html b/api/delete-flow.html index bd2fe6546d..2232fc0fb3 100644 --- a/api/delete-flow.html +++ b/api/delete-flow.html @@ -10,7 +10,7 @@ - + diff --git a/api/delete-folder.html b/api/delete-folder.html index 6b20822b41..9edde33209 100644 --- a/api/delete-folder.html +++ b/api/delete-folder.html @@ -10,7 +10,7 @@ - + diff --git a/api/delete-messages-session.html b/api/delete-messages-session.html index 94edc9f23a..ac6a09e4ad 100644 --- a/api/delete-messages-session.html +++ b/api/delete-messages-session.html @@ -10,7 +10,7 @@ - + diff --git a/api/delete-messages.html b/api/delete-messages.html index b7ac99cd3e..8381b53faf 100644 --- a/api/delete-messages.html +++ b/api/delete-messages.html @@ -10,7 +10,7 @@ - + diff --git a/api/delete-multiple-flows.html b/api/delete-multiple-flows.html index 35c94f5cfc..aaf6bf4fe8 100644 --- a/api/delete-multiple-flows.html +++ b/api/delete-multiple-flows.html @@ -10,7 +10,7 @@ - + diff --git a/api/delete-user.html b/api/delete-user.html index d9e94aab24..e44f7b12b1 100644 --- a/api/delete-user.html +++ b/api/delete-user.html @@ -10,7 +10,7 @@ - + diff --git a/api/delete-variable.html b/api/delete-variable.html index eeab044671..e8bf792b09 100644 --- a/api/delete-variable.html +++ b/api/delete-variable.html @@ -10,7 +10,7 @@ - + diff --git a/api/delete-vertex-builds.html b/api/delete-vertex-builds.html index 7c6db5b67e..9e8c198959 100644 --- a/api/delete-vertex-builds.html +++ b/api/delete-vertex-builds.html @@ -10,7 +10,7 @@ - + diff --git a/api/download-component.html b/api/download-component.html index 56d6833fd8..43e77ac531 100644 --- a/api/download-component.html +++ b/api/download-component.html @@ -10,7 +10,7 @@ - + diff --git a/api/download-file-1.html b/api/download-file-1.html index a5f0e31ac8..0bbac06309 100644 --- a/api/download-file-1.html +++ b/api/download-file-1.html @@ -10,7 +10,7 @@ - + diff --git a/api/download-file.html b/api/download-file.html index e109b23d4c..f9fcb6376f 100644 --- a/api/download-file.html +++ b/api/download-file.html @@ -10,7 +10,7 @@ - + diff --git a/api/download-image.html b/api/download-image.html index 38ff0b41ee..c66be3e4fb 100644 --- a/api/download-image.html +++ b/api/download-image.html @@ -10,7 +10,7 @@ - + diff --git a/api/download-multiple-file.html b/api/download-multiple-file.html index 473c59e922..80eb3f8165 100644 --- a/api/download-multiple-file.html +++ b/api/download-multiple-file.html @@ -10,7 +10,7 @@ - + diff --git a/api/download-profile-picture.html b/api/download-profile-picture.html index e8c09a43f9..8073aa8f8f 100644 --- a/api/download-profile-picture.html +++ b/api/download-profile-picture.html @@ -10,7 +10,7 @@ - + diff --git a/api/experimental-run-flow.html b/api/experimental-run-flow.html index a376b0a9c9..fedf939f5a 100644 --- a/api/experimental-run-flow.html +++ b/api/experimental-run-flow.html @@ -10,7 +10,7 @@ - + diff --git a/api/get-all.html b/api/get-all.html index 8ace86aef1..0b13b64702 100644 --- a/api/get-all.html +++ b/api/get-all.html @@ -10,7 +10,7 @@ - + diff --git a/api/get-api-keys-route.html b/api/get-api-keys-route.html index a9c47ddab2..bbe1ac76c7 100644 --- a/api/get-api-keys-route.html +++ b/api/get-api-keys-route.html @@ -10,7 +10,7 @@ - + diff --git a/api/get-components.html b/api/get-components.html index 059a42c519..a2f97415d9 100644 --- a/api/get-components.html +++ b/api/get-components.html @@ -10,7 +10,7 @@ - + diff --git a/api/get-config.html b/api/get-config.html index 7cacb2f3c5..307928ad59 100644 --- a/api/get-config.html +++ b/api/get-config.html @@ -10,7 +10,7 @@ - + diff --git a/api/get-list-of-components-liked-by-user.html b/api/get-list-of-components-liked-by-user.html index 1f2b041a59..ddfb445f40 100644 --- a/api/get-list-of-components-liked-by-user.html +++ b/api/get-list-of-components-liked-by-user.html @@ -10,7 +10,7 @@ - + diff --git a/api/get-messages.html b/api/get-messages.html index 1d40f88bb6..7ca26043b0 100644 --- a/api/get-messages.html +++ b/api/get-messages.html @@ -10,7 +10,7 @@ - + diff --git a/api/get-starter-projects.html b/api/get-starter-projects.html index 887da28996..f81a51ac29 100644 --- a/api/get-starter-projects.html +++ b/api/get-starter-projects.html @@ -10,7 +10,7 @@ - + diff --git a/api/get-tags.html b/api/get-tags.html index 427ac0d09c..e0f63a1563 100644 --- a/api/get-tags.html +++ b/api/get-tags.html @@ -10,7 +10,7 @@ - + diff --git a/api/get-task-status.html b/api/get-task-status.html index c9d9b3c4e9..a2c0e4ada9 100644 --- a/api/get-task-status.html +++ b/api/get-task-status.html @@ -10,7 +10,7 @@ - + diff --git a/api/get-transactions.html b/api/get-transactions.html index ddfdaa1859..fb438ceee9 100644 --- a/api/get-transactions.html +++ b/api/get-transactions.html @@ -10,7 +10,7 @@ - + diff --git a/api/get-version.html b/api/get-version.html index 2b186a5fd0..9a43c0f2c2 100644 --- a/api/get-version.html +++ b/api/get-version.html @@ -10,7 +10,7 @@ - + diff --git a/api/get-vertex-builds.html b/api/get-vertex-builds.html index 11b06c69c6..165ab8a971 100644 --- a/api/get-vertex-builds.html +++ b/api/get-vertex-builds.html @@ -10,7 +10,7 @@ - + diff --git a/api/health-check.html b/api/health-check.html index 4c4c170326..41071e0eed 100644 --- a/api/health-check.html +++ b/api/health-check.html @@ -10,7 +10,7 @@ - + diff --git a/api/health.html b/api/health.html index 3915ff18b8..f7fd5b91bf 100644 --- a/api/health.html +++ b/api/health.html @@ -10,7 +10,7 @@ - + diff --git a/api/like-component.html b/api/like-component.html index f23e90fd04..0cee731374 100644 --- a/api/like-component.html +++ b/api/like-component.html @@ -10,7 +10,7 @@ - + diff --git a/api/list-files.html b/api/list-files.html index b3699dbac8..f60a941fcc 100644 --- a/api/list-files.html +++ b/api/list-files.html @@ -10,7 +10,7 @@ - + diff --git a/api/list-profile-pictures.html b/api/list-profile-pictures.html index 36a5777d55..ef6f08e39e 100644 --- a/api/list-profile-pictures.html +++ b/api/list-profile-pictures.html @@ -10,7 +10,7 @@ - + diff --git a/api/login-to-get-access-token.html b/api/login-to-get-access-token.html index d5fa13be1a..58ff050be2 100644 --- a/api/login-to-get-access-token.html +++ b/api/login-to-get-access-token.html @@ -10,7 +10,7 @@ - + diff --git a/api/logout.html b/api/logout.html index d4f9881c78..473cbadfad 100644 --- a/api/logout.html +++ b/api/logout.html @@ -10,7 +10,7 @@ - + diff --git a/api/logs.html b/api/logs.html index d74706b8f4..90d4ca85b4 100644 --- a/api/logs.html +++ b/api/logs.html @@ -10,7 +10,7 @@ - + diff --git a/api/patch-user.html b/api/patch-user.html index 81e034735c..3dd309ef96 100644 --- a/api/patch-user.html +++ b/api/patch-user.html @@ -10,7 +10,7 @@ - + diff --git a/api/post-validate-code.html b/api/post-validate-code.html index 8b368c4f9d..74098d423f 100644 --- a/api/post-validate-code.html +++ b/api/post-validate-code.html @@ -10,7 +10,7 @@ - + diff --git a/api/post-validate-prompt.html b/api/post-validate-prompt.html index d0dac7c814..f13bf5d032 100644 --- a/api/post-validate-prompt.html +++ b/api/post-validate-prompt.html @@ -10,7 +10,7 @@ - + diff --git a/api/process-1.html b/api/process-1.html index 080b5233f5..c679e2ea58 100644 --- a/api/process-1.html +++ b/api/process-1.html @@ -10,7 +10,7 @@ - + diff --git a/api/process.html b/api/process.html index 698faad994..0e062354f1 100644 --- a/api/process.html +++ b/api/process.html @@ -10,7 +10,7 @@ - + diff --git a/api/read-all-users.html b/api/read-all-users.html index e958593b89..e53c061628 100644 --- a/api/read-all-users.html +++ b/api/read-all-users.html @@ -10,7 +10,7 @@ - + diff --git a/api/read-basic-examples.html b/api/read-basic-examples.html index 982dfceb45..7e8f2a048e 100644 --- a/api/read-basic-examples.html +++ b/api/read-basic-examples.html @@ -10,7 +10,7 @@ - + diff --git a/api/read-current-user.html b/api/read-current-user.html index 12f5391736..64bcf700e5 100644 --- a/api/read-current-user.html +++ b/api/read-current-user.html @@ -10,7 +10,7 @@ - + diff --git a/api/read-flow.html b/api/read-flow.html index 04c090cf9f..95d65dad75 100644 --- a/api/read-flow.html +++ b/api/read-flow.html @@ -10,7 +10,7 @@ - + diff --git a/api/read-flows.html b/api/read-flows.html index 3fc0b15b22..996ef7a6b3 100644 --- a/api/read-flows.html +++ b/api/read-flows.html @@ -10,7 +10,7 @@ - + diff --git a/api/read-folder.html b/api/read-folder.html index 4bf1c41386..464ae86524 100644 --- a/api/read-folder.html +++ b/api/read-folder.html @@ -10,7 +10,7 @@ - + diff --git a/api/read-folders.html b/api/read-folders.html index e834336b52..93c1b9c0e9 100644 --- a/api/read-folders.html +++ b/api/read-folders.html @@ -10,7 +10,7 @@ - + diff --git a/api/read-variables.html b/api/read-variables.html index e7713dc9c2..0230b5e852 100644 --- a/api/read-variables.html +++ b/api/read-variables.html @@ -10,7 +10,7 @@ - + diff --git a/api/refresh-token.html b/api/refresh-token.html index 3aa2b8fef3..1c09fe69ac 100644 --- a/api/refresh-token.html +++ b/api/refresh-token.html @@ -10,7 +10,7 @@ - + diff --git a/api/reset-password.html b/api/reset-password.html index 790a13a705..bece5dd8a2 100644 --- a/api/reset-password.html +++ b/api/reset-password.html @@ -10,7 +10,7 @@ - + diff --git a/api/retrieve-vertices-order.html b/api/retrieve-vertices-order.html index a7b025f8f7..62c74dfac2 100644 --- a/api/retrieve-vertices-order.html +++ b/api/retrieve-vertices-order.html @@ -10,7 +10,7 @@ - + diff --git a/api/save-store-api-key.html b/api/save-store-api-key.html index 87164a494b..d00ecd1b31 100644 --- a/api/save-store-api-key.html +++ b/api/save-store-api-key.html @@ -10,7 +10,7 @@ - + diff --git a/api/share-component.html b/api/share-component.html index f4ce2d83f0..f97022f235 100644 --- a/api/share-component.html +++ b/api/share-component.html @@ -10,7 +10,7 @@ - + diff --git a/api/simplified-run-flow.html b/api/simplified-run-flow.html index 7457ab7007..63c00bd057 100644 --- a/api/simplified-run-flow.html +++ b/api/simplified-run-flow.html @@ -10,7 +10,7 @@ - + diff --git a/api/stream-logs.html b/api/stream-logs.html index e0d7fc5fef..852b8bcb81 100644 --- a/api/stream-logs.html +++ b/api/stream-logs.html @@ -10,7 +10,7 @@ - + diff --git a/api/update-flow.html b/api/update-flow.html index e5cf1505ce..02a89dc58e 100644 --- a/api/update-flow.html +++ b/api/update-flow.html @@ -10,7 +10,7 @@ - + diff --git a/api/update-folder.html b/api/update-folder.html index f777d1b67b..0b403854c2 100644 --- a/api/update-folder.html +++ b/api/update-folder.html @@ -10,7 +10,7 @@ - + diff --git a/api/update-message.html b/api/update-message.html index 77c234f0c7..8f6c572a65 100644 --- a/api/update-message.html +++ b/api/update-message.html @@ -10,7 +10,7 @@ - + diff --git a/api/update-session-id.html b/api/update-session-id.html index 5d21c7e60e..da1d8a1e27 100644 --- a/api/update-session-id.html +++ b/api/update-session-id.html @@ -10,7 +10,7 @@ - + diff --git a/api/update-shared-component.html b/api/update-shared-component.html index 8fe45f75c5..043548f807 100644 --- a/api/update-shared-component.html +++ b/api/update-shared-component.html @@ -10,7 +10,7 @@ - + diff --git a/api/update-variable.html b/api/update-variable.html index 6a0600c986..94fc79cc7e 100644 --- a/api/update-variable.html +++ b/api/update-variable.html @@ -10,7 +10,7 @@ - + diff --git a/api/upload-file-1.html b/api/upload-file-1.html index 982b18ffdc..967dcb0741 100644 --- a/api/upload-file-1.html +++ b/api/upload-file-1.html @@ -10,7 +10,7 @@ - + diff --git a/api/upload-file-2.html b/api/upload-file-2.html index 4806b4ac29..1e9cead4c5 100644 --- a/api/upload-file-2.html +++ b/api/upload-file-2.html @@ -10,7 +10,7 @@ - + diff --git a/api/upload-file.html b/api/upload-file.html index 9305d26029..8301589e42 100644 --- a/api/upload-file.html +++ b/api/upload-file.html @@ -10,7 +10,7 @@ - + diff --git a/api/webhook-run-flow.html b/api/webhook-run-flow.html index a71379b6de..77d0347dbb 100644 --- a/api/webhook-run-flow.html +++ b/api/webhook-run-flow.html @@ -10,7 +10,7 @@ - + diff --git a/assets/js/22dd74f7.b1a12df5.js b/assets/js/22dd74f7.b1a12df5.js deleted file mode 100644 index b1b71bab2c..0000000000 --- a/assets/js/22dd74f7.b1a12df5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1567],{55226:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"docs":[{"type":"link","label":"Welcome to Langflow","href":"/","docId":"Get-Started/welcome-to-langflow","unlisted":false},{"type":"category","label":"Get Started","items":[{"type":"link","label":"Install Langflow","href":"/get-started-installation","docId":"Get-Started/get-started-installation","unlisted":false},{"type":"link","label":"Quickstart","href":"/get-started-quickstart","docId":"Get-Started/get-started-quickstart","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Starter Projects","items":[{"type":"link","label":"Basic Prompting","href":"/starter-projects-basic-prompting","docId":"Starter-Projects/starter-projects-basic-prompting","unlisted":false},{"type":"link","label":"Vector Store RAG","href":"/starter-projects-vector-store-rag","docId":"Starter-Projects/starter-projects-vector-store-rag","unlisted":false},{"type":"link","label":"Simple agent","href":"/starter-projects-simple-agent","docId":"Starter-Projects/starter-projects-simple-agent","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Tutorials","items":[{"type":"link","label":"Blog Writer","href":"/tutorials-blog-writer","docId":"Tutorials/tutorials-blog-writer","unlisted":false},{"type":"link","label":"Document QA","href":"/tutorials-document-qa","docId":"Tutorials/tutorials-document-qa","unlisted":false},{"type":"link","label":"Memory Chatbot","href":"/tutorials-memory-chatbot","docId":"Tutorials/tutorials-memory-chatbot","unlisted":false},{"type":"link","label":"Sequential tasks agent","href":"/tutorials-sequential-agent","docId":"Tutorials/tutorials-sequential-agent","unlisted":false},{"type":"link","label":"Travel planning agent","href":"/tutorials-travel-planning-agent","docId":"Tutorials/tutorials-travel-planning-agent","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Workspace","items":[{"type":"link","label":"Workspace concepts","href":"/workspace-overview","docId":"Workspace/workspace-overview","unlisted":false},{"type":"link","label":"API","href":"/workspace-api","docId":"Workspace/workspace-api","unlisted":false},{"type":"link","label":"Logs","href":"/workspace-logs","docId":"Workspace/workspace-logs","unlisted":false},{"type":"link","label":"Playground","href":"/workspace-playground","docId":"Workspace/workspace-playground","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Components","items":[{"type":"link","label":"Components overview","href":"/components-overview","docId":"Components/components-overview","unlisted":false},{"type":"link","label":"Agents","href":"/components-agents","docId":"Components/components-agents","unlisted":false},{"type":"link","label":"Data","href":"/components-data","docId":"Components/components-data","unlisted":false},{"type":"link","label":"Embeddings","href":"/components-embedding-models","docId":"Components/components-embedding-models","unlisted":false},{"type":"link","label":"Helpers","href":"/components-helpers","docId":"Components/components-helpers","unlisted":false},{"type":"link","label":"Inputs and outputs","href":"/components-io","docId":"Components/components-io","unlisted":false},{"type":"link","label":"Loaders","href":"/components-loaders","docId":"Components/components-loaders","unlisted":false},{"type":"link","label":"Logic","href":"/components-logic","docId":"Components/components-logic","unlisted":false},{"type":"link","label":"Memories","href":"/components-memories","docId":"Components/components-memories","unlisted":false},{"type":"link","label":"Models","href":"/components-models","docId":"Components/components-models","unlisted":false},{"type":"link","label":"Processing","href":"/components-processing","docId":"Components/components-processing","unlisted":false},{"type":"link","label":"Prompts","href":"/components-prompts","docId":"Components/components-prompts","unlisted":false},{"type":"link","label":"Tools","href":"/components-tools","docId":"Components/components-tools","unlisted":false},{"type":"link","label":"Vector stores","href":"/components-vector-stores","docId":"Components/components-vector-stores","unlisted":false},{"type":"link","label":"Create custom components","href":"/components-custom-components","docId":"Components/components-custom-components","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Agents","items":[{"type":"link","label":"Agents overview","href":"/agents-overview","docId":"Agents/agents-overview","unlisted":false},{"type":"link","label":"Create a problem-solving agent","href":"/agents-tool-calling-agent-component","docId":"Agents/agent-tool-calling-agent-component","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Configuration","items":[{"type":"link","label":"API keys","href":"/configuration-api-keys","docId":"Configuration/configuration-api-keys","unlisted":false},{"type":"link","label":"Authentication","href":"/configuration-authentication","docId":"Configuration/configuration-authentication","unlisted":false},{"type":"link","label":"Auto-saving","href":"/configuration-auto-save","docId":"Configuration/configuration-auto-saving","unlisted":false},{"type":"link","label":"Run Langflow in backend-only mode","href":"/configuration-backend-only","docId":"Configuration/configuration-backend-only","unlisted":false},{"type":"link","label":"Langflow CLI","href":"/configuration-cli","docId":"Configuration/configuration-cli","unlisted":false},{"type":"link","label":"Global variables","href":"/configuration-global-variables","docId":"Configuration/configuration-global-variables","unlisted":false},{"type":"link","label":"Environment variables","href":"/environment-variables","docId":"Configuration/environment-variables","unlisted":false},{"type":"link","label":"Langflow objects","href":"/configuration-objects","docId":"Configuration/configuration-objects","unlisted":false},{"type":"link","label":"Security best practices","href":"/configuration-security-best-practices","docId":"Configuration/configuration-security-best-practices","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Components","items":[{"type":"link","label":"Components overview","href":"/components-overview","docId":"Components/components-overview","unlisted":false},{"type":"link","label":"Agents","href":"/components-agents","docId":"Components/components-agents","unlisted":false},{"type":"link","label":"Create custom components","href":"/components-custom-components","docId":"Components/components-custom-components","unlisted":false},{"type":"link","label":"Data","href":"/components-data","docId":"Components/components-data","unlisted":false},{"type":"link","label":"Embeddings","href":"/components-embedding-models","docId":"Components/components-embedding-models","unlisted":false},{"type":"link","label":"Helpers","href":"/components-helpers","docId":"Components/components-helpers","unlisted":false},{"type":"link","label":"Inputs and outputs","href":"/components-io","docId":"Components/components-io","unlisted":false},{"type":"link","label":"Loaders","href":"/components-loaders","docId":"Components/components-loaders","unlisted":false},{"type":"link","label":"Logic","href":"/components-logic","docId":"Components/components-logic","unlisted":false},{"type":"link","label":"Memories","href":"/components-memories","docId":"Components/components-memories","unlisted":false},{"type":"link","label":"Models","href":"/components-models","docId":"Components/components-models","unlisted":false},{"type":"link","label":"Prompts","href":"/components-prompts","docId":"Components/components-prompts","unlisted":false},{"type":"link","label":"Tools","href":"/components-tools","docId":"Components/components-tools","unlisted":false},{"type":"link","label":"Vector stores","href":"/components-vector-stores","docId":"Components/components-vector-stores","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Deployment","items":[{"type":"link","label":"Dockers","href":"/Deployment/deployment-docker","docId":"Deployment/deployment-docker","unlisted":false},{"type":"link","label":"GCP","href":"/deployment-gcp","docId":"Deployment/deployment-gcp","unlisted":false},{"type":"link","label":"HuggingFace\xa0Spaces","href":"/deployment-hugging-face-spaces","docId":"Deployment/deployment-hugging-face-spaces","unlisted":false},{"type":"link","label":"Kubernetes","href":"/deployment-kubernetes","docId":"Deployment/deployment-kubernetes","unlisted":false},{"type":"link","label":"Railway","href":"/deployment-railway","docId":"Deployment/deployment-railway","unlisted":false},{"type":"link","label":"Render","href":"/deployment-render","docId":"Deployment/deployment-render","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Integrations","items":[{"type":"link","label":"AssemblyAI","href":"/integrations-assemblyai","docId":"Integrations/integrations-assemblyai","unlisted":false},{"type":"link","label":"Integrate Composio with Langflow","href":"/integrations-composio","docId":"Integrations/Composio/integrations-composio","unlisted":false},{"type":"link","label":"Langfuse","href":"/integrations-langfuse","docId":"Integrations/integrations-langfuse","unlisted":false},{"type":"link","label":"LangSmith","href":"/integrations-langsmith","docId":"Integrations/integrations-langsmith","unlisted":false},{"type":"link","label":"LangWatch","href":"/integrations-langwatch","docId":"Integrations/integrations-langwatch","unlisted":false},{"type":"category","label":"Google","items":[{"type":"link","label":"Integrate Google OAuth with Langflow","href":"/integrations-setup-google-oauth-langflow","docId":"Integrations/Google/integrations-setup-google-oauth-langflow","unlisted":false},{"type":"link","label":"Integrate Google Cloud Vertex AI with Langflow","href":"/integrations-setup-google-cloud-vertex-ai-langflow","docId":"Integrations/Google/integrations-setup-google-cloud-vertex-ai-langflow","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Notion","items":[{"type":"link","label":"Setup","href":"/integrations/notion/setup","docId":"Integrations/Notion/integrations-notion","unlisted":false},{"type":"link","label":"Notion Conversational Agent","href":"/integrations/notion/notion-agent-conversational","docId":"Integrations/Notion/notion-agent-conversational","unlisted":false},{"type":"link","label":"Notion Meeting Notes Agent","href":"/integrations/notion/notion-agent-meeting-notes","docId":"Integrations/Notion/notion-agent-meeting-notes","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Contributing","items":[{"type":"link","label":"Join the Langflow community","href":"/contributing-community","docId":"Contributing/contributing-community","unlisted":false},{"type":"link","label":"Contribute components","href":"/contributing-components","docId":"Contributing/contributing-components","unlisted":false},{"type":"link","label":"Ask for help on the Discussions board","href":"/contributing-github-discussions","docId":"Contributing/contributing-github-discussion-board","unlisted":false},{"type":"link","label":"Request an enhancement or report a bug","href":"/contributing-github-issues","docId":"Contributing/contributing-github-issues","unlisted":false},{"type":"link","label":"Contribute to Langflow","href":"/contributing-how-to-contribute","docId":"Contributing/contributing-how-to-contribute","unlisted":false},{"type":"link","label":"Telemetry","href":"/contributing-telemetry","docId":"Contributing/contributing-telemetry","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"API Reference","items":[{"type":"link","label":"API Documentation","href":"/api"}],"collapsed":true,"collapsible":true}]},"docs":{"Agents/agent-tool-calling-agent-component":{"id":"Agents/agent-tool-calling-agent-component","title":"Create a problem-solving agent","description":"Developing agents in Langchain is complex.","sidebar":"docs"},"Agents/agents-overview":{"id":"Agents/agents-overview","title":"Agents overview","description":"Agents are AI systems that use LLMs as a brain to analyze problems and select external tools.","sidebar":"docs"},"Components/components-agents":{"id":"Components/components-agents","title":"Agents","description":"Agent components define the behavior and capabilities of AI agents in your flow.","sidebar":"docs"},"Components/components-custom-components":{"id":"Components/components-custom-components","title":"Create custom components","description":"Custom components are created within Langflow and extend the platform\'s functionality with custom, reusable Python code.","sidebar":"docs"},"Components/components-data":{"id":"Components/components-data","title":"Data","description":"Data components load data from a source into your flow.","sidebar":"docs"},"Components/components-embedding-models":{"id":"Components/components-embedding-models","title":"Embeddings","description":"Embeddings models convert text into numerical vectors. These embeddings capture semantic meaning of the input text, and allow LLMs to understand context.","sidebar":"docs"},"Components/components-helpers":{"id":"Components/components-helpers","title":"Helpers","description":"Helper components provide utility functions to help manage data, tasks, and other components in your flow.","sidebar":"docs"},"Components/components-io":{"id":"Components/components-io","title":"Inputs and outputs","description":"This category of components defines where data enters and exits your flow. They dynamically alter the Playground and can be renamed to facilitate building and maintaining your flows.","sidebar":"docs"},"Components/components-loaders":{"id":"Components/components-loaders","title":"Loaders","description":"As of Langflow 1.1, loader components are now found in the Components menu under Bundles.","sidebar":"docs"},"Components/components-logic":{"id":"Components/components-logic","title":"Logic","description":"Logic components provide functionalities for routing, conditional processing, and flow management.","sidebar":"docs"},"Components/components-memories":{"id":"Components/components-memories","title":"Memories","description":"Memory components store and retrieve chat messages by session_id.","sidebar":"docs"},"Components/components-models":{"id":"Components/components-models","title":"Models","description":"Model components generate text using large language models.","sidebar":"docs"},"Components/components-overview":{"id":"Components/components-overview","title":"Components overview","description":"A\xa0component\xa0is 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.","sidebar":"docs"},"Components/components-processing":{"id":"Components/components-processing","title":"Processing","description":"Processing components process and transform data within a flow.","sidebar":"docs"},"Components/components-prompts":{"id":"Components/components-prompts","title":"Prompts","description":"A prompt is a structured input to a language model that instructs the model how to handle user inputs and variables.","sidebar":"docs"},"Components/components-tools":{"id":"Components/components-tools","title":"Tools","description":"Tools are typically connected to agent components at the Tools port. Agents use LLMs as a reasoning engine to decide which of the connected tool components to use to solve a problem.","sidebar":"docs"},"Components/components-vector-stores":{"id":"Components/components-vector-stores","title":"Vector stores","description":"Vector databases store vector data, which backs AI workloads like chatbots and Retrieval Augmented Generation.","sidebar":"docs"},"Configuration/configuration-api-keys":{"id":"Configuration/configuration-api-keys","title":"API keys","description":"Langflow provides an API key functionality that allows users to access their individual components and flows without traditional login authentication. The API key is a user-specific token that can be included in the request header, query parameter, or as a command line argument to authenticate API calls. This documentation outlines how to generate, use, and manage API keys in Langflow.","sidebar":"docs"},"Configuration/configuration-authentication":{"id":"Configuration/configuration-authentication","title":"Authentication","description":"The login functionality in Langflow serves to authenticate users and protect sensitive routes in the application.","sidebar":"docs"},"Configuration/configuration-auto-saving":{"id":"Configuration/configuration-auto-saving","title":"Auto-saving","description":"Langflow supports both manual and auto-saving functionality.","sidebar":"docs"},"Configuration/configuration-backend-only":{"id":"Configuration/configuration-backend-only","title":"Run Langflow in backend-only mode","description":"Langflow can run in --backend-only mode to expose a Langflow app as an API endpoint, without running the frontend UI.","sidebar":"docs"},"Configuration/configuration-cli":{"id":"Configuration/configuration-cli","title":"Langflow CLI","description":"The Langflow command line interface (Langflow CLI) is the main interface for managing and running the Langflow server.","sidebar":"docs"},"Configuration/configuration-custom-database":{"id":"Configuration/configuration-custom-database","title":"Configure an external PostgreSQL database","description":"Langflow\'s default database is SQLite, but you can configure Langflow to use PostgreSQL instead."},"Configuration/configuration-global-variables":{"id":"Configuration/configuration-global-variables","title":"Global variables","description":"Global variables let you store and reuse generic input values and credentials across your projects.","sidebar":"docs"},"Configuration/configuration-objects":{"id":"Configuration/configuration-objects","title":"Langflow objects","description":"In Langflow, the Data and Message objects are Pydantic models that serve as structured, functional representations of data.","sidebar":"docs"},"Configuration/configuration-security-best-practices":{"id":"Configuration/configuration-security-best-practices","title":"Security best practices","description":"This guide outlines security best practices for deploying and managing Langflow.","sidebar":"docs"},"Configuration/environment-variables":{"id":"Configuration/environment-variables","title":"Environment variables","description":"Langflow lets you configure a number of settings using environment variables.","sidebar":"docs"},"Contributing/contributing-community":{"id":"Contributing/contributing-community","title":"Join the Langflow community","description":"Join the Langflow Discord server","sidebar":"docs"},"Contributing/contributing-components":{"id":"Contributing/contributing-components","title":"Contribute components","description":"New components are added as objects of the\xa0CustomComponent\xa0class.","sidebar":"docs"},"Contributing/contributing-github-discussion-board":{"id":"Contributing/contributing-github-discussion-board","title":"Ask for help on the Discussions board","description":"If you\'re looking for help with your code, consider posting a question on the Langflow\xa0GitHub Discussions board. The Langflow team cannot provide individual support via email. The team also believes that help is much more valuable if it\'s\xa0shared publicly, so that more people can benefit from it.","sidebar":"docs"},"Contributing/contributing-github-issues":{"id":"Contributing/contributing-github-issues","title":"Request an enhancement or report a bug","description":"The\xa0Issues page in the Langflow repo is kept up to date with bugs, improvements, and feature requests. Labels are used to help with sorting and discovery of issues of interest. For an overview of the system Langflow uses to tag issues and pull requests, see the Langflow repo\'s labels page.","sidebar":"docs"},"Contributing/contributing-how-to-contribute":{"id":"Contributing/contributing-how-to-contribute","title":"Contribute to Langflow","description":"This guide is intended to help you start contributing to Langflow.","sidebar":"docs"},"Contributing/contributing-telemetry":{"id":"Contributing/contributing-telemetry","title":"Telemetry","description":"Langflow uses anonymous telemetry to collect essential usage statistics to enhance functionality and the user experience. This data helps us identify popular features and areas that need improvement, and ensures development efforts align with what you need.","sidebar":"docs"},"Deployment/deployment-docker":{"id":"Deployment/deployment-docker","title":"Dockers","description":"This guide will help you get LangFlow up and running using Docker and Docker Compose.","sidebar":"docs"},"Deployment/deployment-gcp":{"id":"Deployment/deployment-gcp","title":"GCP","description":"To deploy Langflow on Google Cloud Platform using Cloud Shell, use the below script.","sidebar":"docs"},"Deployment/deployment-hugging-face-spaces":{"id":"Deployment/deployment-hugging-face-spaces","title":"HuggingFace\xa0Spaces","description":"HuggingFace Spaces","sidebar":"docs"},"Deployment/deployment-kubernetes":{"id":"Deployment/deployment-kubernetes","title":"Kubernetes","description":"This guide will help you get LangFlow up and running in Kubernetes cluster, including the following steps:","sidebar":"docs"},"Deployment/deployment-railway":{"id":"Deployment/deployment-railway","title":"Railway","description":"Deploy on Railway","sidebar":"docs"},"Deployment/deployment-render":{"id":"Deployment/deployment-render","title":"Render","description":"Deploy on Render","sidebar":"docs"},"Get-Started/get-started-installation":{"id":"Get-Started/get-started-installation","title":"Install Langflow","description":"You can deploy Langflow either locally or as a hosted service with Datastax Langflow.","sidebar":"docs"},"Get-Started/get-started-quickstart":{"id":"Get-Started/get-started-quickstart","title":"Quickstart","description":"Get to know Langflow by building an OpenAI-powered chatbot application. After you\'ve constructed a chatbot, add Retrieval Augmented Generation (RAG) to chat with your own data.","sidebar":"docs"},"Get-Started/welcome-to-langflow":{"id":"Get-Started/welcome-to-langflow","title":"Welcome to Langflow","description":"Langflow is a new, visual framework for building multi-agent and RAG applications. It is open-source, Python-powered, fully customizable, and LLM and vector store agnostic.","sidebar":"docs"},"Integrations/Composio/integrations-composio":{"id":"Integrations/Composio/integrations-composio","title":"Integrate Composio with Langflow","description":"Langflow integrates with Composio as a toolset for your Agent component.","sidebar":"docs"},"Integrations/Google/integrations-setup-google-cloud-vertex-ai-langflow":{"id":"Integrations/Google/integrations-setup-google-cloud-vertex-ai-langflow","title":"Integrate Google Cloud Vertex AI with Langflow","description":"A comprehensive guide on creating a Google OAuth app, obtaining tokens, and integrating them with Langflow\'s Google components.","sidebar":"docs"},"Integrations/Google/integrations-setup-google-oauth-langflow":{"id":"Integrations/Google/integrations-setup-google-oauth-langflow","title":"Integrate Google OAuth with Langflow","description":"A comprehensive guide on creating a Google OAuth app, obtaining tokens, and integrating them with Langflow\'s Google components.","sidebar":"docs"},"Integrations/integrations-assemblyai":{"id":"Integrations/integrations-assemblyai","title":"AssemblyAI","description":"The AssemblyAI components allow you to apply powerful Speech AI models to your app for tasks like:","sidebar":"docs"},"Integrations/integrations-langfuse":{"id":"Integrations/integrations-langfuse","title":"Langfuse","description":"Langfuse is an observability and analytics platform specifically designed for language models and AI applications.","sidebar":"docs"},"Integrations/integrations-langsmith":{"id":"Integrations/integrations-langsmith","title":"LangSmith","description":"LangSmith is a full-lifecycle DevOps service from LangChain that provides monitoring and observability. To integrate with Langflow, just add your LangChain API key as a Langflow environment variable and you are good to go!","sidebar":"docs"},"Integrations/integrations-langwatch":{"id":"Integrations/integrations-langwatch","title":"LangWatch","description":"938674091aac4d9d9aa4aa6eb5c215b4}","sidebar":"docs"},"Integrations/Notion/integrations-notion":{"id":"Integrations/Notion/integrations-notion","title":"Setup","description":"To use Notion components in Langflow, you first need to create a Notion integration and configure it with the necessary capabilities. This guide will walk you through the process of setting up a Notion integration and granting it access to your Notion databases.","sidebar":"docs"},"Integrations/Notion/notion-agent-conversational":{"id":"Integrations/Notion/notion-agent-conversational","title":"Notion Conversational Agent","description":"The Notion Conversational Agent is an AI-powered assistant that interacts with your Notion workspace through natural language conversations. This flow performs Notion-related tasks like creating pages, searching for information, and managing content, all through a chat interface.","sidebar":"docs"},"Integrations/Notion/notion-agent-meeting-notes":{"id":"Integrations/Notion/notion-agent-meeting-notes","title":"Notion Meeting Notes Agent","description":"The Notion Agent for Meeting Notes is an AI-powered tool that automatically processes meeting transcripts and updates your Notion workspace. It identifies tasks, action items, and key points from your meetings, then creates new tasks or updates existing ones in Notion without manual input.","sidebar":"docs"},"Starter-Projects/starter-projects-basic-prompting":{"id":"Starter-Projects/starter-projects-basic-prompting","title":"Basic Prompting","description":"Prompts serve as the inputs to a large language model (LLM), acting as the interface between human instructions and computational tasks.","sidebar":"docs"},"Starter-Projects/starter-projects-simple-agent":{"id":"Starter-Projects/starter-projects-simple-agent","title":"Simple agent","description":"Build a Simple Agent flow for an agentic application using the Tool-calling agent.","sidebar":"docs"},"Starter-Projects/starter-projects-vector-store-rag":{"id":"Starter-Projects/starter-projects-vector-store-rag","title":"Vector Store RAG","description":"Retrieval Augmented Generation, or RAG, is a pattern for training LLMs on your data and querying it.","sidebar":"docs"},"Tutorials/tutorials-blog-writer":{"id":"Tutorials/tutorials-blog-writer","title":"Blog Writer","description":"Build a Blog Writer flow for a one-shot application using OpenAI.","sidebar":"docs"},"Tutorials/tutorials-document-qa":{"id":"Tutorials/tutorials-document-qa","title":"Document QA","description":"Build a question-and-answer chatbot with a document loaded from local memory.","sidebar":"docs"},"Tutorials/tutorials-memory-chatbot":{"id":"Tutorials/tutorials-memory-chatbot","title":"Memory Chatbot","description":"This flow extends the\xa0basic prompting\xa0flow to include a chat memory. This makes the AI remember previous user inputs.","sidebar":"docs"},"Tutorials/tutorials-sequential-agent":{"id":"Tutorials/tutorials-sequential-agent","title":"Sequential tasks agent","description":"Build a Sequential Tasks Agent flow for a multi-agent application using multiple Agent components.","sidebar":"docs"},"Tutorials/tutorials-travel-planning-agent":{"id":"Tutorials/tutorials-travel-planning-agent","title":"Travel planning agent","description":"Build a Travel Planning Agent flow for an agentic application using the multiple Tool-calling agents.","sidebar":"docs"},"Workspace/workspace-api":{"id":"Workspace/workspace-api","title":"API","description":"The\xa0API\xa0section presents code templates for integrating your flow into external applications.","sidebar":"docs"},"Workspace/workspace-logs":{"id":"Workspace/workspace-logs","title":"Logs","description":"The\xa0Logs\xa0pane provides a detailed record of all component executions within a workspace. It is designed to help you track actions, debug issues, and understand the flow of data through various components.","sidebar":"docs"},"Workspace/workspace-overview":{"id":"Workspace/workspace-overview","title":"Workspace concepts","description":"The workspace is where you create AI applications by connecting and running components in flows.","sidebar":"docs"},"Workspace/workspace-playground":{"id":"Workspace/workspace-playground","title":"Playground","description":"The\xa0Playground\xa0is a dynamic interface designed for real-time interaction with AIs, allowing users to chat, access memories and monitor inputs and outputs. Here, users can directly prototype and their models, making adjustments and observing different outcomes.","sidebar":"docs"}}}}')}}]); \ No newline at end of file diff --git a/assets/js/22dd74f7.dbf3aad5.js b/assets/js/22dd74f7.dbf3aad5.js new file mode 100644 index 0000000000..9dd383a194 --- /dev/null +++ b/assets/js/22dd74f7.dbf3aad5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1567],{55226:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"docs":[{"type":"link","label":"Welcome to Langflow","href":"/","docId":"Get-Started/welcome-to-langflow","unlisted":false},{"type":"category","label":"Get Started","items":[{"type":"link","label":"Install Langflow","href":"/get-started-installation","docId":"Get-Started/get-started-installation","unlisted":false},{"type":"link","label":"Quickstart","href":"/get-started-quickstart","docId":"Get-Started/get-started-quickstart","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Starter Projects","items":[{"type":"link","label":"Basic Prompting","href":"/starter-projects-basic-prompting","docId":"Starter-Projects/starter-projects-basic-prompting","unlisted":false},{"type":"link","label":"Vector Store RAG","href":"/starter-projects-vector-store-rag","docId":"Starter-Projects/starter-projects-vector-store-rag","unlisted":false},{"type":"link","label":"Simple agent","href":"/starter-projects-simple-agent","docId":"Starter-Projects/starter-projects-simple-agent","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Tutorials","items":[{"type":"link","label":"Blog Writer","href":"/tutorials-blog-writer","docId":"Tutorials/tutorials-blog-writer","unlisted":false},{"type":"link","label":"Document QA","href":"/tutorials-document-qa","docId":"Tutorials/tutorials-document-qa","unlisted":false},{"type":"link","label":"Memory Chatbot","href":"/tutorials-memory-chatbot","docId":"Tutorials/tutorials-memory-chatbot","unlisted":false},{"type":"link","label":"Sequential tasks agent","href":"/tutorials-sequential-agent","docId":"Tutorials/tutorials-sequential-agent","unlisted":false},{"type":"link","label":"Travel planning agent","href":"/tutorials-travel-planning-agent","docId":"Tutorials/tutorials-travel-planning-agent","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Workspace","items":[{"type":"link","label":"Workspace concepts","href":"/workspace-overview","docId":"Workspace/workspace-overview","unlisted":false},{"type":"link","label":"API","href":"/workspace-api","docId":"Workspace/workspace-api","unlisted":false},{"type":"link","label":"Logs","href":"/workspace-logs","docId":"Workspace/workspace-logs","unlisted":false},{"type":"link","label":"Playground","href":"/workspace-playground","docId":"Workspace/workspace-playground","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Components","items":[{"type":"link","label":"Components overview","href":"/components-overview","docId":"Components/components-overview","unlisted":false},{"type":"link","label":"Agents","href":"/components-agents","docId":"Components/components-agents","unlisted":false},{"type":"link","label":"Data","href":"/components-data","docId":"Components/components-data","unlisted":false},{"type":"link","label":"Embeddings","href":"/components-embedding-models","docId":"Components/components-embedding-models","unlisted":false},{"type":"link","label":"Helpers","href":"/components-helpers","docId":"Components/components-helpers","unlisted":false},{"type":"link","label":"Inputs and outputs","href":"/components-io","docId":"Components/components-io","unlisted":false},{"type":"link","label":"Loaders","href":"/components-loaders","docId":"Components/components-loaders","unlisted":false},{"type":"link","label":"Logic","href":"/components-logic","docId":"Components/components-logic","unlisted":false},{"type":"link","label":"Memories","href":"/components-memories","docId":"Components/components-memories","unlisted":false},{"type":"link","label":"Models","href":"/components-models","docId":"Components/components-models","unlisted":false},{"type":"link","label":"Processing","href":"/components-processing","docId":"Components/components-processing","unlisted":false},{"type":"link","label":"Prompts","href":"/components-prompts","docId":"Components/components-prompts","unlisted":false},{"type":"link","label":"Tools","href":"/components-tools","docId":"Components/components-tools","unlisted":false},{"type":"link","label":"Vector stores","href":"/components-vector-stores","docId":"Components/components-vector-stores","unlisted":false},{"type":"link","label":"Create custom components","href":"/components-custom-components","docId":"Components/components-custom-components","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Agents","items":[{"type":"link","label":"Agents overview","href":"/agents-overview","docId":"Agents/agents-overview","unlisted":false},{"type":"link","label":"Create a problem-solving agent","href":"/agents-tool-calling-agent-component","docId":"Agents/agent-tool-calling-agent-component","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Configuration","items":[{"type":"link","label":"API keys","href":"/configuration-api-keys","docId":"Configuration/configuration-api-keys","unlisted":false},{"type":"link","label":"Authentication","href":"/configuration-authentication","docId":"Configuration/configuration-authentication","unlisted":false},{"type":"link","label":"Auto-saving","href":"/configuration-auto-save","docId":"Configuration/configuration-auto-saving","unlisted":false},{"type":"link","label":"Run Langflow in backend-only mode","href":"/configuration-backend-only","docId":"Configuration/configuration-backend-only","unlisted":false},{"type":"link","label":"Langflow CLI","href":"/configuration-cli","docId":"Configuration/configuration-cli","unlisted":false},{"type":"link","label":"Global variables","href":"/configuration-global-variables","docId":"Configuration/configuration-global-variables","unlisted":false},{"type":"link","label":"Environment variables","href":"/environment-variables","docId":"Configuration/environment-variables","unlisted":false},{"type":"link","label":"Langflow objects","href":"/configuration-objects","docId":"Configuration/configuration-objects","unlisted":false},{"type":"link","label":"Security best practices","href":"/configuration-security-best-practices","docId":"Configuration/configuration-security-best-practices","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Deployment","items":[{"type":"link","label":"Dockers","href":"/Deployment/deployment-docker","docId":"Deployment/deployment-docker","unlisted":false},{"type":"link","label":"GCP","href":"/deployment-gcp","docId":"Deployment/deployment-gcp","unlisted":false},{"type":"link","label":"HuggingFace\xa0Spaces","href":"/deployment-hugging-face-spaces","docId":"Deployment/deployment-hugging-face-spaces","unlisted":false},{"type":"link","label":"Kubernetes","href":"/deployment-kubernetes","docId":"Deployment/deployment-kubernetes","unlisted":false},{"type":"link","label":"Railway","href":"/deployment-railway","docId":"Deployment/deployment-railway","unlisted":false},{"type":"link","label":"Render","href":"/deployment-render","docId":"Deployment/deployment-render","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Integrations","items":[{"type":"link","label":"AssemblyAI","href":"/integrations-assemblyai","docId":"Integrations/integrations-assemblyai","unlisted":false},{"type":"link","label":"Integrate Composio with Langflow","href":"/integrations-composio","docId":"Integrations/Composio/integrations-composio","unlisted":false},{"type":"link","label":"Langfuse","href":"/integrations-langfuse","docId":"Integrations/integrations-langfuse","unlisted":false},{"type":"link","label":"LangSmith","href":"/integrations-langsmith","docId":"Integrations/integrations-langsmith","unlisted":false},{"type":"link","label":"LangWatch","href":"/integrations-langwatch","docId":"Integrations/integrations-langwatch","unlisted":false},{"type":"category","label":"Google","items":[{"type":"link","label":"Integrate Google OAuth with Langflow","href":"/integrations-setup-google-oauth-langflow","docId":"Integrations/Google/integrations-setup-google-oauth-langflow","unlisted":false},{"type":"link","label":"Integrate Google Cloud Vertex AI with Langflow","href":"/integrations-setup-google-cloud-vertex-ai-langflow","docId":"Integrations/Google/integrations-setup-google-cloud-vertex-ai-langflow","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Notion","items":[{"type":"link","label":"Setup","href":"/integrations/notion/setup","docId":"Integrations/Notion/integrations-notion","unlisted":false},{"type":"link","label":"Notion Conversational Agent","href":"/integrations/notion/notion-agent-conversational","docId":"Integrations/Notion/notion-agent-conversational","unlisted":false},{"type":"link","label":"Notion Meeting Notes Agent","href":"/integrations/notion/notion-agent-meeting-notes","docId":"Integrations/Notion/notion-agent-meeting-notes","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Contributing","items":[{"type":"link","label":"Join the Langflow community","href":"/contributing-community","docId":"Contributing/contributing-community","unlisted":false},{"type":"link","label":"Contribute components","href":"/contributing-components","docId":"Contributing/contributing-components","unlisted":false},{"type":"link","label":"Ask for help on the Discussions board","href":"/contributing-github-discussions","docId":"Contributing/contributing-github-discussion-board","unlisted":false},{"type":"link","label":"Request an enhancement or report a bug","href":"/contributing-github-issues","docId":"Contributing/contributing-github-issues","unlisted":false},{"type":"link","label":"Contribute to Langflow","href":"/contributing-how-to-contribute","docId":"Contributing/contributing-how-to-contribute","unlisted":false},{"type":"link","label":"Telemetry","href":"/contributing-telemetry","docId":"Contributing/contributing-telemetry","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"API Reference","items":[{"type":"link","label":"API Documentation","href":"/api"}],"collapsed":true,"collapsible":true}]},"docs":{"Agents/agent-tool-calling-agent-component":{"id":"Agents/agent-tool-calling-agent-component","title":"Create a problem-solving agent","description":"Developing agents in Langchain is complex.","sidebar":"docs"},"Agents/agents-overview":{"id":"Agents/agents-overview","title":"Agents overview","description":"Agents are AI systems that use LLMs as a brain to analyze problems and select external tools.","sidebar":"docs"},"Components/components-agents":{"id":"Components/components-agents","title":"Agents","description":"Agent components define the behavior and capabilities of AI agents in your flow.","sidebar":"docs"},"Components/components-custom-components":{"id":"Components/components-custom-components","title":"Create custom components","description":"Custom components are created within Langflow and extend the platform\'s functionality with custom, reusable Python code.","sidebar":"docs"},"Components/components-data":{"id":"Components/components-data","title":"Data","description":"Data components load data from a source into your flow.","sidebar":"docs"},"Components/components-embedding-models":{"id":"Components/components-embedding-models","title":"Embeddings","description":"Embeddings models convert text into numerical vectors. These embeddings capture semantic meaning of the input text, and allow LLMs to understand context.","sidebar":"docs"},"Components/components-helpers":{"id":"Components/components-helpers","title":"Helpers","description":"Helper components provide utility functions to help manage data, tasks, and other components in your flow.","sidebar":"docs"},"Components/components-io":{"id":"Components/components-io","title":"Inputs and outputs","description":"This category of components defines where data enters and exits your flow. They dynamically alter the Playground and can be renamed to facilitate building and maintaining your flows.","sidebar":"docs"},"Components/components-loaders":{"id":"Components/components-loaders","title":"Loaders","description":"As of Langflow 1.1, loader components are now found in the Components menu under Bundles.","sidebar":"docs"},"Components/components-logic":{"id":"Components/components-logic","title":"Logic","description":"Logic components provide functionalities for routing, conditional processing, and flow management.","sidebar":"docs"},"Components/components-memories":{"id":"Components/components-memories","title":"Memories","description":"Memory components store and retrieve chat messages by session_id.","sidebar":"docs"},"Components/components-models":{"id":"Components/components-models","title":"Models","description":"Model components generate text using large language models.","sidebar":"docs"},"Components/components-overview":{"id":"Components/components-overview","title":"Components overview","description":"A\xa0component\xa0is 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.","sidebar":"docs"},"Components/components-processing":{"id":"Components/components-processing","title":"Processing","description":"Processing components process and transform data within a flow.","sidebar":"docs"},"Components/components-prompts":{"id":"Components/components-prompts","title":"Prompts","description":"A prompt is a structured input to a language model that instructs the model how to handle user inputs and variables.","sidebar":"docs"},"Components/components-tools":{"id":"Components/components-tools","title":"Tools","description":"Tools are typically connected to agent components at the Tools port. Agents use LLMs as a reasoning engine to decide which of the connected tool components to use to solve a problem.","sidebar":"docs"},"Components/components-vector-stores":{"id":"Components/components-vector-stores","title":"Vector stores","description":"Vector databases store vector data, which backs AI workloads like chatbots and Retrieval Augmented Generation.","sidebar":"docs"},"Configuration/configuration-api-keys":{"id":"Configuration/configuration-api-keys","title":"API keys","description":"Langflow provides an API key functionality that allows users to access their individual components and flows without traditional login authentication. The API key is a user-specific token that can be included in the request header, query parameter, or as a command line argument to authenticate API calls. This documentation outlines how to generate, use, and manage API keys in Langflow.","sidebar":"docs"},"Configuration/configuration-authentication":{"id":"Configuration/configuration-authentication","title":"Authentication","description":"The login functionality in Langflow serves to authenticate users and protect sensitive routes in the application.","sidebar":"docs"},"Configuration/configuration-auto-saving":{"id":"Configuration/configuration-auto-saving","title":"Auto-saving","description":"Langflow supports both manual and auto-saving functionality.","sidebar":"docs"},"Configuration/configuration-backend-only":{"id":"Configuration/configuration-backend-only","title":"Run Langflow in backend-only mode","description":"Langflow can run in --backend-only mode to expose a Langflow app as an API endpoint, without running the frontend UI.","sidebar":"docs"},"Configuration/configuration-cli":{"id":"Configuration/configuration-cli","title":"Langflow CLI","description":"The Langflow command line interface (Langflow CLI) is the main interface for managing and running the Langflow server.","sidebar":"docs"},"Configuration/configuration-custom-database":{"id":"Configuration/configuration-custom-database","title":"Configure an external PostgreSQL database","description":"Langflow\'s default database is SQLite, but you can configure Langflow to use PostgreSQL instead."},"Configuration/configuration-global-variables":{"id":"Configuration/configuration-global-variables","title":"Global variables","description":"Global variables let you store and reuse generic input values and credentials across your projects.","sidebar":"docs"},"Configuration/configuration-objects":{"id":"Configuration/configuration-objects","title":"Langflow objects","description":"In Langflow, the Data and Message objects are Pydantic models that serve as structured, functional representations of data.","sidebar":"docs"},"Configuration/configuration-security-best-practices":{"id":"Configuration/configuration-security-best-practices","title":"Security best practices","description":"This guide outlines security best practices for deploying and managing Langflow.","sidebar":"docs"},"Configuration/environment-variables":{"id":"Configuration/environment-variables","title":"Environment variables","description":"Langflow lets you configure a number of settings using environment variables.","sidebar":"docs"},"Contributing/contributing-community":{"id":"Contributing/contributing-community","title":"Join the Langflow community","description":"Join the Langflow Discord server","sidebar":"docs"},"Contributing/contributing-components":{"id":"Contributing/contributing-components","title":"Contribute components","description":"New components are added as objects of the\xa0CustomComponent\xa0class.","sidebar":"docs"},"Contributing/contributing-github-discussion-board":{"id":"Contributing/contributing-github-discussion-board","title":"Ask for help on the Discussions board","description":"If you\'re looking for help with your code, consider posting a question on the Langflow\xa0GitHub Discussions board. The Langflow team cannot provide individual support via email. The team also believes that help is much more valuable if it\'s\xa0shared publicly, so that more people can benefit from it.","sidebar":"docs"},"Contributing/contributing-github-issues":{"id":"Contributing/contributing-github-issues","title":"Request an enhancement or report a bug","description":"The\xa0Issues page in the Langflow repo is kept up to date with bugs, improvements, and feature requests. Labels are used to help with sorting and discovery of issues of interest. For an overview of the system Langflow uses to tag issues and pull requests, see the Langflow repo\'s labels page.","sidebar":"docs"},"Contributing/contributing-how-to-contribute":{"id":"Contributing/contributing-how-to-contribute","title":"Contribute to Langflow","description":"This guide is intended to help you start contributing to Langflow.","sidebar":"docs"},"Contributing/contributing-telemetry":{"id":"Contributing/contributing-telemetry","title":"Telemetry","description":"Langflow uses anonymous telemetry to collect essential usage statistics to enhance functionality and the user experience. This data helps us identify popular features and areas that need improvement, and ensures development efforts align with what you need.","sidebar":"docs"},"Deployment/deployment-docker":{"id":"Deployment/deployment-docker","title":"Dockers","description":"This guide will help you get LangFlow up and running using Docker and Docker Compose.","sidebar":"docs"},"Deployment/deployment-gcp":{"id":"Deployment/deployment-gcp","title":"GCP","description":"To deploy Langflow on Google Cloud Platform using Cloud Shell, use the below script.","sidebar":"docs"},"Deployment/deployment-hugging-face-spaces":{"id":"Deployment/deployment-hugging-face-spaces","title":"HuggingFace\xa0Spaces","description":"HuggingFace Spaces","sidebar":"docs"},"Deployment/deployment-kubernetes":{"id":"Deployment/deployment-kubernetes","title":"Kubernetes","description":"This guide will help you get LangFlow up and running in Kubernetes cluster, including the following steps:","sidebar":"docs"},"Deployment/deployment-railway":{"id":"Deployment/deployment-railway","title":"Railway","description":"Deploy on Railway","sidebar":"docs"},"Deployment/deployment-render":{"id":"Deployment/deployment-render","title":"Render","description":"Deploy on Render","sidebar":"docs"},"Get-Started/get-started-installation":{"id":"Get-Started/get-started-installation","title":"Install Langflow","description":"You can deploy Langflow either locally or as a hosted service with Datastax Langflow.","sidebar":"docs"},"Get-Started/get-started-quickstart":{"id":"Get-Started/get-started-quickstart","title":"Quickstart","description":"Get to know Langflow by building an OpenAI-powered chatbot application. After you\'ve constructed a chatbot, add Retrieval Augmented Generation (RAG) to chat with your own data.","sidebar":"docs"},"Get-Started/welcome-to-langflow":{"id":"Get-Started/welcome-to-langflow","title":"Welcome to Langflow","description":"Langflow is a new, visual framework for building multi-agent and RAG applications. It is open-source, Python-powered, fully customizable, and LLM and vector store agnostic.","sidebar":"docs"},"Integrations/Composio/integrations-composio":{"id":"Integrations/Composio/integrations-composio","title":"Integrate Composio with Langflow","description":"Langflow integrates with Composio as a toolset for your Agent component.","sidebar":"docs"},"Integrations/Google/integrations-setup-google-cloud-vertex-ai-langflow":{"id":"Integrations/Google/integrations-setup-google-cloud-vertex-ai-langflow","title":"Integrate Google Cloud Vertex AI with Langflow","description":"A comprehensive guide on creating a Google OAuth app, obtaining tokens, and integrating them with Langflow\'s Google components.","sidebar":"docs"},"Integrations/Google/integrations-setup-google-oauth-langflow":{"id":"Integrations/Google/integrations-setup-google-oauth-langflow","title":"Integrate Google OAuth with Langflow","description":"A comprehensive guide on creating a Google OAuth app, obtaining tokens, and integrating them with Langflow\'s Google components.","sidebar":"docs"},"Integrations/integrations-assemblyai":{"id":"Integrations/integrations-assemblyai","title":"AssemblyAI","description":"The AssemblyAI components allow you to apply powerful Speech AI models to your app for tasks like:","sidebar":"docs"},"Integrations/integrations-langfuse":{"id":"Integrations/integrations-langfuse","title":"Langfuse","description":"Langfuse is an observability and analytics platform specifically designed for language models and AI applications.","sidebar":"docs"},"Integrations/integrations-langsmith":{"id":"Integrations/integrations-langsmith","title":"LangSmith","description":"LangSmith is a full-lifecycle DevOps service from LangChain that provides monitoring and observability. To integrate with Langflow, just add your LangChain API key as a Langflow environment variable and you are good to go!","sidebar":"docs"},"Integrations/integrations-langwatch":{"id":"Integrations/integrations-langwatch","title":"LangWatch","description":"938674091aac4d9d9aa4aa6eb5c215b4}","sidebar":"docs"},"Integrations/Notion/integrations-notion":{"id":"Integrations/Notion/integrations-notion","title":"Setup","description":"To use Notion components in Langflow, you first need to create a Notion integration and configure it with the necessary capabilities. This guide will walk you through the process of setting up a Notion integration and granting it access to your Notion databases.","sidebar":"docs"},"Integrations/Notion/notion-agent-conversational":{"id":"Integrations/Notion/notion-agent-conversational","title":"Notion Conversational Agent","description":"The Notion Conversational Agent is an AI-powered assistant that interacts with your Notion workspace through natural language conversations. This flow performs Notion-related tasks like creating pages, searching for information, and managing content, all through a chat interface.","sidebar":"docs"},"Integrations/Notion/notion-agent-meeting-notes":{"id":"Integrations/Notion/notion-agent-meeting-notes","title":"Notion Meeting Notes Agent","description":"The Notion Agent for Meeting Notes is an AI-powered tool that automatically processes meeting transcripts and updates your Notion workspace. It identifies tasks, action items, and key points from your meetings, then creates new tasks or updates existing ones in Notion without manual input.","sidebar":"docs"},"Starter-Projects/starter-projects-basic-prompting":{"id":"Starter-Projects/starter-projects-basic-prompting","title":"Basic Prompting","description":"Prompts serve as the inputs to a large language model (LLM), acting as the interface between human instructions and computational tasks.","sidebar":"docs"},"Starter-Projects/starter-projects-simple-agent":{"id":"Starter-Projects/starter-projects-simple-agent","title":"Simple agent","description":"Build a Simple Agent flow for an agentic application using the Tool-calling agent.","sidebar":"docs"},"Starter-Projects/starter-projects-vector-store-rag":{"id":"Starter-Projects/starter-projects-vector-store-rag","title":"Vector Store RAG","description":"Retrieval Augmented Generation, or RAG, is a pattern for training LLMs on your data and querying it.","sidebar":"docs"},"Tutorials/tutorials-blog-writer":{"id":"Tutorials/tutorials-blog-writer","title":"Blog Writer","description":"Build a Blog Writer flow for a one-shot application using OpenAI.","sidebar":"docs"},"Tutorials/tutorials-document-qa":{"id":"Tutorials/tutorials-document-qa","title":"Document QA","description":"Build a question-and-answer chatbot with a document loaded from local memory.","sidebar":"docs"},"Tutorials/tutorials-memory-chatbot":{"id":"Tutorials/tutorials-memory-chatbot","title":"Memory Chatbot","description":"This flow extends the\xa0basic prompting\xa0flow to include a chat memory. This makes the AI remember previous user inputs.","sidebar":"docs"},"Tutorials/tutorials-sequential-agent":{"id":"Tutorials/tutorials-sequential-agent","title":"Sequential tasks agent","description":"Build a Sequential Tasks Agent flow for a multi-agent application using multiple Agent components.","sidebar":"docs"},"Tutorials/tutorials-travel-planning-agent":{"id":"Tutorials/tutorials-travel-planning-agent","title":"Travel planning agent","description":"Build a Travel Planning Agent flow for an agentic application using the multiple Tool-calling agents.","sidebar":"docs"},"Workspace/workspace-api":{"id":"Workspace/workspace-api","title":"API","description":"The\xa0API\xa0section presents code templates for integrating your flow into external applications.","sidebar":"docs"},"Workspace/workspace-logs":{"id":"Workspace/workspace-logs","title":"Logs","description":"The\xa0Logs\xa0pane provides a detailed record of all component executions within a workspace. It is designed to help you track actions, debug issues, and understand the flow of data through various components.","sidebar":"docs"},"Workspace/workspace-overview":{"id":"Workspace/workspace-overview","title":"Workspace concepts","description":"The workspace is where you create AI applications by connecting and running components in flows.","sidebar":"docs"},"Workspace/workspace-playground":{"id":"Workspace/workspace-playground","title":"Playground","description":"The\xa0Playground\xa0is a dynamic interface designed for real-time interaction with AIs, allowing users to chat, access memories and monitor inputs and outputs. Here, users can directly prototype and their models, making adjustments and observing different outcomes.","sidebar":"docs"}}}}')}}]); \ No newline at end of file diff --git a/assets/js/3a8b8299.c8daf941.js b/assets/js/3a8b8299.9ec27c3d.js similarity index 73% rename from assets/js/3a8b8299.c8daf941.js rename to assets/js/3a8b8299.9ec27c3d.js index b875c2700c..53daa1c14a 100644 --- a/assets/js/3a8b8299.c8daf941.js +++ b/assets/js/3a8b8299.9ec27c3d.js @@ -1 +1 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1889],{53331:(o,t,e)=>{e.r(t),e.d(t,{CH:()=>i,assets:()=>a,chCodeConfig:()=>d,contentTitle:()=>l,default:()=>F,frontMatter:()=>r,metadata:()=>p,toc:()=>y});var n=e(74848),s=e(28453),c=e(24754);const r={title:"Langflow objects",slug:"/configuration-objects"},l=void 0,p={id:"Configuration/configuration-objects",title:"Langflow objects",description:"In Langflow, the Data and Message objects are Pydantic models that serve as structured, functional representations of data.",source:"@site/docs/Configuration/configuration-objects.md",sourceDirName:"Configuration",slug:"/configuration-objects",permalink:"/configuration-objects",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{title:"Langflow objects",slug:"/configuration-objects"},sidebar:"docs",previous:{title:"Environment variables",permalink:"/environment-variables"},next:{title:"Security best practices",permalink:"/configuration-security-best-practices"}},a={},i={annotations:c.hk,Code:c.Cy},d={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},y=[{value:"Data object",id:"data-object",level:2},{value:"Create a Data Object",id:"create-a-data-object",level:3},{value:"Message object",id:"message-object",level:2},{value:"Create a Message object",id:"create-a-message-object",level:3},{value:"ContentBlock object",id:"contentblock-object",level:2},{value:"Create a ContentBlock object",id:"create-a-contentblock-object",level:3},{value:"Add ContentBlocks objects to a message",id:"add-contentblocks-objects-to-a-message",level:3},{value:"DataFrame object",id:"dataframe-object",level:2},{value:"Create a DataFrame object",id:"create-a-dataframe-object",level:3}];function D(o){const t={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,s.R)(),...o.components};return i||h("CH",!1),i.Code||h("CH.Code",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:'[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; }'}}),"\n",(0,n.jsx)(t.p,{children:"In Langflow, the Data and Message objects are Pydantic models that serve as structured, functional representations of data."}),"\n",(0,n.jsx)(t.h2,{id:"data-object",children:"Data object"}),"\n",(0,n.jsxs)(t.p,{children:["The\xa0",(0,n.jsx)(t.code,{children:"Data"}),"\xa0object is a ",(0,n.jsx)(t.a,{href:"https://docs.pydantic.dev/latest/api/base_model/",children:"Pydantic"})," model that serves as a container for storing and manipulating data. It carries\xa0",(0,n.jsx)(t.code,{children:"data"}),"\u2014a dictionary that can be accessed as attributes\u2014and uses\xa0",(0,n.jsx)(t.code,{children:"text_key"}),"\xa0to specify which key in the dictionary should be considered the primary text content."]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Main Attributes:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"text_key"}),": Specifies the key to retrieve the primary text data."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"data"}),": A dictionary to store additional data."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"default_value"}),": default value when the\xa0",(0,n.jsx)(t.code,{children:"text_key"}),"\xa0is not present in the\xa0",(0,n.jsx)(t.code,{children:"data"}),"\xa0dictionary."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(t.h3,{id:"create-a-data-object",children:"Create a Data Object"}),"\n",(0,n.jsxs)(t.p,{children:["Create a\xa0",(0,n.jsx)(t.code,{children:"Data"}),"\xa0object by directly assigning key-value pairs to it. For example:"]}),"\n",(0,n.jsx)(i.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Data",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Creating a Data object with specified key-value pairs",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" Data(",props:{style:{color:"#C9D1D9"}}},{content:"text",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"my_string"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"bar",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"3",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"foo",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"another_string"',props:{style:{color:"#A5D6FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Outputs:",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"print",props:{style:{color:"#79C0FF"}}},{content:"(data.text) ",props:{style:{color:"#C9D1D9"}}},{content:'# Outputs: "my_string"',props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"print",props:{style:{color:"#79C0FF"}}},{content:"(data.bar) ",props:{style:{color:"#C9D1D9"}}},{content:"# Outputs: 3",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"print",props:{style:{color:"#79C0FF"}}},{content:"(data.foo) ",props:{style:{color:"#C9D1D9"}}},{content:'# Outputs: "another_string"',props:{style:{color:"#8B949E"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsxs)(t.p,{children:["The\xa0",(0,n.jsx)(t.code,{children:"text_key"}),"\xa0specifies which key in the\xa0",(0,n.jsx)(t.code,{children:"data"}),"\xa0dictionary should be considered the primary text content. The\xa0",(0,n.jsx)(t.code,{children:"default_value"}),"\xa0provides a fallback if the\xa0",(0,n.jsx)(t.code,{children:"text_key"}),"\xa0is not present."]}),"\n",(0,n.jsx)(i.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"# Creating a Data object with a specific text_key and default_value",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" Data(",props:{style:{color:"#C9D1D9"}}},{content:"data",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"{",props:{style:{color:"#C9D1D9"}}},{content:'"title"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Hello, World!"',props:{style:{color:"#A5D6FF"}}},{content:"}, ",props:{style:{color:"#C9D1D9"}}},{content:"text_key",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"content"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"default_value",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"No content available"',props:{style:{color:"#A5D6FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Accessing the primary text using text_key and default_value",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"print",props:{style:{color:"#79C0FF"}}},{content:"(data.get_text()) ",props:{style:{color:"#C9D1D9"}}},{content:'# Outputs: "No content available" because "content" key is not in the data dictionary',props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Accessing data keys by calling the attribute directly",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"print",props:{style:{color:"#79C0FF"}}},{content:"(data.title) ",props:{style:{color:"#C9D1D9"}}},{content:'# Outputs: "Hello, World!" because "title" key is in the data dictionary',props:{style:{color:"#8B949E"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"Data"})," object is also convenient for visualization of outputs, since the output preview has visual elements to inspect data as a table and its cells as pop ups for basic types. The idea is to create a unified way to work and visualize complex information in Langflow."]}),"\n",(0,n.jsxs)(t.p,{children:["To receive ",(0,n.jsx)(t.code,{children:"Data"})," objects in a component input, use the ",(0,n.jsx)(t.code,{children:"DataInput"})," input type."]}),"\n",(0,n.jsx)(i.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"inputs ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" DataInput(",props:{style:{color:"#C9D1D9"}}},{content:"name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"data"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Data"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Helpful info about the incoming data object."',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"is_list",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"True",props:{style:{color:"#79C0FF"}}},{content:"),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"]",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(t.h2,{id:"message-object",children:"Message object"}),"\n",(0,n.jsxs)(t.p,{children:["The\xa0",(0,n.jsx)(t.code,{children:"Message"}),"\xa0object extends the functionality of\xa0",(0,n.jsx)(t.code,{children:"Data"}),"\xa0and includes additional attributes and methods for chat interactions."]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.strong,{children:"Core message data:"})}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"text"}),": The main text content of the message"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"sender"}),': Identifier for the sender ("User" or "AI")']}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"sender_name"}),": Name of the sender"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"session_id"}),": Identifier for the chat session (",(0,n.jsx)(t.code,{children:"string"})," or ",(0,n.jsx)(t.code,{children:"UUID"}),")"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"timestamp"}),": Timestamp when the message was created (UTC)"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"flow_id"}),": Identifier for the flow (",(0,n.jsx)(t.code,{children:"string"})," or ",(0,n.jsx)(t.code,{children:"UUID"}),")"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"id"}),": Unique identifier for the message"]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.strong,{children:"Content and files:"})}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"files"}),": List of files or images associated with the message"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"content_blocks"}),": List of structured content block objects"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"properties"}),": Additional properties including visual styling and source information"]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.strong,{children:"Message state:"})}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"error"}),": Boolean indicating if there was an error"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"edit"}),": Boolean indicating if the message was edited"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"category"}),': Message category ("message", "error", "warning", "info")']}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:["The\xa0",(0,n.jsx)(t.code,{children:"Message"}),"\xa0object can be used to send, store, and manipulate chat messages within Langflow."]}),"\n",(0,n.jsx)(t.h3,{id:"create-a-message-object",children:"Create a Message object"}),"\n",(0,n.jsxs)(t.p,{children:["You can create a\xa0",(0,n.jsx)(t.code,{children:"Message"}),"\xa0object by directly assigning key-value pairs to it. For example:"]}),"\n",(0,n.jsx)(i.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.schema.message ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Message",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"message ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" Message(",props:{style:{color:"#C9D1D9"}}},{content:"text",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Hello, AI!"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"sender",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"sender_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"John Doe"',props:{style:{color:"#A5D6FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsxs)(t.p,{children:["To receive ",(0,n.jsx)(t.code,{children:"Message"})," objects in a component input, you can use the ",(0,n.jsx)(t.code,{children:"MessageInput"})," input type or ",(0,n.jsx)(t.code,{children:"MessageTextInput"})," when the goal is to extract just the ",(0,n.jsx)(t.code,{children:"text"})," field of the ",(0,n.jsx)(t.code,{children:"Message"})," object."]}),"\n",(0,n.jsx)(t.h2,{id:"contentblock-object",children:"ContentBlock object"}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"ContentBlock"})," object is a list of multiple ",(0,n.jsx)(t.code,{children:"ContentTypes"}),". It allows you to include multiple types of content within a single ",(0,n.jsx)(t.code,{children:"Message"}),", including images, videos, and text."]}),"\n",(0,n.jsxs)(t.p,{children:["Content types are Pydantic base classes constructed from the types in ",(0,n.jsx)(t.a,{href:"https://github.com/langflow-ai/langflow/blob/main/src/backend/base/langflow/schema/content_types.py",children:"content_types.py"}),"."]}),"\n",(0,n.jsx)(t.p,{children:"Each content type has specific fields related to its data type. For example:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"TextContent"})," has a ",(0,n.jsx)(t.code,{children:"text"})," field for storing strings of text"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"MediaContent"})," has a ",(0,n.jsx)(t.code,{children:"urls"})," field for storing media file URLs"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"CodeContent"})," has ",(0,n.jsx)(t.code,{children:"code"})," and ",(0,n.jsx)(t.code,{children:"language"})," fields for code snippets"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"JSONContent"})," has a ",(0,n.jsx)(t.code,{children:"data"})," field for storing arbitrary JSON data"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"ToolContent"})," has a ",(0,n.jsx)(t.code,{children:"tool_input"})," field for storing input parameters for the tool"]}),"\n"]}),"\n",(0,n.jsx)(t.h3,{id:"create-a-contentblock-object",children:"Create a ContentBlock object"}),"\n",(0,n.jsxs)(t.p,{children:["Create a ",(0,n.jsx)(t.code,{children:"ContentBlock"})," object with a list of different content types."]}),"\n",(0,n.jsx)(i.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"content_block ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" ContentBlock(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" title",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Mixed Content Example"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" contents",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"[",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" TextContent(",props:{style:{color:"#C9D1D9"}}},{content:"text",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"This is a text content"',props:{style:{color:"#A5D6FF"}}},{content:"),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" MediaContent(",props:{style:{color:"#C9D1D9"}}},{content:"urls",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"[",props:{style:{color:"#C9D1D9"}}},{content:'"http://example.com/image.jpg"',props:{style:{color:"#A5D6FF"}}},{content:"]),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" JSONContent(",props:{style:{color:"#C9D1D9"}}},{content:"data",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"{",props:{style:{color:"#C9D1D9"}}},{content:'"key"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"value"',props:{style:{color:"#A5D6FF"}}},{content:"}),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" CodeContent(",props:{style:{color:"#C9D1D9"}}},{content:"code",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"\"print('Hello')\"",props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"language",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"python"',props:{style:{color:"#A5D6FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" media_url",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"[",props:{style:{color:"#C9D1D9"}}},{content:'"http://example.com/additional_image.jpg"',props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:")",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(t.h3,{id:"add-contentblocks-objects-to-a-message",children:"Add ContentBlocks objects to a message"}),"\n",(0,n.jsxs)(t.p,{children:["In this example, a text and a media ",(0,n.jsx)(t.code,{children:"ContentBlock"})," are added to a message."]}),"\n",(0,n.jsx)(i.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.schema.message ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Message",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.schema.content_block ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" ContentBlock",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.schema.content_types ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" TextContent, MediaContent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"message ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" Message(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" text",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Main message text"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" sender",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" sender_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"John Doe"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" content_blocks",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"[",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ContentBlock(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" title",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Text Block"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" contents",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"[",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" TextContent(",props:{style:{color:"#C9D1D9"}}},{content:"type",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"text"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"text",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"This is some text content"',props:{style:{color:"#A5D6FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ContentBlock(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" title",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Media Block"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" contents",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"[",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" MediaContent(",props:{style:{color:"#C9D1D9"}}},{content:"type",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"media"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"urls",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"[",props:{style:{color:"#C9D1D9"}}},{content:'"http://example.com/image.jpg"',props:{style:{color:"#A5D6FF"}}},{content:"])",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" )",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:")",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(t.h2,{id:"dataframe-object",children:"DataFrame object"}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"DataFrame"})," class is a custom extension of the pandas' ",(0,n.jsx)(t.a,{href:"https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html",children:"DataFrame"})," class, specifically designed to work seamlessly with Langflow's ",(0,n.jsx)(t.code,{children:"Data"})," objects. The class includes methods for converting between ",(0,n.jsx)(t.code,{children:"DataFrame"})," and lists of ",(0,n.jsx)(t.code,{children:"Data"})," objects."]}),"\n",(0,n.jsxs)(t.p,{children:["A ",(0,n.jsx)(t.code,{children:"DataFrame"})," object accepts various input formats, including lists of ",(0,n.jsx)(t.code,{children:"Data"})," objects, dictionaries, and existing pandas DataFrames."]}),"\n",(0,n.jsx)(t.h3,{id:"create-a-dataframe-object",children:"Create a DataFrame object"}),"\n",(0,n.jsx)(t.p,{children:"You can create a DataFrame object using different data formats:"}),"\n",(0,n.jsx)(i.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Data",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.schema.data ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" DataFrame",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# From a list of Data objects",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"data_list ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [Data(",props:{style:{color:"#C9D1D9"}}},{content:"data",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"{",props:{style:{color:"#C9D1D9"}}},{content:'"name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"John"',props:{style:{color:"#A5D6FF"}}},{content:"}), Data(",props:{style:{color:"#C9D1D9"}}},{content:"data",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"{",props:{style:{color:"#C9D1D9"}}},{content:'"name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Jane"',props:{style:{color:"#A5D6FF"}}},{content:"})]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"df ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" DataFrame(data_list)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# From a list of dictionaries",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"dict_list ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [{",props:{style:{color:"#C9D1D9"}}},{content:'"name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"John"',props:{style:{color:"#A5D6FF"}}},{content:"}, {",props:{style:{color:"#C9D1D9"}}},{content:'"name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Jane"',props:{style:{color:"#A5D6FF"}}},{content:"}]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"df ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" DataFrame(dict_list)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# From a dictionary of lists",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"data_dict ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}},{content:'"name"',props:{style:{color:"#A5D6FF"}}},{content:": [",props:{style:{color:"#C9D1D9"}}},{content:'"John"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"Jane"',props:{style:{color:"#A5D6FF"}}},{content:"], ",props:{style:{color:"#C9D1D9"}}},{content:'"age"',props:{style:{color:"#A5D6FF"}}},{content:": [",props:{style:{color:"#C9D1D9"}}},{content:"30",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"25",props:{style:{color:"#79C0FF"}}},{content:"]}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"df ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" DataFrame(data_dict)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"Key Methods",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"to_data_list(): Converts the DataFrame back to a ",props:{style:{color:"#C9D1D9"}}},{content:"list",props:{style:{color:"#79C0FF"}}},{content:" of Data objects.",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"add_row(data): Adds a single row (either a Data ",props:{style:{color:"#C9D1D9"}}},{content:"object ",props:{style:{color:"#79C0FF"}}},{content:"or",props:{style:{color:"#FF7B72"}}},{content:" a dictionary) to the DataFrame.",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"add_rows(data): Adds multiple rows (",props:{style:{color:"#C9D1D9"}}},{content:"list",props:{style:{color:"#79C0FF"}}},{content:" of Data objects ",props:{style:{color:"#C9D1D9"}}},{content:"or",props:{style:{color:"#FF7B72"}}},{content:" dictionaries) to the DataFrame.",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"Usage Example",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"python",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Create a DataFrame",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"df ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" DataFrame([Data(",props:{style:{color:"#C9D1D9"}}},{content:"data",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"{",props:{style:{color:"#C9D1D9"}}},{content:'"name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"John"',props:{style:{color:"#A5D6FF"}}},{content:"}), Data(",props:{style:{color:"#C9D1D9"}}},{content:"data",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"{",props:{style:{color:"#C9D1D9"}}},{content:'"name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Jane"',props:{style:{color:"#A5D6FF"}}},{content:"})])",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Add a new row",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"df ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" df.add_row({",props:{style:{color:"#C9D1D9"}}},{content:'"name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Alice"',props:{style:{color:"#A5D6FF"}}},{content:"})",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Convert back to a list of Data objects",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"data_list ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" df.to_data_list()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Use pandas functionality",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"filtered_df ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" df[df[",props:{style:{color:"#C9D1D9"}}},{content:'"name"',props:{style:{color:"#A5D6FF"}}},{content:"].str.startswith(",props:{style:{color:"#C9D1D9"}}},{content:'"J"',props:{style:{color:"#A5D6FF"}}},{content:")]",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(t.p,{children:"To use DataFrame objects in a component input,use the DataFrameInput input type."}),"\n",(0,n.jsx)(i.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"DataFrameInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"dataframe_input"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"DataFrame Input"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Input for DataFrame objects."',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"tool_mode",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"True",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"),",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]})]})}function F(o={}){const{wrapper:t}={...(0,s.R)(),...o.components};return t?(0,n.jsx)(t,{...o,children:(0,n.jsx)(D,{...o})}):D(o)}function h(o,t){throw new Error("Expected "+(t?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]); \ No newline at end of file +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1889],{53331:(o,t,e)=>{e.r(t),e.d(t,{CH:()=>i,assets:()=>a,chCodeConfig:()=>d,contentTitle:()=>l,default:()=>F,frontMatter:()=>r,metadata:()=>p,toc:()=>y});var n=e(74848),s=e(28453),c=e(24754);const r={title:"Langflow objects",slug:"/configuration-objects"},l=void 0,p={id:"Configuration/configuration-objects",title:"Langflow objects",description:"In Langflow, the Data and Message objects are Pydantic models that serve as structured, functional representations of data.",source:"@site/docs/Configuration/configuration-objects.md",sourceDirName:"Configuration",slug:"/configuration-objects",permalink:"/configuration-objects",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{title:"Langflow objects",slug:"/configuration-objects"},sidebar:"docs",previous:{title:"Environment variables",permalink:"/environment-variables"},next:{title:"Security best practices",permalink:"/configuration-security-best-practices"}},a={},i={annotations:c.hk,Code:c.Cy},d={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},y=[{value:"Data object",id:"data-object",level:2},{value:"Create a Data Object",id:"create-a-data-object",level:3},{value:"Message object",id:"message-object",level:2},{value:"Create a Message object",id:"create-a-message-object",level:3},{value:"ContentBlock object",id:"contentblock-object",level:2},{value:"Create a ContentBlock object",id:"create-a-contentblock-object",level:3},{value:"Add ContentBlocks objects to a message",id:"add-contentblocks-objects-to-a-message",level:3},{value:"DataFrame object",id:"dataframe-object",level:2},{value:"Create a DataFrame object",id:"create-a-dataframe-object",level:3}];function D(o){const t={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,s.R)(),...o.components};return i||h("CH",!1),i.Code||h("CH.Code",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:'[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; }'}}),"\n",(0,n.jsx)(t.p,{children:"In Langflow, the Data and Message objects are Pydantic models that serve as structured, functional representations of data."}),"\n",(0,n.jsx)(t.h2,{id:"data-object",children:"Data object"}),"\n",(0,n.jsxs)(t.p,{children:["The\xa0",(0,n.jsx)(t.code,{children:"Data"}),"\xa0object is a ",(0,n.jsx)(t.a,{href:"https://docs.pydantic.dev/latest/api/base_model/",children:"Pydantic"})," model that serves as a container for storing and manipulating data. It carries\xa0",(0,n.jsx)(t.code,{children:"data"}),"\u2014a dictionary that can be accessed as attributes\u2014and uses\xa0",(0,n.jsx)(t.code,{children:"text_key"}),"\xa0to specify which key in the dictionary should be considered the primary text content."]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Main Attributes:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"text_key"}),": Specifies the key to retrieve the primary text data."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"data"}),": A dictionary to store additional data."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"default_value"}),": default value when the\xa0",(0,n.jsx)(t.code,{children:"text_key"}),"\xa0is not present in the\xa0",(0,n.jsx)(t.code,{children:"data"}),"\xa0dictionary."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(t.h3,{id:"create-a-data-object",children:"Create a Data Object"}),"\n",(0,n.jsxs)(t.p,{children:["Create a\xa0",(0,n.jsx)(t.code,{children:"Data"}),"\xa0object by directly assigning key-value pairs to it. For example:"]}),"\n",(0,n.jsx)(i.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Data",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Creating a Data object with specified key-value pairs",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" Data(",props:{style:{color:"#C9D1D9"}}},{content:"text",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"my_string"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"bar",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"3",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"foo",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"another_string"',props:{style:{color:"#A5D6FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Outputs:",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"print",props:{style:{color:"#79C0FF"}}},{content:"(data.text) ",props:{style:{color:"#C9D1D9"}}},{content:'# Outputs: "my_string"',props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"print",props:{style:{color:"#79C0FF"}}},{content:"(data.bar) ",props:{style:{color:"#C9D1D9"}}},{content:"# Outputs: 3",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"print",props:{style:{color:"#79C0FF"}}},{content:"(data.foo) ",props:{style:{color:"#C9D1D9"}}},{content:'# Outputs: "another_string"',props:{style:{color:"#8B949E"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsxs)(t.p,{children:["The\xa0",(0,n.jsx)(t.code,{children:"text_key"}),"\xa0specifies which key in the\xa0",(0,n.jsx)(t.code,{children:"data"}),"\xa0dictionary should be considered the primary text content. The\xa0",(0,n.jsx)(t.code,{children:"default_value"}),"\xa0provides a fallback if the\xa0",(0,n.jsx)(t.code,{children:"text_key"}),"\xa0is not present."]}),"\n",(0,n.jsx)(i.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"# Creating a Data object with a specific text_key and default_value",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" Data(",props:{style:{color:"#C9D1D9"}}},{content:"data",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"{",props:{style:{color:"#C9D1D9"}}},{content:'"title"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Hello, World!"',props:{style:{color:"#A5D6FF"}}},{content:"}, ",props:{style:{color:"#C9D1D9"}}},{content:"text_key",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"content"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"default_value",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"No content available"',props:{style:{color:"#A5D6FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Accessing the primary text using text_key and default_value",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"print",props:{style:{color:"#79C0FF"}}},{content:"(data.get_text()) ",props:{style:{color:"#C9D1D9"}}},{content:'# Outputs: "No content available" because "content" key is not in the data dictionary',props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Accessing data keys by calling the attribute directly",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"print",props:{style:{color:"#79C0FF"}}},{content:"(data.title) ",props:{style:{color:"#C9D1D9"}}},{content:'# Outputs: "Hello, World!" because "title" key is in the data dictionary',props:{style:{color:"#8B949E"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"Data"})," object is also convenient for visualization of outputs, since the output preview has visual elements to inspect data as a table and its cells as pop ups for basic types. The idea is to create a unified way to work and visualize complex information in Langflow."]}),"\n",(0,n.jsxs)(t.p,{children:["To receive ",(0,n.jsx)(t.code,{children:"Data"})," objects in a component input, use the ",(0,n.jsx)(t.code,{children:"DataInput"})," input type."]}),"\n",(0,n.jsx)(i.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"inputs ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" DataInput(",props:{style:{color:"#C9D1D9"}}},{content:"name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"data"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Data"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Helpful info about the incoming data object."',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"is_list",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"True",props:{style:{color:"#79C0FF"}}},{content:"),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"]",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(t.h2,{id:"message-object",children:"Message object"}),"\n",(0,n.jsxs)(t.p,{children:["The\xa0",(0,n.jsx)(t.code,{children:"Message"}),"\xa0object extends the functionality of\xa0",(0,n.jsx)(t.code,{children:"Data"}),"\xa0and includes additional attributes and methods for chat interactions."]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.strong,{children:"Core message data:"})}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"text"}),": The main text content of the message"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"sender"}),': Identifier for the sender ("User" or "AI")']}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"sender_name"}),": Name of the sender"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"session_id"}),": Identifier for the chat session (",(0,n.jsx)(t.code,{children:"string"})," or ",(0,n.jsx)(t.code,{children:"UUID"}),")"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"timestamp"}),": Timestamp when the message was created (UTC)"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"flow_id"}),": Identifier for the flow (",(0,n.jsx)(t.code,{children:"string"})," or ",(0,n.jsx)(t.code,{children:"UUID"}),")"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"id"}),": Unique identifier for the message"]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.strong,{children:"Content and files:"})}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"files"}),": List of files or images associated with the message"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"content_blocks"}),": List of structured content block objects"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"properties"}),": Additional properties including visual styling and source information"]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.strong,{children:"Message state:"})}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"error"}),": Boolean indicating if there was an error"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"edit"}),": Boolean indicating if the message was edited"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"category"}),': Message category ("message", "error", "warning", "info")']}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:["The\xa0",(0,n.jsx)(t.code,{children:"Message"}),"\xa0object can be used to send, store, and manipulate chat messages within Langflow."]}),"\n",(0,n.jsx)(t.h3,{id:"create-a-message-object",children:"Create a Message object"}),"\n",(0,n.jsxs)(t.p,{children:["You can create a\xa0",(0,n.jsx)(t.code,{children:"Message"}),"\xa0object by directly assigning key-value pairs to it. For example:"]}),"\n",(0,n.jsx)(i.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.schema.message ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Message",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"message ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" Message(",props:{style:{color:"#C9D1D9"}}},{content:"text",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Hello, AI!"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"sender",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"sender_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"John Doe"',props:{style:{color:"#A5D6FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsxs)(t.p,{children:["To receive ",(0,n.jsx)(t.code,{children:"Message"})," objects in a component input, you can use the ",(0,n.jsx)(t.code,{children:"MessageInput"})," input type or ",(0,n.jsx)(t.code,{children:"MessageTextInput"})," when the goal is to extract just the ",(0,n.jsx)(t.code,{children:"text"})," field of the ",(0,n.jsx)(t.code,{children:"Message"})," object."]}),"\n",(0,n.jsx)(t.h2,{id:"contentblock-object",children:"ContentBlock object"}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"ContentBlock"})," object is a list of multiple ",(0,n.jsx)(t.code,{children:"ContentTypes"}),". It allows you to include multiple types of content within a single ",(0,n.jsx)(t.code,{children:"Message"}),", including images, videos, and text."]}),"\n",(0,n.jsxs)(t.p,{children:["Content types are Pydantic base classes constructed from the types in ",(0,n.jsx)(t.a,{href:"https://github.com/langflow-ai/langflow/blob/main/src/backend/base/langflow/schema/content_types.py",children:"content_types.py"}),"."]}),"\n",(0,n.jsx)(t.p,{children:"Each content type has specific fields related to its data type. For example:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"TextContent"})," has a ",(0,n.jsx)(t.code,{children:"text"})," field for storing strings of text"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"MediaContent"})," has a ",(0,n.jsx)(t.code,{children:"urls"})," field for storing media file URLs"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"CodeContent"})," has ",(0,n.jsx)(t.code,{children:"code"})," and ",(0,n.jsx)(t.code,{children:"language"})," fields for code snippets"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"JSONContent"})," has a ",(0,n.jsx)(t.code,{children:"data"})," field for storing arbitrary JSON data"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"ToolContent"})," has a ",(0,n.jsx)(t.code,{children:"tool_input"})," field for storing input parameters for the tool"]}),"\n"]}),"\n",(0,n.jsx)(t.h3,{id:"create-a-contentblock-object",children:"Create a ContentBlock object"}),"\n",(0,n.jsxs)(t.p,{children:["Create a ",(0,n.jsx)(t.code,{children:"ContentBlock"})," object with a list of different content types."]}),"\n",(0,n.jsx)(i.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"content_block ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" ContentBlock(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" title",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Mixed Content Example"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" contents",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"[",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" TextContent(",props:{style:{color:"#C9D1D9"}}},{content:"text",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"This is a text content"',props:{style:{color:"#A5D6FF"}}},{content:"),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" MediaContent(",props:{style:{color:"#C9D1D9"}}},{content:"urls",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"[",props:{style:{color:"#C9D1D9"}}},{content:'"http://example.com/image.jpg"',props:{style:{color:"#A5D6FF"}}},{content:"]),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" JSONContent(",props:{style:{color:"#C9D1D9"}}},{content:"data",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"{",props:{style:{color:"#C9D1D9"}}},{content:'"key"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"value"',props:{style:{color:"#A5D6FF"}}},{content:"}),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" CodeContent(",props:{style:{color:"#C9D1D9"}}},{content:"code",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"\"print('Hello')\"",props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"language",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"python"',props:{style:{color:"#A5D6FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" media_url",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"[",props:{style:{color:"#C9D1D9"}}},{content:'"http://example.com/additional_image.jpg"',props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:")",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(t.h3,{id:"add-contentblocks-objects-to-a-message",children:"Add ContentBlocks objects to a message"}),"\n",(0,n.jsxs)(t.p,{children:["In this example, a text and a media ",(0,n.jsx)(t.code,{children:"ContentBlock"})," are added to a message."]}),"\n",(0,n.jsx)(i.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.schema.message ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Message",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.schema.content_block ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" ContentBlock",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.schema.content_types ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" TextContent, MediaContent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"message ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" Message(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" text",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Main message text"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" sender",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" sender_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"John Doe"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" content_blocks",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"[",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ContentBlock(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" title",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Text Block"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" contents",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"[",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" TextContent(",props:{style:{color:"#C9D1D9"}}},{content:"type",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"text"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"text",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"This is some text content"',props:{style:{color:"#A5D6FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ContentBlock(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" title",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Media Block"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" contents",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"[",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" MediaContent(",props:{style:{color:"#C9D1D9"}}},{content:"type",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"media"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"urls",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"[",props:{style:{color:"#C9D1D9"}}},{content:'"http://example.com/image.jpg"',props:{style:{color:"#A5D6FF"}}},{content:"])",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" )",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:")",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(t.h2,{id:"dataframe-object",children:"DataFrame object"}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"DataFrame"})," class is a custom extension of the Pandas ",(0,n.jsx)(t.a,{href:"https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html",children:"DataFrame"})," class, specifically designed to work seamlessly with Langflow's ",(0,n.jsx)(t.code,{children:"Data"})," objects. The class includes methods for converting between ",(0,n.jsx)(t.code,{children:"DataFrame"})," and lists of ",(0,n.jsx)(t.code,{children:"Data"})," objects."]}),"\n",(0,n.jsxs)(t.p,{children:["A ",(0,n.jsx)(t.code,{children:"DataFrame"})," object accepts various input formats, including lists of ",(0,n.jsx)(t.code,{children:"Data"})," objects, dictionaries, and existing ",(0,n.jsx)(t.code,{children:"DataFrames"}),"."]}),"\n",(0,n.jsx)(t.h3,{id:"create-a-dataframe-object",children:"Create a DataFrame object"}),"\n",(0,n.jsx)(t.p,{children:"You can create a DataFrame object using different data formats:"}),"\n",(0,n.jsx)(i.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Data",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.schema.data ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" DataFrame",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# From a list of Data objects",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"data_list ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [Data(",props:{style:{color:"#C9D1D9"}}},{content:"data",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"{",props:{style:{color:"#C9D1D9"}}},{content:'"name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"John"',props:{style:{color:"#A5D6FF"}}},{content:"}), Data(",props:{style:{color:"#C9D1D9"}}},{content:"data",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"{",props:{style:{color:"#C9D1D9"}}},{content:'"name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Jane"',props:{style:{color:"#A5D6FF"}}},{content:"})]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"df ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" DataFrame(data_list)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# From a list of dictionaries",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"dict_list ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [{",props:{style:{color:"#C9D1D9"}}},{content:'"name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"John"',props:{style:{color:"#A5D6FF"}}},{content:"}, {",props:{style:{color:"#C9D1D9"}}},{content:'"name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Jane"',props:{style:{color:"#A5D6FF"}}},{content:"}]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"df ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" DataFrame(dict_list)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# From a dictionary of lists",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"data_dict ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}},{content:'"name"',props:{style:{color:"#A5D6FF"}}},{content:": [",props:{style:{color:"#C9D1D9"}}},{content:'"John"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"Jane"',props:{style:{color:"#A5D6FF"}}},{content:"], ",props:{style:{color:"#C9D1D9"}}},{content:'"age"',props:{style:{color:"#A5D6FF"}}},{content:": [",props:{style:{color:"#C9D1D9"}}},{content:"30",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"25",props:{style:{color:"#79C0FF"}}},{content:"]}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"df ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" DataFrame(data_dict)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"Key Methods",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"to_data_list(): Converts the DataFrame back to a ",props:{style:{color:"#C9D1D9"}}},{content:"list",props:{style:{color:"#79C0FF"}}},{content:" of Data objects.",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"add_row(data): Adds a single row (either a Data ",props:{style:{color:"#C9D1D9"}}},{content:"object ",props:{style:{color:"#79C0FF"}}},{content:"or",props:{style:{color:"#FF7B72"}}},{content:" a dictionary) to the DataFrame.",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"add_rows(data): Adds multiple rows (",props:{style:{color:"#C9D1D9"}}},{content:"list",props:{style:{color:"#79C0FF"}}},{content:" of Data objects ",props:{style:{color:"#C9D1D9"}}},{content:"or",props:{style:{color:"#FF7B72"}}},{content:" dictionaries) to the DataFrame.",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"Usage Example",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"python",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Create a DataFrame",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"df ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" DataFrame([Data(",props:{style:{color:"#C9D1D9"}}},{content:"data",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"{",props:{style:{color:"#C9D1D9"}}},{content:'"name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"John"',props:{style:{color:"#A5D6FF"}}},{content:"}), Data(",props:{style:{color:"#C9D1D9"}}},{content:"data",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"{",props:{style:{color:"#C9D1D9"}}},{content:'"name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Jane"',props:{style:{color:"#A5D6FF"}}},{content:"})])",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Add a new row",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"df ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" df.add_row({",props:{style:{color:"#C9D1D9"}}},{content:'"name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Alice"',props:{style:{color:"#A5D6FF"}}},{content:"})",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Convert back to a list of Data objects",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"data_list ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" df.to_data_list()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Use pandas functionality",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"filtered_df ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" df[df[",props:{style:{color:"#C9D1D9"}}},{content:'"name"',props:{style:{color:"#A5D6FF"}}},{content:"].str.startswith(",props:{style:{color:"#C9D1D9"}}},{content:'"J"',props:{style:{color:"#A5D6FF"}}},{content:")]",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(t.p,{children:"To use DataFrame objects in a component input,use the DataFrameInput input type."}),"\n",(0,n.jsx)(i.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"DataFrameInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"dataframe_input"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"DataFrame Input"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Input for DataFrame objects."',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"tool_mode",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"True",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"),",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]})]})}function F(o={}){const{wrapper:t}={...(0,s.R)(),...o.components};return t?(0,n.jsx)(t,{...o,children:(0,n.jsx)(D,{...o})}):D(o)}function h(o,t){throw new Error("Expected "+(t?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]); \ No newline at end of file diff --git a/assets/js/3b356402.829817ae.js b/assets/js/3b356402.829817ae.js deleted file mode 100644 index 45e4d707a8..0000000000 --- a/assets/js/3b356402.829817ae.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[8304],{4603:(e,t,n)=>{n.r(t),n.d(t,{CH:()=>d,assets:()=>l,chCodeConfig:()=>h,contentTitle:()=>s,default:()=>g,frontMatter:()=>c,metadata:()=>a,toc:()=>u});var o=n(74848),r=n(28453),i=n(24754);const c={title:"Security best practices",slug:"/configuration-security-best-practices"},s=void 0,a={id:"Configuration/configuration-security-best-practices",title:"Security best practices",description:"This guide outlines security best practices for deploying and managing Langflow.",source:"@site/docs/Configuration/configuration-security-best-practices.md",sourceDirName:"Configuration",slug:"/configuration-security-best-practices",permalink:"/configuration-security-best-practices",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{title:"Security best practices",slug:"/configuration-security-best-practices"},sidebar:"docs",previous:{title:"Langflow objects",permalink:"/configuration-objects"},next:{title:"Components overview",permalink:"/components-overview"}},l={},d={annotations:i.hk,Code:i.Cy},h={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},u=[{value:"Secret key protection",id:"secret-key-protection",level:2},{value:"API keys and credentials",id:"api-keys-and-credentials",level:2},{value:"Database file protection",id:"database-file-protection",level:2}];function p(e){const t={code:"code",h2:"h2",li:"li",p:"p",ul:"ul",...(0,r.R)(),...e.components};return d||f("CH",!1),d.Code||f("CH.Code",!0),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("style",{dangerouslySetInnerHTML:{__html:'[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; }'}}),"\n",(0,o.jsx)(t.p,{children:"This guide outlines security best practices for deploying and managing Langflow."}),"\n",(0,o.jsx)(t.h2,{id:"secret-key-protection",children:"Secret key protection"}),"\n",(0,o.jsx)(t.p,{children:"The secret key is critical for encrypting sensitive data in Langflow. Follow these guidelines:"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"Always use a custom secret key in production:"}),"\n",(0,o.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW_SECRET_KEY",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"your-secure-secret-key",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"Store the secret key securely:"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:"Use environment variables or secure secret management systems."}),"\n",(0,o.jsx)(t.li,{children:"Never commit the secret key to version control."}),"\n",(0,o.jsx)(t.li,{children:"Regularly rotate the secret key."}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"Use the default secret key locations:"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["macOS: ",(0,o.jsx)(t.code,{children:"~/Library/Caches/langflow/secret_key"})]}),"\n",(0,o.jsxs)(t.li,{children:["Linux: ",(0,o.jsx)(t.code,{children:"~/.cache/langflow/secret_key"})]}),"\n",(0,o.jsxs)(t.li,{children:["Windows: ",(0,o.jsx)(t.code,{children:"%USERPROFILE%\\AppData\\Local\\langflow\\secret_key"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"api-keys-and-credentials",children:"API keys and credentials"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:"Store API keys and credentials as encrypted global variables."}),"\n",(0,o.jsx)(t.li,{children:"Use the Credential type for sensitive information."}),"\n",(0,o.jsx)(t.li,{children:"Implement proper access controls for users who can view/edit credentials."}),"\n",(0,o.jsx)(t.li,{children:"Regularly audit and rotate API keys."}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"database-file-protection",children:"Database file protection"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"Store the database in a secure location:"}),"\n",(0,o.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW_SAVE_DB_IN_CONFIG_DIR",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"true",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"LANGFLOW_CONFIG_DIR",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"/secure/path/to/config",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"Use the default database locations:"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["macOS/Linux: ",(0,o.jsx)(t.code,{children:"PYTHON_LOCATION/site-packages/langflow/langflow.db"})]}),"\n",(0,o.jsxs)(t.li,{children:["Windows: ",(0,o.jsx)(t.code,{children:"PYTHON_LOCATION\\Lib\\site-packages\\langflow\\langflow.db"})]}),"\n"]}),"\n"]}),"\n"]})]})}function g(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(p,{...e})}):p(e)}function f(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]); \ No newline at end of file diff --git a/assets/js/3b356402.bfa9e4ca.js b/assets/js/3b356402.bfa9e4ca.js new file mode 100644 index 0000000000..04ec5797e9 --- /dev/null +++ b/assets/js/3b356402.bfa9e4ca.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[8304],{4603:(e,t,n)=>{n.r(t),n.d(t,{CH:()=>d,assets:()=>l,chCodeConfig:()=>h,contentTitle:()=>s,default:()=>g,frontMatter:()=>i,metadata:()=>a,toc:()=>u});var o=n(74848),r=n(28453),c=n(24754);const i={title:"Security best practices",slug:"/configuration-security-best-practices"},s=void 0,a={id:"Configuration/configuration-security-best-practices",title:"Security best practices",description:"This guide outlines security best practices for deploying and managing Langflow.",source:"@site/docs/Configuration/configuration-security-best-practices.md",sourceDirName:"Configuration",slug:"/configuration-security-best-practices",permalink:"/configuration-security-best-practices",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{title:"Security best practices",slug:"/configuration-security-best-practices"},sidebar:"docs",previous:{title:"Langflow objects",permalink:"/configuration-objects"},next:{title:"Dockers",permalink:"/Deployment/deployment-docker"}},l={},d={annotations:c.hk,Code:c.Cy},h={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},u=[{value:"Secret key protection",id:"secret-key-protection",level:2},{value:"API keys and credentials",id:"api-keys-and-credentials",level:2},{value:"Database file protection",id:"database-file-protection",level:2}];function p(e){const t={code:"code",h2:"h2",li:"li",p:"p",ul:"ul",...(0,r.R)(),...e.components};return d||f("CH",!1),d.Code||f("CH.Code",!0),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("style",{dangerouslySetInnerHTML:{__html:'[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; }'}}),"\n",(0,o.jsx)(t.p,{children:"This guide outlines security best practices for deploying and managing Langflow."}),"\n",(0,o.jsx)(t.h2,{id:"secret-key-protection",children:"Secret key protection"}),"\n",(0,o.jsx)(t.p,{children:"The secret key is critical for encrypting sensitive data in Langflow. Follow these guidelines:"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"Always use a custom secret key in production:"}),"\n",(0,o.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW_SECRET_KEY",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"your-secure-secret-key",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"Store the secret key securely:"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:"Use environment variables or secure secret management systems."}),"\n",(0,o.jsx)(t.li,{children:"Never commit the secret key to version control."}),"\n",(0,o.jsx)(t.li,{children:"Regularly rotate the secret key."}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"Use the default secret key locations:"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["macOS: ",(0,o.jsx)(t.code,{children:"~/Library/Caches/langflow/secret_key"})]}),"\n",(0,o.jsxs)(t.li,{children:["Linux: ",(0,o.jsx)(t.code,{children:"~/.cache/langflow/secret_key"})]}),"\n",(0,o.jsxs)(t.li,{children:["Windows: ",(0,o.jsx)(t.code,{children:"%USERPROFILE%\\AppData\\Local\\langflow\\secret_key"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"api-keys-and-credentials",children:"API keys and credentials"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:"Store API keys and credentials as encrypted global variables."}),"\n",(0,o.jsx)(t.li,{children:"Use the Credential type for sensitive information."}),"\n",(0,o.jsx)(t.li,{children:"Implement proper access controls for users who can view/edit credentials."}),"\n",(0,o.jsx)(t.li,{children:"Regularly audit and rotate API keys."}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"database-file-protection",children:"Database file protection"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"Store the database in a secure location:"}),"\n",(0,o.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW_SAVE_DB_IN_CONFIG_DIR",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"true",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"LANGFLOW_CONFIG_DIR",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"/secure/path/to/config",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"Use the default database locations:"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["macOS/Linux: ",(0,o.jsx)(t.code,{children:"PYTHON_LOCATION/site-packages/langflow/langflow.db"})]}),"\n",(0,o.jsxs)(t.li,{children:["Windows: ",(0,o.jsx)(t.code,{children:"PYTHON_LOCATION\\Lib\\site-packages\\langflow\\langflow.db"})]}),"\n"]}),"\n"]}),"\n"]})]})}function g(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(p,{...e})}):p(e)}function f(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]); \ No newline at end of file diff --git a/assets/js/dc7b1ef3.7029382d.js b/assets/js/dc7b1ef3.7029382d.js new file mode 100644 index 0000000000..7aa9689e03 --- /dev/null +++ b/assets/js/dc7b1ef3.7029382d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[868],{61427:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>h,frontMatter:()=>l,metadata:()=>r,toc:()=>t});var s=o(74848),c=o(28453);const l={title:"Dockers",lug:"/deployment-docker"},i=void 0,r={id:"Deployment/deployment-docker",title:"Dockers",description:"This guide will help you get LangFlow up and running using Docker and Docker Compose.",source:"@site/docs/Deployment/deployment-docker.md",sourceDirName:"Deployment",slug:"/Deployment/deployment-docker",permalink:"/Deployment/deployment-docker",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{title:"Dockers",lug:"/deployment-docker"},sidebar:"docs",previous:{title:"Security best practices",permalink:"/configuration-security-best-practices"},next:{title:"GCP",permalink:"/deployment-gcp"}},d={},t=[{value:"Prerequisites",id:"856bb2d98156402bbd1980365b98110c",level:2},{value:"Docker",id:"55b5d304f2294e47b0dcd3e069cf5e67",level:2},{value:"Clone repo and build Docker container",id:"ba89773aa8b8425b985bfe7ba91c35cc",level:3},{value:"Docker Compose configuration",id:"02226209cad24185a6ec5b69bd820d0f",level:3},{value:"LangFlow service",id:"d749848451ea43bd86f6f096dc77e6e6",level:3},{value:"PostgreSQL service",id:"121140decbfe4997b12213bdd2c4da7e",level:3},{value:"Switch to a specific LangFlow version",id:"2b3e191ea48f4feab89242433cf012d5",level:3}];function a(e){const n={code:"code",h2:"h2",h3:"h3",hr:"hr",li:"li",ol:"ol",p:"p",ul:"ul",...(0,c.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:"This guide will help you get LangFlow up and running using Docker and Docker Compose."}),"\n",(0,s.jsx)(n.h2,{id:"856bb2d98156402bbd1980365b98110c",children:"Prerequisites"}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Docker"}),"\n",(0,s.jsx)(n.li,{children:"Docker Compose"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"55b5d304f2294e47b0dcd3e069cf5e67",children:"Docker"}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"ba89773aa8b8425b985bfe7ba91c35cc",children:"Clone repo and build Docker container"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Clone the LangFlow repository:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"git clone https://github.com/langflow-ai/langflow.git"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Navigate to the\xa0",(0,s.jsx)(n.code,{children:"docker_example"}),"\xa0directory:"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"cd langflow/docker_example"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Run the Docker Compose file:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"docker compose up"})}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["LangFlow will now be accessible at ",(0,s.jsx)(n.code,{children:"http://localhost:7860/"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"02226209cad24185a6ec5b69bd820d0f",children:"Docker Compose configuration"}),"\n",(0,s.jsxs)(n.p,{children:["The Docker Compose configuration spins up two services:\xa0",(0,s.jsx)(n.code,{children:"langflow"}),"\xa0and\xa0",(0,s.jsx)(n.code,{children:"postgres"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"d749848451ea43bd86f6f096dc77e6e6",children:"LangFlow service"}),"\n",(0,s.jsxs)(n.p,{children:["The\xa0",(0,s.jsx)(n.code,{children:"langflow"}),"\xa0service uses the\xa0",(0,s.jsx)(n.code,{children:"langflowai/langflow:latest"}),"\xa0Docker image and exposes port 7860. It depends on the\xa0",(0,s.jsx)(n.code,{children:"postgres"}),"\xa0service."]}),"\n",(0,s.jsx)(n.p,{children:"Environment variables:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"LANGFLOW_DATABASE_URL"}),": The connection string for the PostgreSQL database."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"LANGFLOW_CONFIG_DIR"}),": The directory where LangFlow stores logs, file storage, monitor data, and secret keys."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Volumes:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"langflow-data"}),": This volume is mapped to\xa0",(0,s.jsx)(n.code,{children:"/var/lib/langflow"}),"\xa0in the container."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"121140decbfe4997b12213bdd2c4da7e",children:"PostgreSQL service"}),"\n",(0,s.jsxs)(n.p,{children:["The\xa0",(0,s.jsx)(n.code,{children:"postgres"}),"\xa0service uses the\xa0",(0,s.jsx)(n.code,{children:"postgres:16"}),"\xa0Docker image and exposes port 5432."]}),"\n",(0,s.jsx)(n.p,{children:"Environment variables:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"POSTGRES_USER"}),": The username for the PostgreSQL database."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"POSTGRES_PASSWORD"}),": The password for the PostgreSQL database."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"POSTGRES_DB"}),": The name of the PostgreSQL database."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Volumes:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"langflow-postgres"}),": This volume is mapped to\xa0",(0,s.jsx)(n.code,{children:"/var/lib/postgresql/data"}),"\xa0in the container."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"2b3e191ea48f4feab89242433cf012d5",children:"Switch to a specific LangFlow version"}),"\n",(0,s.jsxs)(n.p,{children:["If you want to use a specific version of LangFlow, you can modify the\xa0",(0,s.jsx)(n.code,{children:"image"}),"\xa0field under the\xa0",(0,s.jsx)(n.code,{children:"langflow"}),"\xa0service in the Docker Compose file. For example, to use version 1.0-alpha, change\xa0",(0,s.jsx)(n.code,{children:"langflowai/langflow:latest"}),"\xa0to\xa0",(0,s.jsx)(n.code,{children:"langflowai/langflow:1.0-alpha"}),"."]})]})}function h(e={}){const{wrapper:n}={...(0,c.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},28453:(e,n,o)=>{o.d(n,{R:()=>i,x:()=>r});var s=o(96540);const c={},l=s.createContext(c);function i(e){const n=s.useContext(l);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:i(e.components),s.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/dc7b1ef3.99a240a5.js b/assets/js/dc7b1ef3.99a240a5.js deleted file mode 100644 index bd1d4747c6..0000000000 --- a/assets/js/dc7b1ef3.99a240a5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[868],{61427:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>h,frontMatter:()=>c,metadata:()=>i,toc:()=>t});var s=o(74848),l=o(28453);const c={title:"Dockers",lug:"/deployment-docker"},r=void 0,i={id:"Deployment/deployment-docker",title:"Dockers",description:"This guide will help you get LangFlow up and running using Docker and Docker Compose.",source:"@site/docs/Deployment/deployment-docker.md",sourceDirName:"Deployment",slug:"/Deployment/deployment-docker",permalink:"/Deployment/deployment-docker",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{title:"Dockers",lug:"/deployment-docker"},sidebar:"docs",previous:{title:"Vector stores",permalink:"/components-vector-stores"},next:{title:"GCP",permalink:"/deployment-gcp"}},d={},t=[{value:"Prerequisites",id:"856bb2d98156402bbd1980365b98110c",level:2},{value:"Docker",id:"55b5d304f2294e47b0dcd3e069cf5e67",level:2},{value:"Clone repo and build Docker container",id:"ba89773aa8b8425b985bfe7ba91c35cc",level:3},{value:"Docker Compose configuration",id:"02226209cad24185a6ec5b69bd820d0f",level:3},{value:"LangFlow service",id:"d749848451ea43bd86f6f096dc77e6e6",level:3},{value:"PostgreSQL service",id:"121140decbfe4997b12213bdd2c4da7e",level:3},{value:"Switch to a specific LangFlow version",id:"2b3e191ea48f4feab89242433cf012d5",level:3}];function a(e){const n={code:"code",h2:"h2",h3:"h3",hr:"hr",li:"li",ol:"ol",p:"p",ul:"ul",...(0,l.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:"This guide will help you get LangFlow up and running using Docker and Docker Compose."}),"\n",(0,s.jsx)(n.h2,{id:"856bb2d98156402bbd1980365b98110c",children:"Prerequisites"}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Docker"}),"\n",(0,s.jsx)(n.li,{children:"Docker Compose"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"55b5d304f2294e47b0dcd3e069cf5e67",children:"Docker"}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h3,{id:"ba89773aa8b8425b985bfe7ba91c35cc",children:"Clone repo and build Docker container"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Clone the LangFlow repository:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"git clone https://github.com/langflow-ai/langflow.git"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Navigate to the\xa0",(0,s.jsx)(n.code,{children:"docker_example"}),"\xa0directory:"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"cd langflow/docker_example"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Run the Docker Compose file:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.code,{children:"docker compose up"})}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["LangFlow will now be accessible at ",(0,s.jsx)(n.code,{children:"http://localhost:7860/"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"02226209cad24185a6ec5b69bd820d0f",children:"Docker Compose configuration"}),"\n",(0,s.jsxs)(n.p,{children:["The Docker Compose configuration spins up two services:\xa0",(0,s.jsx)(n.code,{children:"langflow"}),"\xa0and\xa0",(0,s.jsx)(n.code,{children:"postgres"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"d749848451ea43bd86f6f096dc77e6e6",children:"LangFlow service"}),"\n",(0,s.jsxs)(n.p,{children:["The\xa0",(0,s.jsx)(n.code,{children:"langflow"}),"\xa0service uses the\xa0",(0,s.jsx)(n.code,{children:"langflowai/langflow:latest"}),"\xa0Docker image and exposes port 7860. It depends on the\xa0",(0,s.jsx)(n.code,{children:"postgres"}),"\xa0service."]}),"\n",(0,s.jsx)(n.p,{children:"Environment variables:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"LANGFLOW_DATABASE_URL"}),": The connection string for the PostgreSQL database."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"LANGFLOW_CONFIG_DIR"}),": The directory where LangFlow stores logs, file storage, monitor data, and secret keys."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Volumes:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"langflow-data"}),": This volume is mapped to\xa0",(0,s.jsx)(n.code,{children:"/var/lib/langflow"}),"\xa0in the container."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"121140decbfe4997b12213bdd2c4da7e",children:"PostgreSQL service"}),"\n",(0,s.jsxs)(n.p,{children:["The\xa0",(0,s.jsx)(n.code,{children:"postgres"}),"\xa0service uses the\xa0",(0,s.jsx)(n.code,{children:"postgres:16"}),"\xa0Docker image and exposes port 5432."]}),"\n",(0,s.jsx)(n.p,{children:"Environment variables:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"POSTGRES_USER"}),": The username for the PostgreSQL database."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"POSTGRES_PASSWORD"}),": The password for the PostgreSQL database."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"POSTGRES_DB"}),": The name of the PostgreSQL database."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Volumes:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"langflow-postgres"}),": This volume is mapped to\xa0",(0,s.jsx)(n.code,{children:"/var/lib/postgresql/data"}),"\xa0in the container."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"2b3e191ea48f4feab89242433cf012d5",children:"Switch to a specific LangFlow version"}),"\n",(0,s.jsxs)(n.p,{children:["If you want to use a specific version of LangFlow, you can modify the\xa0",(0,s.jsx)(n.code,{children:"image"}),"\xa0field under the\xa0",(0,s.jsx)(n.code,{children:"langflow"}),"\xa0service in the Docker Compose file. For example, to use version 1.0-alpha, change\xa0",(0,s.jsx)(n.code,{children:"langflowai/langflow:latest"}),"\xa0to\xa0",(0,s.jsx)(n.code,{children:"langflowai/langflow:1.0-alpha"}),"."]})]})}function h(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},28453:(e,n,o)=>{o.d(n,{R:()=>r,x:()=>i});var s=o(96540);const l={},c=s.createContext(l);function r(e){const n=s.useContext(c);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:r(e.components),s.createElement(c.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.b66f0bb4.js b/assets/js/runtime~main.fd411554.js similarity index 97% rename from assets/js/runtime~main.b66f0bb4.js rename to assets/js/runtime~main.fd411554.js index 6310a60c7f..2484033407 100644 --- a/assets/js/runtime~main.b66f0bb4.js +++ b/assets/js/runtime~main.fd411554.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,c,d,f,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var c=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(c.exports,c,c.exports,r),c.loaded=!0,c.exports}r.m=b,r.c=t,e=[],r.O=(a,c,d,f)=>{if(!c){var b=1/0;for(i=0;i=f)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,f0&&e[i-1][2]>f;i--)e[i]=e[i-1];e[i]=[c,d,f]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,d){if(1&d&&(e=this(e)),8&d)return e;if("object"==typeof e&&e){if(4&d&&e.__esModule)return e;if(16&d&&"function"==typeof e.then)return e}var f=Object.create(null);r.r(f);var b={};a=a||[null,c({}),c([]),c(c)];for(var t=2&d&&e;"object"==typeof t&&!~a.indexOf(t);t=c(t))Object.getOwnPropertyNames(t).forEach((a=>b[a]=()=>e[a]));return b.default=()=>e,r.d(f,b),f},r.d=(e,a)=>{for(var c in a)r.o(a,c)&&!r.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,c)=>(r.f[c](e,a),a)),[])),r.u=e=>"assets/js/"+({51:"b7251463",145:"0be1d5fe",191:"c643a6d5",230:"bc63ae25",321:"6e1a9721",417:"93e16042",719:"459c52ca",768:"6d684b63",787:"672a0eba",800:"a4c0ff01",868:"dc7b1ef3",964:"05d835b4",1022:"8a61012d",1035:"24d32e91",1185:"c2de64b8",1227:"647965d5",1394:"8054effa",1488:"ac3cc3f5",1500:"1e9025f7",1563:"3ef76b56",1567:"22dd74f7",1625:"92852ade",1690:"41a97a99",1845:"2ab0d4f5",1889:"3a8b8299",1917:"c3616f7f",1956:"fe6f9601",2073:"7b7db446",2097:"338a6f8e",2273:"e756fa26",2431:"c0d3c6ab",2624:"8ff68e6f",2657:"a3ab51d1",2777:"b3ba68b4",2818:"a9b73094",3040:"2148ae42",3110:"6a2beaac",3142:"ec64dfaf",3247:"bd7ab245",3327:"6aa941bb",3347:"b5257597",3391:"f66238ae",3576:"64045095",3694:"c2b1730c",3758:"a963b3cb",3859:"7679ca6e",3917:"c8dad5f1",3964:"829ff4d2",4028:"c2ebd62a",4046:"9ac856ad",4133:"5cf11f26",4429:"32cedcea",4633:"c563aec0",4645:"fef056e9",4778:"e189eece",4784:"438e4337",4841:"8298c1cb",4891:"ca67d85f",4930:"d2ad385b",4931:"a9b4f8aa",4954:"a71efd4a",4973:"2d2c4fcb",5138:"309383dc",5179:"41e3c105",5281:"a0511a5b",5284:"64ca91f1",5339:"9447891f",5425:"ee32130c",5467:"40d13080",5474:"d175aa8b",5475:"18f3809a",5513:"20d49d07",5514:"02955c09",5562:"20e9af62",5572:"873ebc27",5628:"a83bc7c0",5634:"9822a706",5673:"73af8c33",5716:"946d1cee",5718:"5ccf4833",5742:"aba21aa0",5772:"4e7126f8",5865:"e1766139",5866:"3b577cbb",5883:"61cfab8e",5923:"73d1a090",5979:"a3a1efc2",6003:"4d983c8e",6008:"445668ec",6053:"dfc50084",6080:"4d15791b",6147:"ab17fe15",6281:"c96ce3ed",6332:"873508e7",6350:"188ee668",6419:"96eb0e67",6445:"9fb9a766",6473:"4c5e977b",6559:"6f13807a",6682:"5a6d6120",6890:"8b85e1d0",6897:"57123a14",6920:"c817e236",6949:"b36bb719",7098:"a7bd4aaa",7108:"688feaef",7118:"4ce9199e",7165:"547df4a1",7211:"cacdc615",7338:"c39b795e",7408:"3ae94ad4",7453:"fdefa9a8",7462:"921b5fc1",7472:"744aaf8b",7507:"be76515e",7713:"3a82b27e",7892:"790349b7",7894:"0f44198a",8031:"25bf2d67",8034:"e98c4d08",8054:"85112c90",8064:"274fd934",8085:"cc44357e",8102:"019dbd1f",8188:"ecd67556",8196:"75a9e1e0",8208:"216e3ed7",8261:"474d53cd",8304:"3b356402",8356:"c6a5eaec",8401:"17896441",8504:"e6c6a4d2",8598:"44dfcf75",8661:"8f774222",8679:"3705a9c0",8921:"45476a69",8927:"ae68aa8b",8929:"172b3cfb",8953:"adef6868",9048:"a94703ab",9126:"ea3c040a",9141:"19136925",9306:"667d0790",9371:"991799c5",9455:"54175a6c",9461:"23d0e682",9465:"4600db1a",9476:"57c9a2b8",9479:"4e038a6a",9483:"7823fa72",9555:"dedd5914",9619:"29b8e27a",9642:"eae80ce0",9647:"5e95c892",9681:"5ff9f4db",9905:"43df3697"}[e]||e)+"."+{51:"e2535056",145:"c28d76e1",191:"5f273688",230:"04fbccf0",321:"eba3ad09",417:"099ab03e",719:"45a52e63",768:"65469bf5",787:"7486d7e0",800:"9022588c",868:"99a240a5",900:"f83a9a5d",964:"3893612e",1022:"11c801ab",1035:"1a6c2f56",1185:"9748a9a7",1227:"3ac0d35f",1394:"0f8a43e8",1488:"517c076b",1500:"6ea32b36",1563:"adb918da",1567:"b1a12df5",1625:"14cdddbe",1690:"e0babedf",1845:"05da85d7",1889:"c8daf941",1917:"3b41a803",1956:"ba4da060",2073:"b3f8d739",2097:"89b83e01",2237:"254217db",2273:"9499374f",2431:"1d5be667",2624:"624d5e00",2657:"633853d1",2777:"50ca02a1",2818:"807cd6bf",3040:"1a81b288",3110:"7f2e1e33",3142:"667e00ab",3247:"52c928ff",3327:"f5d2efe5",3347:"a02e271f",3391:"293f6766",3477:"5c645be2",3576:"da9c580a",3694:"af3527cf",3758:"8dca7900",3859:"51e75ae4",3917:"7ecaa722",3964:"de823457",4028:"93c13414",4046:"235f4b88",4133:"2ddee708",4429:"af4e7d94",4633:"07af2369",4645:"e8d61841",4778:"88b91dab",4784:"942b7b69",4841:"ce23a523",4848:"03d25b14",4891:"b33e29f2",4930:"8f6a9d08",4931:"4dc78d62",4954:"e5b1d897",4973:"64831914",5138:"8e4ae7ac",5179:"64e4c1f0",5281:"e84e8032",5284:"03bad459",5339:"a7de1f63",5425:"212e3898",5467:"1e54ecae",5474:"d264c1d9",5475:"69bc44d4",5513:"5dafbef0",5514:"3b4a4736",5562:"74f6b698",5572:"7267881d",5628:"18ab2693",5634:"a293d2bc",5673:"3b49b5ef",5716:"39697a86",5718:"f49e838a",5742:"60b1d5b2",5772:"1fcd9acf",5865:"7ce0748f",5866:"82b75810",5883:"42922af9",5923:"929d7e31",5979:"16e1357e",6003:"61570841",6008:"18e84446",6053:"da80e031",6080:"cbe50574",6147:"52d854f1",6281:"33a3c771",6332:"f2a4f3d5",6350:"620eb4c9",6419:"219b4ba9",6445:"48996318",6473:"f971cbc2",6559:"d1058175",6682:"44a73ed9",6890:"cae0a39e",6897:"55881889",6920:"02274d7b",6949:"f88bd12b",7098:"7a425922",7108:"685fe17f",7118:"9c0be6eb",7165:"3ae4f8e5",7211:"46f368a7",7338:"91a8eb4a",7408:"b27a606e",7453:"215c4517",7462:"aac4e8b5",7472:"ce946c2a",7507:"cd4f7aad",7713:"cb6d0f3d",7892:"f5e88d70",7894:"5e157eb4",8031:"859e5a93",8034:"fd64b0bf",8054:"c26b8d02",8064:"c255462c",8085:"c3449534",8102:"d5229333",8188:"5e58698d",8196:"7af007ad",8208:"872c8aa4",8261:"03519322",8304:"829817ae",8356:"5f96129f",8401:"72b10a31",8504:"47593649",8598:"b07196a7",8661:"b3fd3474",8679:"b99c1633",8921:"a78561cd",8927:"f9b00ffe",8929:"1dad1f89",8953:"fc16c058",9048:"271808f7",9126:"5264c16a",9141:"11810afd",9148:"4445a8cc",9306:"0fcf6074",9371:"4b41f654",9455:"8209a5ab",9461:"4dcd55a4",9465:"5b30d038",9476:"d1729427",9479:"f58748d6",9483:"c57cc5af",9495:"b0827074",9555:"5269bca3",9619:"3d4e8dce",9642:"d5e034a8",9647:"7a7fae88",9681:"bb40890e",9905:"7d9e471a"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),d={},f="langflow-docs:",r.l=(e,a,c,b)=>{if(d[e])d[e].push(a);else{var t,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var f=d[e];if(delete d[e],t.parentNode&&t.parentNode.removeChild(t),f&&f.forEach((e=>e(c))),a)return a(c)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=u.bind(null,t.onerror),t.onload=u.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.p="/",r.gca=function(e){return e={17896441:"8401",19136925:"9141",64045095:"3576",b7251463:"51","0be1d5fe":"145",c643a6d5:"191",bc63ae25:"230","6e1a9721":"321","93e16042":"417","459c52ca":"719","6d684b63":"768","672a0eba":"787",a4c0ff01:"800",dc7b1ef3:"868","05d835b4":"964","8a61012d":"1022","24d32e91":"1035",c2de64b8:"1185","647965d5":"1227","8054effa":"1394",ac3cc3f5:"1488","1e9025f7":"1500","3ef76b56":"1563","22dd74f7":"1567","92852ade":"1625","41a97a99":"1690","2ab0d4f5":"1845","3a8b8299":"1889",c3616f7f:"1917",fe6f9601:"1956","7b7db446":"2073","338a6f8e":"2097",e756fa26:"2273",c0d3c6ab:"2431","8ff68e6f":"2624",a3ab51d1:"2657",b3ba68b4:"2777",a9b73094:"2818","2148ae42":"3040","6a2beaac":"3110",ec64dfaf:"3142",bd7ab245:"3247","6aa941bb":"3327",b5257597:"3347",f66238ae:"3391",c2b1730c:"3694",a963b3cb:"3758","7679ca6e":"3859",c8dad5f1:"3917","829ff4d2":"3964",c2ebd62a:"4028","9ac856ad":"4046","5cf11f26":"4133","32cedcea":"4429",c563aec0:"4633",fef056e9:"4645",e189eece:"4778","438e4337":"4784","8298c1cb":"4841",ca67d85f:"4891",d2ad385b:"4930",a9b4f8aa:"4931",a71efd4a:"4954","2d2c4fcb":"4973","309383dc":"5138","41e3c105":"5179",a0511a5b:"5281","64ca91f1":"5284","9447891f":"5339",ee32130c:"5425","40d13080":"5467",d175aa8b:"5474","18f3809a":"5475","20d49d07":"5513","02955c09":"5514","20e9af62":"5562","873ebc27":"5572",a83bc7c0:"5628","9822a706":"5634","73af8c33":"5673","946d1cee":"5716","5ccf4833":"5718",aba21aa0:"5742","4e7126f8":"5772",e1766139:"5865","3b577cbb":"5866","61cfab8e":"5883","73d1a090":"5923",a3a1efc2:"5979","4d983c8e":"6003","445668ec":"6008",dfc50084:"6053","4d15791b":"6080",ab17fe15:"6147",c96ce3ed:"6281","873508e7":"6332","188ee668":"6350","96eb0e67":"6419","9fb9a766":"6445","4c5e977b":"6473","6f13807a":"6559","5a6d6120":"6682","8b85e1d0":"6890","57123a14":"6897",c817e236:"6920",b36bb719:"6949",a7bd4aaa:"7098","688feaef":"7108","4ce9199e":"7118","547df4a1":"7165",cacdc615:"7211",c39b795e:"7338","3ae94ad4":"7408",fdefa9a8:"7453","921b5fc1":"7462","744aaf8b":"7472",be76515e:"7507","3a82b27e":"7713","790349b7":"7892","0f44198a":"7894","25bf2d67":"8031",e98c4d08:"8034","85112c90":"8054","274fd934":"8064",cc44357e:"8085","019dbd1f":"8102",ecd67556:"8188","75a9e1e0":"8196","216e3ed7":"8208","474d53cd":"8261","3b356402":"8304",c6a5eaec:"8356",e6c6a4d2:"8504","44dfcf75":"8598","8f774222":"8661","3705a9c0":"8679","45476a69":"8921",ae68aa8b:"8927","172b3cfb":"8929",adef6868:"8953",a94703ab:"9048",ea3c040a:"9126","667d0790":"9306","991799c5":"9371","54175a6c":"9455","23d0e682":"9461","4600db1a":"9465","57c9a2b8":"9476","4e038a6a":"9479","7823fa72":"9483",dedd5914:"9555","29b8e27a":"9619",eae80ce0:"9642","5e95c892":"9647","5ff9f4db":"9681","43df3697":"9905"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(a,c)=>{var d=r.o(e,a)?e[a]:void 0;if(0!==d)if(d)c.push(d[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var f=new Promise(((c,f)=>d=e[a]=[c,f]));c.push(d[2]=f);var b=r.p+r.u(a),t=new Error;r.l(b,(c=>{if(r.o(e,a)&&(0!==(d=e[a])&&(e[a]=void 0),d)){var f=c&&("load"===c.type?"missing":c.type),b=c&&c.target&&c.target.src;t.message="Loading chunk "+a+" failed.\n("+f+": "+b+")",t.name="ChunkLoadError",t.type=f,t.request=b,d[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,c)=>{var d,f,b=c[0],t=c[1],o=c[2],n=0;if(b.some((a=>0!==e[a]))){for(d in t)r.o(t,d)&&(r.m[d]=t[d]);if(o)var i=o(r)}for(a&&a(c);n{"use strict";var e,a,c,d,f,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var c=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(c.exports,c,c.exports,r),c.loaded=!0,c.exports}r.m=b,r.c=t,e=[],r.O=(a,c,d,f)=>{if(!c){var b=1/0;for(i=0;i=f)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,f0&&e[i-1][2]>f;i--)e[i]=e[i-1];e[i]=[c,d,f]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,d){if(1&d&&(e=this(e)),8&d)return e;if("object"==typeof e&&e){if(4&d&&e.__esModule)return e;if(16&d&&"function"==typeof e.then)return e}var f=Object.create(null);r.r(f);var b={};a=a||[null,c({}),c([]),c(c)];for(var t=2&d&&e;"object"==typeof t&&!~a.indexOf(t);t=c(t))Object.getOwnPropertyNames(t).forEach((a=>b[a]=()=>e[a]));return b.default=()=>e,r.d(f,b),f},r.d=(e,a)=>{for(var c in a)r.o(a,c)&&!r.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,c)=>(r.f[c](e,a),a)),[])),r.u=e=>"assets/js/"+({51:"b7251463",145:"0be1d5fe",191:"c643a6d5",230:"bc63ae25",321:"6e1a9721",417:"93e16042",719:"459c52ca",768:"6d684b63",787:"672a0eba",800:"a4c0ff01",868:"dc7b1ef3",964:"05d835b4",1022:"8a61012d",1035:"24d32e91",1185:"c2de64b8",1227:"647965d5",1394:"8054effa",1488:"ac3cc3f5",1500:"1e9025f7",1563:"3ef76b56",1567:"22dd74f7",1625:"92852ade",1690:"41a97a99",1845:"2ab0d4f5",1889:"3a8b8299",1917:"c3616f7f",1956:"fe6f9601",2073:"7b7db446",2097:"338a6f8e",2273:"e756fa26",2431:"c0d3c6ab",2624:"8ff68e6f",2657:"a3ab51d1",2777:"b3ba68b4",2818:"a9b73094",3040:"2148ae42",3110:"6a2beaac",3142:"ec64dfaf",3247:"bd7ab245",3327:"6aa941bb",3347:"b5257597",3391:"f66238ae",3576:"64045095",3694:"c2b1730c",3758:"a963b3cb",3859:"7679ca6e",3917:"c8dad5f1",3964:"829ff4d2",4028:"c2ebd62a",4046:"9ac856ad",4133:"5cf11f26",4429:"32cedcea",4633:"c563aec0",4645:"fef056e9",4778:"e189eece",4784:"438e4337",4841:"8298c1cb",4891:"ca67d85f",4930:"d2ad385b",4931:"a9b4f8aa",4954:"a71efd4a",4973:"2d2c4fcb",5138:"309383dc",5179:"41e3c105",5281:"a0511a5b",5284:"64ca91f1",5339:"9447891f",5425:"ee32130c",5467:"40d13080",5474:"d175aa8b",5475:"18f3809a",5513:"20d49d07",5514:"02955c09",5562:"20e9af62",5572:"873ebc27",5628:"a83bc7c0",5634:"9822a706",5673:"73af8c33",5716:"946d1cee",5718:"5ccf4833",5742:"aba21aa0",5772:"4e7126f8",5865:"e1766139",5866:"3b577cbb",5883:"61cfab8e",5923:"73d1a090",5979:"a3a1efc2",6003:"4d983c8e",6008:"445668ec",6053:"dfc50084",6080:"4d15791b",6147:"ab17fe15",6281:"c96ce3ed",6332:"873508e7",6350:"188ee668",6419:"96eb0e67",6445:"9fb9a766",6473:"4c5e977b",6559:"6f13807a",6682:"5a6d6120",6890:"8b85e1d0",6897:"57123a14",6920:"c817e236",6949:"b36bb719",7098:"a7bd4aaa",7108:"688feaef",7118:"4ce9199e",7165:"547df4a1",7211:"cacdc615",7338:"c39b795e",7408:"3ae94ad4",7453:"fdefa9a8",7462:"921b5fc1",7472:"744aaf8b",7507:"be76515e",7713:"3a82b27e",7892:"790349b7",7894:"0f44198a",8031:"25bf2d67",8034:"e98c4d08",8054:"85112c90",8064:"274fd934",8085:"cc44357e",8102:"019dbd1f",8188:"ecd67556",8196:"75a9e1e0",8208:"216e3ed7",8261:"474d53cd",8304:"3b356402",8356:"c6a5eaec",8401:"17896441",8504:"e6c6a4d2",8598:"44dfcf75",8661:"8f774222",8679:"3705a9c0",8921:"45476a69",8927:"ae68aa8b",8929:"172b3cfb",8953:"adef6868",9048:"a94703ab",9126:"ea3c040a",9141:"19136925",9306:"667d0790",9371:"991799c5",9455:"54175a6c",9461:"23d0e682",9465:"4600db1a",9476:"57c9a2b8",9479:"4e038a6a",9483:"7823fa72",9555:"dedd5914",9619:"29b8e27a",9642:"eae80ce0",9647:"5e95c892",9681:"5ff9f4db",9905:"43df3697"}[e]||e)+"."+{51:"e2535056",145:"c28d76e1",191:"5f273688",230:"04fbccf0",321:"eba3ad09",417:"099ab03e",719:"45a52e63",768:"65469bf5",787:"7486d7e0",800:"9022588c",868:"7029382d",900:"f83a9a5d",964:"3893612e",1022:"11c801ab",1035:"1a6c2f56",1185:"9748a9a7",1227:"3ac0d35f",1394:"0f8a43e8",1488:"517c076b",1500:"6ea32b36",1563:"adb918da",1567:"dbf3aad5",1625:"14cdddbe",1690:"e0babedf",1845:"05da85d7",1889:"9ec27c3d",1917:"3b41a803",1956:"ba4da060",2073:"b3f8d739",2097:"89b83e01",2237:"254217db",2273:"9499374f",2431:"1d5be667",2624:"624d5e00",2657:"633853d1",2777:"50ca02a1",2818:"807cd6bf",3040:"1a81b288",3110:"7f2e1e33",3142:"667e00ab",3247:"52c928ff",3327:"f5d2efe5",3347:"a02e271f",3391:"293f6766",3477:"5c645be2",3576:"da9c580a",3694:"af3527cf",3758:"8dca7900",3859:"51e75ae4",3917:"7ecaa722",3964:"de823457",4028:"93c13414",4046:"235f4b88",4133:"2ddee708",4429:"af4e7d94",4633:"07af2369",4645:"e8d61841",4778:"88b91dab",4784:"942b7b69",4841:"ce23a523",4848:"03d25b14",4891:"b33e29f2",4930:"8f6a9d08",4931:"4dc78d62",4954:"e5b1d897",4973:"64831914",5138:"8e4ae7ac",5179:"64e4c1f0",5281:"e84e8032",5284:"03bad459",5339:"a7de1f63",5425:"212e3898",5467:"1e54ecae",5474:"d264c1d9",5475:"69bc44d4",5513:"5dafbef0",5514:"3b4a4736",5562:"74f6b698",5572:"7267881d",5628:"18ab2693",5634:"a293d2bc",5673:"3b49b5ef",5716:"39697a86",5718:"f49e838a",5742:"60b1d5b2",5772:"1fcd9acf",5865:"7ce0748f",5866:"82b75810",5883:"42922af9",5923:"929d7e31",5979:"16e1357e",6003:"61570841",6008:"18e84446",6053:"da80e031",6080:"cbe50574",6147:"52d854f1",6281:"33a3c771",6332:"f2a4f3d5",6350:"620eb4c9",6419:"219b4ba9",6445:"48996318",6473:"f971cbc2",6559:"d1058175",6682:"44a73ed9",6890:"cae0a39e",6897:"55881889",6920:"02274d7b",6949:"f88bd12b",7098:"7a425922",7108:"685fe17f",7118:"9c0be6eb",7165:"3ae4f8e5",7211:"46f368a7",7338:"91a8eb4a",7408:"b27a606e",7453:"215c4517",7462:"aac4e8b5",7472:"ce946c2a",7507:"cd4f7aad",7713:"cb6d0f3d",7892:"f5e88d70",7894:"5e157eb4",8031:"859e5a93",8034:"fd64b0bf",8054:"c26b8d02",8064:"c255462c",8085:"c3449534",8102:"d5229333",8188:"5e58698d",8196:"7af007ad",8208:"872c8aa4",8261:"03519322",8304:"bfa9e4ca",8356:"5f96129f",8401:"72b10a31",8504:"47593649",8598:"b07196a7",8661:"b3fd3474",8679:"b99c1633",8921:"a78561cd",8927:"f9b00ffe",8929:"1dad1f89",8953:"fc16c058",9048:"271808f7",9126:"5264c16a",9141:"11810afd",9148:"4445a8cc",9306:"0fcf6074",9371:"4b41f654",9455:"8209a5ab",9461:"4dcd55a4",9465:"5b30d038",9476:"d1729427",9479:"f58748d6",9483:"c57cc5af",9495:"b0827074",9555:"5269bca3",9619:"3d4e8dce",9642:"d5e034a8",9647:"7a7fae88",9681:"bb40890e",9905:"7d9e471a"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),d={},f="langflow-docs:",r.l=(e,a,c,b)=>{if(d[e])d[e].push(a);else{var t,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var f=d[e];if(delete d[e],t.parentNode&&t.parentNode.removeChild(t),f&&f.forEach((e=>e(c))),a)return a(c)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=u.bind(null,t.onerror),t.onload=u.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.p="/",r.gca=function(e){return e={17896441:"8401",19136925:"9141",64045095:"3576",b7251463:"51","0be1d5fe":"145",c643a6d5:"191",bc63ae25:"230","6e1a9721":"321","93e16042":"417","459c52ca":"719","6d684b63":"768","672a0eba":"787",a4c0ff01:"800",dc7b1ef3:"868","05d835b4":"964","8a61012d":"1022","24d32e91":"1035",c2de64b8:"1185","647965d5":"1227","8054effa":"1394",ac3cc3f5:"1488","1e9025f7":"1500","3ef76b56":"1563","22dd74f7":"1567","92852ade":"1625","41a97a99":"1690","2ab0d4f5":"1845","3a8b8299":"1889",c3616f7f:"1917",fe6f9601:"1956","7b7db446":"2073","338a6f8e":"2097",e756fa26:"2273",c0d3c6ab:"2431","8ff68e6f":"2624",a3ab51d1:"2657",b3ba68b4:"2777",a9b73094:"2818","2148ae42":"3040","6a2beaac":"3110",ec64dfaf:"3142",bd7ab245:"3247","6aa941bb":"3327",b5257597:"3347",f66238ae:"3391",c2b1730c:"3694",a963b3cb:"3758","7679ca6e":"3859",c8dad5f1:"3917","829ff4d2":"3964",c2ebd62a:"4028","9ac856ad":"4046","5cf11f26":"4133","32cedcea":"4429",c563aec0:"4633",fef056e9:"4645",e189eece:"4778","438e4337":"4784","8298c1cb":"4841",ca67d85f:"4891",d2ad385b:"4930",a9b4f8aa:"4931",a71efd4a:"4954","2d2c4fcb":"4973","309383dc":"5138","41e3c105":"5179",a0511a5b:"5281","64ca91f1":"5284","9447891f":"5339",ee32130c:"5425","40d13080":"5467",d175aa8b:"5474","18f3809a":"5475","20d49d07":"5513","02955c09":"5514","20e9af62":"5562","873ebc27":"5572",a83bc7c0:"5628","9822a706":"5634","73af8c33":"5673","946d1cee":"5716","5ccf4833":"5718",aba21aa0:"5742","4e7126f8":"5772",e1766139:"5865","3b577cbb":"5866","61cfab8e":"5883","73d1a090":"5923",a3a1efc2:"5979","4d983c8e":"6003","445668ec":"6008",dfc50084:"6053","4d15791b":"6080",ab17fe15:"6147",c96ce3ed:"6281","873508e7":"6332","188ee668":"6350","96eb0e67":"6419","9fb9a766":"6445","4c5e977b":"6473","6f13807a":"6559","5a6d6120":"6682","8b85e1d0":"6890","57123a14":"6897",c817e236:"6920",b36bb719:"6949",a7bd4aaa:"7098","688feaef":"7108","4ce9199e":"7118","547df4a1":"7165",cacdc615:"7211",c39b795e:"7338","3ae94ad4":"7408",fdefa9a8:"7453","921b5fc1":"7462","744aaf8b":"7472",be76515e:"7507","3a82b27e":"7713","790349b7":"7892","0f44198a":"7894","25bf2d67":"8031",e98c4d08:"8034","85112c90":"8054","274fd934":"8064",cc44357e:"8085","019dbd1f":"8102",ecd67556:"8188","75a9e1e0":"8196","216e3ed7":"8208","474d53cd":"8261","3b356402":"8304",c6a5eaec:"8356",e6c6a4d2:"8504","44dfcf75":"8598","8f774222":"8661","3705a9c0":"8679","45476a69":"8921",ae68aa8b:"8927","172b3cfb":"8929",adef6868:"8953",a94703ab:"9048",ea3c040a:"9126","667d0790":"9306","991799c5":"9371","54175a6c":"9455","23d0e682":"9461","4600db1a":"9465","57c9a2b8":"9476","4e038a6a":"9479","7823fa72":"9483",dedd5914:"9555","29b8e27a":"9619",eae80ce0:"9642","5e95c892":"9647","5ff9f4db":"9681","43df3697":"9905"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(a,c)=>{var d=r.o(e,a)?e[a]:void 0;if(0!==d)if(d)c.push(d[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var f=new Promise(((c,f)=>d=e[a]=[c,f]));c.push(d[2]=f);var b=r.p+r.u(a),t=new Error;r.l(b,(c=>{if(r.o(e,a)&&(0!==(d=e[a])&&(e[a]=void 0),d)){var f=c&&("load"===c.type?"missing":c.type),b=c&&c.target&&c.target.src;t.message="Loading chunk "+a+" failed.\n("+f+": "+b+")",t.name="ChunkLoadError",t.type=f,t.request=b,d[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,c)=>{var d,f,b=c[0],t=c[1],o=c[2],n=0;if(b.some((a=>0!==e[a]))){for(d in t)r.o(t,d)&&(r.m[d]=t[d]);if(o)var i=o(r)}for(a&&a(c);n - + @@ -18,7 +18,7 @@ -

Agent components in Langflow

+

Agent components in Langflow

Agent components define the behavior and capabilities of AI agents in your flow.

Agents use LLMs as a reasoning engine to decide which of the connected tool components to use to solve a problem.

Tools in agentic functions are, essentially, functions that the agent can call to perform tasks or access external resources. diff --git a/components-custom-components.html b/components-custom-components.html index 1bf48f7773..b9e9ed4946 100644 --- a/components-custom-components.html +++ b/components-custom-components.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

Create custom components

+

Create custom components

Custom components are created within Langflow and extend the platform's functionality with custom, reusable Python code.

Since Langflow operates with Python behind the scenes, you can implement any Python function within a Custom Component. This means you can leverage the power of libraries such as Pandas, Scikit-learn, Numpy, and thousands of other packages to create components that handle data processing in unlimited ways. You can use any type as long as the type is properly annotated in the output methods (e.g., > list[int]).

Custom Components create reusable and configurable components to enhance the capabilities of Langflow, making it a powerful tool for developing complex processing between user and AI messages.

diff --git a/components-data.html b/components-data.html index da24272f52..fcfe070905 100644 --- a/components-data.html +++ b/components-data.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

Data components in Langflow

+

Data components in Langflow

Data components load data from a source into your flow.

They may perform some processing or type checking, like converting raw HTML data into text, or ensuring your loaded file is of an acceptable type.

Use a data component in a flow

diff --git a/components-embedding-models.html b/components-embedding-models.html index ac55f678c5..88945a4265 100644 --- a/components-embedding-models.html +++ b/components-embedding-models.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

Embeddings models in Langflow

+

Embeddings models in Langflow

Embeddings models convert text into numerical vectors. These embeddings capture semantic meaning of the input text, and allow LLMs to understand context.

Refer to your specific component's documentation for more information on parameters.

Use an embeddings model component in a flow

diff --git a/components-helpers.html b/components-helpers.html index cffb091ba3..c79e0d54bf 100644 --- a/components-helpers.html +++ b/components-helpers.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

Helper components in Langflow

+

Helper components in Langflow

Helper components provide utility functions to help manage data, tasks, and other components in your flow.

Use a helper component in a flow

Chat memory in Langflow is stored either in local Langflow tables with LCBufferMemory, or connected to an external database.

diff --git a/components-io.html b/components-io.html index 2a0563a7ad..35ae4638bb 100644 --- a/components-io.html +++ b/components-io.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

Input and output components in Langflow

+

Input and output components in Langflow

This category of components defines where data enters and exits your flow. They dynamically alter the Playground and can be renamed to facilitate building and maintaining your flows.

The difference between Chat Input and Text Input components is the output format, the number of configurable fields, and the way they are displayed in the Playground.

Chat Input

diff --git a/components-loaders.html b/components-loaders.html index 43c4399724..5eef05f270 100644 --- a/components-loaders.html +++ b/components-loaders.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

Loader components in Langflow

+

Loader components in Langflow

info

As of Langflow 1.1, loader components are now found in the Components menu under Bundles.

Loaders fetch data into Langflow from various sources, such as databases, websites, and local files.

Use a loader component in a flow

diff --git a/components-logic.html b/components-logic.html index 71c7479614..ab7c5882a1 100644 --- a/components-logic.html +++ b/components-logic.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

Logic components in Langflow

+

Logic components in Langflow

Logic components provide functionalities for routing, conditional processing, and flow management.

Conditional router

This component routes an input message to a corresponding output based on text comparison.

diff --git a/components-memories.html b/components-memories.html index dfd54e6329..65b8c0f192 100644 --- a/components-memories.html +++ b/components-memories.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

Memory components in Langflow

+

Memory components in Langflow

Memory components store and retrieve chat messages by session_id.

They are distinct from vector store components, because they are built specifically for storing and retrieving chat messages from external databases.

Memory components provide access to their respective external databases as memory. This allows Large Language Models (LLMs) or agents to access external memory for persistence and context retention.

diff --git a/components-models.html b/components-models.html index 4a3139daaa..fe390ce008 100644 --- a/components-models.html +++ b/components-models.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

Model components in Langflow

+

Model components in Langflow

Model components generate text using large language models.

Refer to your specific component's documentation for more information on parameters.

Use a model component in a flow

diff --git a/components-overview.html b/components-overview.html index 1aaae9fbbc..b225d72cdf 100644 --- a/components-overview.html +++ b/components-overview.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

Components overview

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.

+

Components overview

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.

To add a component to a flow, drag it from the Component menu to the Workspace.

Learn more about components and how they work on this page.

Component menu

diff --git a/components-processing.html b/components-processing.html index 5235043ed3..b08d4a13bf 100644 --- a/components-processing.html +++ b/components-processing.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

Processing components in Langflow

+

Processing components in Langflow

Processing components process and transform data within a flow.

Use a processing component in a flow

The Split Text processing component in this flow splits the incoming data into chunks to be embedded into the vector store component.

diff --git a/components-prompts.html b/components-prompts.html index d5f73e9012..0c26a89406 100644 --- a/components-prompts.html +++ b/components-prompts.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -
+

Prompt components in Langflow

A prompt is a structured input to a language model that instructs the model how to handle user inputs and variables.

Prompt components create prompt templates with custom fields and dynamic variables for providing your model structured, repeatable prompts.

diff --git a/components-tools.html b/components-tools.html index 2df1108a19..de2c993a0c 100644 --- a/components-tools.html +++ b/components-tools.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

Tool components in Langflow

+

Tool components in Langflow

Tools are typically connected to agent components at the Tools port. Agents use LLMs as a reasoning engine to decide which of the connected tool components to use to solve a problem.

Tools in agentic functions are, essentially, functions that the agent can call to perform tasks or access external resources. A function is wrapped as a Tool object, with a common interface the agent understands. diff --git a/components-vector-stores.html b/components-vector-stores.html index dec8e90a71..8345a6dce5 100644 --- a/components-vector-stores.html +++ b/components-vector-stores.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

Vector store components in Langflow

+

Vector store components in Langflow

Vector databases store vector data, which backs AI workloads like chatbots and Retrieval Augmented Generation.

Vector database components establish connections to existing vector databases or create in-memory vector stores for storing and retrieving vector data.

Vector database components are distinct from memory components, which are built specifically for storing and retrieving chat messages from external databases.

diff --git a/configuration-api-keys.html b/configuration-api-keys.html index 7ae9fd3c1d..379376a00b 100644 --- a/configuration-api-keys.html +++ b/configuration-api-keys.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

API keys

+

API keys

Langflow provides an API key functionality that allows users to access their individual components and flows without traditional login authentication. The API key is a user-specific token that can be included in the request header, query parameter, or as a command line argument to authenticate API calls. This documentation outlines how to generate, use, and manage API keys in Langflow.

info

The default user and password are set using the LANGFLOW_SUPERUSER and LANGFLOW_SUPERUSER_PASSWORD environment variables. The default values are langflow and langflow, respectively.

Generate an API key

diff --git a/configuration-authentication.html b/configuration-authentication.html index 3c97e7dd33..11286a074e 100644 --- a/configuration-authentication.html +++ b/configuration-authentication.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

Authentication

+

Authentication

The login functionality in Langflow serves to authenticate users and protect sensitive routes in the application.

Starting from version 0.5, Langflow introduces an enhanced login mechanism that is governed by a few environment variables. This allows new secure features.

Create a superuser and new users in Langflow

diff --git a/configuration-auto-save.html b/configuration-auto-save.html index 52e5bdcf56..afc7566b42 100644 --- a/configuration-auto-save.html +++ b/configuration-auto-save.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

Auto-saving

+

Auto-saving

Langflow supports both manual and auto-saving functionality.

Auto-saving

When Langflow is in auto-saving mode, all changes are saved automatically. Auto-save progress is indicated in the left side of the top bar.

diff --git a/configuration-backend-only.html b/configuration-backend-only.html index 7edbe07f02..68c57503be 100644 --- a/configuration-backend-only.html +++ b/configuration-backend-only.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

Run Langflow in backend-only mode

+

Run Langflow in backend-only mode

Langflow can run in --backend-only mode to expose a Langflow app as an API endpoint, without running the frontend UI. This is also known as "headless" mode. Running Langflow without the frontend is useful for automation, testing, and situations where you just need to serve a flow as a workload without creating a new flow in the UI.

To run Langflow in backend-only mode, pass the --backend-only flag at startup.

diff --git a/configuration-cli.html b/configuration-cli.html index 40f3182140..8cd9f6c68f 100644 --- a/configuration-cli.html +++ b/configuration-cli.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -
+

Langflow CLI

The Langflow command line interface (Langflow CLI) is the main interface for managing and running the Langflow server.

diff --git a/configuration-custom-database.html b/configuration-custom-database.html index e21bb02384..2b006345d5 100644 --- a/configuration-custom-database.html +++ b/configuration-custom-database.html @@ -10,7 +10,7 @@ - + diff --git a/configuration-global-variables.html b/configuration-global-variables.html index fac6a66448..d0ea6a4c4a 100644 --- a/configuration-global-variables.html +++ b/configuration-global-variables.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

Global variables

+

Global variables

Global variables let you store and reuse generic input values and credentials across your projects. You can use a global variable in any text input field that displays the 🌐 icon.

diff --git a/configuration-objects.html b/configuration-objects.html index cb2f269450..c7e59dc6a0 100644 --- a/configuration-objects.html +++ b/configuration-objects.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

Langflow objects

+

Langflow objects

In Langflow, the Data and Message objects are Pydantic models that serve as structured, functional representations of data.

Data object

The Data object is a Pydantic model that serves as a container for storing and manipulating data. It carries data—a dictionary that can be accessed as attributes—and uses text_key to specify which key in the dictionary should be considered the primary text content.

@@ -94,8 +94,8 @@

In this example, a text and a media ContentBlock are added to a message.


_23
from langflow.schema.message import Message
_23
from langflow.schema.content_block import ContentBlock
_23
from langflow.schema.content_types import TextContent, MediaContent
_23
_23
message = Message(
_23
text="Main message text",
_23
sender="User",
_23
sender_name="John Doe",
_23
content_blocks=[
_23
ContentBlock(
_23
title="Text Block",
_23
contents=[
_23
TextContent(type="text", text="This is some text content")
_23
]
_23
),
_23
ContentBlock(
_23
title="Media Block",
_23
contents=[
_23
MediaContent(type="media", urls=["http://example.com/image.jpg"])
_23
]
_23
)
_23
]
_23
)

DataFrame object

-

The DataFrame class is a custom extension of the pandas' DataFrame class, specifically designed to work seamlessly with Langflow's Data objects. The class includes methods for converting between DataFrame and lists of Data objects.

-

A DataFrame object accepts various input formats, including lists of Data objects, dictionaries, and existing pandas DataFrames.

+

The DataFrame class is a custom extension of the Pandas DataFrame class, specifically designed to work seamlessly with Langflow's Data objects. The class includes methods for converting between DataFrame and lists of Data objects.

+

A DataFrame object accepts various input formats, including lists of Data objects, dictionaries, and existing DataFrames.

Create a DataFrame object

You can create a DataFrame object using different data formats:


_31
from langflow.schema import Data
_31
from langflow.schema.data import DataFrame
_31
_31
# From a list of Data objects
_31
data_list = [Data(data={"name": "John"}), Data(data={"name": "Jane"})]
_31
df = DataFrame(data_list)
_31
_31
# From a list of dictionaries
_31
dict_list = [{"name": "John"}, {"name": "Jane"}]
_31
df = DataFrame(dict_list)
_31
_31
# From a dictionary of lists
_31
data_dict = {"name": ["John", "Jane"], "age": [30, 25]}
_31
df = DataFrame(data_dict)
_31
Key Methods
_31
to_data_list(): Converts the DataFrame back to a list of Data objects.
_31
add_row(data): Adds a single row (either a Data object or a dictionary) to the DataFrame.
_31
add_rows(data): Adds multiple rows (list of Data objects or dictionaries) to the DataFrame.
_31
Usage Example
_31
python
_31
# Create a DataFrame
_31
df = DataFrame([Data(data={"name": "John"}), Data(data={"name": "Jane"})])
_31
_31
# Add a new row
_31
df = df.add_row({"name": "Alice"})
_31
_31
# Convert back to a list of Data objects
_31
data_list = df.to_data_list()
_31
_31
# Use pandas functionality
_31
filtered_df = df[df["name"].str.startswith("J")]

diff --git a/configuration-security-best-practices.html b/configuration-security-best-practices.html index 73b6a6d45f..1d71ba18a1 100644 --- a/configuration-security-best-practices.html +++ b/configuration-security-best-practices.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

Security best practices

+

Security best practices

This guide outlines security best practices for deploying and managing Langflow.

Secret key protection

The secret key is critical for encrypting sensitive data in Langflow. Follow these guidelines:

@@ -64,6 +64,6 @@
  • Windows: PYTHON_LOCATION\Lib\site-packages\langflow\langflow.db
  • -

    Hi, how can I help you?

    +

    Hi, how can I help you?

    \ No newline at end of file diff --git a/contributing-community.html b/contributing-community.html index ef45dbe48b..c0eb040731 100644 --- a/contributing-community.html +++ b/contributing-community.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

    Join the Langflow community

    Join the Langflow Discord server

    +

    Join the Langflow community

    Join the Langflow Discord server

    Join the Langflow Discord Server to ask questions and showcase your projects.

    Follow Langflow on X

    Follow @langflow_ai on X to get the latest news about Langflow.

    diff --git a/contributing-components.html b/contributing-components.html index 2821ee529d..8fec5859a3 100644 --- a/contributing-components.html +++ b/contributing-components.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

    Contribute components

    New components are added as objects of the CustomComponent class.

    +

    Contribute components

    New components are added as objects of the CustomComponent class.

    Any dependencies are added to the pyproject.toml file.

    Contribute an example component to Langflow

    Anyone can contribute an example component. For example, if you created a new document loader called MyCustomDocumentLoader, you can follow these steps to contribute it to Langflow.

    diff --git a/contributing-github-discussions.html b/contributing-github-discussions.html index 1146362cca..4b1d7c8d00 100644 --- a/contributing-github-discussions.html +++ b/contributing-github-discussions.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

    Ask for help on the Discussions board

    If you're looking for help with your code, consider posting a question on the Langflow GitHub Discussions board. The Langflow team cannot provide individual support via email. The team also believes that help is much more valuable if it's shared publicly, so that more people can benefit from it.

    +

    Ask for help on the Discussions board

    If you're looking for help with your code, consider posting a question on the Langflow GitHub Discussions board. The Langflow team cannot provide individual support via email. The team also believes that help is much more valuable if it's shared publicly, so that more people can benefit from it.

    Since the Discussions board is public, please follow this guidance when posting your code questions.

    • diff --git a/contributing-github-issues.html b/contributing-github-issues.html index 9e7b8d4dec..61b9345d97 100644 --- a/contributing-github-issues.html +++ b/contributing-github-issues.html @@ -10,7 +10,7 @@ - + @@ -18,6 +18,6 @@ -

      Request an enhancement or report a bug

      The Issues page in the Langflow repo is kept up to date with bugs, improvements, and feature requests. Labels are used to help with sorting and discovery of issues of interest. For an overview of the system Langflow uses to tag issues and pull requests, see the Langflow repo's labels page.

      Hi, how can I help you?

      +

      Request an enhancement or report a bug

      The Issues page in the Langflow repo is kept up to date with bugs, improvements, and feature requests. Labels are used to help with sorting and discovery of issues of interest. For an overview of the system Langflow uses to tag issues and pull requests, see the Langflow repo's labels page.

      Hi, how can I help you?

      \ No newline at end of file diff --git a/contributing-how-to-contribute.html b/contributing-how-to-contribute.html index da80571c32..4197c4519d 100644 --- a/contributing-how-to-contribute.html +++ b/contributing-how-to-contribute.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

      Contribute to Langflow

      +

      Contribute to Langflow

      This guide is intended to help you start contributing to Langflow. As an open-source project in a rapidly developing field, Langflow welcomes contributions, whether it be in the form of a new feature, improved infrastructure, or better documentation.

      To contribute code or documentation to this project, follow the fork and pull request workflow.

      diff --git a/contributing-telemetry.html b/contributing-telemetry.html index 8d2c849be9..a3586d6ba8 100644 --- a/contributing-telemetry.html +++ b/contributing-telemetry.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

      Telemetry

      Langflow uses anonymous telemetry to collect essential usage statistics to enhance functionality and the user experience. This data helps us identify popular features and areas that need improvement, and ensures development efforts align with what you need.

      +

      Telemetry

      Langflow uses anonymous telemetry to collect essential usage statistics to enhance functionality and the user experience. This data helps us identify popular features and areas that need improvement, and ensures development efforts align with what you need.

      We respect your privacy and are committed to protecting your data. We do not collect any personal information or sensitive data. All telemetry data is anonymized and used solely for improving Langflow.

      Opt out of telemetry

      To opt out of telemetry, set the LANGFLOW_DO_NOT_TRACK or DO_NOT_TRACK environment variable to true before running Langflow. This disables telemetry data collection.

      diff --git a/deployment-gcp.html b/deployment-gcp.html index 136b270172..2c838ed223 100644 --- a/deployment-gcp.html +++ b/deployment-gcp.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

      Deploy on Google Cloud Platform

      +

      Deploy on Google Cloud Platform

      To deploy Langflow on Google Cloud Platform using Cloud Shell, use the below script. The script will guide you through setting up a Debian-based VM with the Langflow package, Nginx, and the necessary configurations to run the Langflow dev environment in GCP.

      Prerequisites

      diff --git a/deployment-hugging-face-spaces.html b/deployment-hugging-face-spaces.html index 6f6e599f55..8dced0e209 100644 --- a/deployment-hugging-face-spaces.html +++ b/deployment-hugging-face-spaces.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

      HuggingFace Spaces

      HuggingFace Spaces

      +

      HuggingFace Spaces

      HuggingFace Spaces


      HuggingFace provides a great alternative for running Langflow in their Spaces environment. This means you can run Langflow in the cloud without any local installation required. Here's how you can get Langflow up and running on HuggingFace Spaces:

        diff --git a/deployment-kubernetes.html b/deployment-kubernetes.html index 88bff2c940..65a1126f4d 100644 --- a/deployment-kubernetes.html +++ b/deployment-kubernetes.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

        Kubernetes

        +

        Kubernetes

        This guide will help you get LangFlow up and running in Kubernetes cluster, including the following steps:

        • Install LangFlow as IDE in a Kubernetes cluster (for development)
        • diff --git a/deployment-railway.html b/deployment-railway.html index a70f36b7dc..58cb2ce0bf 100644 --- a/deployment-railway.html +++ b/deployment-railway.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

          Railway

          Deploy on Railway

          +

          Railway

          Deploy on Railway


          Railway is a cloud infrastructure platform that enables developers to deploy and manage applications effortlessly. It provides an intuitive interface, seamless integrations, and powerful features like auto-deploy from GitHub, managed databases, and automatic scaling.

          Deploying Langflow to Railway involves a few simple steps:

          diff --git a/deployment-render.html b/deployment-render.html index 1db7de90e4..d9698c44dc 100644 --- a/deployment-render.html +++ b/deployment-render.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

          Render

          Deploy on Render

          +

          Render

          Deploy on Render


          Render.com is a unified cloud platform designed to make deploying web applications, APIs, and static sites easy. It provides a streamlined experience with powerful features like automatic SSL, managed databases, and auto-deploy from Git, making it a popular choice for developers looking to simplify their deployment workflows.

          Deploying Langflow to Render is a straightforward process that can be completed in just a few steps:

          diff --git a/environment-variables.html b/environment-variables.html index 84abf8984e..e88bdc02b8 100644 --- a/environment-variables.html +++ b/environment-variables.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

          Environment variables

          +

          Environment variables

          Langflow lets you configure a number of settings using environment variables.

          Configure environment variables

          diff --git a/get-started-installation.html b/get-started-installation.html index f20a36950d..d3a4fd8c08 100644 --- a/get-started-installation.html +++ b/get-started-installation.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

          Install Langflow

          +

          Install Langflow

          You can deploy Langflow either locally or as a hosted service with Datastax Langflow.

          Install Langflow locally

          Install Langflow locally with uv (recommended), pip, or pipx.

          diff --git a/get-started-quickstart.html b/get-started-quickstart.html index 8b8957cfdf..e18c8e043f 100644 --- a/get-started-quickstart.html +++ b/get-started-quickstart.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

          Quickstart

          +

          Quickstart

          Get to know Langflow by building an OpenAI-powered chatbot application. After you've constructed a chatbot, add Retrieval Augmented Generation (RAG) to chat with your own data.

          Prerequisites

            diff --git a/index.html b/index.html index 660441c2e8..93b296e1f1 100644 --- a/index.html +++ b/index.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

            Welcome to Langflow

            Langflow is a new, visual framework for building multi-agent and RAG applications. It is open-source, Python-powered, fully customizable, and LLM and vector store agnostic.

            +

            Welcome to Langflow

            Langflow is a new, visual framework for building multi-agent and RAG applications. It is open-source, Python-powered, fully customizable, and LLM and vector store agnostic.

            Its intuitive interface allows for easy manipulation of AI building blocks, enabling developers to quickly prototype and turn their ideas into powerful, real-world solutions.

            Langflow empowers developers to rapidly prototype and build AI applications with its user-friendly interface and powerful features. Whether you're a seasoned AI developer or just starting out, Langflow provides the tools you need to bring your AI ideas to life.

            Visual flow builder

            diff --git a/integrations-assemblyai.html b/integrations-assemblyai.html index 4fd2b46c6e..cab6dfec4d 100644 --- a/integrations-assemblyai.html +++ b/integrations-assemblyai.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

            AssemblyAI

            +

            AssemblyAI

            The AssemblyAI components allow you to apply powerful Speech AI models to your app for tasks like:

            • Transcribing audio and video files
            • diff --git a/integrations-composio.html b/integrations-composio.html index aabba9b32e..849cd99948 100644 --- a/integrations-composio.html +++ b/integrations-composio.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

              Integrate Composio with Langflow

              +

              Integrate Composio with Langflow

              Langflow integrates with Composio as a toolset for your Agent component.

              Instead of juggling multiple integrations and components in your flow, connect the Composio component to an Agent component to use all of Composio's supported APIs and actions as Tools for your agent.

              Prerequisites

              diff --git a/integrations-langfuse.html b/integrations-langfuse.html index c334e77c8a..11131b3393 100644 --- a/integrations-langfuse.html +++ b/integrations-langfuse.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -
              +

              Integrate Langfuse with Langflow

              Langfuse is an observability and analytics platform specifically designed for language models and AI applications.

              diff --git a/integrations-langsmith.html b/integrations-langsmith.html index b27f140fd3..c6554b7e42 100644 --- a/integrations-langsmith.html +++ b/integrations-langsmith.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

              LangSmith

              LangSmith is a full-lifecycle DevOps service from LangChain that provides monitoring and observability. To integrate with Langflow, just add your LangChain API key as a Langflow environment variable and you are good to go!

              +

              LangSmith

              LangSmith is a full-lifecycle DevOps service from LangChain that provides monitoring and observability. To integrate with Langflow, just add your LangChain API key as a Langflow environment variable and you are good to go!

              Step-by-step Configuration


                diff --git a/integrations-langwatch.html b/integrations-langwatch.html index 44e9482457..0b7d765f33 100644 --- a/integrations-langwatch.html +++ b/integrations-langwatch.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -
                +

                LangWatch

                LangWatch is an all-in-one LLMOps platform for monitoring, observability, analytics, evaluations and alerting for getting user insights and improve your LLM workflows.

                To integrate with Langflow, just add your LangWatch API as a Langflow environment variable and you are good to go!

                diff --git a/integrations-setup-google-cloud-vertex-ai-langflow.html b/integrations-setup-google-cloud-vertex-ai-langflow.html index 5e9f3998b8..869c181fea 100644 --- a/integrations-setup-google-cloud-vertex-ai-langflow.html +++ b/integrations-setup-google-cloud-vertex-ai-langflow.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

                Integrate Google Cloud Vertex AI with Langflow

                Langflow integrates with the Google Vertex AI API for authenticating the Vertex AI embeddings model and Vertex AI components.

                +

                Integrate Google Cloud Vertex AI with Langflow

                Langflow integrates with the Google Vertex AI API for authenticating the Vertex AI embeddings model and Vertex AI components.

                Learn how to create a service account JSON in Google Cloud to authenticate Langflow’s Vertex AI components.

                Create a service account with Vertex AI access

                  diff --git a/integrations-setup-google-oauth-langflow.html b/integrations-setup-google-oauth-langflow.html index 6f085d58e8..68ec1e6cfd 100644 --- a/integrations-setup-google-oauth-langflow.html +++ b/integrations-setup-google-oauth-langflow.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

                  Integrate Google OAuth with Langflow

                  Langflow integrates with Google OAuth for authenticating the Gmail loader, Google Drive loader, and Google Drive Search components.

                  +

                  Integrate Google OAuth with Langflow

                  Langflow integrates with Google OAuth for authenticating the Gmail loader, Google Drive loader, and Google Drive Search components.

                  Learn how to create an OAuth app in Google Cloud, obtain the necessary credentials and access tokens, and add them to Langflow’s Google components.

                  Create an OAuth Application in Google Cloud

                    diff --git a/integrations/notion/notion-agent-conversational.html b/integrations/notion/notion-agent-conversational.html index 9025fff939..14cac3c476 100644 --- a/integrations/notion/notion-agent-conversational.html +++ b/integrations/notion/notion-agent-conversational.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

                    Notion Conversational Agent

                    +

                    Notion Conversational Agent

                    The Notion Conversational Agent is an AI-powered assistant that interacts with your Notion workspace through natural language conversations. This flow performs Notion-related tasks like creating pages, searching for information, and managing content, all through a chat interface.

                    Prerequisites


                    diff --git a/integrations/notion/notion-agent-meeting-notes.html b/integrations/notion/notion-agent-meeting-notes.html index 014ebb298b..9d1e617483 100644 --- a/integrations/notion/notion-agent-meeting-notes.html +++ b/integrations/notion/notion-agent-meeting-notes.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

                    Notion Meeting Notes Agent

                    The Notion Agent for Meeting Notes is an AI-powered tool that automatically processes meeting transcripts and updates your Notion workspace. It identifies tasks, action items, and key points from your meetings, then creates new tasks or updates existing ones in Notion without manual input.

                    +

                    Notion Meeting Notes Agent

                    The Notion Agent for Meeting Notes is an AI-powered tool that automatically processes meeting transcripts and updates your Notion workspace. It identifies tasks, action items, and key points from your meetings, then creates new tasks or updates existing ones in Notion without manual input.

                    Prerequisites


                      diff --git a/integrations/notion/setup.html b/integrations/notion/setup.html index 621a4ba174..038df724ef 100644 --- a/integrations/notion/setup.html +++ b/integrations/notion/setup.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

                      Set up a Notion App

                      +

                      Set up a Notion App

                      To use Notion components in Langflow, you first need to create a Notion integration and configure it with the necessary capabilities. This guide will walk you through the process of setting up a Notion integration and granting it access to your Notion databases.

                      Prerequisites

                        diff --git a/sitemap.xml b/sitemap.xml index ef38740c59..c11c9ad75c 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -https://docs.langflow.org/apihttps://docs.langflow.org/api/add-userhttps://docs.langflow.org/api/auto-loginhttps://docs.langflow.org/api/build-flowhttps://docs.langflow.org/api/build-vertexhttps://docs.langflow.org/api/build-vertex-streamhttps://docs.langflow.org/api/check-if-store-has-api-keyhttps://docs.langflow.org/api/check-if-store-is-enabledhttps://docs.langflow.org/api/create-api-key-routehttps://docs.langflow.org/api/create-flowhttps://docs.langflow.org/api/create-flowshttps://docs.langflow.org/api/create-folderhttps://docs.langflow.org/api/create-upload-filehttps://docs.langflow.org/api/create-variablehttps://docs.langflow.org/api/custom-componenthttps://docs.langflow.org/api/custom-component-updatehttps://docs.langflow.org/api/delete-api-key-routehttps://docs.langflow.org/api/delete-filehttps://docs.langflow.org/api/delete-flowhttps://docs.langflow.org/api/delete-folderhttps://docs.langflow.org/api/delete-messageshttps://docs.langflow.org/api/delete-messages-sessionhttps://docs.langflow.org/api/delete-multiple-flowshttps://docs.langflow.org/api/delete-userhttps://docs.langflow.org/api/delete-variablehttps://docs.langflow.org/api/delete-vertex-buildshttps://docs.langflow.org/api/download-componenthttps://docs.langflow.org/api/download-filehttps://docs.langflow.org/api/download-file-1https://docs.langflow.org/api/download-imagehttps://docs.langflow.org/api/download-multiple-filehttps://docs.langflow.org/api/download-profile-picturehttps://docs.langflow.org/api/experimental-run-flowhttps://docs.langflow.org/api/get-allhttps://docs.langflow.org/api/get-api-keys-routehttps://docs.langflow.org/api/get-componentshttps://docs.langflow.org/api/get-confighttps://docs.langflow.org/api/get-list-of-components-liked-by-userhttps://docs.langflow.org/api/get-messageshttps://docs.langflow.org/api/get-starter-projectshttps://docs.langflow.org/api/get-tagshttps://docs.langflow.org/api/get-task-statushttps://docs.langflow.org/api/get-transactionshttps://docs.langflow.org/api/get-versionhttps://docs.langflow.org/api/get-vertex-buildshttps://docs.langflow.org/api/healthhttps://docs.langflow.org/api/health-checkhttps://docs.langflow.org/api/like-componenthttps://docs.langflow.org/api/list-fileshttps://docs.langflow.org/api/list-profile-pictureshttps://docs.langflow.org/api/login-to-get-access-tokenhttps://docs.langflow.org/api/logouthttps://docs.langflow.org/api/logshttps://docs.langflow.org/api/patch-userhttps://docs.langflow.org/api/post-validate-codehttps://docs.langflow.org/api/post-validate-prompthttps://docs.langflow.org/api/processhttps://docs.langflow.org/api/process-1https://docs.langflow.org/api/read-all-usershttps://docs.langflow.org/api/read-basic-exampleshttps://docs.langflow.org/api/read-current-userhttps://docs.langflow.org/api/read-flowhttps://docs.langflow.org/api/read-flowshttps://docs.langflow.org/api/read-folderhttps://docs.langflow.org/api/read-foldershttps://docs.langflow.org/api/read-variableshttps://docs.langflow.org/api/refresh-tokenhttps://docs.langflow.org/api/reset-passwordhttps://docs.langflow.org/api/retrieve-vertices-orderhttps://docs.langflow.org/api/save-store-api-keyhttps://docs.langflow.org/api/share-componenthttps://docs.langflow.org/api/simplified-run-flowhttps://docs.langflow.org/api/stream-logshttps://docs.langflow.org/api/update-flowhttps://docs.langflow.org/api/update-folderhttps://docs.langflow.org/api/update-messagehttps://docs.langflow.org/api/update-session-idhttps://docs.langflow.org/api/update-shared-componenthttps://docs.langflow.org/api/update-variablehttps://docs.langflow.org/api/upload-filehttps://docs.langflow.org/api/upload-file-1https://docs.langflow.org/api/upload-file-2https://docs.langflow.org/api/webhook-run-flowhttps://docs.langflow.org/agents-overview2025-01-03T16:58:29.000Zhttps://docs.langflow.org/agents-tool-calling-agent-component2025-01-03T16:58:29.000Zhttps://docs.langflow.org/components-agents2025-01-03T16:58:29.000Zhttps://docs.langflow.org/components-custom-components2025-01-03T16:58:29.000Zhttps://docs.langflow.org/components-data2025-01-03T16:58:29.000Zhttps://docs.langflow.org/components-embedding-models2025-01-03T16:58:29.000Zhttps://docs.langflow.org/components-helpers2025-01-03T16:58:29.000Zhttps://docs.langflow.org/components-io2025-01-03T16:58:29.000Zhttps://docs.langflow.org/components-loaders2025-01-03T16:58:29.000Zhttps://docs.langflow.org/components-logic2025-01-03T16:58:29.000Zhttps://docs.langflow.org/components-memories2025-01-03T16:58:29.000Zhttps://docs.langflow.org/components-models2025-01-03T16:58:29.000Zhttps://docs.langflow.org/components-overview2025-01-03T16:58:29.000Zhttps://docs.langflow.org/components-processing2025-01-03T16:58:29.000Zhttps://docs.langflow.org/components-prompts2025-01-03T16:58:29.000Zhttps://docs.langflow.org/components-tools2025-01-03T16:58:29.000Zhttps://docs.langflow.org/components-vector-stores2025-01-03T16:58:29.000Zhttps://docs.langflow.org/configuration-api-keys2025-01-03T16:58:29.000Zhttps://docs.langflow.org/configuration-authentication2025-01-03T16:58:29.000Zhttps://docs.langflow.org/configuration-auto-save2025-01-03T16:58:29.000Zhttps://docs.langflow.org/configuration-backend-only2025-01-03T16:58:29.000Zhttps://docs.langflow.org/configuration-cli2025-01-03T16:58:29.000Zhttps://docs.langflow.org/configuration-custom-database2025-01-03T16:58:29.000Zhttps://docs.langflow.org/configuration-global-variables2025-01-03T16:58:29.000Zhttps://docs.langflow.org/configuration-objects2025-01-03T16:58:29.000Zhttps://docs.langflow.org/configuration-security-best-practices2025-01-03T16:58:29.000Zhttps://docs.langflow.org/contributing-community2025-01-03T16:58:29.000Zhttps://docs.langflow.org/contributing-components2025-01-03T16:58:29.000Zhttps://docs.langflow.org/contributing-github-discussions2025-01-03T16:58:29.000Zhttps://docs.langflow.org/contributing-github-issues2025-01-03T16:58:29.000Zhttps://docs.langflow.org/contributing-how-to-contribute2025-01-03T16:58:29.000Zhttps://docs.langflow.org/contributing-telemetry2025-01-03T16:58:29.000Zhttps://docs.langflow.org/deployment-gcp2025-01-03T16:58:29.000Zhttps://docs.langflow.org/deployment-hugging-face-spaces2025-01-03T16:58:29.000Zhttps://docs.langflow.org/deployment-kubernetes2025-01-03T16:58:29.000Zhttps://docs.langflow.org/deployment-railway2025-01-03T16:58:29.000Zhttps://docs.langflow.org/deployment-render2025-01-03T16:58:29.000Zhttps://docs.langflow.org/Deployment/deployment-docker2025-01-03T16:58:29.000Zhttps://docs.langflow.org/environment-variables2025-01-03T16:58:29.000Zhttps://docs.langflow.org/get-started-installation2025-01-03T16:58:29.000Zhttps://docs.langflow.org/get-started-quickstart2025-01-03T16:58:29.000Zhttps://docs.langflow.org/integrations-assemblyai2025-01-03T16:58:29.000Zhttps://docs.langflow.org/integrations-composio2025-01-03T16:58:29.000Zhttps://docs.langflow.org/integrations-langfuse2025-01-03T16:58:29.000Zhttps://docs.langflow.org/integrations-langsmith2025-01-03T16:58:29.000Zhttps://docs.langflow.org/integrations-langwatch2025-01-03T16:58:29.000Zhttps://docs.langflow.org/integrations-setup-google-cloud-vertex-ai-langflow2025-01-03T16:58:29.000Zhttps://docs.langflow.org/integrations-setup-google-oauth-langflow2025-01-03T16:58:29.000Zhttps://docs.langflow.org/integrations/notion/notion-agent-conversational2025-01-03T16:58:29.000Zhttps://docs.langflow.org/integrations/notion/notion-agent-meeting-notes2025-01-03T16:58:29.000Zhttps://docs.langflow.org/integrations/notion/setup2025-01-03T16:58:29.000Zhttps://docs.langflow.org/starter-projects-basic-prompting2025-01-03T16:58:29.000Zhttps://docs.langflow.org/starter-projects-simple-agent2025-01-03T16:58:29.000Zhttps://docs.langflow.org/starter-projects-vector-store-rag2025-01-03T16:58:29.000Zhttps://docs.langflow.org/tutorials-blog-writer2025-01-03T16:58:29.000Zhttps://docs.langflow.org/tutorials-document-qa2025-01-03T16:58:29.000Zhttps://docs.langflow.org/tutorials-memory-chatbot2025-01-03T16:58:29.000Zhttps://docs.langflow.org/tutorials-sequential-agent2025-01-03T16:58:29.000Zhttps://docs.langflow.org/tutorials-travel-planning-agent2025-01-03T16:58:29.000Zhttps://docs.langflow.org/workspace-api2025-01-03T16:58:29.000Zhttps://docs.langflow.org/workspace-logs2025-01-03T16:58:29.000Zhttps://docs.langflow.org/workspace-overview2025-01-03T16:58:29.000Zhttps://docs.langflow.org/workspace-playground2025-01-03T16:58:29.000Zhttps://docs.langflow.org/2025-01-03T16:58:29.000Z \ No newline at end of file +https://docs.langflow.org/apihttps://docs.langflow.org/api/add-userhttps://docs.langflow.org/api/auto-loginhttps://docs.langflow.org/api/build-flowhttps://docs.langflow.org/api/build-vertexhttps://docs.langflow.org/api/build-vertex-streamhttps://docs.langflow.org/api/check-if-store-has-api-keyhttps://docs.langflow.org/api/check-if-store-is-enabledhttps://docs.langflow.org/api/create-api-key-routehttps://docs.langflow.org/api/create-flowhttps://docs.langflow.org/api/create-flowshttps://docs.langflow.org/api/create-folderhttps://docs.langflow.org/api/create-upload-filehttps://docs.langflow.org/api/create-variablehttps://docs.langflow.org/api/custom-componenthttps://docs.langflow.org/api/custom-component-updatehttps://docs.langflow.org/api/delete-api-key-routehttps://docs.langflow.org/api/delete-filehttps://docs.langflow.org/api/delete-flowhttps://docs.langflow.org/api/delete-folderhttps://docs.langflow.org/api/delete-messageshttps://docs.langflow.org/api/delete-messages-sessionhttps://docs.langflow.org/api/delete-multiple-flowshttps://docs.langflow.org/api/delete-userhttps://docs.langflow.org/api/delete-variablehttps://docs.langflow.org/api/delete-vertex-buildshttps://docs.langflow.org/api/download-componenthttps://docs.langflow.org/api/download-filehttps://docs.langflow.org/api/download-file-1https://docs.langflow.org/api/download-imagehttps://docs.langflow.org/api/download-multiple-filehttps://docs.langflow.org/api/download-profile-picturehttps://docs.langflow.org/api/experimental-run-flowhttps://docs.langflow.org/api/get-allhttps://docs.langflow.org/api/get-api-keys-routehttps://docs.langflow.org/api/get-componentshttps://docs.langflow.org/api/get-confighttps://docs.langflow.org/api/get-list-of-components-liked-by-userhttps://docs.langflow.org/api/get-messageshttps://docs.langflow.org/api/get-starter-projectshttps://docs.langflow.org/api/get-tagshttps://docs.langflow.org/api/get-task-statushttps://docs.langflow.org/api/get-transactionshttps://docs.langflow.org/api/get-versionhttps://docs.langflow.org/api/get-vertex-buildshttps://docs.langflow.org/api/healthhttps://docs.langflow.org/api/health-checkhttps://docs.langflow.org/api/like-componenthttps://docs.langflow.org/api/list-fileshttps://docs.langflow.org/api/list-profile-pictureshttps://docs.langflow.org/api/login-to-get-access-tokenhttps://docs.langflow.org/api/logouthttps://docs.langflow.org/api/logshttps://docs.langflow.org/api/patch-userhttps://docs.langflow.org/api/post-validate-codehttps://docs.langflow.org/api/post-validate-prompthttps://docs.langflow.org/api/processhttps://docs.langflow.org/api/process-1https://docs.langflow.org/api/read-all-usershttps://docs.langflow.org/api/read-basic-exampleshttps://docs.langflow.org/api/read-current-userhttps://docs.langflow.org/api/read-flowhttps://docs.langflow.org/api/read-flowshttps://docs.langflow.org/api/read-folderhttps://docs.langflow.org/api/read-foldershttps://docs.langflow.org/api/read-variableshttps://docs.langflow.org/api/refresh-tokenhttps://docs.langflow.org/api/reset-passwordhttps://docs.langflow.org/api/retrieve-vertices-orderhttps://docs.langflow.org/api/save-store-api-keyhttps://docs.langflow.org/api/share-componenthttps://docs.langflow.org/api/simplified-run-flowhttps://docs.langflow.org/api/stream-logshttps://docs.langflow.org/api/update-flowhttps://docs.langflow.org/api/update-folderhttps://docs.langflow.org/api/update-messagehttps://docs.langflow.org/api/update-session-idhttps://docs.langflow.org/api/update-shared-componenthttps://docs.langflow.org/api/update-variablehttps://docs.langflow.org/api/upload-filehttps://docs.langflow.org/api/upload-file-1https://docs.langflow.org/api/upload-file-2https://docs.langflow.org/api/webhook-run-flowhttps://docs.langflow.org/agents-overview2025-01-03T17:23:45.000Zhttps://docs.langflow.org/agents-tool-calling-agent-component2025-01-03T17:23:45.000Zhttps://docs.langflow.org/components-agents2025-01-03T17:23:45.000Zhttps://docs.langflow.org/components-custom-components2025-01-03T17:23:45.000Zhttps://docs.langflow.org/components-data2025-01-03T17:23:45.000Zhttps://docs.langflow.org/components-embedding-models2025-01-03T17:23:45.000Zhttps://docs.langflow.org/components-helpers2025-01-03T17:23:45.000Zhttps://docs.langflow.org/components-io2025-01-03T17:23:45.000Zhttps://docs.langflow.org/components-loaders2025-01-03T17:23:45.000Zhttps://docs.langflow.org/components-logic2025-01-03T17:23:45.000Zhttps://docs.langflow.org/components-memories2025-01-03T17:23:45.000Zhttps://docs.langflow.org/components-models2025-01-03T17:23:45.000Zhttps://docs.langflow.org/components-overview2025-01-03T17:23:45.000Zhttps://docs.langflow.org/components-processing2025-01-03T17:23:45.000Zhttps://docs.langflow.org/components-prompts2025-01-03T17:23:45.000Zhttps://docs.langflow.org/components-tools2025-01-03T17:23:45.000Zhttps://docs.langflow.org/components-vector-stores2025-01-03T17:23:45.000Zhttps://docs.langflow.org/configuration-api-keys2025-01-03T17:23:45.000Zhttps://docs.langflow.org/configuration-authentication2025-01-03T17:23:45.000Zhttps://docs.langflow.org/configuration-auto-save2025-01-03T17:23:45.000Zhttps://docs.langflow.org/configuration-backend-only2025-01-03T17:23:45.000Zhttps://docs.langflow.org/configuration-cli2025-01-03T17:23:45.000Zhttps://docs.langflow.org/configuration-custom-database2025-01-03T17:23:45.000Zhttps://docs.langflow.org/configuration-global-variables2025-01-03T17:23:45.000Zhttps://docs.langflow.org/configuration-objects2025-01-03T17:23:45.000Zhttps://docs.langflow.org/configuration-security-best-practices2025-01-03T17:23:45.000Zhttps://docs.langflow.org/contributing-community2025-01-03T17:23:45.000Zhttps://docs.langflow.org/contributing-components2025-01-03T17:23:45.000Zhttps://docs.langflow.org/contributing-github-discussions2025-01-03T17:23:45.000Zhttps://docs.langflow.org/contributing-github-issues2025-01-03T17:23:45.000Zhttps://docs.langflow.org/contributing-how-to-contribute2025-01-03T17:23:45.000Zhttps://docs.langflow.org/contributing-telemetry2025-01-03T17:23:45.000Zhttps://docs.langflow.org/deployment-gcp2025-01-03T17:23:45.000Zhttps://docs.langflow.org/deployment-hugging-face-spaces2025-01-03T17:23:45.000Zhttps://docs.langflow.org/deployment-kubernetes2025-01-03T17:23:45.000Zhttps://docs.langflow.org/deployment-railway2025-01-03T17:23:45.000Zhttps://docs.langflow.org/deployment-render2025-01-03T17:23:45.000Zhttps://docs.langflow.org/Deployment/deployment-docker2025-01-03T17:23:45.000Zhttps://docs.langflow.org/environment-variables2025-01-03T17:23:45.000Zhttps://docs.langflow.org/get-started-installation2025-01-03T17:23:45.000Zhttps://docs.langflow.org/get-started-quickstart2025-01-03T17:23:45.000Zhttps://docs.langflow.org/integrations-assemblyai2025-01-03T17:23:45.000Zhttps://docs.langflow.org/integrations-composio2025-01-03T17:23:45.000Zhttps://docs.langflow.org/integrations-langfuse2025-01-03T17:23:45.000Zhttps://docs.langflow.org/integrations-langsmith2025-01-03T17:23:45.000Zhttps://docs.langflow.org/integrations-langwatch2025-01-03T17:23:45.000Zhttps://docs.langflow.org/integrations-setup-google-cloud-vertex-ai-langflow2025-01-03T17:23:45.000Zhttps://docs.langflow.org/integrations-setup-google-oauth-langflow2025-01-03T17:23:45.000Zhttps://docs.langflow.org/integrations/notion/notion-agent-conversational2025-01-03T17:23:45.000Zhttps://docs.langflow.org/integrations/notion/notion-agent-meeting-notes2025-01-03T17:23:45.000Zhttps://docs.langflow.org/integrations/notion/setup2025-01-03T17:23:45.000Zhttps://docs.langflow.org/starter-projects-basic-prompting2025-01-03T17:23:45.000Zhttps://docs.langflow.org/starter-projects-simple-agent2025-01-03T17:23:45.000Zhttps://docs.langflow.org/starter-projects-vector-store-rag2025-01-03T17:23:45.000Zhttps://docs.langflow.org/tutorials-blog-writer2025-01-03T17:23:45.000Zhttps://docs.langflow.org/tutorials-document-qa2025-01-03T17:23:45.000Zhttps://docs.langflow.org/tutorials-memory-chatbot2025-01-03T17:23:45.000Zhttps://docs.langflow.org/tutorials-sequential-agent2025-01-03T17:23:45.000Zhttps://docs.langflow.org/tutorials-travel-planning-agent2025-01-03T17:23:45.000Zhttps://docs.langflow.org/workspace-api2025-01-03T17:23:45.000Zhttps://docs.langflow.org/workspace-logs2025-01-03T17:23:45.000Zhttps://docs.langflow.org/workspace-overview2025-01-03T17:23:45.000Zhttps://docs.langflow.org/workspace-playground2025-01-03T17:23:45.000Zhttps://docs.langflow.org/2025-01-03T17:23:45.000Z \ No newline at end of file diff --git a/starter-projects-basic-prompting.html b/starter-projects-basic-prompting.html index 7368f79d9d..d7b3003c69 100644 --- a/starter-projects-basic-prompting.html +++ b/starter-projects-basic-prompting.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

                        Basic Prompting

                        Prompts serve as the inputs to a large language model (LLM), acting as the interface between human instructions and computational tasks.

                        +

                        Basic Prompting

                        Prompts serve as the inputs to a large language model (LLM), acting as the interface between human instructions and computational tasks.

                        By submitting natural language requests in a prompt to an LLM, you can obtain answers, generate text, and solve problems.

                        This article demonstrates how to use Langflow's prompt tools to issue basic prompts to an LLM, and how various prompting strategies can affect your outcomes.

                        Prerequisites

                        diff --git a/starter-projects-simple-agent.html b/starter-projects-simple-agent.html index eea0b92517..36fba8b019 100644 --- a/starter-projects-simple-agent.html +++ b/starter-projects-simple-agent.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

                        Simple agent

                        +

                        Simple agent

                        Build a Simple Agent flow for an agentic application using the Tool-calling agent.

                        An agent uses an LLM as its "brain" to select among the connected tools and complete its tasks.

                        In this flow, the Tool-calling agent reasons using an Open AI LLM to solve math problems. It will select the Calculator tool for simpler math, and the Python REPL tool (with the Python math library) for more complex problems.

                        diff --git a/starter-projects-vector-store-rag.html b/starter-projects-vector-store-rag.html index 1e916cd132..8de09ec0ec 100644 --- a/starter-projects-vector-store-rag.html +++ b/starter-projects-vector-store-rag.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

                        Vector Store RAG

                        Retrieval Augmented Generation, or RAG, is a pattern for training LLMs on your data and querying it.

                        +

                        Vector Store RAG

                        Retrieval Augmented Generation, or RAG, is a pattern for training LLMs on your data and querying it.

                        RAG is backed by a vector store, a vector database which stores embeddings of the ingested data.

                        This enables vector search, a more powerful and context-aware search.

                        We've chosen Astra DB as the vector database for this starter flow, but you can follow along with any of Langflow's vector database options.

                        diff --git a/tutorials-blog-writer.html b/tutorials-blog-writer.html index ac0c6d1996..302257a869 100644 --- a/tutorials-blog-writer.html +++ b/tutorials-blog-writer.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

                        Blog Writer

                        +

                        Blog Writer

                        Build a Blog Writer flow for a one-shot application using OpenAI.

                        This flow extends the Basic Prompting flow with the URL and Parse data components that fetch content from multiple URLs and convert the loaded data into plain text.

                        OpenAI uses this loaded data to generate a blog post, as instructed by the Text input component.

                        diff --git a/tutorials-document-qa.html b/tutorials-document-qa.html index 756a1b0846..13c670513b 100644 --- a/tutorials-document-qa.html +++ b/tutorials-document-qa.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

                        Document QA

                        Build a question-and-answer chatbot with a document loaded from local memory.

                        +

                        Document QA

                        Build a question-and-answer chatbot with a document loaded from local memory.

                        Prerequisites


                          diff --git a/tutorials-memory-chatbot.html b/tutorials-memory-chatbot.html index 4ce49fb389..54eb1c0b96 100644 --- a/tutorials-memory-chatbot.html +++ b/tutorials-memory-chatbot.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

                          Memory Chatbot

                          This flow extends the basic prompting flow to include a chat memory. This makes the AI remember previous user inputs.

                          +

                          Memory Chatbot

                          This flow extends the basic prompting flow to include a chat memory. This makes the AI remember previous user inputs.

                          Prerequisites


                            diff --git a/tutorials-sequential-agent.html b/tutorials-sequential-agent.html index add032ddf1..bda3743518 100644 --- a/tutorials-sequential-agent.html +++ b/tutorials-sequential-agent.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

                            Sequential tasks agent

                            +

                            Sequential tasks agent

                            Build a Sequential Tasks Agent flow for a multi-agent application using multiple Agent components.

                            Each agent has an LLM model and a unique set of tools at its disposal, with Prompt components connected to the Agent Instructions fields to control the agent's behavior. For example, the Researcher Agent has a Tavily AI Search component connected as a tool. The Prompt instructs the agent how to answer your query, format the response, and pass the query and research results on to the next agent in the flow.

                            Each successive agent in the flow builds on the work of the previous agent, creating a chain of reasoning for solving complex problems.

                            diff --git a/tutorials-travel-planning-agent.html b/tutorials-travel-planning-agent.html index e16792e966..d5b46ee2f0 100644 --- a/tutorials-travel-planning-agent.html +++ b/tutorials-travel-planning-agent.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

                            Travel planning agent

                            Build a Travel Planning Agent flow for an agentic application using the multiple Tool-calling agents.

                            +

                            Travel planning agent

                            Build a Travel Planning Agent flow for an agentic application using the multiple Tool-calling agents.

                            An agent uses an LLM as its "brain" to select among the connected tools and complete its tasks.

                            In this flow, multiple Tool-calling agents reason using an Open AI LLM to plan a travel journey. Each agent is given a different responsibility defined by its System Prompt field.

                            The Chat input defines where the user wants to go, and passes the result to the City Selection agent. The Local Expert agent then adds information based on the selected cities, and the Travel Concierge assembles a seven day travel plan in Markdown.

                            diff --git a/workspace-api.html b/workspace-api.html index c57a9ed791..d4dad3e28c 100644 --- a/workspace-api.html +++ b/workspace-api.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

                            API

                            +

                            API

                            The API section presents code templates for integrating your flow into external applications.

                            diff --git a/workspace-logs.html b/workspace-logs.html index ed2d39c86b..5ef571c10b 100644 --- a/workspace-logs.html +++ b/workspace-logs.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

                            Logs

                            The Logs pane provides a detailed record of all component executions within a workspace. It is designed to help you track actions, debug issues, and understand the flow of data through various components.

                            +

                            Logs

                            The Logs pane provides a detailed record of all component executions within a workspace. It is designed to help you track actions, debug issues, and understand the flow of data through various components.

                            1. To access the Logs pane, click your Flow Name, and then select Logs.
                            diff --git a/workspace-overview.html b/workspace-overview.html index 161dfc945c..8c73c375d7 100644 --- a/workspace-overview.html +++ b/workspace-overview.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

                            Workspace concepts

                            The workspace is where you create AI applications by connecting and running components in flows.

                            +

                            Workspace concepts

                            The workspace is where you create AI applications by connecting and running components in flows.

                            The workspace controls allow you to adjust your view and lock your flows in place.

                            Components

                            A component is a single building block within a flow and consists of inputs, outputs, and parameters that define its functionality.

                            diff --git a/workspace-playground.html b/workspace-playground.html index 37e740a99f..b468c2fd5e 100644 --- a/workspace-playground.html +++ b/workspace-playground.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ -

                            Playground

                            +

                            Playground

                            The Playground is a dynamic interface designed for real-time interaction with AIs, allowing users to chat, access memories and monitor inputs and outputs. Here, users can directly prototype and their models, making adjustments and observing different outcomes.

                            As long as you have an Input or Output component working, you can open it up by clicking the Playground button.