diff --git a/404.html b/404.html index 284b5b6575..4551d8476d 100644 --- a/404.html +++ b/404.html @@ -16,8 +16,8 @@ - - + + diff --git a/Concepts/concepts-flows.html b/Concepts/concepts-flows.html index bd7be68df0..a9c86b5598 100644 --- a/Concepts/concepts-flows.html +++ b/Concepts/concepts-flows.html @@ -16,8 +16,8 @@ - - + + @@ -25,7 +25,7 @@ -
Skip to main content

Flows

+

Flows

Flows in Langflow are fully serializable and can be saved and loaded from the file system. In this guide, we'll explore how to import and export flows.

Import Flow

If you've already got a Langflow JSON file, import it into Langflow by clicking on the project name and choosing Import Flow.

diff --git a/Deployment/deployment-docker.html b/Deployment/deployment-docker.html index f167e0d544..6a5d3cbb1d 100644 --- a/Deployment/deployment-docker.html +++ b/Deployment/deployment-docker.html @@ -16,8 +16,8 @@ - - + + @@ -25,7 +25,7 @@ -

Docker

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

+

Docker

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

Prerequisites


    diff --git a/agents-overview.html b/agents-overview.html index c32917294a..bd9c00eef5 100644 --- a/agents-overview.html +++ b/agents-overview.html @@ -16,8 +16,8 @@ - - + + @@ -25,7 +25,7 @@ -

    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.

    Tool calling agentcomponent

    diff --git a/agents-tool-calling-agent-component.html b/agents-tool-calling-agent-component.html index 0839fd31f6..6c37d41a6c 100644 --- a/agents-tool-calling-agent-component.html +++ b/agents-tool-calling-agent-component.html @@ -16,8 +16,8 @@ - - + + @@ -25,7 +25,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-reference-api-examples.html b/api-reference-api-examples.html index dd991ac80e..cb750436a2 100644 --- a/api-reference-api-examples.html +++ b/api-reference-api-examples.html @@ -16,8 +16,8 @@ - - + + @@ -25,7 +25,7 @@ -

    API examples

    +

    API examples

    This page provides examples and practices for managing Langflow using the Langflow API.

    The Langflow API's OpenAPI spec can be viewed and tested at your Langflow deployment's docs endpoint. @@ -282,6 +282,6 @@ Results can be ordered with the order_by query string.


    _10
    curl -X DELETE \
    _10
    "$LANGFLOW_URL/api/v1/monitor/messages/session/different_session_id_2" \
    _10
    -H "accept: */*"

    Get transactions

    Retrieve all transactions (interactions between components) for a specific flow.

    -

    _10
    curl -X GET \
    _10
    "$LANGFLOW_URL/api/v1/monitor/transactions?flow_id=$FLOW_ID&page=1&size=50" \
    _10
    -H "accept: application/json"

    Search
    +

    _10
    curl -X GET \
    _10
    "$LANGFLOW_URL/api/v1/monitor/transactions?flow_id=$FLOW_ID&page=1&size=50" \
    _10
    -H "accept: application/json"

    Search
    \ No newline at end of file diff --git a/api.html b/api.html index f94fe51208..ec03c0c7e2 100644 --- a/api.html +++ b/api.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/add-user.html b/api/add-user.html index 64492b9108..87e39ce152 100644 --- a/api/add-user.html +++ b/api/add-user.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/auto-login.html b/api/auto-login.html index 4f1bd05c2f..6ca7457e1a 100644 --- a/api/auto-login.html +++ b/api/auto-login.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/build-flow.html b/api/build-flow.html index da2ee8aaaa..677e2e734b 100644 --- a/api/build-flow.html +++ b/api/build-flow.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/build-vertex-stream.html b/api/build-vertex-stream.html index c6684a6531..020a4f039e 100644 --- a/api/build-vertex-stream.html +++ b/api/build-vertex-stream.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/build-vertex.html b/api/build-vertex.html index ad5377611d..66c0c572fb 100644 --- a/api/build-vertex.html +++ b/api/build-vertex.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/check-if-store-has-api-key.html b/api/check-if-store-has-api-key.html index 5408ea8b0a..706eaa6826 100644 --- a/api/check-if-store-has-api-key.html +++ b/api/check-if-store-has-api-key.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/check-if-store-is-enabled.html b/api/check-if-store-is-enabled.html index 307da4141d..2270199a37 100644 --- a/api/check-if-store-is-enabled.html +++ b/api/check-if-store-is-enabled.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/create-api-key-route.html b/api/create-api-key-route.html index 78fcd8d636..03dac8b025 100644 --- a/api/create-api-key-route.html +++ b/api/create-api-key-route.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/create-flow.html b/api/create-flow.html index b2059dc822..7a420628c6 100644 --- a/api/create-flow.html +++ b/api/create-flow.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/create-flows.html b/api/create-flows.html index 490823586a..cb7cc69ce0 100644 --- a/api/create-flows.html +++ b/api/create-flows.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/create-folder.html b/api/create-folder.html index 01cfad59ff..fe38237397 100644 --- a/api/create-folder.html +++ b/api/create-folder.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/create-upload-file.html b/api/create-upload-file.html index d633970922..4722f9f4e6 100644 --- a/api/create-upload-file.html +++ b/api/create-upload-file.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/create-variable.html b/api/create-variable.html index bc20943d83..538a011f10 100644 --- a/api/create-variable.html +++ b/api/create-variable.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/custom-component-update.html b/api/custom-component-update.html index 4b31c0be93..eec0ee6a1e 100644 --- a/api/custom-component-update.html +++ b/api/custom-component-update.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/custom-component.html b/api/custom-component.html index dcf5d54b0f..35fa107c19 100644 --- a/api/custom-component.html +++ b/api/custom-component.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/delete-api-key-route.html b/api/delete-api-key-route.html index 50f2f34773..ddd137d855 100644 --- a/api/delete-api-key-route.html +++ b/api/delete-api-key-route.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/delete-file.html b/api/delete-file.html index 981ef99e9a..0928e29217 100644 --- a/api/delete-file.html +++ b/api/delete-file.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/delete-flow.html b/api/delete-flow.html index bebbb06496..431df26567 100644 --- a/api/delete-flow.html +++ b/api/delete-flow.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/delete-folder.html b/api/delete-folder.html index 2cc34afa25..c23ccc9ff0 100644 --- a/api/delete-folder.html +++ b/api/delete-folder.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/delete-messages-session.html b/api/delete-messages-session.html index e761828386..c94930c29a 100644 --- a/api/delete-messages-session.html +++ b/api/delete-messages-session.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/delete-messages.html b/api/delete-messages.html index bfb66e9e8a..946862c270 100644 --- a/api/delete-messages.html +++ b/api/delete-messages.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/delete-multiple-flows.html b/api/delete-multiple-flows.html index 03945aa192..c493704c84 100644 --- a/api/delete-multiple-flows.html +++ b/api/delete-multiple-flows.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/delete-user.html b/api/delete-user.html index 47d1026a2b..23bd806094 100644 --- a/api/delete-user.html +++ b/api/delete-user.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/delete-variable.html b/api/delete-variable.html index 4b4c2163c0..3d89f247b1 100644 --- a/api/delete-variable.html +++ b/api/delete-variable.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/delete-vertex-builds.html b/api/delete-vertex-builds.html index 12e503a897..db06e57479 100644 --- a/api/delete-vertex-builds.html +++ b/api/delete-vertex-builds.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/download-component.html b/api/download-component.html index 328c8d9946..4b038c4ff3 100644 --- a/api/download-component.html +++ b/api/download-component.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/download-file-1.html b/api/download-file-1.html index 716176d626..454e86b7c3 100644 --- a/api/download-file-1.html +++ b/api/download-file-1.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/download-file.html b/api/download-file.html index a8dcf99c99..d5243a49eb 100644 --- a/api/download-file.html +++ b/api/download-file.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/download-image.html b/api/download-image.html index 1f75c61d27..5194aa6337 100644 --- a/api/download-image.html +++ b/api/download-image.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/download-multiple-file.html b/api/download-multiple-file.html index 3ce4af747f..498ac3adf4 100644 --- a/api/download-multiple-file.html +++ b/api/download-multiple-file.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/download-profile-picture.html b/api/download-profile-picture.html index 9adadcbf0d..d56347937b 100644 --- a/api/download-profile-picture.html +++ b/api/download-profile-picture.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/experimental-run-flow.html b/api/experimental-run-flow.html index 072cffc167..b48d494656 100644 --- a/api/experimental-run-flow.html +++ b/api/experimental-run-flow.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/get-all.html b/api/get-all.html index e6b3b900eb..f1ae0f73a1 100644 --- a/api/get-all.html +++ b/api/get-all.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/get-api-keys-route.html b/api/get-api-keys-route.html index 5d9ed86a02..9a019db3fe 100644 --- a/api/get-api-keys-route.html +++ b/api/get-api-keys-route.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/get-components.html b/api/get-components.html index ee7a27aace..f194e404b3 100644 --- a/api/get-components.html +++ b/api/get-components.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/get-config.html b/api/get-config.html index 4337004058..3d225ffaba 100644 --- a/api/get-config.html +++ b/api/get-config.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/get-list-of-components-liked-by-user.html b/api/get-list-of-components-liked-by-user.html index fde2a70824..3709c6a0a2 100644 --- a/api/get-list-of-components-liked-by-user.html +++ b/api/get-list-of-components-liked-by-user.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/get-messages.html b/api/get-messages.html index faff5eacf6..31c5c8a3df 100644 --- a/api/get-messages.html +++ b/api/get-messages.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/get-starter-projects.html b/api/get-starter-projects.html index 03e46e7afb..b2f31e42cb 100644 --- a/api/get-starter-projects.html +++ b/api/get-starter-projects.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/get-tags.html b/api/get-tags.html index 073f5cb038..bf9f746c40 100644 --- a/api/get-tags.html +++ b/api/get-tags.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/get-task-status.html b/api/get-task-status.html index 37899459c5..db4a3924f2 100644 --- a/api/get-task-status.html +++ b/api/get-task-status.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/get-transactions.html b/api/get-transactions.html index a5813317ba..9b870c3faf 100644 --- a/api/get-transactions.html +++ b/api/get-transactions.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/get-version.html b/api/get-version.html index f1054b9aa4..47ecb5e551 100644 --- a/api/get-version.html +++ b/api/get-version.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/get-vertex-builds.html b/api/get-vertex-builds.html index 8a557b7148..9ab4e9c84f 100644 --- a/api/get-vertex-builds.html +++ b/api/get-vertex-builds.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/handle-messages.html b/api/handle-messages.html index 8b77350e85..0a6b85579b 100644 --- a/api/handle-messages.html +++ b/api/handle-messages.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/handle-sse.html b/api/handle-sse.html index 23837d5a8e..524f96da37 100644 --- a/api/handle-sse.html +++ b/api/handle-sse.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/health-check.html b/api/health-check.html index e5b8567523..18d469049f 100644 --- a/api/health-check.html +++ b/api/health-check.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/health.html b/api/health.html index 173a9a0b8c..119d5332cf 100644 --- a/api/health.html +++ b/api/health.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/like-component.html b/api/like-component.html index 754b591a19..29d2e159a5 100644 --- a/api/like-component.html +++ b/api/like-component.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/list-files.html b/api/list-files.html index 2df997ea3e..9ca7e76794 100644 --- a/api/list-files.html +++ b/api/list-files.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/list-profile-pictures.html b/api/list-profile-pictures.html index b41fd22e77..e527aa138c 100644 --- a/api/list-profile-pictures.html +++ b/api/list-profile-pictures.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/login-to-get-access-token.html b/api/login-to-get-access-token.html index b8afc83baa..7a05a02985 100644 --- a/api/login-to-get-access-token.html +++ b/api/login-to-get-access-token.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/logout.html b/api/logout.html index dac2c09c88..f6cc6371f8 100644 --- a/api/logout.html +++ b/api/logout.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/logs.html b/api/logs.html index c91a06868b..f448501435 100644 --- a/api/logs.html +++ b/api/logs.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/patch-user.html b/api/patch-user.html index 345a8de020..0829691c10 100644 --- a/api/patch-user.html +++ b/api/patch-user.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/post-validate-code.html b/api/post-validate-code.html index 6d62285030..3b0dfe8cfc 100644 --- a/api/post-validate-code.html +++ b/api/post-validate-code.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/post-validate-prompt.html b/api/post-validate-prompt.html index 923515a874..b5c9e3f70a 100644 --- a/api/post-validate-prompt.html +++ b/api/post-validate-prompt.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/process-1.html b/api/process-1.html index 00de4eb9d0..f3a25530b1 100644 --- a/api/process-1.html +++ b/api/process-1.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/process.html b/api/process.html index a5e6f07809..3c8de828cc 100644 --- a/api/process.html +++ b/api/process.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/read-all-users.html b/api/read-all-users.html index d616b36d8c..d4897f37ba 100644 --- a/api/read-all-users.html +++ b/api/read-all-users.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/read-basic-examples.html b/api/read-basic-examples.html index ef5c623379..3a51042b53 100644 --- a/api/read-basic-examples.html +++ b/api/read-basic-examples.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/read-current-user.html b/api/read-current-user.html index 7df7436845..f1711f0d98 100644 --- a/api/read-current-user.html +++ b/api/read-current-user.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/read-flow.html b/api/read-flow.html index efd0145e23..a6cd798562 100644 --- a/api/read-flow.html +++ b/api/read-flow.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/read-flows.html b/api/read-flows.html index 8630fff1f6..2672ab12bc 100644 --- a/api/read-flows.html +++ b/api/read-flows.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/read-folder.html b/api/read-folder.html index b226e17c7a..404f698d40 100644 --- a/api/read-folder.html +++ b/api/read-folder.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/read-folders.html b/api/read-folders.html index cce04d88c7..af3bb0bcc7 100644 --- a/api/read-folders.html +++ b/api/read-folders.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/read-variables.html b/api/read-variables.html index 4c5f9396f8..5ce4ced7ff 100644 --- a/api/read-variables.html +++ b/api/read-variables.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/refresh-token.html b/api/refresh-token.html index 211762b91c..6970adb2d5 100644 --- a/api/refresh-token.html +++ b/api/refresh-token.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/reset-password.html b/api/reset-password.html index ba2bfa9204..03b9cbb595 100644 --- a/api/reset-password.html +++ b/api/reset-password.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/retrieve-vertices-order.html b/api/retrieve-vertices-order.html index 7c72641d0a..a5ebaa0c99 100644 --- a/api/retrieve-vertices-order.html +++ b/api/retrieve-vertices-order.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/save-store-api-key.html b/api/save-store-api-key.html index 7aa11fcde0..eb8f7b3462 100644 --- a/api/save-store-api-key.html +++ b/api/save-store-api-key.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/share-component.html b/api/share-component.html index 19dd3a9427..0467b21d4f 100644 --- a/api/share-component.html +++ b/api/share-component.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/simplified-run-flow.html b/api/simplified-run-flow.html index e55552287e..91754f5751 100644 --- a/api/simplified-run-flow.html +++ b/api/simplified-run-flow.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/stream-logs.html b/api/stream-logs.html index 9f1ce12e05..9e1f47b0e9 100644 --- a/api/stream-logs.html +++ b/api/stream-logs.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/update-flow.html b/api/update-flow.html index b86865b33c..e512a073d5 100644 --- a/api/update-flow.html +++ b/api/update-flow.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/update-folder.html b/api/update-folder.html index 9acffed0c8..3e02962eff 100644 --- a/api/update-folder.html +++ b/api/update-folder.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/update-message.html b/api/update-message.html index e16a227379..795b84856b 100644 --- a/api/update-message.html +++ b/api/update-message.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/update-session-id.html b/api/update-session-id.html index 12365f1a8c..39b7c1d287 100644 --- a/api/update-session-id.html +++ b/api/update-session-id.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/update-shared-component.html b/api/update-shared-component.html index 255d038a56..4e1f9a00d3 100644 --- a/api/update-shared-component.html +++ b/api/update-shared-component.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/update-variable.html b/api/update-variable.html index 027a234421..16989143c5 100644 --- a/api/update-variable.html +++ b/api/update-variable.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/upload-file-1.html b/api/upload-file-1.html index 360c485c2a..7ea8bc1748 100644 --- a/api/upload-file-1.html +++ b/api/upload-file-1.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/upload-file-2.html b/api/upload-file-2.html index 08ff1c3ac2..b4c51293bb 100644 --- a/api/upload-file-2.html +++ b/api/upload-file-2.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/upload-file.html b/api/upload-file.html index eb727edc04..41ae0dd465 100644 --- a/api/upload-file.html +++ b/api/upload-file.html @@ -16,8 +16,8 @@ - - + + diff --git a/api/webhook-run-flow.html b/api/webhook-run-flow.html index c20c3f8d90..73485604ca 100644 --- a/api/webhook-run-flow.html +++ b/api/webhook-run-flow.html @@ -16,8 +16,8 @@ - - + + diff --git a/assets/images/component-structured-output-7bb5a996464cb83d4c94a893419bb176.png b/assets/images/component-structured-output-7bb5a996464cb83d4c94a893419bb176.png new file mode 100644 index 0000000000..859982af5a Binary files /dev/null and b/assets/images/component-structured-output-7bb5a996464cb83d4c94a893419bb176.png differ diff --git a/assets/js/14f42f9e.5360b4b2.js b/assets/js/14f42f9e.5360b4b2.js deleted file mode 100644 index c514750914..0000000000 --- a/assets/js/14f42f9e.5360b4b2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[444],{41671:(e,t,o)=>{o.r(t),o.d(t,{CH:()=>u,assets:()=>d,chCodeConfig:()=>h,contentTitle:()=>p,default:()=>m,frontMatter:()=>c,metadata:()=>n,toc:()=>f});const n=JSON.parse('{"id":"API-Reference/api-reference-api-examples","title":"API examples","description":"This page provides examples and practices for managing Langflow using the Langflow API.","source":"@site/docs/API-Reference/api-reference-api-examples.md","sourceDirName":"API-Reference","slug":"/api-reference-api-examples","permalink":"/api-reference-api-examples","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"API examples","slug":"/api-reference-api-examples"},"sidebar":"docs","previous":{"title":"Telemetry","permalink":"/contributing-telemetry"}}');var s=o(74848),a=o(28453),l=o(24754),r=o(65537),i=o(79329);const c={title:"API examples",slug:"/api-reference-api-examples"},p=void 0,d={},u={annotations:l.hk,Code:l.Cy},h={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},f=[{value:"Export values",id:"export-values",level:2},{value:"Base",id:"base",level:2},{value:"Get all components",id:"get-all-components",level:3},{value:"Run flow",id:"run-flow",level:3},{value:"Webhook run flow",id:"webhook-run-flow",level:3},{value:"Process",id:"process",level:3},{value:"Predict",id:"predict",level:3},{value:"Get task status",id:"get-task-status",level:3},{value:"Create upload file (Deprecated)",id:"create-upload-file-deprecated",level:3},{value:"Get version",id:"get-version",level:3},{value:"Get config",id:"get-config",level:3},{value:"Build",id:"build",level:2},{value:"Build flow",id:"build-flow",level:3},{value:"Configure the build endpoint",id:"configure-the-build-endpoint",level:3},{value:"Files",id:"files",level:2},{value:"Upload file",id:"upload-file",level:3},{value:"Upload image files",id:"upload-image-files",level:4},{value:"List files",id:"list-files",level:3},{value:"Download file",id:"download-file",level:3},{value:"Download image",id:"download-image",level:3},{value:"Delete file",id:"delete-file",level:3},{value:"Flows",id:"flows",level:2},{value:"Create flow",id:"create-flow",level:3},{value:"Read flows",id:"read-flows",level:3},{value:"Read flow",id:"read-flow",level:3},{value:"Update flow",id:"update-flow",level:3},{value:"Delete flow",id:"delete-flow",level:3},{value:"Create flows",id:"create-flows",level:3},{value:"Upload flows",id:"upload-flows",level:3},{value:"Download all flows",id:"download-all-flows",level:3},{value:"Read basic examples",id:"read-basic-examples",level:3},{value:"Folders",id:"folders",level:2},{value:"Read folders",id:"read-folders",level:3},{value:"Create folder",id:"create-folder",level:3},{value:"Read folder",id:"read-folder",level:3},{value:"Update folder",id:"update-folder",level:3},{value:"Delete folder",id:"delete-folder",level:3},{value:"Download folder",id:"download-folder",level:3},{value:"Upload folder",id:"upload-folder",level:3},{value:"Logs",id:"logs",level:2},{value:"Stream logs",id:"stream-logs",level:3},{value:"Retrieve logs with optional parameters",id:"retrieve-logs-with-optional-parameters",level:3},{value:"Monitor",id:"monitor",level:2},{value:"Get Vertex builds",id:"get-vertex-builds",level:3},{value:"Delete Vertex builds",id:"delete-vertex-builds",level:3},{value:"Get messages",id:"get-messages",level:3},{value:"Delete messages",id:"delete-messages",level:3},{value:"Update message",id:"update-message",level:3},{value:"Update session ID",id:"update-session-id",level:3},{value:"Delete messages by session",id:"delete-messages-by-session",level:3},{value:"Get transactions",id:"get-transactions",level:3}];function g(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",h4:"h4",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return u||b("CH",!1),u.Code||b("CH.Code",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.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","\n",(0,s.jsx)(t.p,{children:"This page provides examples and practices for managing Langflow using the Langflow API."}),"\n",(0,s.jsxs)(t.p,{children:["The Langflow API's OpenAPI spec can be viewed and tested at your Langflow deployment's ",(0,s.jsx)(t.code,{children:"docs"})," endpoint.\nFor example, ",(0,s.jsx)(t.code,{children:"http://127.0.0.1:7860/docs"}),"."]}),"\n",(0,s.jsx)(t.h2,{id:"export-values",children:"Export values"}),"\n",(0,s.jsx)(t.p,{children:"You might find it helpful to set the following environment variables in your terminal."}),"\n",(0,s.jsx)(t.p,{children:"The examples in this guide use environment variables for these values."}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Export your Langflow URL in your terminal.\nLangflow starts by default at ",(0,s.jsx)(t.code,{children:"http://127.0.0.1:7860"}),"."]}),"\n"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'export LANGFLOW_URL="http://127.0.0.1:7860"',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Export the ",(0,s.jsx)(t.code,{children:"flow-id"})," in your terminal.\nThe ",(0,s.jsx)(t.code,{children:"flow-id"})," is found in the ",(0,s.jsx)(t.a,{href:"/concepts-api",children:"API pane"})," or in the flow's URL."]}),"\n"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'export FLOW_ID="359cd752-07ea-46f2-9d3b-a4407ef618da"',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Export the ",(0,s.jsx)(t.code,{children:"folder-id"})," in your terminal.\nTo find your folder ID, call the Langflow ",(0,s.jsx)(t.a,{href:"#read-folders",children:"/api/v1/folders/"})," endpoint for a list of folders."]}),"\n"]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/folders/" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{}}]},{tokens:[{content:" {",props:{}}]},{tokens:[{content:' "name": "My Projects",',props:{}}]},{tokens:[{content:' "description": "Manage your own projects. Download and upload folders.",',props:{}}]},{tokens:[{content:' "id": "1415de42-8f01-4f36-bf34-539f23e47466",',props:{}}]},{tokens:[{content:' "parent_id": null',props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:"]",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(t.p,{children:["Export the ",(0,s.jsx)(t.code,{children:"folder-id"})," as an environment variable."]}),"\n",(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'export FOLDER_ID="1415de42-8f01-4f36-bf34-539f23e47466"',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Export the Langflow API key as an environment variable.\nTo create a Langflow API key, run the following command in the Langflow CLI."}),"\n"]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow api-key",props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"API Key Created Successfully:",props:{}}]},{tokens:[{content:"sk-...",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.p,{children:"Export the generated API key as an environment variable."}),"\n",(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'export LANGFLOW_API_KEY="sk-..."',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(t.h2,{id:"base",children:"Base"}),"\n",(0,s.jsx)(t.p,{children:"Use the base Langflow API to run your flow and retrieve configuration information."}),"\n",(0,s.jsx)(t.h3,{id:"get-all-components",children:"Get all components"}),"\n",(0,s.jsx)(t.p,{children:"This operation returns a dictionary of all Langflow components."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/all" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"A dictionary of all Langflow components.",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"run-flow",children:"Run flow"}),"\n",(0,s.jsxs)(t.p,{children:["Execute a specified flow by ID or name.\nThe flow is executed as a batch, but LLM responses can be streamed.\nFor more configuration options when building your flow, use the ",(0,s.jsxs)(t.a,{href:"/api-reference-api-examples#build-flow",children:[(0,s.jsx)(t.code,{children:"/build"})," endpoint"]})," instead."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/run/$FLOW_ID?stream=false" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: application/json" \\',props:{}}]},{tokens:[{content:" -d '{}'",props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'{"session_id":"947eaf64-bc35-4431-ae52-8b30d819915b","outputs":[{"inputs":{},"outputs":[{"results":{"message":{"text_key":"text","data":{"timestamp":"2025-02-04T21:44:02+00:00","sender":"Machine","sender_name":"AI","session_id":"947eaf64-bc35-4431-ae52-8b30d819915b","text":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","files":[],"error":false,"edit":false,"properties":{"text_color":"","background_color":"","edited":false,"source":{"id":"OpenAIModel-g7uMN","display_name":"OpenAI","source":"gpt-4o-mini"},"icon":"OpenAI","allow_markdown":false,"positive_feedback":null,"state":"complete","targets":[]},"category":"message","content_blocks":[],"id":"dcb15280-a16c-489a-9818-bec697fd123e","flow_id":"947eaf64-bc35-4431-ae52-8b30d819915b"},"default_value":"","text":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","sender":"Machine","sender_name":"AI","files":[],"session_id":"947eaf64-bc35-4431-ae52-8b30d819915b","timestamp":"2025-02-04T21:44:02+00:00","flow_id":"947eaf64-bc35-4431-ae52-8b30d819915b","error":false,"edit":false,"properties":{"text_color":"","background_color":"","edited":false,"source":{"id":"OpenAIModel-g7uMN","display_name":"OpenAI","source":"gpt-4o-mini"},"icon":"OpenAI","allow_markdown":false,"positive_feedback":null,"state":"complete","targets":[]},"category":"message","content_blocks":[]}},"artifacts":{"message":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","sender":"Machine","sender_name":"AI","files":[],"type":"object"},"outputs":{"message":{"message":{"timestamp":"2025-02-04T21:44:02","sender":"Machine","sender_name":"AI","session_id":"947eaf64-bc35-4431-ae52-8b30d819915b","text":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","files":[],"error":false,"edit":false,"properties":{"text_color":"","background_color":"","edited":false,"source":{"id":"OpenAIModel-g7uMN","display_name":"OpenAI","source":"gpt-4o-mini"},"icon":"OpenAI","allow_markdown":false,"positive_feedback":null,"state":"complete","targets":[]},"category":"message","content_blocks":[],"id":"dcb15280-a16c-489a-9818-bec697fd123e","flow_id":"947eaf64-bc35-4431-ae52-8b30d819915b"},"type":"message"}},"logs":{"message":[]},"messages":[{"message":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","sender":"Machine","sender_name":"AI","session_id":"947eaf64-bc35-4431-ae52-8b30d819915b","stream_url":null,"component_id":"ChatOutput-HnFx1","files":[],"type":"message"}],"timedelta":null,"duration":null,"component_display_name":"Chat Output","component_id":"ChatOutput-HnFx1","used_frozen_result":false}]}]}',props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(t.p,{children:["To stream LLM token responses, append the ",(0,s.jsx)(t.code,{children:"?stream=true"})," query parameter to the request. LLM chat responses are streamed back as ",(0,s.jsx)(t.code,{children:"token"})," events until the ",(0,s.jsx)(t.code,{children:"end"})," event closes the connection."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/run/$FLOW_ID?stream=true" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: application/json" \\',props:{}}]},{tokens:[{content:' -H "x-api-key: $LANGFLOW_API_KEY" \\',props:{}}]},{tokens:[{content:' -d \'{"message": "Tell me something interesting!"}\'',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'{"event": "add_message", "data": {"timestamp": "2025-02-05T14:46:24", "sender": "User", "sender_name": "User", "session_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "text": "Hello", "files": [], "error": false, "edit": false, "properties": {"text_color": "", "background_color": "", "edited": false, "source": {"id": null, "display_name": null, "source": null}, "icon": "", "allow_markdown": false, "positive_feedback": null, "state": "complete", "targets": []}, "category": "message", "content_blocks": [], "id": "1d6044d6-332c-431a-a50c-dcea5deee4ab", "flow_id": "947eaf64-bc35-4431-ae52-8b30d819915b"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "add_message", "data": {"timestamp": "2025-02-05T14:46:24", "sender": "Machine", "sender_name": "AI", "session_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "text": "", "files": [], "error": false, "edit": false, "properties": {"text_color": "", "background_color": "", "edited": false, "source": {"id": "OpenAIModel-g7uMN", "display_name": "OpenAI", "source": "gpt-4o-mini"}, "icon": "OpenAI", "allow_markdown": false, "positive_feedback": null, "state": "complete", "targets": []}, "category": "message", "content_blocks": [], "id": "be9db128-eaac-49db-bfd7-ed63406ebbcf", "flow_id": "947eaf64-bc35-4431-ae52-8b30d819915b"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "token", "data": {"chunk": "", "id": "be9db128-eaac-49db-bfd7-ed63406ebbcf", "timestamp": "2025-02-05 14:46:25 UTC"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "token", "data": {"chunk": "Hello", "id": "be9db128-eaac-49db-bfd7-ed63406ebbcf", "timestamp": "2025-02-05 14:46:25 UTC"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "token", "data": {"chunk": "!", "id": "be9db128-eaac-49db-bfd7-ed63406ebbcf", "timestamp": "2025-02-05 14:46:25 UTC"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "token", "data": {"chunk": " \\ud83c\\udf1f", "id": "be9db128-eaac-49db-bfd7-ed63406ebbcf", "timestamp": "2025-02-05 14:46:25 UTC"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "end", "data": {"result": {"session_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "outputs": [{"inputs": {}, "outputs": [{"results": {"message": {"text_key": "text", "data": {"timestamp": "2025-02-05T14:46:24+00:00", "sender": "Machine", "sender_name": "AI", "session_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "text": "", "files": [], "error": false, "edit": false, "properties": {"text_color": "", "background_color": "", "edited": false, "source": {"id": "OpenAIModel-g7uMN", "display_name": "OpenAI", "source": "gpt-4o-mini"}, "icon": "OpenAI", "allow_markdown": false, "positive_feedback": null, "state": "complete", "targets": []}, "category": "message", "content_blocks": [], "id": "be9db128-eaac-49db-bfd7-ed63406ebbcf", "flow_id": "947eaf64-bc35-4431-ae52-8b30d819915b"}, "default_value": "", "text": "", "sender": "Machine", "sender_name": "AI", "files": [], "session_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "timestamp": "2025-02-05T14:46:24+00:00", "flow_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "error": false, "edit": false, "properties": {"text_color": "", "background_color": "", "edited": false, "source": {"id": "OpenAIModel-g7uMN", "display_name": "OpenAI", "source": "gpt-4o-mini"}, "icon": "OpenAI", "allow_markdown": false, "positive_feedback": null, "state": "complete", "targets": []}, "category": "message", "content_blocks": []}, "text": ""}, "artifacts": {"message": "", "sender": "Machine", "sender_name": "AI", "stream_url": "/api/v1/build/947eaf64-bc35-4431-ae52-8b30d819915b/ChatOutput-HnFx1/stream", "files": [], "type": "stream"}, "outputs": {"message": {"message": {"timestamp": "2025-02-05T14:46:24", "sender": "Machine", "sender_name": "AI", "session_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "text": "Hello! \\ud83c\\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!", "files": [], "error": false, "edit": false, "properties": {"text_color": "", "background_color": "", "edited": false, "source": {"id": "OpenAIModel-g7uMN", "display_name": "OpenAI", "source": "gpt-4o-mini"}, "icon": "OpenAI", "allow_markdown": false, "positive_feedback": null, "state": "complete", "targets": []}, "category": "message", "content_blocks": [], "id": "be9db128-eaac-49db-bfd7-ed63406ebbcf", "flow_id": "947eaf64-bc35-4431-ae52-8b30d819915b"}, "type": "message"}}, "logs": {"message": []}, "messages": [], "timedelta": null, "duration": null, "component_display_name": "Chat Output", "component_id": "ChatOutput-HnFx1", "used_frozen_result": false}]}]}}}',props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(t.p,{children:["This result is abbreviated, but illustrates where the ",(0,s.jsx)(t.code,{children:"end"})," event completes the LLM's token streaming response."]}),"\n",(0,s.jsx)(t.h3,{id:"webhook-run-flow",children:"Webhook run flow"}),"\n",(0,s.jsx)(t.p,{children:"The webhook endpoint triggers flow execution with an HTTP POST request."}),"\n",(0,s.jsxs)(t.p,{children:["When a ",(0,s.jsx)(t.strong,{children:"Webhook"})," component is added to the workspace, a new ",(0,s.jsx)(t.strong,{children:"Webhook cURL"})," tab becomes available in the ",(0,s.jsx)(t.strong,{children:"API"})," pane that contains an HTTP POST request for triggering the webhook component, similar to the call in this example."]}),"\n",(0,s.jsxs)(t.p,{children:["To test the ",(0,s.jsx)(t.strong,{children:"Webhook"})," component in your flow, see the ",(0,s.jsx)(t.a,{href:"/components-data#webhook",children:"Webhook component"}),"."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/webhook/$FLOW_ID" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: application/json" \\',props:{}}]},{tokens:[{content:' -d \'{"data": "example-data"}\'',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:' {"message":"Task started in the background","status":"in progress"}',props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"process",children:"Process"}),"\n",(0,s.jsx)(t.admonition,{type:"info",children:(0,s.jsxs)(t.p,{children:["This endpoint is deprecated. Use the ",(0,s.jsx)(t.code,{children:"/run"})," endpoint instead."]})}),"\n",(0,s.jsx)(t.h3,{id:"predict",children:"Predict"}),"\n",(0,s.jsx)(t.admonition,{type:"info",children:(0,s.jsxs)(t.p,{children:["This endpoint is deprecated. Use the ",(0,s.jsx)(t.code,{children:"/run"})," endpoint instead."]})}),"\n",(0,s.jsx)(t.h3,{id:"get-task-status",children:"Get task status"}),"\n",(0,s.jsx)(t.p,{children:"Get the status of a task."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/task/TASK_ID" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:' "status": "Task status",',props:{}}]},{tokens:[{content:' "result": "Task result if completed"',props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"create-upload-file-deprecated",children:"Create upload file (Deprecated)"}),"\n",(0,s.jsx)(t.admonition,{type:"info",children:(0,s.jsxs)(t.p,{children:["This endpoint is deprecated. Use the ",(0,s.jsx)(t.code,{children:"/file"})," endpoint instead."]})}),"\n",(0,s.jsx)(t.h3,{id:"get-version",children:"Get version"}),"\n",(0,s.jsx)(t.p,{children:"Get the version of the Langflow API."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/version" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:' "version": "1.1.1",',props:{}}]},{tokens:[{content:' "main_version": "1.1.1",',props:{}}]},{tokens:[{content:' "package": "Langflow"',props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"get-config",children:"Get config"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve the Langflow configuration information."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/config" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:' "feature_flags": {',props:{}}]},{tokens:[{content:' "mvp_components": false',props:{}}]},{tokens:[{content:" },",props:{}}]},{tokens:[{content:' "frontend_timeout": 0,',props:{}}]},{tokens:[{content:' "auto_saving": true,',props:{}}]},{tokens:[{content:' "auto_saving_interval": 1000,',props:{}}]},{tokens:[{content:' "health_check_max_retries": 5,',props:{}}]},{tokens:[{content:' "max_file_size_upload": 100',props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h2,{id:"build",children:"Build"}),"\n",(0,s.jsxs)(t.p,{children:["Use the ",(0,s.jsx)(t.code,{children:"/build"})," endpoint to build vertices and flows, and execute those flows with streaming event responses."]}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"/build"})," endpoint offers additional configuration for running flows."]}),"\n",(0,s.jsxs)(t.p,{children:["For a simpler execution of your flows, use the ",(0,s.jsxs)(t.a,{href:"/api-reference-api-examples#run-flow",children:[(0,s.jsx)(t.code,{children:"/run"})," endpoint"]})," instead."]}),"\n",(0,s.jsx)(t.h3,{id:"build-flow",children:"Build flow"}),"\n",(0,s.jsxs)(t.p,{children:["This example builds a flow with a given ",(0,s.jsx)(t.code,{children:"flow_id"}),"."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/build/$FLOW_ID/flow" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: application/json" \\',props:{}}]},{tokens:[{content:' -H "x-api-key: $LANGFLOW_API_KEY" \\',props:{}}]},{tokens:[{content:' -d \'{"input_value": "hello, how are you doing?"}\'',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'{"event": "vertices_sorted", "data": {"ids": ["ChatInput-TAEvF"], "to_run": ["Prompt-2gtLN", "ChatInput-TAEvF", "ChatOutput-HnFx1", "OpenAIModel-g7uMN"]}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "add_message", "data": {"timestamp": "2025-02-05T14:45:33", "sender": "User", "sender_name": "User", "session_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "text": "Hello", "files": [], "error": false, "edit": false, "properties": {"text_color": "", "background_color": "", "edited": false, "source": {"id": null, "display_name": null, "source": null}, "icon": "", "allow_markdown": false, "positive_feedback": null, "state": "complete", "targets": []}, "category": "message", "content_blocks": [], "id": "12be981b-9816-4361-b0f9-ce65d0ba6cc1", "flow_id": "947eaf64-bc35-4431-ae52-8b30d819915b"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "end_vertex", "data": {"build_data": {"id": "ChatInput-TAEvF", "inactivated_vertices": [], "next_vertices_ids": ["Prompt-2gtLN"], "top_level_vertices": ["Prompt-2gtLN"], "valid": true, "params": "- Files: []\\n Message: Hello\\n Sender: User\\n Sender Name: User\\n Type: object\\n", "data": {"results": {"message": {"text_key": "text", "data": {"timestamp": "2025-02-05T14:45:33+00:00", "sender": "User", "sender_name": "User", "session_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "text": "Hello", "files": [], "error": false, "edit": false, "properties": {"text_color": "", "background_color": "", "edited": false, "source": {"id": null, "display_name": null, "source": null}, "icon": "", "allow_markdown": false, "positive_feedback": null, "state": "complete", "targets": []}, "category": "message", "content_blocks": [], "id": "12be981b-9816-4361-b0f9-ce65d0ba6cc1", "flow_id": "947eaf64-bc35-4431-ae52-8b30d819915b"}, "default_value": "", "text": "Hello", "sender": "User", "sender_name": "User", "files": [], "session_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "timestamp": "2025-02-05T14:45:33+00:00", "flow_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "error": false, "edit": false, "properties": {"text_color": "", "background_color": "", "edited": false, "source": {"id": null, "display_name": null, "source": null}, "icon": "", "allow_markdown": false, "positive_feedback": null, "state": "complete", "targets": []}, "category": "message", "content_blocks": []}}, "outputs": {"message": {"message": {"timestamp": "2025-02-05T14:45:33+00:00", "sender": "User", "sender_name": "User", "session_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "text": "Hello", "files": [], "error": false, "edit": false, "properties": {"text_color": "", "background_color": "", "edited": false, "source": {"id": null, "display_name": null, "source": null}, "icon": "", "allow_markdown": false, "positive_feedback": null, "state": "complete", "targets": []}, "category": "message", "content_blocks": [], "id": "12be981b-9816-4361-b0f9-ce65d0ba6cc1", "flow_id": "947eaf64-bc35-4431-ae52-8b30d819915b"}, "type": "message"}}, "logs": {"message": []}, "message": {"message": "Hello", "sender": "User", "sender_name": "User", "files": [], "type": "object"}, "artifacts": {"message": "Hello", "sender": "User", "sender_name": "User", "files": [], "type": "object"}, "timedelta": 0.01409304200205952, "duration": "14 ms", "used_frozen_result": false}, "timestamp": "2025-02-05T14:45:33.486696Z"}}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "end_vertex", "data": {"build_data": {"id": "Prompt-2gtLN", "inactivated_vertices": [], "next_vertices_ids": ["OpenAIModel-g7uMN"], "top_level_vertices": ["OpenAIModel-g7uMN"], "valid": true, "params": "None", "data": {"results": {}, "outputs": {"prompt": {"message": "Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh.", "type": "text"}}, "logs": {"prompt": []}, "message": {"prompt": {"repr": "Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh.", "raw": "Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh.", "type": "text"}}, "artifacts": {"prompt": {"repr": "Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh.", "raw": "Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh.", "type": "text"}}, "timedelta": 0.005742790992371738, "duration": "6 ms", "used_frozen_result": false}, "timestamp": "2025-02-05T14:45:33.503829Z"}}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "end_vertex", "data": {"build_data": {"id": "OpenAIModel-g7uMN", "inactivated_vertices": [], "next_vertices_ids": ["ChatOutput-HnFx1"], "top_level_vertices": ["ChatOutput-HnFx1"], "valid": true, "params": "None", "data": {"results": {}, "outputs": {"text_output": {"message": "Hello! \\ud83c\\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!", "type": "text"}, "model_output": {"message": "", "type": "unknown"}}, "logs": {"text_output": []}, "message": {"text_output": {"repr": "Hello! \\ud83c\\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!", "raw": "Hello! \\ud83c\\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!", "type": "text"}}, "artifacts": {"text_output": {"repr": "Hello! \\ud83c\\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!", "raw": "Hello! \\ud83c\\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!", "type": "text"}}, "timedelta": 1.8065362079942133, "duration": "1.81 seconds", "used_frozen_result": false}, "timestamp": "2025-02-05T14:45:35.310876Z"}}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "add_message", "data": {"timestamp": "2025-02-05T14:45:35", "sender": "Machine", "sender_name": "AI", "session_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "text": "Hello! \\ud83c\\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!", "files": [], "error": false, "edit": false, "properties": {"text_color": "", "background_color": "", "edited": false, "source": {"id": "OpenAIModel-g7uMN", "display_name": "OpenAI", "source": "gpt-4o-mini"}, "icon": "OpenAI", "allow_markdown": false, "positive_feedback": null, "state": "complete", "targets": []}, "category": "message", "content_blocks": [], "id": "56db271c-1dab-4a47-8464-d0058ac0943b", "flow_id": "947eaf64-bc35-4431-ae52-8b30d819915b"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "end_vertex", "data": {"build_data": {"id": "ChatOutput-HnFx1", "inactivated_vertices": [], "next_vertices_ids": [], "top_level_vertices": [], "valid": true, "params": "- Files: []\\n Message: Hello! \\ud83c\\udf1f I\'m excited to help you get started on your journey to building\\n something fresh! What do you have in mind? Whether it\'s a project, an idea, or\\n a concept, let\'s dive in and make it happen!\\n Sender: Machine\\n Sender Name: AI\\n Type: object\\n", "data": {"results": {"message": {"text_key": "text", "data": {"timestamp": "2025-02-05T14:45:35+00:00", "sender": "Machine", "sender_name": "AI", "session_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "text": "Hello! \\ud83c\\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!", "files": [], "error": false, "edit": false, "properties": {"text_color": "", "background_color": "", "edited": false, "source": {"id": "OpenAIModel-g7uMN", "display_name": "OpenAI", "source": "gpt-4o-mini"}, "icon": "OpenAI", "allow_markdown": false, "positive_feedback": null, "state": "complete", "targets": []}, "category": "message", "content_blocks": [], "id": "56db271c-1dab-4a47-8464-d0058ac0943b", "flow_id": "947eaf64-bc35-4431-ae52-8b30d819915b"}, "default_value": "", "text": "Hello! \\ud83c\\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!", "sender": "Machine", "sender_name": "AI", "files": [], "session_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "timestamp": "2025-02-05T14:45:35+00:00", "flow_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "error": false, "edit": false, "properties": {"text_color": "", "background_color": "", "edited": false, "source": {"id": "OpenAIModel-g7uMN", "display_name": "OpenAI", "source": "gpt-4o-mini"}, "icon": "OpenAI", "allow_markdown": false, "positive_feedback": null, "state": "complete", "targets": []}, "category": "message", "content_blocks": []}}, "outputs": {"message": {"message": {"timestamp": "2025-02-05T14:45:35+00:00", "sender": "Machine", "sender_name": "AI", "session_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "text": "Hello! \\ud83c\\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!", "files": [], "error": false, "edit": false, "properties": {"text_color": "", "background_color": "", "edited": false, "source": {"id": "OpenAIModel-g7uMN", "display_name": "OpenAI", "source": "gpt-4o-mini"}, "icon": "OpenAI", "allow_markdown": false, "positive_feedback": null, "state": "complete", "targets": []}, "category": "message", "content_blocks": [], "id": "56db271c-1dab-4a47-8464-d0058ac0943b", "flow_id": "947eaf64-bc35-4431-ae52-8b30d819915b"}, "type": "message"}}, "logs": {"message": []}, "message": {"message": "Hello! \\ud83c\\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!", "sender": "Machine", "sender_name": "AI", "files": [], "type": "object"}, "artifacts": {"message": "Hello! \\ud83c\\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!", "sender": "Machine", "sender_name": "AI", "files": [], "type": "object"}, "timedelta": 0.02948787499917671, "duration": "29 ms", "used_frozen_result": false}, "timestamp": "2025-02-05T14:45:35.345598Z"}}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "end", "data": {}}',props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.p,{children:"This output is abbreviated, but the order of events illustrates how Langflow runs components."}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["Langflow first sorts the vertices by dependencies (edges) in the ",(0,s.jsx)(t.code,{children:"vertices_sorted"})," event:"]}),"\n"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"ChatInput \u2192 Prompt \u2192 OpenAIModel \u2192 ChatOutput",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(t.ol,{start:"2",children:["\n",(0,s.jsxs)(t.li,{children:["The Chat Input component receives user input in the ",(0,s.jsx)(t.code,{children:"add_message"})," event."]}),"\n",(0,s.jsxs)(t.li,{children:["The Prompt component is built and executed with the received input in the ",(0,s.jsx)(t.code,{children:"end_vertex"})," event."]}),"\n",(0,s.jsxs)(t.li,{children:["The Open AI model's responses stream as ",(0,s.jsx)(t.code,{children:"token"})," events.\nThe ",(0,s.jsx)(t.code,{children:"token"})," event represents individual pieces of text as they're generated by an LLM."]}),"\n",(0,s.jsxs)(t.li,{children:["The clean ",(0,s.jsx)(t.code,{children:"end"})," event tells you the flow executed with no errors.\nIf your flow executes with errors, the ",(0,s.jsx)(t.code,{children:"error"})," event handler prints the errors to the playground."]}),"\n"]}),"\n",(0,s.jsx)(t.h3,{id:"configure-the-build-endpoint",children:"Configure the build endpoint"}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"/build"})," endpoint accepts values for ",(0,s.jsx)(t.code,{children:"start_component_id"})," and ",(0,s.jsx)(t.code,{children:"stop_component_id"})," to control where the flow run will start and stop.\nSetting ",(0,s.jsx)(t.code,{children:"stop_component_id"})," for a component triggers the same behavior as clicking the ",(0,s.jsx)(t.strong,{children:"Play"})," button on that component, where all dependent components leading up to that component are also run.\nFor example, to stop flow execution at the Open AI model component, run the following command:"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/build/$FLOW_ID/flow" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: application/json" \\',props:{}}]},{tokens:[{content:' -H "x-api-key: $LANGFLOW_API_KEY" \\',props:{}}]},{tokens:[{content:' -d \'{"stop_component_id": "OpenAIModel-Uksag"}\'',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"/build"})," endpoint also accepts inputs for ",(0,s.jsx)(t.code,{children:"data"})," directly, instead of using the values stored in the Langflow database.\nThis is useful for running flows without having to pass custom values through the UI."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/build/$FLOW_ID/flow" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: application/json" \\',props:{}}]},{tokens:[{content:" -d '{",props:{}}]},{tokens:[{content:' "data": {',props:{}}]},{tokens:[{content:' "nodes": [],',props:{}}]},{tokens:[{content:' "edges": []',props:{}}]},{tokens:[{content:" },",props:{}}]},{tokens:[{content:' "inputs": {',props:{}}]},{tokens:[{content:' "input_value": "Your custom input here",',props:{}}]},{tokens:[{content:' "session": "session_id"',props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:" }'",props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}},{content:'"event"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"vertices_sorted"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"data"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}},{content:'"ids"',props:{style:{color:"#7EE787"}}},{content:": [], ",props:{style:{color:"#C9D1D9"}}},{content:'"to_run"',props:{style:{color:"#7EE787"}}},{content:": []}}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}},{content:'"event"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"end"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"data"',props:{style:{color:"#7EE787"}}},{content:": {}}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h2,{id:"files",children:"Files"}),"\n",(0,s.jsxs)(t.p,{children:["Use the ",(0,s.jsx)(t.code,{children:"/files"})," endpoint to add or delete files between your local machine and Langflow."]}),"\n",(0,s.jsx)(t.h3,{id:"upload-file",children:"Upload file"}),"\n",(0,s.jsx)(t.p,{children:"Upload a file to an existing flow."}),"\n",(0,s.jsxs)(t.p,{children:["This example uploads ",(0,s.jsx)(t.code,{children:"the_oscar_award.csv"}),"."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/files/upload/$FLOW_ID" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: multipart/form-data" \\',props:{}}]},{tokens:[{content:' -F "file=@the_oscar_award.csv"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flowId"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"92f9a4c5-cfc8-4656-ae63-1f0881163c28"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "file_path"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"92f9a4c5-cfc8-4656-ae63-1f0881163c28/2024-12-30_15-19-43_the_oscar_award.csv"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h4,{id:"upload-image-files",children:"Upload image files"}),"\n",(0,s.jsx)(t.p,{children:"Send image files to the Langflow API for AI analysis."}),"\n",(0,s.jsxs)(t.p,{children:["The default file limit is 100 MB. To configure this value, change the ",(0,s.jsx)(t.code,{children:"LANGFLOW_MAX_FILE_SIZE_UPLOAD"})," environment variable.\nFor more information, see ",(0,s.jsx)(t.a,{href:"/environment-variables#supported-variables",children:"Supported environment variables"}),"."]}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["To send an image to your flow with the API, POST the image file to the ",(0,s.jsx)(t.code,{children:"v1/files/upload/"})," endpoint of your flow."]}),"\n"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'curl -X POST "$LANGFLOW_URL/api/v1/files/upload/a430cc57-06bb-4c11-be39-d3d4de68d2c4" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: multipart/form-data" \\',props:{}}]},{tokens:[{content:' -F "file=@image-file.png"',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(t.p,{children:["The API returns the image file path in the format ",(0,s.jsx)(t.code,{children:'"file_path":"/_"}'}),"."]}),"\n",(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}},{content:'"flowId"',props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}},{content:'"a430cc57-06bb-4c11-be39-d3d4de68d2c4"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}},{content:'"file_path"',props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}},{content:'"a430cc57-06bb-4c11-be39-d3d4de68d2c4/2024-11-27_14-47-50_image-file.png"',props:{style:{color:"#A5D6FF"}}},{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]}),"\n",(0,s.jsxs)(t.ol,{start:"2",children:["\n",(0,s.jsxs)(t.li,{children:["Post the image file to the ",(0,s.jsx)(t.strong,{children:"Chat Input"})," component of a ",(0,s.jsx)(t.strong,{children:"Basic prompting"})," flow.\nPass the file path value as an input in the ",(0,s.jsx)(t.strong,{children:"Tweaks"})," section of the curl call to Langflow."]}),"\n"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/run/a430cc57-06bb-4c11-be39-d3d4de68d2c4?stream=false" \\',props:{}}]},{tokens:[{content:" -H 'Content-Type: application/json'\\",props:{}}]},{tokens:[{content:" -d '{",props:{}}]},{tokens:[{content:' "output_type": "chat",',props:{}}]},{tokens:[{content:' "input_type": "chat",',props:{}}]},{tokens:[{content:' "tweaks": {',props:{}}]},{tokens:[{content:' "ChatInput-b67sL": {',props:{}}]},{tokens:[{content:' "files": "a430cc57-06bb-4c11-be39-d3d4de68d2c4/2024-11-27_14-47-50_image-file.png",',props:{}}]},{tokens:[{content:' "input_value": "what do you see?"',props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:"}}'",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(t.p,{children:"Your chatbot describes the image file you sent."}),"\n",(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'"text": "This flowchart appears to represent a complex system for processing financial inquiries using various AI agents and tools. Here\'s a breakdown of its components and how they might work together..."',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(t.h3,{id:"list-files",children:"List files"}),"\n",(0,s.jsx)(t.p,{children:"List all files associated with a specific flow."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/files/list/$FLOW_ID" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "2024-12-30_15-19-43_the_oscar_award.csv"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"download-file",children:"Download file"}),"\n",(0,s.jsx)(t.p,{children:"Download a specific file for a given flow."}),"\n",(0,s.jsxs)(t.p,{children:["To look up the file name in Langflow, use the ",(0,s.jsx)(t.code,{children:"/list"})," endpoint."]}),"\n",(0,s.jsxs)(t.p,{children:["This example downloads the ",(0,s.jsx)(t.code,{children:"2024-12-30_15-19-43_the_oscar_award.csv"})," file from Langflow to a file named ",(0,s.jsx)(t.code,{children:"output-file.csv"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"--output"})," flag is optional."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/files/download/$FLOW_ID/2024-12-30_15-19-43_the_oscar_award.csv" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:" --output output-file.csv",props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"The file contents.",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"download-image",children:"Download image"}),"\n",(0,s.jsx)(t.p,{children:"Download an image file for a given flow."}),"\n",(0,s.jsxs)(t.p,{children:["To look up the file name in Langflow, use the ",(0,s.jsx)(t.code,{children:"/list"})," endpoint."]}),"\n",(0,s.jsxs)(t.p,{children:["This example downloads the ",(0,s.jsx)(t.code,{children:"2024-12-30_15-42-44_image-file.png"})," file from Langflow to a file named ",(0,s.jsx)(t.code,{children:"output-image.png"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"--output"})," flag is optional."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/files/images/$FLOW_ID/2024-12-30_15-42-44_image-file.png" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:" --output output-image.png",props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"Image file content.",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"delete-file",children:"Delete file"}),"\n",(0,s.jsx)(t.p,{children:"Delete a specific file from a flow."}),"\n",(0,s.jsxs)(t.p,{children:["This example deletes the ",(0,s.jsx)(t.code,{children:"2024-12-30_15-42-44_image-file.png"})," file from Langflow."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X DELETE \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/files/delete/$FLOW_ID/2024-12-30_15-42-44_image-file.png" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:' "message": "File 2024-12-30_15-42-44_image-file.png deleted successfully"',props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h2,{id:"flows",children:"Flows"}),"\n",(0,s.jsxs)(t.p,{children:["Use the ",(0,s.jsx)(t.code,{children:"/flows"})," endpoint to create, read, update, and delete flows."]}),"\n",(0,s.jsx)(t.h3,{id:"create-flow",children:"Create flow"}),"\n",(0,s.jsx)(t.p,{children:"Create a new flow."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/flows/" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: application/json" \\',props:{}}]},{tokens:[{content:" -d '{",props:{}}]},{tokens:[{content:' "name": "string2",',props:{}}]},{tokens:[{content:' "description": "string",',props:{}}]},{tokens:[{content:' "icon": "string",',props:{}}]},{tokens:[{content:' "icon_bg_color": "#FF0000",',props:{}}]},{tokens:[{content:' "gradient": "string",',props:{}}]},{tokens:[{content:' "data": {},',props:{}}]},{tokens:[{content:' "is_component": false,',props:{}}]},{tokens:[{content:' "updated_at": "2024-12-30T15:48:01.519Z",',props:{}}]},{tokens:[{content:' "webhook": false,',props:{}}]},{tokens:[{content:' "endpoint_name": "string",',props:{}}]},{tokens:[{content:' "tags": [',props:{}}]},{tokens:[{content:' "string"',props:{}}]},{tokens:[{content:" ]",props:{}}]},{tokens:[{content:"}'",props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'{"name":"string2","description":"string","icon":"string","icon_bg_color":"#FF0000","gradient":"string","data":{},"is_component":false,"updated_at":"2025-02-04T21:07:36+00:00","webhook":false,"endpoint_name":"string","tags":["string"],"locked":false,"id":"e8d81c37-714b-49ae-ba82-e61141f020ee","user_id":"f58396d4-a387-4bb8-b749-f40825c3d9f3","folder_id":"1415de42-8f01-4f36-bf34-539f23e47466"}',props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"read-flows",children:"Read flows"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve a list of flows with pagination support."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/flows/?remove_example_flows=false&components_only=false&get_all=true&header_flows=false&page=1&size=50" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"A JSON object containing a list of flows.",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(t.p,{children:["To retrieve only the flows from a specific folder, pass ",(0,s.jsx)(t.code,{children:"folder_id"})," in the query string."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/flows/?remove_example_flows=true&components_only=false&get_all=false&folder_id=",props:{style:{color:"#A5D6FF"}}},{content:"$FOLDER_ID",props:{style:{color:"#C9D1D9"}}},{content:'&header_flows=false&page=1&size=1" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"A JSON object containing a list of flows.",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"read-flow",children:"Read flow"}),"\n",(0,s.jsx)(t.p,{children:"Read a specific flow by its ID."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/flows/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Basic Prompting"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "description"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Perform basic prompting with an OpenAI model."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Braces"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon_bg_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "gradient"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "data"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "nodes"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#FFA198",fontStyle:"italic"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"update-flow",children:"Update flow"}),"\n",(0,s.jsx)(t.p,{children:"Update an existing flow by its ID."}),"\n",(0,s.jsxs)(t.p,{children:["This example changes the value for ",(0,s.jsx)(t.code,{children:"endpoint_name"})," from a random UUID to ",(0,s.jsx)(t.code,{children:"my_new_endpoint_name"}),"."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"PATCH ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/flows/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "name": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "description": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "data": {},',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "folder_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "endpoint_name": "my_new_endpoint_name",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "locked": true',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "description"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Braces"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon_bg_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "gradient"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "data"',props:{style:{color:"#7EE787"}}},{content:": {},",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "is_component"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "updated_at"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-30T18:30:22+00:00"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "webhook"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "endpoint_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"my_new_endpoint_name"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "tags"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "locked"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "user_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"f58396d4-a387-4bb8-b749-f40825c3d9f3"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "folder_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"delete-flow",children:"Delete flow"}),"\n",(0,s.jsx)(t.p,{children:"Delete a specific flow by its ID."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"DELETE ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/flows/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Flow deleted successfully"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"create-flows",children:"Create flows"}),"\n",(0,s.jsx)(t.p,{children:"Create multiple new flows."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/flows/batch/" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: application/json" \\',props:{}}]},{tokens:[{content:" -d '{",props:{}}]},{tokens:[{content:' "flows": [',props:{}}]},{tokens:[{content:" {",props:{}}]},{tokens:[{content:' "name": "string",',props:{}}]},{tokens:[{content:' "description": "string",',props:{}}]},{tokens:[{content:' "icon": "string",',props:{}}]},{tokens:[{content:' "icon_bg_color": "string",',props:{}}]},{tokens:[{content:' "gradient": "string",',props:{}}]},{tokens:[{content:' "data": {},',props:{}}]},{tokens:[{content:' "is_component": false,',props:{}}]},{tokens:[{content:' "updated_at": "2024-12-30T18:36:02.737Z",',props:{}}]},{tokens:[{content:' "webhook": false,',props:{}}]},{tokens:[{content:' "endpoint_name": "string",',props:{}}]},{tokens:[{content:' "tags": [',props:{}}]},{tokens:[{content:' "string"',props:{}}]},{tokens:[{content:" ],",props:{}}]},{tokens:[{content:' "locked": false,',props:{}}]},{tokens:[{content:' "user_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",',props:{}}]},{tokens:[{content:' "folder_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{}}]},{tokens:[{content:" },",props:{}}]},{tokens:[{content:" {",props:{}}]},{tokens:[{content:' "name": "string",',props:{}}]},{tokens:[{content:' "description": "string",',props:{}}]},{tokens:[{content:' "icon": "string",',props:{}}]},{tokens:[{content:' "icon_bg_color": "string",',props:{}}]},{tokens:[{content:' "gradient": "string",',props:{}}]},{tokens:[{content:' "data": {},',props:{}}]},{tokens:[{content:' "is_component": false,',props:{}}]},{tokens:[{content:' "updated_at": "2024-12-30T18:36:02.737Z",',props:{}}]},{tokens:[{content:' "webhook": false,',props:{}}]},{tokens:[{content:' "endpoint_name": "string",',props:{}}]},{tokens:[{content:' "tags": [',props:{}}]},{tokens:[{content:' "string"',props:{}}]},{tokens:[{content:" ],",props:{}}]},{tokens:[{content:' "locked": false,',props:{}}]},{tokens:[{content:' "user_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",',props:{}}]},{tokens:[{content:' "folder_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:" ]",props:{}}]},{tokens:[{content:"}'",props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" // FlowRead objects",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"]",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"upload-flows",children:"Upload flows"}),"\n",(0,s.jsx)(t.p,{children:"Upload flows from a file."}),"\n",(0,s.jsxs)(t.p,{children:["This example uploads a local file named ",(0,s.jsx)(t.code,{children:"agent-with-astra-db-tool.json"}),"."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/flows/upload/?folder_id=$FOLDER_ID" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: multipart/form-data" \\',props:{}}]},{tokens:[{content:' -F "file=@agent-with-astra-db-tool.json;type=application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"agent-with-astra-db-tool"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "description"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon_bg_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "gradient"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "data"',props:{style:{color:"#7EE787"}}},{content:": {}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#FFA198",fontStyle:"italic"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"]",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(t.p,{children:["To specify a target folder for the flow, include the query parameter ",(0,s.jsx)(t.code,{children:"folder_id"}),".\nThe target ",(0,s.jsx)(t.code,{children:"folder_id"})," must already exist before uploading a flow. Call the ",(0,s.jsx)(t.a,{href:"#read-folders",children:"/api/v1/folders/"})," endpoint for a list of available folders."]}),"\n",(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/flows/upload/?folder_id=$FOLDER_ID" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: multipart/form-data" \\',props:{}}]},{tokens:[{content:' -F "file=@agent-with-astra-db-tool.json;type=application/json"',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(t.h3,{id:"download-all-flows",children:"Download all flows"}),"\n",(0,s.jsx)(t.p,{children:"Download all flows as a ZIP file."}),"\n",(0,s.jsxs)(t.p,{children:["This endpoint downloads a ZIP file containing flows for all ",(0,s.jsx)(t.code,{children:"flow-id"})," values listed in the command's body."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/flows/download/" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: application/json" \\',props:{}}]},{tokens:[{content:" -d '[",props:{}}]},{tokens:[{content:' "e1e40c77-0541-41a9-88ab-ddb3419398b5",',props:{}}]},{tokens:[{content:' "92f9a4c5-cfc8-4656-ae63-1f0881163c28"',props:{}}]},{tokens:[{content:"]' \\",props:{}}]},{tokens:[{content:" --output langflow-flows.zip",props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:" % Total % Received % Xferd Average Speed Time Time Time Current",props:{}}]},{tokens:[{content:" Dload Upload Total Spent Left Speed",props:{}}]},{tokens:[{content:"100 76437 0 76353 100 84 4516k 5088 --:--:-- --:--:-- --:--:-- 4665k",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"read-basic-examples",children:"Read basic examples"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve a list of basic example flows."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/flows/basic_examples/" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"A list of example flows.",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h2,{id:"folders",children:"Folders"}),"\n",(0,s.jsxs)(t.p,{children:["Use the ",(0,s.jsx)(t.code,{children:"/folders"})," endpoint to create, read, update, and delete folders."]}),"\n",(0,s.jsx)(t.p,{children:"Folders store your flows and components."}),"\n",(0,s.jsx)(t.h3,{id:"read-folders",children:"Read folders"}),"\n",(0,s.jsx)(t.p,{children:"Get a list of Langflow folders."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/folders/" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{}}]},{tokens:[{content:" {",props:{}}]},{tokens:[{content:' "name": "My Projects",',props:{}}]},{tokens:[{content:' "description": "Manage your own projects. Download and upload folders.",',props:{}}]},{tokens:[{content:' "id": "1415de42-8f01-4f36-bf34-539f23e47466",',props:{}}]},{tokens:[{content:' "parent_id": null',props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:"]",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"create-folder",children:"Create folder"}),"\n",(0,s.jsx)(t.p,{children:"Create a new folder."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/folders/" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: application/json" \\',props:{}}]},{tokens:[{content:" -d '{",props:{}}]},{tokens:[{content:' "name": "new_folder_name",',props:{}}]},{tokens:[{content:' "description": "string",',props:{}}]},{tokens:[{content:' "components_list": [],',props:{}}]},{tokens:[{content:' "flows_list": []',props:{}}]},{tokens:[{content:"}'",props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:' "name": "new_folder_name",',props:{}}]},{tokens:[{content:' "description": "string",',props:{}}]},{tokens:[{content:' "id": "b408ddb9-6266-4431-9be8-e04a62758331",',props:{}}]},{tokens:[{content:' "parent_id": null',props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(t.p,{children:["To add flows and components at folder creation, retrieve the ",(0,s.jsx)(t.code,{children:"components_list"})," and ",(0,s.jsx)(t.code,{children:"flows_list"})," values from the ",(0,s.jsx)(t.a,{href:"#get-all-components",children:"/api/v1/store/components"})," and ",(0,s.jsx)(t.a,{href:"#read-flows",children:"/api/v1/flows/read"})," endpoints and add them to the request body."]}),"\n",(0,s.jsx)(t.p,{children:"Adding a flow to a folder moves the flow from its previous location. The flow is not copied."}),"\n",(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/folders/" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: application/json" \\',props:{}}]},{tokens:[{content:" -d '{",props:{}}]},{tokens:[{content:' "name": "new_folder_name",',props:{}}]},{tokens:[{content:' "description": "string",',props:{}}]},{tokens:[{content:' "components_list": [',props:{}}]},{tokens:[{content:' "3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{}}]},{tokens:[{content:" ],",props:{}}]},{tokens:[{content:' "flows_list": [',props:{}}]},{tokens:[{content:' "3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{}}]},{tokens:[{content:" ]",props:{}}]},{tokens:[{content:"}'",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(t.h3,{id:"read-folder",children:"Read folder"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve details of a specific folder."}),"\n",(0,s.jsxs)(t.p,{children:["To find the UUID of your folder, call the ",(0,s.jsx)(t.a,{href:"#read-folders",children:"read folders"})," endpoint."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/folders/$FOLDER_ID" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{}}]},{tokens:[{content:" {",props:{}}]},{tokens:[{content:' "name": "My Projects",',props:{}}]},{tokens:[{content:' "description": "Manage your own projects. Download and upload folders.",',props:{}}]},{tokens:[{content:' "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",',props:{}}]},{tokens:[{content:' "parent_id": null',props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:"]",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"update-folder",children:"Update folder"}),"\n",(0,s.jsxs)(t.p,{children:["Update the information of a specific folder with a ",(0,s.jsx)(t.code,{children:"PATCH"})," request."]}),"\n",(0,s.jsx)(t.p,{children:"Each PATCH request updates the folder with the values you send.\nOnly the fields you include in your request are updated.\nIf you send the same values multiple times, the update is still processed, even if the values are unchanged."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X PATCH \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/folders/b408ddb9-6266-4431-9be8-e04a62758331" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: application/json" \\',props:{}}]},{tokens:[{content:" -d '{",props:{}}]},{tokens:[{content:' "name": "string",',props:{}}]},{tokens:[{content:' "description": "string",',props:{}}]},{tokens:[{content:' "parent_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",',props:{}}]},{tokens:[{content:' "components": [',props:{}}]},{tokens:[{content:' "3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{}}]},{tokens:[{content:" ],",props:{}}]},{tokens:[{content:' "flows": [',props:{}}]},{tokens:[{content:' "3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{}}]},{tokens:[{content:" ]",props:{}}]},{tokens:[{content:"}'",props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:' "name": "string",',props:{}}]},{tokens:[{content:' "description": "string",',props:{}}]},{tokens:[{content:' "id": "b408ddb9-6266-4431-9be8-e04a62758331",',props:{}}]},{tokens:[{content:' "parent_id": null',props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"delete-folder",children:"Delete folder"}),"\n",(0,s.jsx)(t.p,{children:"Delete a specific folder."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X DELETE \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/folders/$FOLDER_ID" \\',props:{}}]},{tokens:[{content:' -H "accept: */*"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"204 No Content",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"download-folder",children:"Download folder"}),"\n",(0,s.jsx)(t.p,{children:"Download all flows from a folder as a zip file."}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"--output"})," flag is optional."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/folders/download/b408ddb9-6266-4431-9be8-e04a62758331" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:" --output langflow-folder.zip",props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"The folder contents.",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"upload-folder",children:"Upload folder"}),"\n",(0,s.jsx)(t.p,{children:"Upload a folder to Langflow."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/folders/upload/" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: multipart/form-data" \\',props:{}}]},{tokens:[{content:' -F "file=@20241230_135006_langflow_flows.zip;type=application/zip"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"The folder contents are uploaded to Langflow.",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h2,{id:"logs",children:"Logs"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve logs for your Langflow flow."}),"\n",(0,s.jsx)(t.p,{children:"This endpoint requires log retrieval to be enabled in your Langflow application."}),"\n",(0,s.jsxs)(t.p,{children:["To enable log retrieval, include these values in your ",(0,s.jsx)(t.code,{children:".env"})," file:"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW_ENABLE_LOG_RETRIEVAL=true",props:{}}]},{tokens:[{content:"LANGFLOW_LOG_RETRIEVER_BUFFER_SIZE=10000",props:{}}]},{tokens:[{content:"LANGFLOW_LOG_LEVEL=DEBUG",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(t.p,{children:["For log retrieval to function, ",(0,s.jsx)(t.code,{children:"LANGFLOW_LOG_RETRIEVER_BUFFER_SIZE"})," needs to be greater than 0. The default value is ",(0,s.jsx)(t.code,{children:"10000"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["Start Langflow with this ",(0,s.jsx)(t.code,{children:".env"}),":"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv run langflow run --env-file .env",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(t.h3,{id:"stream-logs",children:"Stream logs"}),"\n",(0,s.jsx)(t.p,{children:"Stream logs in real-time using Server-Sent Events (SSE)."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/logs-stream" \\',props:{}}]},{tokens:[{content:' -H "accept: text/event-stream"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"keepalive",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"1736355791151": "2025-01-08T12:03:11.151218-0500 DEBUG Building Chat Input\\n"}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"1736355791485": "2025-01-08T12:03:11.485380-0500 DEBUG consumed event add_message-153bcd5d-ef4d-4ece-8cc0-47c6b6a9ef92 (time in queue, 0.0000, client 0.0001)\\n"}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"1736355791499": "2025-01-08T12:03:11.499704-0500 DEBUG consumed event end_vertex-3d7125cd-7b8a-44eb-9113-ed5b785e3cf3 (time in queue, 0.0056, client 0.0047)\\n"}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"1736355791502": "2025-01-08T12:03:11.502510-0500 DEBUG consumed event end-40d0b363-5618-4a23-bbae-487cd0b9594d (time in queue, 0.0001, client 0.0004)\\n"}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"1736355791513": "2025-01-08T12:03:11.513097-0500 DEBUG Logged vertex build: 729ff2f8-6b01-48c8-9ad0-3743c2af9e8a\\n"}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"1736355791834": "2025-01-08T12:03:11.834982-0500 DEBUG Telemetry data sent successfully.\\n"}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"1736355791941": "2025-01-08T12:03:11.941840-0500 DEBUG Telemetry data sent successfully.\\n"}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"keepalive",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"retrieve-logs-with-optional-parameters",children:"Retrieve logs with optional parameters"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve logs with optional query parameters."}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"lines_before"}),": The number of logs before the timestamp or the last log."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"lines_after"}),": The number of logs after the timestamp."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"timestamp"}),": The timestamp to start getting logs from."]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["The default values for all three parameters is ",(0,s.jsx)(t.code,{children:"0"}),".\nWith these values, the endpoint returns the last 10 lines of logs."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/logs?lines_before=0&lines_after=0×tamp=0" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:' "1736354770500": "2025-01-08T11:46:10.500363-0500 DEBUG Creating starter project Document Q&A\\n",',props:{}}]},{tokens:[{content:' "1736354770511": "2025-01-08T11:46:10.511146-0500 DEBUG Creating starter project Image Sentiment Analysis\\n",',props:{}}]},{tokens:[{content:' "1736354770521": "2025-01-08T11:46:10.521018-0500 DEBUG Creating starter project SEO Keyword Generator\\n",',props:{}}]},{tokens:[{content:' "1736354770532": "2025-01-08T11:46:10.532677-0500 DEBUG Creating starter project Sequential Tasks Agents\\n",',props:{}}]},{tokens:[{content:' "1736354770544": "2025-01-08T11:46:10.544010-0500 DEBUG Creating starter project Custom Component Generator\\n",',props:{}}]},{tokens:[{content:' "1736354770555": "2025-01-08T11:46:10.555513-0500 DEBUG Creating starter project Prompt Chaining\\n",',props:{}}]},{tokens:[{content:' "1736354770588": "2025-01-08T11:46:10.588105-0500 DEBUG Create service ServiceType.CHAT_SERVICE\\n",',props:{}}]},{tokens:[{content:' "1736354771021": "2025-01-08T11:46:11.021817-0500 DEBUG Telemetry data sent successfully.\\n",',props:{}}]},{tokens:[{content:' "1736354775619": "2025-01-08T11:46:15.619545-0500 DEBUG Create service ServiceType.STORE_SERVICE\\n",',props:{}}]},{tokens:[{content:' "1736354775699": "2025-01-08T11:46:15.699661-0500 DEBUG File 046-rocket.svg retrieved successfully from flow /Users/mendon.kissling/Library/Caches/langflow/profile_pictures/Space.\\n"',props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h2,{id:"monitor",children:"Monitor"}),"\n",(0,s.jsxs)(t.p,{children:["Use the ",(0,s.jsx)(t.code,{children:"/monitor"})," endpoint to monitor and modify messages passed between Langflow components, vertex builds, and transactions."]}),"\n",(0,s.jsx)(t.h3,{id:"get-vertex-builds",children:"Get Vertex builds"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve Vertex builds for a specific flow."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/monitor/builds?flow_id=$FLOW_ID" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'{"vertex_builds":{"ChatInput-NCmix":[{"data":{"results":{"message":{"text_key":"text","data":{"timestamp":"2024-12-23 19:10:57","sender":"User","sender_name":"User","session_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a","text":"Hello","files":[],"error":"False","edit":"False","properties":{"text_color":"","background_color":"","edited":"False","source":{"id":"None","display_name":"None","source":"None"},"icon":"","allow_markdown":"False","positive_feedback":"None","state":"complete","targets":[]},"category":"message","content_blocks":[],"id":"c95bed34-f906-4aa6-84e4-68553f6db772","flow_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a"},"default_value":"","text":"Hello","sender":"User","sender_name":"User","files":[],"session_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a","timestamp":"2024-12-23 19:10:57+00:00","flow_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a","error":"False","edit":"False","properties":{"text_color":"","background_color":"","edited":"False","source":{"id":"None","display_name":"None","source":"None"},"icon":"","allow_markdown":"False","positive_feedback":"None","state":"complete","targets":[]},"category":"message","content_blocks":[]}},"outputs":{"message":{"message":{"timestamp":"2024-12-23T19:10:57","sender":"User","sender_name":"User","session_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a","text":"Hello","files":[],"error":false,"edit":false,"properties":{"text_color":"","background_color":"","edited":false,"source":{"id":null,"display_name":null,"source":null},"icon":"","allow_markdown":false,"positive_feedback":null,"state":"complete","targets":[]},"category":"message","content_blocks":[],"id":"c95bed34-f906-4aa6-84e4-68553f6db772","flow_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a"},"type":"object"}},"logs":{"message":[]},"message":{"message":"Hello","sender":"User","sender_name":"User","files":[],"type":"object"},"artifacts":{"message":"Hello","sender":"User","sender_name":"User","files":[],"type":"object"},"timedelta":0.015060124918818474,"duration":"15 ms","used_frozen_result":false},"artifacts":{"message":"Hello","sender":"User","sender_name":"User","files":[],"type":"object"},"params":"- Files: []\\n Message: Hello\\n Sender: User\\n Sender Name: User\\n Type: object\\n","valid":true,"build_id":"40aa200e-74db-4651-b698-f80301d2b26b","id":"ChatInput-NCmix","timestamp":"2024-12-23T19:10:58.772766Z","flow_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a"}],"Prompt-BEn9c":[{"data":{"results":{},"outputs":{"prompt":{"message":"Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh.","type":"text"}},"logs":{"prompt":[]},"message":{"prompt":{"repr":"Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh.","raw":"Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh.","type":"text"}},"artifacts":{"prompt":{"repr":"Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh.","raw":"Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh.","type":"text"}},"timedelta":0.0057758750626817346,"duration":"6 ms","used_frozen_result":false},"artifacts":{"prompt":{"repr":"Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh.","raw":"Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh.","type":"text"}},"params":"None","valid":true,"build_id":"39bbbfde-97fd-42a5-a9ed-d42a5c5d532b","id":"Prompt-BEn9c","timestamp":"2024-12-23T19:10:58.781019Z","flow_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a"}],"OpenAIModel-7AjrN":[{"data":{"results":{},"outputs":{"text_output":{"message":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","type":"text"},"model_output":{"message":"","type":"unknown"}},"logs":{"text_output":[]},"message":{"text_output":{"repr":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","raw":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","type":"text"}},"artifacts":{"text_output":{"repr":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","raw":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","type":"text"}},"timedelta":1.034765167045407,"duration":"1.03 seconds","used_frozen_result":false},"artifacts":{"text_output":{"repr":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","raw":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","type":"text"}},"params":"None","valid":true,"build_id":"4f0ae730-a266-4d35-b89f-7b825c620a0f","id":"OpenAIModel-7AjrN","timestamp":"2024-12-23T19:10:58.790484Z","flow_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a"}],"ChatOutput-sfUhT":[{"data":{"results":{"message":{"text_key":"text","data":{"timestamp":"2024-12-23 19:10:58","sender":"Machine","sender_name":"AI","session_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a","text":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","files":[],"error":"False","edit":"False","properties":{"text_color":"","background_color":"","edited":"False","source":{"id":"OpenAIModel-7AjrN","display_name":"OpenAI","source":"gpt-4o-mini"},"icon":"OpenAI","allow_markdown":"False","positive_feedback":"None","state":"complete","targets":[]},"category":"message","content_blocks":[],"id":"5688356d-9f30-40ca-9907-79a7a2fc16fd","flow_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a"},"default_value":"","text":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","sender":"Machine","sender_name":"AI","files":[],"session_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a","timestamp":"2024-12-23 19:10:58+00:00","flow_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a","error":"False","edit":"False","properties":{"text_color":"","background_color":"","edited":"False","source":{"id":"OpenAIModel-7AjrN","display_name":"OpenAI","source":"gpt-4o-mini"},"icon":"OpenAI","allow_markdown":"False","positive_feedback":"None","state":"complete","targets":[]},"category":"message","content_blocks":[]}},"outputs":{"message":{"message":{"timestamp":"2024-12-23T19:10:58","sender":"Machine","sender_name":"AI","session_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a","text":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","files":[],"error":false,"edit":false,"properties":{"text_color":"","background_color":"","edited":false,"source":{"id":"OpenAIModel-7AjrN","display_name":"OpenAI","source":"gpt-4o-mini"},"icon":"OpenAI","allow_markdown":false,"positive_feedback":null,"state":"complete","targets":[]},"category":"message","content_blocks":[],"id":"5688356d-9f30-40ca-9907-79a7a2fc16fd","flow_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a"},"type":"object"}},"logs":{"message":[]},"message":{"message":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","sender":"Machine","sender_name":"AI","files":[],"type":"object"},"artifacts":{"message":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","sender":"Machine","sender_name":"AI","files":[],"type":"object"},"timedelta":0.017838125000707805,"duration":"18 ms","used_frozen_result":false},"artifacts":{"message":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","sender":"Machine","sender_name":"AI","files":[],"type":"object"},"params":"- Files: []\\n Message: Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building\\n something fresh! What do you have in mind? Whether it\'s a project, an idea, or\\n a concept, let\'s dive in and make it happen!\\n Sender: Machine\\n Sender Name: AI\\n Type: object\\n","valid":true,"build_id":"1e8b908b-aba7-403b-9e9b-eca92bb78668","id":"ChatOutput-sfUhT","timestamp":"2024-12-23T19:10:58.813268Z","flow_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a"}]}}',props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"delete-vertex-builds",children:"Delete Vertex builds"}),"\n",(0,s.jsx)(t.p,{children:"Delete Vertex builds for a specific flow."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X DELETE \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/monitor/builds?flow_id=$FLOW_ID" \\',props:{}}]},{tokens:[{content:' -H "accept: */*"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"204 No Content",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"get-messages",children:"Get messages"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve messages with optional filters."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/monitor/messages" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"A list of all messages.",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(t.p,{children:["You can filter messages by ",(0,s.jsx)(t.code,{children:"flow_id"}),", ",(0,s.jsx)(t.code,{children:"session_id"}),", ",(0,s.jsx)(t.code,{children:"sender"}),", and ",(0,s.jsx)(t.code,{children:"sender_name"}),".\nResults can be ordered with the ",(0,s.jsx)(t.code,{children:"order_by"})," query string."]}),"\n",(0,s.jsxs)(t.p,{children:["This example retrieves messages sent by ",(0,s.jsx)(t.code,{children:"Machine"})," and ",(0,s.jsx)(t.code,{children:"AI"})," in a given chat session (",(0,s.jsx)(t.code,{children:"session_id"}),") and orders the messages by timestamp."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/monitor/messages?flow_id=$FLOW_ID&session_id=01ce083d-748b-4b8d-97b6-33adbb6a528a&sender=Machine&sender_name=AI&order_by=timestamp" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{}}]},{tokens:[{content:" {",props:{}}]},{tokens:[{content:' "id": "1c1d6134-9b8b-4079-931c-84dcaddf19ba",',props:{}}]},{tokens:[{content:' "flow_id": "01ce083d-748b-4b8d-97b6-33adbb6a528a",',props:{}}]},{tokens:[{content:' "timestamp": "2024-12-23 19:20:11 UTC",',props:{}}]},{tokens:[{content:' "sender": "Machine",',props:{}}]},{tokens:[{content:' "sender_name": "AI",',props:{}}]},{tokens:[{content:' "session_id": "01ce083d-748b-4b8d-97b6-33adbb6a528a",',props:{}}]},{tokens:[{content:" \"text\": \"Hello! It's great to see you here! What exciting project or idea are you thinking about diving into today? Whether it's something fresh and innovative or a classic concept with a twist, I'm here to help you get started! Let's brainstorm together!\",",props:{}}]},{tokens:[{content:' "files": "[]",',props:{}}]},{tokens:[{content:' "edit": false,',props:{}}]},{tokens:[{content:' "properties": {',props:{}}]},{tokens:[{content:' "text_color": "",',props:{}}]},{tokens:[{content:' "background_color": "",',props:{}}]},{tokens:[{content:' "edited": false,',props:{}}]},{tokens:[{content:' "source": {',props:{}}]},{tokens:[{content:' "id": "OpenAIModel-7AjrN",',props:{}}]},{tokens:[{content:' "display_name": "OpenAI",',props:{}}]},{tokens:[{content:' "source": "gpt-4o-mini"',props:{}}]},{tokens:[{content:" },",props:{}}]},{tokens:[{content:' "icon": "OpenAI",',props:{}}]},{tokens:[{content:' "allow_markdown": false,',props:{}}]},{tokens:[{content:' "positive_feedback": null,',props:{}}]},{tokens:[{content:' "state": "complete",',props:{}}]},{tokens:[{content:' "targets": []',props:{}}]},{tokens:[{content:" },",props:{}}]},{tokens:[{content:' "category": "message",',props:{}}]},{tokens:[{content:' "content_blocks": []',props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:"]",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"delete-messages",children:"Delete messages"}),"\n",(0,s.jsx)(t.p,{children:"Delete specific messages by their IDs."}),"\n",(0,s.jsx)(t.p,{children:"This example deletes the message retrieved in the previous Get messages example."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -v -X DELETE \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/monitor/messages" \\',props:{}}]},{tokens:[{content:' -H "accept: */*" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: application/json" \\',props:{}}]},{tokens:[{content:' -d \'["MESSAGE_ID_1", "MESSAGE_ID_2"]\'',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"204 No Content",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"update-message",children:"Update message"}),"\n",(0,s.jsx)(t.p,{children:"Update a specific message by its ID."}),"\n",(0,s.jsxs)(t.p,{children:["This example updates the ",(0,s.jsx)(t.code,{children:"text"})," value of message ",(0,s.jsx)(t.code,{children:"3ab66cc6-c048-48f8-ab07-570f5af7b160"}),"."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X PUT \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/monitor/messages/3ab66cc6-c048-48f8-ab07-570f5af7b160" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: application/json" \\',props:{}}]},{tokens:[{content:" -d '{",props:{}}]},{tokens:[{content:' "text": "testing 1234"',props:{}}]},{tokens:[{content:"}'",props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'{"timestamp":"2024-12-23T18:49:06","sender":"string","sender_name":"string","session_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a","text":"testing 1234","files":["string"],"error":true,"edit":true,"properties":{"text_color":"string","background_color":"string","edited":false,"source":{"id":"string","display_name":"string","source":"string"},"icon":"string","allow_markdown":false,"positive_feedback":true,"state":"complete","targets":[]},"category":"message","content_blocks":[],"id":"3ab66cc6-c048-48f8-ab07-570f5af7b160","flow_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a"}',props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"update-session-id",children:"Update session ID"}),"\n",(0,s.jsx)(t.p,{children:"Update the session ID for messages."}),"\n",(0,s.jsxs)(t.p,{children:["This example updates the ",(0,s.jsx)(t.code,{children:"session_ID"})," value ",(0,s.jsx)(t.code,{children:"01ce083d-748b-4b8d-97b6-33adbb6a528a"})," to ",(0,s.jsx)(t.code,{children:"different_session_id"}),"."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X PATCH \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/monitor/messages/session/01ce083d-748b-4b8d-97b6-33adbb6a528a?new_session_id=different_session_id" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{}}]},{tokens:[{content:" {",props:{}}]},{tokens:[{content:' "id": "8dd7f064-e63a-4773-b472-ca0475249dfd",',props:{}}]},{tokens:[{content:' "flow_id": "01ce083d-748b-4b8d-97b6-33adbb6a528a",',props:{}}]},{tokens:[{content:' "timestamp": "2024-12-23 18:49:55 UTC",',props:{}}]},{tokens:[{content:' "sender": "User",',props:{}}]},{tokens:[{content:' "sender_name": "User",',props:{}}]},{tokens:[{content:' "session_id": "different_session_id",',props:{}}]},{tokens:[{content:' "text": "message",',props:{}}]},{tokens:[{content:' "files": "[]",',props:{}}]},{tokens:[{content:' "edit": false,',props:{}}]},{tokens:[{content:' "properties": {',props:{}}]},{tokens:[{content:' "text_color": "",',props:{}}]},{tokens:[{content:' "background_color": "",',props:{}}]},{tokens:[{content:' "edited": false,',props:{}}]},{tokens:[{content:' "source": {',props:{}}]},{tokens:[{content:' "id": null,',props:{}}]},{tokens:[{content:' "display_name": null,',props:{}}]},{tokens:[{content:' "source": null',props:{}}]},{tokens:[{content:" },",props:{}}]},{tokens:[{content:' "icon": "",',props:{}}]},{tokens:[{content:' "allow_markdown": false,',props:{}}]},{tokens:[{content:' "positive_feedback": null,',props:{}}]},{tokens:[{content:' "state": "complete",',props:{}}]},{tokens:[{content:' "targets": []',props:{}}]},{tokens:[{content:" },",props:{}}]},{tokens:[{content:' "category": "message",',props:{}}]},{tokens:[{content:' "content_blocks": []',props:{}}]},{tokens:[{content:" },",props:{}}]},{tokens:[{content:"]",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"delete-messages-by-session",children:"Delete messages by session"}),"\n",(0,s.jsx)(t.p,{children:"Delete all messages for a specific session."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X DELETE \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/monitor/messages/session/different_session_id_2" \\',props:{}}]},{tokens:[{content:' -H "accept: */*"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"HTTP/1.1 204 No Content",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"get-transactions",children:"Get transactions"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve all transactions (interactions between components) for a specific flow."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/monitor/transactions?flow_id=$FLOW_ID&page=1&size=50" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:' "items": [',props:{}}]},{tokens:[{content:" {",props:{}}]},{tokens:[{content:' "timestamp": "2024-12-23T20:05:01.061Z",',props:{}}]},{tokens:[{content:' "vertex_id": "string",',props:{}}]},{tokens:[{content:' "target_id": "string",',props:{}}]},{tokens:[{content:' "inputs": {},',props:{}}]},{tokens:[{content:' "outputs": {},',props:{}}]},{tokens:[{content:' "status": "string",',props:{}}]},{tokens:[{content:' "error": "string",',props:{}}]},{tokens:[{content:' "flow_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",',props:{}}]},{tokens:[{content:' "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:" ],",props:{}}]},{tokens:[{content:' "total": 0,',props:{}}]},{tokens:[{content:' "page": 1,',props:{}}]},{tokens:[{content:' "size": 1,',props:{}}]},{tokens:[{content:' "pages": 0',props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})})]})]})}function m(e={}){const{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(g,{...e})}):g(e)}function b(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},65537:(e,t,o)=>{o.d(t,{A:()=>_});var n=o(96540),s=o(18215),a=o(65627),l=o(56347),r=o(50372),i=o(30604),c=o(11861),p=o(78749);function d(e){return n.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,n.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function u(e){const{values:t,children:o}=e;return(0,n.useMemo)((()=>{const e=t??function(e){return d(e).map((e=>{let{props:{value:t,label:o,attributes:n,default:s}}=e;return{value:t,label:o,attributes:n,default:s}}))}(o);return function(e){const t=(0,c.XI)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,o])}function h(e){let{value:t,tabValues:o}=e;return o.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:o}=e;const s=(0,l.W6)(),a=function(e){let{queryString:t=!1,groupId:o}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!o)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return o??null}({queryString:t,groupId:o});return[(0,i.aZ)(a),(0,n.useCallback)((e=>{if(!a)return;const t=new URLSearchParams(s.location.search);t.set(a,e),s.replace({...s.location,search:t.toString()})}),[a,s])]}function g(e){const{defaultValue:t,queryString:o=!1,groupId:s}=e,a=u(e),[l,i]=(0,n.useState)((()=>function(e){let{defaultValue:t,tabValues:o}=e;if(0===o.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!h({value:t,tabValues:o}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${o.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=o.find((e=>e.default))??o[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:a}))),[c,d]=f({queryString:o,groupId:s}),[g,m]=function(e){let{groupId:t}=e;const o=function(e){return e?`docusaurus.tab.${e}`:null}(t),[s,a]=(0,p.Dv)(o);return[s,(0,n.useCallback)((e=>{o&&a.set(e)}),[o,a])]}({groupId:s}),b=(()=>{const e=c??g;return h({value:e,tabValues:a})?e:null})();(0,r.A)((()=>{b&&i(b)}),[b]);return{selectedValue:l,selectValue:(0,n.useCallback)((e=>{if(!h({value:e,tabValues:a}))throw new Error(`Can't select invalid tab value=${e}`);i(e),d(e),m(e)}),[d,m,a]),tabValues:a}}var m=o(9136);const b={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var x=o(74848);function k(e){let{className:t,block:o,selectedValue:n,selectValue:l,tabValues:r}=e;const i=[],{blockElementScrollPositionUntilNextRender:c}=(0,a.a_)(),p=e=>{const t=e.currentTarget,o=i.indexOf(t),s=r[o].value;s!==n&&(c(t),l(s))},d=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const o=i.indexOf(e.currentTarget)+1;t=i[o]??i[0];break}case"ArrowLeft":{const o=i.indexOf(e.currentTarget)-1;t=i[o]??i[i.length-1];break}}t?.focus()};return(0,x.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":o},t),children:r.map((e=>{let{value:t,label:o,attributes:a}=e;return(0,x.jsx)("li",{role:"tab",tabIndex:n===t?0:-1,"aria-selected":n===t,ref:e=>{i.push(e)},onKeyDown:d,onClick:p,...a,className:(0,s.A)("tabs__item",b.tabItem,a?.className,{"tabs__item--active":n===t}),children:o??t},t)}))})}function v(e){let{lazy:t,children:o,selectedValue:a}=e;const l=(Array.isArray(o)?o:[o]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,n.cloneElement)(e,{className:(0,s.A)("margin-top--md",e.props.className)}):null}return(0,x.jsx)("div",{className:"margin-top--md",children:l.map(((e,t)=>(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==a})))})}function j(e){const t=g(e);return(0,x.jsxs)("div",{className:(0,s.A)("tabs-container",b.tabList),children:[(0,x.jsx)(k,{...t,...e}),(0,x.jsx)(v,{...t,...e})]})}function _(e){const t=(0,m.A)();return(0,x.jsx)(j,{...e,children:d(e.children)},String(t))}},79329:(e,t,o)=>{o.d(t,{A:()=>l});o(96540);var n=o(18215);const s={tabItem:"tabItem_Ymn6"};var a=o(74848);function l(e){let{children:t,hidden:o,className:l}=e;return(0,a.jsx)("div",{role:"tabpanel",className:(0,n.A)(s.tabItem,l),hidden:o,children:t})}}}]); \ No newline at end of file diff --git a/assets/js/14f42f9e.79650c65.js b/assets/js/14f42f9e.79650c65.js new file mode 100644 index 0000000000..2b7ac9fcda --- /dev/null +++ b/assets/js/14f42f9e.79650c65.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[444],{41671:(e,t,o)=>{o.r(t),o.d(t,{CH:()=>u,assets:()=>d,chCodeConfig:()=>h,contentTitle:()=>p,default:()=>m,frontMatter:()=>c,metadata:()=>n,toc:()=>f});const n=JSON.parse('{"id":"API-Reference/api-reference-api-examples","title":"API examples","description":"This page provides examples and practices for managing Langflow using the Langflow API.","source":"@site/docs/API-Reference/api-reference-api-examples.md","sourceDirName":"API-Reference","slug":"/api-reference-api-examples","permalink":"/api-reference-api-examples","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"API examples","slug":"/api-reference-api-examples"},"sidebar":"docs","previous":{"title":"Render","permalink":"/deployment-render"},"next":{"title":"Apify","permalink":"/integrations-apify"}}');var s=o(74848),a=o(28453),l=o(24754),r=o(65537),i=o(79329);const c={title:"API examples",slug:"/api-reference-api-examples"},p=void 0,d={},u={annotations:l.hk,Code:l.Cy},h={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},f=[{value:"Export values",id:"export-values",level:2},{value:"Base",id:"base",level:2},{value:"Get all components",id:"get-all-components",level:3},{value:"Run flow",id:"run-flow",level:3},{value:"Webhook run flow",id:"webhook-run-flow",level:3},{value:"Process",id:"process",level:3},{value:"Predict",id:"predict",level:3},{value:"Get task status",id:"get-task-status",level:3},{value:"Create upload file (Deprecated)",id:"create-upload-file-deprecated",level:3},{value:"Get version",id:"get-version",level:3},{value:"Get config",id:"get-config",level:3},{value:"Build",id:"build",level:2},{value:"Build flow",id:"build-flow",level:3},{value:"Configure the build endpoint",id:"configure-the-build-endpoint",level:3},{value:"Files",id:"files",level:2},{value:"Upload file",id:"upload-file",level:3},{value:"Upload image files",id:"upload-image-files",level:4},{value:"List files",id:"list-files",level:3},{value:"Download file",id:"download-file",level:3},{value:"Download image",id:"download-image",level:3},{value:"Delete file",id:"delete-file",level:3},{value:"Flows",id:"flows",level:2},{value:"Create flow",id:"create-flow",level:3},{value:"Read flows",id:"read-flows",level:3},{value:"Read flow",id:"read-flow",level:3},{value:"Update flow",id:"update-flow",level:3},{value:"Delete flow",id:"delete-flow",level:3},{value:"Create flows",id:"create-flows",level:3},{value:"Upload flows",id:"upload-flows",level:3},{value:"Download all flows",id:"download-all-flows",level:3},{value:"Read basic examples",id:"read-basic-examples",level:3},{value:"Folders",id:"folders",level:2},{value:"Read folders",id:"read-folders",level:3},{value:"Create folder",id:"create-folder",level:3},{value:"Read folder",id:"read-folder",level:3},{value:"Update folder",id:"update-folder",level:3},{value:"Delete folder",id:"delete-folder",level:3},{value:"Download folder",id:"download-folder",level:3},{value:"Upload folder",id:"upload-folder",level:3},{value:"Logs",id:"logs",level:2},{value:"Stream logs",id:"stream-logs",level:3},{value:"Retrieve logs with optional parameters",id:"retrieve-logs-with-optional-parameters",level:3},{value:"Monitor",id:"monitor",level:2},{value:"Get Vertex builds",id:"get-vertex-builds",level:3},{value:"Delete Vertex builds",id:"delete-vertex-builds",level:3},{value:"Get messages",id:"get-messages",level:3},{value:"Delete messages",id:"delete-messages",level:3},{value:"Update message",id:"update-message",level:3},{value:"Update session ID",id:"update-session-id",level:3},{value:"Delete messages by session",id:"delete-messages-by-session",level:3},{value:"Get transactions",id:"get-transactions",level:3}];function g(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",h4:"h4",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return u||b("CH",!1),u.Code||b("CH.Code",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.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","\n",(0,s.jsx)(t.p,{children:"This page provides examples and practices for managing Langflow using the Langflow API."}),"\n",(0,s.jsxs)(t.p,{children:["The Langflow API's OpenAPI spec can be viewed and tested at your Langflow deployment's ",(0,s.jsx)(t.code,{children:"docs"})," endpoint.\nFor example, ",(0,s.jsx)(t.code,{children:"http://127.0.0.1:7860/docs"}),"."]}),"\n",(0,s.jsx)(t.h2,{id:"export-values",children:"Export values"}),"\n",(0,s.jsx)(t.p,{children:"You might find it helpful to set the following environment variables in your terminal."}),"\n",(0,s.jsx)(t.p,{children:"The examples in this guide use environment variables for these values."}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Export your Langflow URL in your terminal.\nLangflow starts by default at ",(0,s.jsx)(t.code,{children:"http://127.0.0.1:7860"}),"."]}),"\n"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'export LANGFLOW_URL="http://127.0.0.1:7860"',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Export the ",(0,s.jsx)(t.code,{children:"flow-id"})," in your terminal.\nThe ",(0,s.jsx)(t.code,{children:"flow-id"})," is found in the ",(0,s.jsx)(t.a,{href:"/concepts-api",children:"API pane"})," or in the flow's URL."]}),"\n"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'export FLOW_ID="359cd752-07ea-46f2-9d3b-a4407ef618da"',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Export the ",(0,s.jsx)(t.code,{children:"folder-id"})," in your terminal.\nTo find your folder ID, call the Langflow ",(0,s.jsx)(t.a,{href:"#read-folders",children:"/api/v1/folders/"})," endpoint for a list of folders."]}),"\n"]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/folders/" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{}}]},{tokens:[{content:" {",props:{}}]},{tokens:[{content:' "name": "My Projects",',props:{}}]},{tokens:[{content:' "description": "Manage your own projects. Download and upload folders.",',props:{}}]},{tokens:[{content:' "id": "1415de42-8f01-4f36-bf34-539f23e47466",',props:{}}]},{tokens:[{content:' "parent_id": null',props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:"]",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(t.p,{children:["Export the ",(0,s.jsx)(t.code,{children:"folder-id"})," as an environment variable."]}),"\n",(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'export FOLDER_ID="1415de42-8f01-4f36-bf34-539f23e47466"',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Export the Langflow API key as an environment variable.\nTo create a Langflow API key, run the following command in the Langflow CLI."}),"\n"]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow api-key",props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"API Key Created Successfully:",props:{}}]},{tokens:[{content:"sk-...",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.p,{children:"Export the generated API key as an environment variable."}),"\n",(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'export LANGFLOW_API_KEY="sk-..."',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(t.h2,{id:"base",children:"Base"}),"\n",(0,s.jsx)(t.p,{children:"Use the base Langflow API to run your flow and retrieve configuration information."}),"\n",(0,s.jsx)(t.h3,{id:"get-all-components",children:"Get all components"}),"\n",(0,s.jsx)(t.p,{children:"This operation returns a dictionary of all Langflow components."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/all" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"A dictionary of all Langflow components.",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"run-flow",children:"Run flow"}),"\n",(0,s.jsxs)(t.p,{children:["Execute a specified flow by ID or name.\nThe flow is executed as a batch, but LLM responses can be streamed.\nFor more configuration options when building your flow, use the ",(0,s.jsxs)(t.a,{href:"/api-reference-api-examples#build-flow",children:[(0,s.jsx)(t.code,{children:"/build"})," endpoint"]})," instead."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/run/$FLOW_ID?stream=false" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: application/json" \\',props:{}}]},{tokens:[{content:" -d '{}'",props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'{"session_id":"947eaf64-bc35-4431-ae52-8b30d819915b","outputs":[{"inputs":{},"outputs":[{"results":{"message":{"text_key":"text","data":{"timestamp":"2025-02-04T21:44:02+00:00","sender":"Machine","sender_name":"AI","session_id":"947eaf64-bc35-4431-ae52-8b30d819915b","text":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","files":[],"error":false,"edit":false,"properties":{"text_color":"","background_color":"","edited":false,"source":{"id":"OpenAIModel-g7uMN","display_name":"OpenAI","source":"gpt-4o-mini"},"icon":"OpenAI","allow_markdown":false,"positive_feedback":null,"state":"complete","targets":[]},"category":"message","content_blocks":[],"id":"dcb15280-a16c-489a-9818-bec697fd123e","flow_id":"947eaf64-bc35-4431-ae52-8b30d819915b"},"default_value":"","text":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","sender":"Machine","sender_name":"AI","files":[],"session_id":"947eaf64-bc35-4431-ae52-8b30d819915b","timestamp":"2025-02-04T21:44:02+00:00","flow_id":"947eaf64-bc35-4431-ae52-8b30d819915b","error":false,"edit":false,"properties":{"text_color":"","background_color":"","edited":false,"source":{"id":"OpenAIModel-g7uMN","display_name":"OpenAI","source":"gpt-4o-mini"},"icon":"OpenAI","allow_markdown":false,"positive_feedback":null,"state":"complete","targets":[]},"category":"message","content_blocks":[]}},"artifacts":{"message":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","sender":"Machine","sender_name":"AI","files":[],"type":"object"},"outputs":{"message":{"message":{"timestamp":"2025-02-04T21:44:02","sender":"Machine","sender_name":"AI","session_id":"947eaf64-bc35-4431-ae52-8b30d819915b","text":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","files":[],"error":false,"edit":false,"properties":{"text_color":"","background_color":"","edited":false,"source":{"id":"OpenAIModel-g7uMN","display_name":"OpenAI","source":"gpt-4o-mini"},"icon":"OpenAI","allow_markdown":false,"positive_feedback":null,"state":"complete","targets":[]},"category":"message","content_blocks":[],"id":"dcb15280-a16c-489a-9818-bec697fd123e","flow_id":"947eaf64-bc35-4431-ae52-8b30d819915b"},"type":"message"}},"logs":{"message":[]},"messages":[{"message":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","sender":"Machine","sender_name":"AI","session_id":"947eaf64-bc35-4431-ae52-8b30d819915b","stream_url":null,"component_id":"ChatOutput-HnFx1","files":[],"type":"message"}],"timedelta":null,"duration":null,"component_display_name":"Chat Output","component_id":"ChatOutput-HnFx1","used_frozen_result":false}]}]}',props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(t.p,{children:["To stream LLM token responses, append the ",(0,s.jsx)(t.code,{children:"?stream=true"})," query parameter to the request. LLM chat responses are streamed back as ",(0,s.jsx)(t.code,{children:"token"})," events until the ",(0,s.jsx)(t.code,{children:"end"})," event closes the connection."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/run/$FLOW_ID?stream=true" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: application/json" \\',props:{}}]},{tokens:[{content:' -H "x-api-key: $LANGFLOW_API_KEY" \\',props:{}}]},{tokens:[{content:' -d \'{"message": "Tell me something interesting!"}\'',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'{"event": "add_message", "data": {"timestamp": "2025-02-05T14:46:24", "sender": "User", "sender_name": "User", "session_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "text": "Hello", "files": [], "error": false, "edit": false, "properties": {"text_color": "", "background_color": "", "edited": false, "source": {"id": null, "display_name": null, "source": null}, "icon": "", "allow_markdown": false, "positive_feedback": null, "state": "complete", "targets": []}, "category": "message", "content_blocks": [], "id": "1d6044d6-332c-431a-a50c-dcea5deee4ab", "flow_id": "947eaf64-bc35-4431-ae52-8b30d819915b"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "add_message", "data": {"timestamp": "2025-02-05T14:46:24", "sender": "Machine", "sender_name": "AI", "session_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "text": "", "files": [], "error": false, "edit": false, "properties": {"text_color": "", "background_color": "", "edited": false, "source": {"id": "OpenAIModel-g7uMN", "display_name": "OpenAI", "source": "gpt-4o-mini"}, "icon": "OpenAI", "allow_markdown": false, "positive_feedback": null, "state": "complete", "targets": []}, "category": "message", "content_blocks": [], "id": "be9db128-eaac-49db-bfd7-ed63406ebbcf", "flow_id": "947eaf64-bc35-4431-ae52-8b30d819915b"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "token", "data": {"chunk": "", "id": "be9db128-eaac-49db-bfd7-ed63406ebbcf", "timestamp": "2025-02-05 14:46:25 UTC"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "token", "data": {"chunk": "Hello", "id": "be9db128-eaac-49db-bfd7-ed63406ebbcf", "timestamp": "2025-02-05 14:46:25 UTC"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "token", "data": {"chunk": "!", "id": "be9db128-eaac-49db-bfd7-ed63406ebbcf", "timestamp": "2025-02-05 14:46:25 UTC"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "token", "data": {"chunk": " \\ud83c\\udf1f", "id": "be9db128-eaac-49db-bfd7-ed63406ebbcf", "timestamp": "2025-02-05 14:46:25 UTC"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "end", "data": {"result": {"session_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "outputs": [{"inputs": {}, "outputs": [{"results": {"message": {"text_key": "text", "data": {"timestamp": "2025-02-05T14:46:24+00:00", "sender": "Machine", "sender_name": "AI", "session_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "text": "", "files": [], "error": false, "edit": false, "properties": {"text_color": "", "background_color": "", "edited": false, "source": {"id": "OpenAIModel-g7uMN", "display_name": "OpenAI", "source": "gpt-4o-mini"}, "icon": "OpenAI", "allow_markdown": false, "positive_feedback": null, "state": "complete", "targets": []}, "category": "message", "content_blocks": [], "id": "be9db128-eaac-49db-bfd7-ed63406ebbcf", "flow_id": "947eaf64-bc35-4431-ae52-8b30d819915b"}, "default_value": "", "text": "", "sender": "Machine", "sender_name": "AI", "files": [], "session_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "timestamp": "2025-02-05T14:46:24+00:00", "flow_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "error": false, "edit": false, "properties": {"text_color": "", "background_color": "", "edited": false, "source": {"id": "OpenAIModel-g7uMN", "display_name": "OpenAI", "source": "gpt-4o-mini"}, "icon": "OpenAI", "allow_markdown": false, "positive_feedback": null, "state": "complete", "targets": []}, "category": "message", "content_blocks": []}, "text": ""}, "artifacts": {"message": "", "sender": "Machine", "sender_name": "AI", "stream_url": "/api/v1/build/947eaf64-bc35-4431-ae52-8b30d819915b/ChatOutput-HnFx1/stream", "files": [], "type": "stream"}, "outputs": {"message": {"message": {"timestamp": "2025-02-05T14:46:24", "sender": "Machine", "sender_name": "AI", "session_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "text": "Hello! \\ud83c\\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!", "files": [], "error": false, "edit": false, "properties": {"text_color": "", "background_color": "", "edited": false, "source": {"id": "OpenAIModel-g7uMN", "display_name": "OpenAI", "source": "gpt-4o-mini"}, "icon": "OpenAI", "allow_markdown": false, "positive_feedback": null, "state": "complete", "targets": []}, "category": "message", "content_blocks": [], "id": "be9db128-eaac-49db-bfd7-ed63406ebbcf", "flow_id": "947eaf64-bc35-4431-ae52-8b30d819915b"}, "type": "message"}}, "logs": {"message": []}, "messages": [], "timedelta": null, "duration": null, "component_display_name": "Chat Output", "component_id": "ChatOutput-HnFx1", "used_frozen_result": false}]}]}}}',props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(t.p,{children:["This result is abbreviated, but illustrates where the ",(0,s.jsx)(t.code,{children:"end"})," event completes the LLM's token streaming response."]}),"\n",(0,s.jsx)(t.h3,{id:"webhook-run-flow",children:"Webhook run flow"}),"\n",(0,s.jsx)(t.p,{children:"The webhook endpoint triggers flow execution with an HTTP POST request."}),"\n",(0,s.jsxs)(t.p,{children:["When a ",(0,s.jsx)(t.strong,{children:"Webhook"})," component is added to the workspace, a new ",(0,s.jsx)(t.strong,{children:"Webhook cURL"})," tab becomes available in the ",(0,s.jsx)(t.strong,{children:"API"})," pane that contains an HTTP POST request for triggering the webhook component, similar to the call in this example."]}),"\n",(0,s.jsxs)(t.p,{children:["To test the ",(0,s.jsx)(t.strong,{children:"Webhook"})," component in your flow, see the ",(0,s.jsx)(t.a,{href:"/components-data#webhook",children:"Webhook component"}),"."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/webhook/$FLOW_ID" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: application/json" \\',props:{}}]},{tokens:[{content:' -d \'{"data": "example-data"}\'',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:' {"message":"Task started in the background","status":"in progress"}',props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"process",children:"Process"}),"\n",(0,s.jsx)(t.admonition,{type:"info",children:(0,s.jsxs)(t.p,{children:["This endpoint is deprecated. Use the ",(0,s.jsx)(t.code,{children:"/run"})," endpoint instead."]})}),"\n",(0,s.jsx)(t.h3,{id:"predict",children:"Predict"}),"\n",(0,s.jsx)(t.admonition,{type:"info",children:(0,s.jsxs)(t.p,{children:["This endpoint is deprecated. Use the ",(0,s.jsx)(t.code,{children:"/run"})," endpoint instead."]})}),"\n",(0,s.jsx)(t.h3,{id:"get-task-status",children:"Get task status"}),"\n",(0,s.jsx)(t.p,{children:"Get the status of a task."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/task/TASK_ID" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:' "status": "Task status",',props:{}}]},{tokens:[{content:' "result": "Task result if completed"',props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"create-upload-file-deprecated",children:"Create upload file (Deprecated)"}),"\n",(0,s.jsx)(t.admonition,{type:"info",children:(0,s.jsxs)(t.p,{children:["This endpoint is deprecated. Use the ",(0,s.jsx)(t.code,{children:"/file"})," endpoint instead."]})}),"\n",(0,s.jsx)(t.h3,{id:"get-version",children:"Get version"}),"\n",(0,s.jsx)(t.p,{children:"Get the version of the Langflow API."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/version" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:' "version": "1.1.1",',props:{}}]},{tokens:[{content:' "main_version": "1.1.1",',props:{}}]},{tokens:[{content:' "package": "Langflow"',props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"get-config",children:"Get config"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve the Langflow configuration information."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/config" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:' "feature_flags": {',props:{}}]},{tokens:[{content:' "mvp_components": false',props:{}}]},{tokens:[{content:" },",props:{}}]},{tokens:[{content:' "frontend_timeout": 0,',props:{}}]},{tokens:[{content:' "auto_saving": true,',props:{}}]},{tokens:[{content:' "auto_saving_interval": 1000,',props:{}}]},{tokens:[{content:' "health_check_max_retries": 5,',props:{}}]},{tokens:[{content:' "max_file_size_upload": 100',props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h2,{id:"build",children:"Build"}),"\n",(0,s.jsxs)(t.p,{children:["Use the ",(0,s.jsx)(t.code,{children:"/build"})," endpoint to build vertices and flows, and execute those flows with streaming event responses."]}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"/build"})," endpoint offers additional configuration for running flows."]}),"\n",(0,s.jsxs)(t.p,{children:["For a simpler execution of your flows, use the ",(0,s.jsxs)(t.a,{href:"/api-reference-api-examples#run-flow",children:[(0,s.jsx)(t.code,{children:"/run"})," endpoint"]})," instead."]}),"\n",(0,s.jsx)(t.h3,{id:"build-flow",children:"Build flow"}),"\n",(0,s.jsxs)(t.p,{children:["This example builds a flow with a given ",(0,s.jsx)(t.code,{children:"flow_id"}),"."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/build/$FLOW_ID/flow" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: application/json" \\',props:{}}]},{tokens:[{content:' -H "x-api-key: $LANGFLOW_API_KEY" \\',props:{}}]},{tokens:[{content:' -d \'{"input_value": "hello, how are you doing?"}\'',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'{"event": "vertices_sorted", "data": {"ids": ["ChatInput-TAEvF"], "to_run": ["Prompt-2gtLN", "ChatInput-TAEvF", "ChatOutput-HnFx1", "OpenAIModel-g7uMN"]}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "add_message", "data": {"timestamp": "2025-02-05T14:45:33", "sender": "User", "sender_name": "User", "session_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "text": "Hello", "files": [], "error": false, "edit": false, "properties": {"text_color": "", "background_color": "", "edited": false, "source": {"id": null, "display_name": null, "source": null}, "icon": "", "allow_markdown": false, "positive_feedback": null, "state": "complete", "targets": []}, "category": "message", "content_blocks": [], "id": "12be981b-9816-4361-b0f9-ce65d0ba6cc1", "flow_id": "947eaf64-bc35-4431-ae52-8b30d819915b"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "end_vertex", "data": {"build_data": {"id": "ChatInput-TAEvF", "inactivated_vertices": [], "next_vertices_ids": ["Prompt-2gtLN"], "top_level_vertices": ["Prompt-2gtLN"], "valid": true, "params": "- Files: []\\n Message: Hello\\n Sender: User\\n Sender Name: User\\n Type: object\\n", "data": {"results": {"message": {"text_key": "text", "data": {"timestamp": "2025-02-05T14:45:33+00:00", "sender": "User", "sender_name": "User", "session_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "text": "Hello", "files": [], "error": false, "edit": false, "properties": {"text_color": "", "background_color": "", "edited": false, "source": {"id": null, "display_name": null, "source": null}, "icon": "", "allow_markdown": false, "positive_feedback": null, "state": "complete", "targets": []}, "category": "message", "content_blocks": [], "id": "12be981b-9816-4361-b0f9-ce65d0ba6cc1", "flow_id": "947eaf64-bc35-4431-ae52-8b30d819915b"}, "default_value": "", "text": "Hello", "sender": "User", "sender_name": "User", "files": [], "session_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "timestamp": "2025-02-05T14:45:33+00:00", "flow_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "error": false, "edit": false, "properties": {"text_color": "", "background_color": "", "edited": false, "source": {"id": null, "display_name": null, "source": null}, "icon": "", "allow_markdown": false, "positive_feedback": null, "state": "complete", "targets": []}, "category": "message", "content_blocks": []}}, "outputs": {"message": {"message": {"timestamp": "2025-02-05T14:45:33+00:00", "sender": "User", "sender_name": "User", "session_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "text": "Hello", "files": [], "error": false, "edit": false, "properties": {"text_color": "", "background_color": "", "edited": false, "source": {"id": null, "display_name": null, "source": null}, "icon": "", "allow_markdown": false, "positive_feedback": null, "state": "complete", "targets": []}, "category": "message", "content_blocks": [], "id": "12be981b-9816-4361-b0f9-ce65d0ba6cc1", "flow_id": "947eaf64-bc35-4431-ae52-8b30d819915b"}, "type": "message"}}, "logs": {"message": []}, "message": {"message": "Hello", "sender": "User", "sender_name": "User", "files": [], "type": "object"}, "artifacts": {"message": "Hello", "sender": "User", "sender_name": "User", "files": [], "type": "object"}, "timedelta": 0.01409304200205952, "duration": "14 ms", "used_frozen_result": false}, "timestamp": "2025-02-05T14:45:33.486696Z"}}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "end_vertex", "data": {"build_data": {"id": "Prompt-2gtLN", "inactivated_vertices": [], "next_vertices_ids": ["OpenAIModel-g7uMN"], "top_level_vertices": ["OpenAIModel-g7uMN"], "valid": true, "params": "None", "data": {"results": {}, "outputs": {"prompt": {"message": "Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh.", "type": "text"}}, "logs": {"prompt": []}, "message": {"prompt": {"repr": "Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh.", "raw": "Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh.", "type": "text"}}, "artifacts": {"prompt": {"repr": "Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh.", "raw": "Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh.", "type": "text"}}, "timedelta": 0.005742790992371738, "duration": "6 ms", "used_frozen_result": false}, "timestamp": "2025-02-05T14:45:33.503829Z"}}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "end_vertex", "data": {"build_data": {"id": "OpenAIModel-g7uMN", "inactivated_vertices": [], "next_vertices_ids": ["ChatOutput-HnFx1"], "top_level_vertices": ["ChatOutput-HnFx1"], "valid": true, "params": "None", "data": {"results": {}, "outputs": {"text_output": {"message": "Hello! \\ud83c\\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!", "type": "text"}, "model_output": {"message": "", "type": "unknown"}}, "logs": {"text_output": []}, "message": {"text_output": {"repr": "Hello! \\ud83c\\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!", "raw": "Hello! \\ud83c\\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!", "type": "text"}}, "artifacts": {"text_output": {"repr": "Hello! \\ud83c\\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!", "raw": "Hello! \\ud83c\\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!", "type": "text"}}, "timedelta": 1.8065362079942133, "duration": "1.81 seconds", "used_frozen_result": false}, "timestamp": "2025-02-05T14:45:35.310876Z"}}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "add_message", "data": {"timestamp": "2025-02-05T14:45:35", "sender": "Machine", "sender_name": "AI", "session_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "text": "Hello! \\ud83c\\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!", "files": [], "error": false, "edit": false, "properties": {"text_color": "", "background_color": "", "edited": false, "source": {"id": "OpenAIModel-g7uMN", "display_name": "OpenAI", "source": "gpt-4o-mini"}, "icon": "OpenAI", "allow_markdown": false, "positive_feedback": null, "state": "complete", "targets": []}, "category": "message", "content_blocks": [], "id": "56db271c-1dab-4a47-8464-d0058ac0943b", "flow_id": "947eaf64-bc35-4431-ae52-8b30d819915b"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "end_vertex", "data": {"build_data": {"id": "ChatOutput-HnFx1", "inactivated_vertices": [], "next_vertices_ids": [], "top_level_vertices": [], "valid": true, "params": "- Files: []\\n Message: Hello! \\ud83c\\udf1f I\'m excited to help you get started on your journey to building\\n something fresh! What do you have in mind? Whether it\'s a project, an idea, or\\n a concept, let\'s dive in and make it happen!\\n Sender: Machine\\n Sender Name: AI\\n Type: object\\n", "data": {"results": {"message": {"text_key": "text", "data": {"timestamp": "2025-02-05T14:45:35+00:00", "sender": "Machine", "sender_name": "AI", "session_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "text": "Hello! \\ud83c\\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!", "files": [], "error": false, "edit": false, "properties": {"text_color": "", "background_color": "", "edited": false, "source": {"id": "OpenAIModel-g7uMN", "display_name": "OpenAI", "source": "gpt-4o-mini"}, "icon": "OpenAI", "allow_markdown": false, "positive_feedback": null, "state": "complete", "targets": []}, "category": "message", "content_blocks": [], "id": "56db271c-1dab-4a47-8464-d0058ac0943b", "flow_id": "947eaf64-bc35-4431-ae52-8b30d819915b"}, "default_value": "", "text": "Hello! \\ud83c\\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!", "sender": "Machine", "sender_name": "AI", "files": [], "session_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "timestamp": "2025-02-05T14:45:35+00:00", "flow_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "error": false, "edit": false, "properties": {"text_color": "", "background_color": "", "edited": false, "source": {"id": "OpenAIModel-g7uMN", "display_name": "OpenAI", "source": "gpt-4o-mini"}, "icon": "OpenAI", "allow_markdown": false, "positive_feedback": null, "state": "complete", "targets": []}, "category": "message", "content_blocks": []}}, "outputs": {"message": {"message": {"timestamp": "2025-02-05T14:45:35+00:00", "sender": "Machine", "sender_name": "AI", "session_id": "947eaf64-bc35-4431-ae52-8b30d819915b", "text": "Hello! \\ud83c\\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!", "files": [], "error": false, "edit": false, "properties": {"text_color": "", "background_color": "", "edited": false, "source": {"id": "OpenAIModel-g7uMN", "display_name": "OpenAI", "source": "gpt-4o-mini"}, "icon": "OpenAI", "allow_markdown": false, "positive_feedback": null, "state": "complete", "targets": []}, "category": "message", "content_blocks": [], "id": "56db271c-1dab-4a47-8464-d0058ac0943b", "flow_id": "947eaf64-bc35-4431-ae52-8b30d819915b"}, "type": "message"}}, "logs": {"message": []}, "message": {"message": "Hello! \\ud83c\\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!", "sender": "Machine", "sender_name": "AI", "files": [], "type": "object"}, "artifacts": {"message": "Hello! \\ud83c\\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!", "sender": "Machine", "sender_name": "AI", "files": [], "type": "object"}, "timedelta": 0.02948787499917671, "duration": "29 ms", "used_frozen_result": false}, "timestamp": "2025-02-05T14:45:35.345598Z"}}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "end", "data": {}}',props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.p,{children:"This output is abbreviated, but the order of events illustrates how Langflow runs components."}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["Langflow first sorts the vertices by dependencies (edges) in the ",(0,s.jsx)(t.code,{children:"vertices_sorted"})," event:"]}),"\n"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"ChatInput \u2192 Prompt \u2192 OpenAIModel \u2192 ChatOutput",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(t.ol,{start:"2",children:["\n",(0,s.jsxs)(t.li,{children:["The Chat Input component receives user input in the ",(0,s.jsx)(t.code,{children:"add_message"})," event."]}),"\n",(0,s.jsxs)(t.li,{children:["The Prompt component is built and executed with the received input in the ",(0,s.jsx)(t.code,{children:"end_vertex"})," event."]}),"\n",(0,s.jsxs)(t.li,{children:["The Open AI model's responses stream as ",(0,s.jsx)(t.code,{children:"token"})," events.\nThe ",(0,s.jsx)(t.code,{children:"token"})," event represents individual pieces of text as they're generated by an LLM."]}),"\n",(0,s.jsxs)(t.li,{children:["The clean ",(0,s.jsx)(t.code,{children:"end"})," event tells you the flow executed with no errors.\nIf your flow executes with errors, the ",(0,s.jsx)(t.code,{children:"error"})," event handler prints the errors to the playground."]}),"\n"]}),"\n",(0,s.jsx)(t.h3,{id:"configure-the-build-endpoint",children:"Configure the build endpoint"}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"/build"})," endpoint accepts values for ",(0,s.jsx)(t.code,{children:"start_component_id"})," and ",(0,s.jsx)(t.code,{children:"stop_component_id"})," to control where the flow run will start and stop.\nSetting ",(0,s.jsx)(t.code,{children:"stop_component_id"})," for a component triggers the same behavior as clicking the ",(0,s.jsx)(t.strong,{children:"Play"})," button on that component, where all dependent components leading up to that component are also run.\nFor example, to stop flow execution at the Open AI model component, run the following command:"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/build/$FLOW_ID/flow" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: application/json" \\',props:{}}]},{tokens:[{content:' -H "x-api-key: $LANGFLOW_API_KEY" \\',props:{}}]},{tokens:[{content:' -d \'{"stop_component_id": "OpenAIModel-Uksag"}\'',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"/build"})," endpoint also accepts inputs for ",(0,s.jsx)(t.code,{children:"data"})," directly, instead of using the values stored in the Langflow database.\nThis is useful for running flows without having to pass custom values through the UI."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/build/$FLOW_ID/flow" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: application/json" \\',props:{}}]},{tokens:[{content:" -d '{",props:{}}]},{tokens:[{content:' "data": {',props:{}}]},{tokens:[{content:' "nodes": [],',props:{}}]},{tokens:[{content:' "edges": []',props:{}}]},{tokens:[{content:" },",props:{}}]},{tokens:[{content:' "inputs": {',props:{}}]},{tokens:[{content:' "input_value": "Your custom input here",',props:{}}]},{tokens:[{content:' "session": "session_id"',props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:" }'",props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}},{content:'"event"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"vertices_sorted"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"data"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}},{content:'"ids"',props:{style:{color:"#7EE787"}}},{content:": [], ",props:{style:{color:"#C9D1D9"}}},{content:'"to_run"',props:{style:{color:"#7EE787"}}},{content:": []}}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}},{content:'"event"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"end"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"data"',props:{style:{color:"#7EE787"}}},{content:": {}}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h2,{id:"files",children:"Files"}),"\n",(0,s.jsxs)(t.p,{children:["Use the ",(0,s.jsx)(t.code,{children:"/files"})," endpoint to add or delete files between your local machine and Langflow."]}),"\n",(0,s.jsx)(t.h3,{id:"upload-file",children:"Upload file"}),"\n",(0,s.jsx)(t.p,{children:"Upload a file to an existing flow."}),"\n",(0,s.jsxs)(t.p,{children:["This example uploads ",(0,s.jsx)(t.code,{children:"the_oscar_award.csv"}),"."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/files/upload/$FLOW_ID" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: multipart/form-data" \\',props:{}}]},{tokens:[{content:' -F "file=@the_oscar_award.csv"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flowId"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"92f9a4c5-cfc8-4656-ae63-1f0881163c28"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "file_path"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"92f9a4c5-cfc8-4656-ae63-1f0881163c28/2024-12-30_15-19-43_the_oscar_award.csv"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h4,{id:"upload-image-files",children:"Upload image files"}),"\n",(0,s.jsx)(t.p,{children:"Send image files to the Langflow API for AI analysis."}),"\n",(0,s.jsxs)(t.p,{children:["The default file limit is 100 MB. To configure this value, change the ",(0,s.jsx)(t.code,{children:"LANGFLOW_MAX_FILE_SIZE_UPLOAD"})," environment variable.\nFor more information, see ",(0,s.jsx)(t.a,{href:"/environment-variables#supported-variables",children:"Supported environment variables"}),"."]}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["To send an image to your flow with the API, POST the image file to the ",(0,s.jsx)(t.code,{children:"v1/files/upload/"})," endpoint of your flow."]}),"\n"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'curl -X POST "$LANGFLOW_URL/api/v1/files/upload/a430cc57-06bb-4c11-be39-d3d4de68d2c4" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: multipart/form-data" \\',props:{}}]},{tokens:[{content:' -F "file=@image-file.png"',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(t.p,{children:["The API returns the image file path in the format ",(0,s.jsx)(t.code,{children:'"file_path":"/_"}'}),"."]}),"\n",(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}},{content:'"flowId"',props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}},{content:'"a430cc57-06bb-4c11-be39-d3d4de68d2c4"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}},{content:'"file_path"',props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}},{content:'"a430cc57-06bb-4c11-be39-d3d4de68d2c4/2024-11-27_14-47-50_image-file.png"',props:{style:{color:"#A5D6FF"}}},{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]}),"\n",(0,s.jsxs)(t.ol,{start:"2",children:["\n",(0,s.jsxs)(t.li,{children:["Post the image file to the ",(0,s.jsx)(t.strong,{children:"Chat Input"})," component of a ",(0,s.jsx)(t.strong,{children:"Basic prompting"})," flow.\nPass the file path value as an input in the ",(0,s.jsx)(t.strong,{children:"Tweaks"})," section of the curl call to Langflow."]}),"\n"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/run/a430cc57-06bb-4c11-be39-d3d4de68d2c4?stream=false" \\',props:{}}]},{tokens:[{content:" -H 'Content-Type: application/json'\\",props:{}}]},{tokens:[{content:" -d '{",props:{}}]},{tokens:[{content:' "output_type": "chat",',props:{}}]},{tokens:[{content:' "input_type": "chat",',props:{}}]},{tokens:[{content:' "tweaks": {',props:{}}]},{tokens:[{content:' "ChatInput-b67sL": {',props:{}}]},{tokens:[{content:' "files": "a430cc57-06bb-4c11-be39-d3d4de68d2c4/2024-11-27_14-47-50_image-file.png",',props:{}}]},{tokens:[{content:' "input_value": "what do you see?"',props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:"}}'",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(t.p,{children:"Your chatbot describes the image file you sent."}),"\n",(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'"text": "This flowchart appears to represent a complex system for processing financial inquiries using various AI agents and tools. Here\'s a breakdown of its components and how they might work together..."',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(t.h3,{id:"list-files",children:"List files"}),"\n",(0,s.jsx)(t.p,{children:"List all files associated with a specific flow."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/files/list/$FLOW_ID" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "2024-12-30_15-19-43_the_oscar_award.csv"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"download-file",children:"Download file"}),"\n",(0,s.jsx)(t.p,{children:"Download a specific file for a given flow."}),"\n",(0,s.jsxs)(t.p,{children:["To look up the file name in Langflow, use the ",(0,s.jsx)(t.code,{children:"/list"})," endpoint."]}),"\n",(0,s.jsxs)(t.p,{children:["This example downloads the ",(0,s.jsx)(t.code,{children:"2024-12-30_15-19-43_the_oscar_award.csv"})," file from Langflow to a file named ",(0,s.jsx)(t.code,{children:"output-file.csv"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"--output"})," flag is optional."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/files/download/$FLOW_ID/2024-12-30_15-19-43_the_oscar_award.csv" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:" --output output-file.csv",props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"The file contents.",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"download-image",children:"Download image"}),"\n",(0,s.jsx)(t.p,{children:"Download an image file for a given flow."}),"\n",(0,s.jsxs)(t.p,{children:["To look up the file name in Langflow, use the ",(0,s.jsx)(t.code,{children:"/list"})," endpoint."]}),"\n",(0,s.jsxs)(t.p,{children:["This example downloads the ",(0,s.jsx)(t.code,{children:"2024-12-30_15-42-44_image-file.png"})," file from Langflow to a file named ",(0,s.jsx)(t.code,{children:"output-image.png"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"--output"})," flag is optional."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/files/images/$FLOW_ID/2024-12-30_15-42-44_image-file.png" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:" --output output-image.png",props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"Image file content.",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"delete-file",children:"Delete file"}),"\n",(0,s.jsx)(t.p,{children:"Delete a specific file from a flow."}),"\n",(0,s.jsxs)(t.p,{children:["This example deletes the ",(0,s.jsx)(t.code,{children:"2024-12-30_15-42-44_image-file.png"})," file from Langflow."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X DELETE \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/files/delete/$FLOW_ID/2024-12-30_15-42-44_image-file.png" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:' "message": "File 2024-12-30_15-42-44_image-file.png deleted successfully"',props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h2,{id:"flows",children:"Flows"}),"\n",(0,s.jsxs)(t.p,{children:["Use the ",(0,s.jsx)(t.code,{children:"/flows"})," endpoint to create, read, update, and delete flows."]}),"\n",(0,s.jsx)(t.h3,{id:"create-flow",children:"Create flow"}),"\n",(0,s.jsx)(t.p,{children:"Create a new flow."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/flows/" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: application/json" \\',props:{}}]},{tokens:[{content:" -d '{",props:{}}]},{tokens:[{content:' "name": "string2",',props:{}}]},{tokens:[{content:' "description": "string",',props:{}}]},{tokens:[{content:' "icon": "string",',props:{}}]},{tokens:[{content:' "icon_bg_color": "#FF0000",',props:{}}]},{tokens:[{content:' "gradient": "string",',props:{}}]},{tokens:[{content:' "data": {},',props:{}}]},{tokens:[{content:' "is_component": false,',props:{}}]},{tokens:[{content:' "updated_at": "2024-12-30T15:48:01.519Z",',props:{}}]},{tokens:[{content:' "webhook": false,',props:{}}]},{tokens:[{content:' "endpoint_name": "string",',props:{}}]},{tokens:[{content:' "tags": [',props:{}}]},{tokens:[{content:' "string"',props:{}}]},{tokens:[{content:" ]",props:{}}]},{tokens:[{content:"}'",props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'{"name":"string2","description":"string","icon":"string","icon_bg_color":"#FF0000","gradient":"string","data":{},"is_component":false,"updated_at":"2025-02-04T21:07:36+00:00","webhook":false,"endpoint_name":"string","tags":["string"],"locked":false,"id":"e8d81c37-714b-49ae-ba82-e61141f020ee","user_id":"f58396d4-a387-4bb8-b749-f40825c3d9f3","folder_id":"1415de42-8f01-4f36-bf34-539f23e47466"}',props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"read-flows",children:"Read flows"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve a list of flows with pagination support."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/flows/?remove_example_flows=false&components_only=false&get_all=true&header_flows=false&page=1&size=50" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"A JSON object containing a list of flows.",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(t.p,{children:["To retrieve only the flows from a specific folder, pass ",(0,s.jsx)(t.code,{children:"folder_id"})," in the query string."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/flows/?remove_example_flows=true&components_only=false&get_all=false&folder_id=",props:{style:{color:"#A5D6FF"}}},{content:"$FOLDER_ID",props:{style:{color:"#C9D1D9"}}},{content:'&header_flows=false&page=1&size=1" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"A JSON object containing a list of flows.",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"read-flow",children:"Read flow"}),"\n",(0,s.jsx)(t.p,{children:"Read a specific flow by its ID."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/flows/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Basic Prompting"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "description"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Perform basic prompting with an OpenAI model."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Braces"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon_bg_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "gradient"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "data"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "nodes"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#FFA198",fontStyle:"italic"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"update-flow",children:"Update flow"}),"\n",(0,s.jsx)(t.p,{children:"Update an existing flow by its ID."}),"\n",(0,s.jsxs)(t.p,{children:["This example changes the value for ",(0,s.jsx)(t.code,{children:"endpoint_name"})," from a random UUID to ",(0,s.jsx)(t.code,{children:"my_new_endpoint_name"}),"."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"PATCH ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/flows/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "name": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "description": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "data": {},',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "folder_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "endpoint_name": "my_new_endpoint_name",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "locked": true',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "description"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Braces"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon_bg_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "gradient"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "data"',props:{style:{color:"#7EE787"}}},{content:": {},",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "is_component"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "updated_at"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-30T18:30:22+00:00"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "webhook"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "endpoint_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"my_new_endpoint_name"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "tags"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "locked"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "user_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"f58396d4-a387-4bb8-b749-f40825c3d9f3"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "folder_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"delete-flow",children:"Delete flow"}),"\n",(0,s.jsx)(t.p,{children:"Delete a specific flow by its ID."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"DELETE ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/flows/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Flow deleted successfully"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"create-flows",children:"Create flows"}),"\n",(0,s.jsx)(t.p,{children:"Create multiple new flows."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/flows/batch/" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: application/json" \\',props:{}}]},{tokens:[{content:" -d '{",props:{}}]},{tokens:[{content:' "flows": [',props:{}}]},{tokens:[{content:" {",props:{}}]},{tokens:[{content:' "name": "string",',props:{}}]},{tokens:[{content:' "description": "string",',props:{}}]},{tokens:[{content:' "icon": "string",',props:{}}]},{tokens:[{content:' "icon_bg_color": "string",',props:{}}]},{tokens:[{content:' "gradient": "string",',props:{}}]},{tokens:[{content:' "data": {},',props:{}}]},{tokens:[{content:' "is_component": false,',props:{}}]},{tokens:[{content:' "updated_at": "2024-12-30T18:36:02.737Z",',props:{}}]},{tokens:[{content:' "webhook": false,',props:{}}]},{tokens:[{content:' "endpoint_name": "string",',props:{}}]},{tokens:[{content:' "tags": [',props:{}}]},{tokens:[{content:' "string"',props:{}}]},{tokens:[{content:" ],",props:{}}]},{tokens:[{content:' "locked": false,',props:{}}]},{tokens:[{content:' "user_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",',props:{}}]},{tokens:[{content:' "folder_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{}}]},{tokens:[{content:" },",props:{}}]},{tokens:[{content:" {",props:{}}]},{tokens:[{content:' "name": "string",',props:{}}]},{tokens:[{content:' "description": "string",',props:{}}]},{tokens:[{content:' "icon": "string",',props:{}}]},{tokens:[{content:' "icon_bg_color": "string",',props:{}}]},{tokens:[{content:' "gradient": "string",',props:{}}]},{tokens:[{content:' "data": {},',props:{}}]},{tokens:[{content:' "is_component": false,',props:{}}]},{tokens:[{content:' "updated_at": "2024-12-30T18:36:02.737Z",',props:{}}]},{tokens:[{content:' "webhook": false,',props:{}}]},{tokens:[{content:' "endpoint_name": "string",',props:{}}]},{tokens:[{content:' "tags": [',props:{}}]},{tokens:[{content:' "string"',props:{}}]},{tokens:[{content:" ],",props:{}}]},{tokens:[{content:' "locked": false,',props:{}}]},{tokens:[{content:' "user_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",',props:{}}]},{tokens:[{content:' "folder_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:" ]",props:{}}]},{tokens:[{content:"}'",props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" // FlowRead objects",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"]",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"upload-flows",children:"Upload flows"}),"\n",(0,s.jsx)(t.p,{children:"Upload flows from a file."}),"\n",(0,s.jsxs)(t.p,{children:["This example uploads a local file named ",(0,s.jsx)(t.code,{children:"agent-with-astra-db-tool.json"}),"."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/flows/upload/?folder_id=$FOLDER_ID" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: multipart/form-data" \\',props:{}}]},{tokens:[{content:' -F "file=@agent-with-astra-db-tool.json;type=application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"agent-with-astra-db-tool"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "description"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon_bg_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "gradient"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "data"',props:{style:{color:"#7EE787"}}},{content:": {}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#FFA198",fontStyle:"italic"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"]",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(t.p,{children:["To specify a target folder for the flow, include the query parameter ",(0,s.jsx)(t.code,{children:"folder_id"}),".\nThe target ",(0,s.jsx)(t.code,{children:"folder_id"})," must already exist before uploading a flow. Call the ",(0,s.jsx)(t.a,{href:"#read-folders",children:"/api/v1/folders/"})," endpoint for a list of available folders."]}),"\n",(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/flows/upload/?folder_id=$FOLDER_ID" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: multipart/form-data" \\',props:{}}]},{tokens:[{content:' -F "file=@agent-with-astra-db-tool.json;type=application/json"',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(t.h3,{id:"download-all-flows",children:"Download all flows"}),"\n",(0,s.jsx)(t.p,{children:"Download all flows as a ZIP file."}),"\n",(0,s.jsxs)(t.p,{children:["This endpoint downloads a ZIP file containing flows for all ",(0,s.jsx)(t.code,{children:"flow-id"})," values listed in the command's body."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/flows/download/" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: application/json" \\',props:{}}]},{tokens:[{content:" -d '[",props:{}}]},{tokens:[{content:' "e1e40c77-0541-41a9-88ab-ddb3419398b5",',props:{}}]},{tokens:[{content:' "92f9a4c5-cfc8-4656-ae63-1f0881163c28"',props:{}}]},{tokens:[{content:"]' \\",props:{}}]},{tokens:[{content:" --output langflow-flows.zip",props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:" % Total % Received % Xferd Average Speed Time Time Time Current",props:{}}]},{tokens:[{content:" Dload Upload Total Spent Left Speed",props:{}}]},{tokens:[{content:"100 76437 0 76353 100 84 4516k 5088 --:--:-- --:--:-- --:--:-- 4665k",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"read-basic-examples",children:"Read basic examples"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve a list of basic example flows."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/flows/basic_examples/" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"A list of example flows.",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h2,{id:"folders",children:"Folders"}),"\n",(0,s.jsxs)(t.p,{children:["Use the ",(0,s.jsx)(t.code,{children:"/folders"})," endpoint to create, read, update, and delete folders."]}),"\n",(0,s.jsx)(t.p,{children:"Folders store your flows and components."}),"\n",(0,s.jsx)(t.h3,{id:"read-folders",children:"Read folders"}),"\n",(0,s.jsx)(t.p,{children:"Get a list of Langflow folders."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/folders/" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{}}]},{tokens:[{content:" {",props:{}}]},{tokens:[{content:' "name": "My Projects",',props:{}}]},{tokens:[{content:' "description": "Manage your own projects. Download and upload folders.",',props:{}}]},{tokens:[{content:' "id": "1415de42-8f01-4f36-bf34-539f23e47466",',props:{}}]},{tokens:[{content:' "parent_id": null',props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:"]",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"create-folder",children:"Create folder"}),"\n",(0,s.jsx)(t.p,{children:"Create a new folder."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/folders/" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: application/json" \\',props:{}}]},{tokens:[{content:" -d '{",props:{}}]},{tokens:[{content:' "name": "new_folder_name",',props:{}}]},{tokens:[{content:' "description": "string",',props:{}}]},{tokens:[{content:' "components_list": [],',props:{}}]},{tokens:[{content:' "flows_list": []',props:{}}]},{tokens:[{content:"}'",props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:' "name": "new_folder_name",',props:{}}]},{tokens:[{content:' "description": "string",',props:{}}]},{tokens:[{content:' "id": "b408ddb9-6266-4431-9be8-e04a62758331",',props:{}}]},{tokens:[{content:' "parent_id": null',props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(t.p,{children:["To add flows and components at folder creation, retrieve the ",(0,s.jsx)(t.code,{children:"components_list"})," and ",(0,s.jsx)(t.code,{children:"flows_list"})," values from the ",(0,s.jsx)(t.a,{href:"#get-all-components",children:"/api/v1/store/components"})," and ",(0,s.jsx)(t.a,{href:"#read-flows",children:"/api/v1/flows/read"})," endpoints and add them to the request body."]}),"\n",(0,s.jsx)(t.p,{children:"Adding a flow to a folder moves the flow from its previous location. The flow is not copied."}),"\n",(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/folders/" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: application/json" \\',props:{}}]},{tokens:[{content:" -d '{",props:{}}]},{tokens:[{content:' "name": "new_folder_name",',props:{}}]},{tokens:[{content:' "description": "string",',props:{}}]},{tokens:[{content:' "components_list": [',props:{}}]},{tokens:[{content:' "3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{}}]},{tokens:[{content:" ],",props:{}}]},{tokens:[{content:' "flows_list": [',props:{}}]},{tokens:[{content:' "3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{}}]},{tokens:[{content:" ]",props:{}}]},{tokens:[{content:"}'",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(t.h3,{id:"read-folder",children:"Read folder"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve details of a specific folder."}),"\n",(0,s.jsxs)(t.p,{children:["To find the UUID of your folder, call the ",(0,s.jsx)(t.a,{href:"#read-folders",children:"read folders"})," endpoint."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/folders/$FOLDER_ID" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{}}]},{tokens:[{content:" {",props:{}}]},{tokens:[{content:' "name": "My Projects",',props:{}}]},{tokens:[{content:' "description": "Manage your own projects. Download and upload folders.",',props:{}}]},{tokens:[{content:' "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",',props:{}}]},{tokens:[{content:' "parent_id": null',props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:"]",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"update-folder",children:"Update folder"}),"\n",(0,s.jsxs)(t.p,{children:["Update the information of a specific folder with a ",(0,s.jsx)(t.code,{children:"PATCH"})," request."]}),"\n",(0,s.jsx)(t.p,{children:"Each PATCH request updates the folder with the values you send.\nOnly the fields you include in your request are updated.\nIf you send the same values multiple times, the update is still processed, even if the values are unchanged."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X PATCH \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/folders/b408ddb9-6266-4431-9be8-e04a62758331" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: application/json" \\',props:{}}]},{tokens:[{content:" -d '{",props:{}}]},{tokens:[{content:' "name": "string",',props:{}}]},{tokens:[{content:' "description": "string",',props:{}}]},{tokens:[{content:' "parent_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",',props:{}}]},{tokens:[{content:' "components": [',props:{}}]},{tokens:[{content:' "3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{}}]},{tokens:[{content:" ],",props:{}}]},{tokens:[{content:' "flows": [',props:{}}]},{tokens:[{content:' "3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{}}]},{tokens:[{content:" ]",props:{}}]},{tokens:[{content:"}'",props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:' "name": "string",',props:{}}]},{tokens:[{content:' "description": "string",',props:{}}]},{tokens:[{content:' "id": "b408ddb9-6266-4431-9be8-e04a62758331",',props:{}}]},{tokens:[{content:' "parent_id": null',props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"delete-folder",children:"Delete folder"}),"\n",(0,s.jsx)(t.p,{children:"Delete a specific folder."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X DELETE \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/folders/$FOLDER_ID" \\',props:{}}]},{tokens:[{content:' -H "accept: */*"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"204 No Content",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"download-folder",children:"Download folder"}),"\n",(0,s.jsx)(t.p,{children:"Download all flows from a folder as a zip file."}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"--output"})," flag is optional."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/folders/download/b408ddb9-6266-4431-9be8-e04a62758331" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:" --output langflow-folder.zip",props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"The folder contents.",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"upload-folder",children:"Upload folder"}),"\n",(0,s.jsx)(t.p,{children:"Upload a folder to Langflow."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/folders/upload/" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: multipart/form-data" \\',props:{}}]},{tokens:[{content:' -F "file=@20241230_135006_langflow_flows.zip;type=application/zip"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"The folder contents are uploaded to Langflow.",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h2,{id:"logs",children:"Logs"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve logs for your Langflow flow."}),"\n",(0,s.jsx)(t.p,{children:"This endpoint requires log retrieval to be enabled in your Langflow application."}),"\n",(0,s.jsxs)(t.p,{children:["To enable log retrieval, include these values in your ",(0,s.jsx)(t.code,{children:".env"})," file:"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW_ENABLE_LOG_RETRIEVAL=true",props:{}}]},{tokens:[{content:"LANGFLOW_LOG_RETRIEVER_BUFFER_SIZE=10000",props:{}}]},{tokens:[{content:"LANGFLOW_LOG_LEVEL=DEBUG",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(t.p,{children:["For log retrieval to function, ",(0,s.jsx)(t.code,{children:"LANGFLOW_LOG_RETRIEVER_BUFFER_SIZE"})," needs to be greater than 0. The default value is ",(0,s.jsx)(t.code,{children:"10000"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["Start Langflow with this ",(0,s.jsx)(t.code,{children:".env"}),":"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv run langflow run --env-file .env",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(t.h3,{id:"stream-logs",children:"Stream logs"}),"\n",(0,s.jsx)(t.p,{children:"Stream logs in real-time using Server-Sent Events (SSE)."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/logs-stream" \\',props:{}}]},{tokens:[{content:' -H "accept: text/event-stream"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"keepalive",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"1736355791151": "2025-01-08T12:03:11.151218-0500 DEBUG Building Chat Input\\n"}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"1736355791485": "2025-01-08T12:03:11.485380-0500 DEBUG consumed event add_message-153bcd5d-ef4d-4ece-8cc0-47c6b6a9ef92 (time in queue, 0.0000, client 0.0001)\\n"}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"1736355791499": "2025-01-08T12:03:11.499704-0500 DEBUG consumed event end_vertex-3d7125cd-7b8a-44eb-9113-ed5b785e3cf3 (time in queue, 0.0056, client 0.0047)\\n"}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"1736355791502": "2025-01-08T12:03:11.502510-0500 DEBUG consumed event end-40d0b363-5618-4a23-bbae-487cd0b9594d (time in queue, 0.0001, client 0.0004)\\n"}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"1736355791513": "2025-01-08T12:03:11.513097-0500 DEBUG Logged vertex build: 729ff2f8-6b01-48c8-9ad0-3743c2af9e8a\\n"}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"1736355791834": "2025-01-08T12:03:11.834982-0500 DEBUG Telemetry data sent successfully.\\n"}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"1736355791941": "2025-01-08T12:03:11.941840-0500 DEBUG Telemetry data sent successfully.\\n"}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"keepalive",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"retrieve-logs-with-optional-parameters",children:"Retrieve logs with optional parameters"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve logs with optional query parameters."}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"lines_before"}),": The number of logs before the timestamp or the last log."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"lines_after"}),": The number of logs after the timestamp."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"timestamp"}),": The timestamp to start getting logs from."]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["The default values for all three parameters is ",(0,s.jsx)(t.code,{children:"0"}),".\nWith these values, the endpoint returns the last 10 lines of logs."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/logs?lines_before=0&lines_after=0×tamp=0" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:' "1736354770500": "2025-01-08T11:46:10.500363-0500 DEBUG Creating starter project Document Q&A\\n",',props:{}}]},{tokens:[{content:' "1736354770511": "2025-01-08T11:46:10.511146-0500 DEBUG Creating starter project Image Sentiment Analysis\\n",',props:{}}]},{tokens:[{content:' "1736354770521": "2025-01-08T11:46:10.521018-0500 DEBUG Creating starter project SEO Keyword Generator\\n",',props:{}}]},{tokens:[{content:' "1736354770532": "2025-01-08T11:46:10.532677-0500 DEBUG Creating starter project Sequential Tasks Agents\\n",',props:{}}]},{tokens:[{content:' "1736354770544": "2025-01-08T11:46:10.544010-0500 DEBUG Creating starter project Custom Component Generator\\n",',props:{}}]},{tokens:[{content:' "1736354770555": "2025-01-08T11:46:10.555513-0500 DEBUG Creating starter project Prompt Chaining\\n",',props:{}}]},{tokens:[{content:' "1736354770588": "2025-01-08T11:46:10.588105-0500 DEBUG Create service ServiceType.CHAT_SERVICE\\n",',props:{}}]},{tokens:[{content:' "1736354771021": "2025-01-08T11:46:11.021817-0500 DEBUG Telemetry data sent successfully.\\n",',props:{}}]},{tokens:[{content:' "1736354775619": "2025-01-08T11:46:15.619545-0500 DEBUG Create service ServiceType.STORE_SERVICE\\n",',props:{}}]},{tokens:[{content:' "1736354775699": "2025-01-08T11:46:15.699661-0500 DEBUG File 046-rocket.svg retrieved successfully from flow /Users/mendon.kissling/Library/Caches/langflow/profile_pictures/Space.\\n"',props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h2,{id:"monitor",children:"Monitor"}),"\n",(0,s.jsxs)(t.p,{children:["Use the ",(0,s.jsx)(t.code,{children:"/monitor"})," endpoint to monitor and modify messages passed between Langflow components, vertex builds, and transactions."]}),"\n",(0,s.jsx)(t.h3,{id:"get-vertex-builds",children:"Get Vertex builds"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve Vertex builds for a specific flow."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/monitor/builds?flow_id=$FLOW_ID" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'{"vertex_builds":{"ChatInput-NCmix":[{"data":{"results":{"message":{"text_key":"text","data":{"timestamp":"2024-12-23 19:10:57","sender":"User","sender_name":"User","session_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a","text":"Hello","files":[],"error":"False","edit":"False","properties":{"text_color":"","background_color":"","edited":"False","source":{"id":"None","display_name":"None","source":"None"},"icon":"","allow_markdown":"False","positive_feedback":"None","state":"complete","targets":[]},"category":"message","content_blocks":[],"id":"c95bed34-f906-4aa6-84e4-68553f6db772","flow_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a"},"default_value":"","text":"Hello","sender":"User","sender_name":"User","files":[],"session_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a","timestamp":"2024-12-23 19:10:57+00:00","flow_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a","error":"False","edit":"False","properties":{"text_color":"","background_color":"","edited":"False","source":{"id":"None","display_name":"None","source":"None"},"icon":"","allow_markdown":"False","positive_feedback":"None","state":"complete","targets":[]},"category":"message","content_blocks":[]}},"outputs":{"message":{"message":{"timestamp":"2024-12-23T19:10:57","sender":"User","sender_name":"User","session_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a","text":"Hello","files":[],"error":false,"edit":false,"properties":{"text_color":"","background_color":"","edited":false,"source":{"id":null,"display_name":null,"source":null},"icon":"","allow_markdown":false,"positive_feedback":null,"state":"complete","targets":[]},"category":"message","content_blocks":[],"id":"c95bed34-f906-4aa6-84e4-68553f6db772","flow_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a"},"type":"object"}},"logs":{"message":[]},"message":{"message":"Hello","sender":"User","sender_name":"User","files":[],"type":"object"},"artifacts":{"message":"Hello","sender":"User","sender_name":"User","files":[],"type":"object"},"timedelta":0.015060124918818474,"duration":"15 ms","used_frozen_result":false},"artifacts":{"message":"Hello","sender":"User","sender_name":"User","files":[],"type":"object"},"params":"- Files: []\\n Message: Hello\\n Sender: User\\n Sender Name: User\\n Type: object\\n","valid":true,"build_id":"40aa200e-74db-4651-b698-f80301d2b26b","id":"ChatInput-NCmix","timestamp":"2024-12-23T19:10:58.772766Z","flow_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a"}],"Prompt-BEn9c":[{"data":{"results":{},"outputs":{"prompt":{"message":"Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh.","type":"text"}},"logs":{"prompt":[]},"message":{"prompt":{"repr":"Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh.","raw":"Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh.","type":"text"}},"artifacts":{"prompt":{"repr":"Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh.","raw":"Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh.","type":"text"}},"timedelta":0.0057758750626817346,"duration":"6 ms","used_frozen_result":false},"artifacts":{"prompt":{"repr":"Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh.","raw":"Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh.","type":"text"}},"params":"None","valid":true,"build_id":"39bbbfde-97fd-42a5-a9ed-d42a5c5d532b","id":"Prompt-BEn9c","timestamp":"2024-12-23T19:10:58.781019Z","flow_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a"}],"OpenAIModel-7AjrN":[{"data":{"results":{},"outputs":{"text_output":{"message":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","type":"text"},"model_output":{"message":"","type":"unknown"}},"logs":{"text_output":[]},"message":{"text_output":{"repr":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","raw":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","type":"text"}},"artifacts":{"text_output":{"repr":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","raw":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","type":"text"}},"timedelta":1.034765167045407,"duration":"1.03 seconds","used_frozen_result":false},"artifacts":{"text_output":{"repr":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","raw":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","type":"text"}},"params":"None","valid":true,"build_id":"4f0ae730-a266-4d35-b89f-7b825c620a0f","id":"OpenAIModel-7AjrN","timestamp":"2024-12-23T19:10:58.790484Z","flow_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a"}],"ChatOutput-sfUhT":[{"data":{"results":{"message":{"text_key":"text","data":{"timestamp":"2024-12-23 19:10:58","sender":"Machine","sender_name":"AI","session_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a","text":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","files":[],"error":"False","edit":"False","properties":{"text_color":"","background_color":"","edited":"False","source":{"id":"OpenAIModel-7AjrN","display_name":"OpenAI","source":"gpt-4o-mini"},"icon":"OpenAI","allow_markdown":"False","positive_feedback":"None","state":"complete","targets":[]},"category":"message","content_blocks":[],"id":"5688356d-9f30-40ca-9907-79a7a2fc16fd","flow_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a"},"default_value":"","text":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","sender":"Machine","sender_name":"AI","files":[],"session_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a","timestamp":"2024-12-23 19:10:58+00:00","flow_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a","error":"False","edit":"False","properties":{"text_color":"","background_color":"","edited":"False","source":{"id":"OpenAIModel-7AjrN","display_name":"OpenAI","source":"gpt-4o-mini"},"icon":"OpenAI","allow_markdown":"False","positive_feedback":"None","state":"complete","targets":[]},"category":"message","content_blocks":[]}},"outputs":{"message":{"message":{"timestamp":"2024-12-23T19:10:58","sender":"Machine","sender_name":"AI","session_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a","text":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","files":[],"error":false,"edit":false,"properties":{"text_color":"","background_color":"","edited":false,"source":{"id":"OpenAIModel-7AjrN","display_name":"OpenAI","source":"gpt-4o-mini"},"icon":"OpenAI","allow_markdown":false,"positive_feedback":null,"state":"complete","targets":[]},"category":"message","content_blocks":[],"id":"5688356d-9f30-40ca-9907-79a7a2fc16fd","flow_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a"},"type":"object"}},"logs":{"message":[]},"message":{"message":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","sender":"Machine","sender_name":"AI","files":[],"type":"object"},"artifacts":{"message":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","sender":"Machine","sender_name":"AI","files":[],"type":"object"},"timedelta":0.017838125000707805,"duration":"18 ms","used_frozen_result":false},"artifacts":{"message":"Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it\'s a project, an idea, or a concept, let\'s dive in and make it happen!","sender":"Machine","sender_name":"AI","files":[],"type":"object"},"params":"- Files: []\\n Message: Hello! \ud83c\udf1f I\'m excited to help you get started on your journey to building\\n something fresh! What do you have in mind? Whether it\'s a project, an idea, or\\n a concept, let\'s dive in and make it happen!\\n Sender: Machine\\n Sender Name: AI\\n Type: object\\n","valid":true,"build_id":"1e8b908b-aba7-403b-9e9b-eca92bb78668","id":"ChatOutput-sfUhT","timestamp":"2024-12-23T19:10:58.813268Z","flow_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a"}]}}',props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"delete-vertex-builds",children:"Delete Vertex builds"}),"\n",(0,s.jsx)(t.p,{children:"Delete Vertex builds for a specific flow."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X DELETE \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/monitor/builds?flow_id=$FLOW_ID" \\',props:{}}]},{tokens:[{content:' -H "accept: */*"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"204 No Content",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"get-messages",children:"Get messages"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve messages with optional filters."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/monitor/messages" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"A list of all messages.",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(t.p,{children:["You can filter messages by ",(0,s.jsx)(t.code,{children:"flow_id"}),", ",(0,s.jsx)(t.code,{children:"session_id"}),", ",(0,s.jsx)(t.code,{children:"sender"}),", and ",(0,s.jsx)(t.code,{children:"sender_name"}),".\nResults can be ordered with the ",(0,s.jsx)(t.code,{children:"order_by"})," query string."]}),"\n",(0,s.jsxs)(t.p,{children:["This example retrieves messages sent by ",(0,s.jsx)(t.code,{children:"Machine"})," and ",(0,s.jsx)(t.code,{children:"AI"})," in a given chat session (",(0,s.jsx)(t.code,{children:"session_id"}),") and orders the messages by timestamp."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/monitor/messages?flow_id=$FLOW_ID&session_id=01ce083d-748b-4b8d-97b6-33adbb6a528a&sender=Machine&sender_name=AI&order_by=timestamp" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{}}]},{tokens:[{content:" {",props:{}}]},{tokens:[{content:' "id": "1c1d6134-9b8b-4079-931c-84dcaddf19ba",',props:{}}]},{tokens:[{content:' "flow_id": "01ce083d-748b-4b8d-97b6-33adbb6a528a",',props:{}}]},{tokens:[{content:' "timestamp": "2024-12-23 19:20:11 UTC",',props:{}}]},{tokens:[{content:' "sender": "Machine",',props:{}}]},{tokens:[{content:' "sender_name": "AI",',props:{}}]},{tokens:[{content:' "session_id": "01ce083d-748b-4b8d-97b6-33adbb6a528a",',props:{}}]},{tokens:[{content:" \"text\": \"Hello! It's great to see you here! What exciting project or idea are you thinking about diving into today? Whether it's something fresh and innovative or a classic concept with a twist, I'm here to help you get started! Let's brainstorm together!\",",props:{}}]},{tokens:[{content:' "files": "[]",',props:{}}]},{tokens:[{content:' "edit": false,',props:{}}]},{tokens:[{content:' "properties": {',props:{}}]},{tokens:[{content:' "text_color": "",',props:{}}]},{tokens:[{content:' "background_color": "",',props:{}}]},{tokens:[{content:' "edited": false,',props:{}}]},{tokens:[{content:' "source": {',props:{}}]},{tokens:[{content:' "id": "OpenAIModel-7AjrN",',props:{}}]},{tokens:[{content:' "display_name": "OpenAI",',props:{}}]},{tokens:[{content:' "source": "gpt-4o-mini"',props:{}}]},{tokens:[{content:" },",props:{}}]},{tokens:[{content:' "icon": "OpenAI",',props:{}}]},{tokens:[{content:' "allow_markdown": false,',props:{}}]},{tokens:[{content:' "positive_feedback": null,',props:{}}]},{tokens:[{content:' "state": "complete",',props:{}}]},{tokens:[{content:' "targets": []',props:{}}]},{tokens:[{content:" },",props:{}}]},{tokens:[{content:' "category": "message",',props:{}}]},{tokens:[{content:' "content_blocks": []',props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:"]",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"delete-messages",children:"Delete messages"}),"\n",(0,s.jsx)(t.p,{children:"Delete specific messages by their IDs."}),"\n",(0,s.jsx)(t.p,{children:"This example deletes the message retrieved in the previous Get messages example."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -v -X DELETE \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/monitor/messages" \\',props:{}}]},{tokens:[{content:' -H "accept: */*" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: application/json" \\',props:{}}]},{tokens:[{content:' -d \'["MESSAGE_ID_1", "MESSAGE_ID_2"]\'',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"204 No Content",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"update-message",children:"Update message"}),"\n",(0,s.jsx)(t.p,{children:"Update a specific message by its ID."}),"\n",(0,s.jsxs)(t.p,{children:["This example updates the ",(0,s.jsx)(t.code,{children:"text"})," value of message ",(0,s.jsx)(t.code,{children:"3ab66cc6-c048-48f8-ab07-570f5af7b160"}),"."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X PUT \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/monitor/messages/3ab66cc6-c048-48f8-ab07-570f5af7b160" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json" \\',props:{}}]},{tokens:[{content:' -H "Content-Type: application/json" \\',props:{}}]},{tokens:[{content:" -d '{",props:{}}]},{tokens:[{content:' "text": "testing 1234"',props:{}}]},{tokens:[{content:"}'",props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'{"timestamp":"2024-12-23T18:49:06","sender":"string","sender_name":"string","session_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a","text":"testing 1234","files":["string"],"error":true,"edit":true,"properties":{"text_color":"string","background_color":"string","edited":false,"source":{"id":"string","display_name":"string","source":"string"},"icon":"string","allow_markdown":false,"positive_feedback":true,"state":"complete","targets":[]},"category":"message","content_blocks":[],"id":"3ab66cc6-c048-48f8-ab07-570f5af7b160","flow_id":"01ce083d-748b-4b8d-97b6-33adbb6a528a"}',props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"update-session-id",children:"Update session ID"}),"\n",(0,s.jsx)(t.p,{children:"Update the session ID for messages."}),"\n",(0,s.jsxs)(t.p,{children:["This example updates the ",(0,s.jsx)(t.code,{children:"session_ID"})," value ",(0,s.jsx)(t.code,{children:"01ce083d-748b-4b8d-97b6-33adbb6a528a"})," to ",(0,s.jsx)(t.code,{children:"different_session_id"}),"."]}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X PATCH \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/monitor/messages/session/01ce083d-748b-4b8d-97b6-33adbb6a528a?new_session_id=different_session_id" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{}}]},{tokens:[{content:" {",props:{}}]},{tokens:[{content:' "id": "8dd7f064-e63a-4773-b472-ca0475249dfd",',props:{}}]},{tokens:[{content:' "flow_id": "01ce083d-748b-4b8d-97b6-33adbb6a528a",',props:{}}]},{tokens:[{content:' "timestamp": "2024-12-23 18:49:55 UTC",',props:{}}]},{tokens:[{content:' "sender": "User",',props:{}}]},{tokens:[{content:' "sender_name": "User",',props:{}}]},{tokens:[{content:' "session_id": "different_session_id",',props:{}}]},{tokens:[{content:' "text": "message",',props:{}}]},{tokens:[{content:' "files": "[]",',props:{}}]},{tokens:[{content:' "edit": false,',props:{}}]},{tokens:[{content:' "properties": {',props:{}}]},{tokens:[{content:' "text_color": "",',props:{}}]},{tokens:[{content:' "background_color": "",',props:{}}]},{tokens:[{content:' "edited": false,',props:{}}]},{tokens:[{content:' "source": {',props:{}}]},{tokens:[{content:' "id": null,',props:{}}]},{tokens:[{content:' "display_name": null,',props:{}}]},{tokens:[{content:' "source": null',props:{}}]},{tokens:[{content:" },",props:{}}]},{tokens:[{content:' "icon": "",',props:{}}]},{tokens:[{content:' "allow_markdown": false,',props:{}}]},{tokens:[{content:' "positive_feedback": null,',props:{}}]},{tokens:[{content:' "state": "complete",',props:{}}]},{tokens:[{content:' "targets": []',props:{}}]},{tokens:[{content:" },",props:{}}]},{tokens:[{content:' "category": "message",',props:{}}]},{tokens:[{content:' "content_blocks": []',props:{}}]},{tokens:[{content:" },",props:{}}]},{tokens:[{content:"]",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"delete-messages-by-session",children:"Delete messages by session"}),"\n",(0,s.jsx)(t.p,{children:"Delete all messages for a specific session."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X DELETE \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/monitor/messages/session/different_session_id_2" \\',props:{}}]},{tokens:[{content:' -H "accept: */*"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"HTTP/1.1 204 No Content",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"get-transactions",children:"Get transactions"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve all transactions (interactions between components) for a specific flow."}),"\n",(0,s.jsxs)(r.A,{children:[(0,s.jsx)(i.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/monitor/transactions?flow_id=$FLOW_ID&page=1&size=50" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"result",label:"Result",children:(0,s.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:' "items": [',props:{}}]},{tokens:[{content:" {",props:{}}]},{tokens:[{content:' "timestamp": "2024-12-23T20:05:01.061Z",',props:{}}]},{tokens:[{content:' "vertex_id": "string",',props:{}}]},{tokens:[{content:' "target_id": "string",',props:{}}]},{tokens:[{content:' "inputs": {},',props:{}}]},{tokens:[{content:' "outputs": {},',props:{}}]},{tokens:[{content:' "status": "string",',props:{}}]},{tokens:[{content:' "error": "string",',props:{}}]},{tokens:[{content:' "flow_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",',props:{}}]},{tokens:[{content:' "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:" ],",props:{}}]},{tokens:[{content:' "total": 0,',props:{}}]},{tokens:[{content:' "page": 1,',props:{}}]},{tokens:[{content:' "size": 1,',props:{}}]},{tokens:[{content:' "pages": 0',props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})})]})]})}function m(e={}){const{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(g,{...e})}):g(e)}function b(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},65537:(e,t,o)=>{o.d(t,{A:()=>y});var n=o(96540),s=o(18215),a=o(65627),l=o(56347),r=o(50372),i=o(30604),c=o(11861),p=o(78749);function d(e){return n.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,n.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function u(e){const{values:t,children:o}=e;return(0,n.useMemo)((()=>{const e=t??function(e){return d(e).map((e=>{let{props:{value:t,label:o,attributes:n,default:s}}=e;return{value:t,label:o,attributes:n,default:s}}))}(o);return function(e){const t=(0,c.XI)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,o])}function h(e){let{value:t,tabValues:o}=e;return o.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:o}=e;const s=(0,l.W6)(),a=function(e){let{queryString:t=!1,groupId:o}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!o)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return o??null}({queryString:t,groupId:o});return[(0,i.aZ)(a),(0,n.useCallback)((e=>{if(!a)return;const t=new URLSearchParams(s.location.search);t.set(a,e),s.replace({...s.location,search:t.toString()})}),[a,s])]}function g(e){const{defaultValue:t,queryString:o=!1,groupId:s}=e,a=u(e),[l,i]=(0,n.useState)((()=>function(e){let{defaultValue:t,tabValues:o}=e;if(0===o.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!h({value:t,tabValues:o}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${o.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=o.find((e=>e.default))??o[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:a}))),[c,d]=f({queryString:o,groupId:s}),[g,m]=function(e){let{groupId:t}=e;const o=function(e){return e?`docusaurus.tab.${e}`:null}(t),[s,a]=(0,p.Dv)(o);return[s,(0,n.useCallback)((e=>{o&&a.set(e)}),[o,a])]}({groupId:s}),b=(()=>{const e=c??g;return h({value:e,tabValues:a})?e:null})();(0,r.A)((()=>{b&&i(b)}),[b]);return{selectedValue:l,selectValue:(0,n.useCallback)((e=>{if(!h({value:e,tabValues:a}))throw new Error(`Can't select invalid tab value=${e}`);i(e),d(e),m(e)}),[d,m,a]),tabValues:a}}var m=o(9136);const b={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var x=o(74848);function k(e){let{className:t,block:o,selectedValue:n,selectValue:l,tabValues:r}=e;const i=[],{blockElementScrollPositionUntilNextRender:c}=(0,a.a_)(),p=e=>{const t=e.currentTarget,o=i.indexOf(t),s=r[o].value;s!==n&&(c(t),l(s))},d=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const o=i.indexOf(e.currentTarget)+1;t=i[o]??i[0];break}case"ArrowLeft":{const o=i.indexOf(e.currentTarget)-1;t=i[o]??i[i.length-1];break}}t?.focus()};return(0,x.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":o},t),children:r.map((e=>{let{value:t,label:o,attributes:a}=e;return(0,x.jsx)("li",{role:"tab",tabIndex:n===t?0:-1,"aria-selected":n===t,ref:e=>{i.push(e)},onKeyDown:d,onClick:p,...a,className:(0,s.A)("tabs__item",b.tabItem,a?.className,{"tabs__item--active":n===t}),children:o??t},t)}))})}function v(e){let{lazy:t,children:o,selectedValue:a}=e;const l=(Array.isArray(o)?o:[o]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,n.cloneElement)(e,{className:(0,s.A)("margin-top--md",e.props.className)}):null}return(0,x.jsx)("div",{className:"margin-top--md",children:l.map(((e,t)=>(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==a})))})}function j(e){const t=g(e);return(0,x.jsxs)("div",{className:(0,s.A)("tabs-container",b.tabList),children:[(0,x.jsx)(k,{...t,...e}),(0,x.jsx)(v,{...t,...e})]})}function y(e){const t=(0,m.A)();return(0,x.jsx)(j,{...e,children:d(e.children)},String(t))}},79329:(e,t,o)=>{o.d(t,{A:()=>l});o(96540);var n=o(18215);const s={tabItem:"tabItem_Ymn6"};var a=o(74848);function l(e){let{children:t,hidden:o,className:l}=e;return(0,a.jsx)("div",{role:"tabpanel",className:(0,n.A)(s.tabItem,l),hidden:o,children:t})}}}]); \ No newline at end of file diff --git a/assets/js/172b3cfb.9368ba3d.js b/assets/js/172b3cfb.9640bbc9.js similarity index 70% rename from assets/js/172b3cfb.9368ba3d.js rename to assets/js/172b3cfb.9640bbc9.js index de8a064784..2766a882dd 100644 --- a/assets/js/172b3cfb.9368ba3d.js +++ b/assets/js/172b3cfb.9640bbc9.js @@ -1 +1 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[8929],{1975:(M,j,N)=>{N.d(j,{A:()=>D});const D="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUzIiBoZWlnaHQ9IjQwIiB2aWV3Qm94PSIwIDAgMTUzIDQwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cmVjdCB3aWR0aD0iMTUzIiBoZWlnaHQ9IjQwIiBmaWxsPSIjOEEwNUZGIi8+CjxwYXRoIGQ9Ik0xNy41MDAxIDIxTDE4LjIwNTEgMjEuNzA1TDE5LjUwMDEgMjAuNDE1VjI2LjVIMjAuNTAwMVYyMC40MTVMMjEuNzk1MSAyMS43MDVMMjIuNTAwMSAyMUwyMC4wMDAxIDE4LjVMMTcuNTAwMSAyMVoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0yMy43NTAxIDIzSDIzLjUwMDFWMjJIMjMuNzUwMUMyNC4zNDY4IDIyLjAyMzkgMjQuOTI4NiAyMS44MDk3IDI1LjM2NzQgMjEuNDA0N0MyNS44MDYyIDIwLjk5OTYgMjYuMDY2MiAyMC40MzY4IDI2LjA5MDEgMTkuODRDMjYuMTEzOSAxOS4yNDMzIDI1Ljg5OTggMTguNjYxNSAyNS40OTQ3IDE4LjIyMjdDMjUuMDg5NiAxNy43ODM4IDI0LjUyNjggMTcuNTIzOSAyMy45MzAxIDE3LjVIMjMuNTAwMUwyMy40NTAxIDE3LjA5QzIzLjMzOTEgMTYuMjQ4MyAyMi45MjYgMTUuNDc1NSAyMi4yODc2IDE0LjkxNTdDMjEuNjQ5MiAxNC4zNTU5IDIwLjgyOTEgMTQuMDQ3MyAxOS45ODAxIDE0LjA0NzNDMTkuMTMxIDE0LjA0NzMgMTguMzEwOSAxNC4zNTU5IDE3LjY3MjUgMTQuOTE1N0MxNy4wMzQxIDE1LjQ3NTUgMTYuNjIxIDE2LjI0ODMgMTYuNTEwMSAxNy4wOUwxNi41MDAxIDE3LjVIMTYuMDcwMUMxNS40NzMzIDE3LjUyMzkgMTQuOTEwNSAxNy43ODM4IDE0LjUwNTQgMTguMjIyN0MxNC4xMDAzIDE4LjY2MTUgMTMuODg2MiAxOS4yNDMzIDEzLjkxMDEgMTkuODRDMTMuOTMzOSAyMC40MzY4IDE0LjE5MzkgMjAuOTk5NiAxNC42MzI3IDIxLjQwNDdDMTUuMDcxNSAyMS44MDk3IDE1LjY1MzMgMjIuMDIzOSAxNi4yNTAxIDIySDE2LjUwMDFWMjNIMTYuMjUwMUMxNS40NDgzIDIyLjk5NSAxNC42NzY2IDIyLjY5MzcgMTQuMDgzNSAyMi4xNTQxQzEzLjQ5MDUgMjEuNjE0NSAxMy4xMTc4IDIwLjg3NDcgMTMuMDM3MSAyMC4wNzdDMTIuOTU2NSAxOS4yNzkyIDEzLjE3MzYgMTguNDc5OCAxMy42NDY3IDE3LjgzMjVDMTQuMTE5OCAxNy4xODUxIDE0LjgxNTUgMTYuNzM1NSAxNS42MDAxIDE2LjU3QzE1LjgxNTkgMTUuNTYzMyAxNi4zNzA1IDE0LjY2MSAxNy4xNzEyIDE0LjAxMzhDMTcuOTcxOSAxMy4zNjY1IDE4Ljk3MDQgMTMuMDEzNCAyMC4wMDAxIDEzLjAxMzRDMjEuMDI5NyAxMy4wMTM0IDIyLjAyODIgMTMuMzY2NSAyMi44Mjg5IDE0LjAxMzhDMjMuNjI5NiAxNC42NjEgMjQuMTg0MiAxNS41NjMzIDI0LjQwMDEgMTYuNTdDMjUuMTg0NiAxNi43MzU1IDI1Ljg4MDMgMTcuMTg1MSAyNi4zNTM0IDE3LjgzMjVDMjYuODI2NSAxOC40Nzk4IDI3LjA0MzYgMTkuMjc5MiAyNi45NjMgMjAuMDc3QzI2Ljg4MjMgMjAuODc0NyAyNi41MDk2IDIxLjYxNDUgMjUuOTE2NiAyMi4xNTQxQzI1LjMyMzUgMjIuNjkzNyAyNC41NTE4IDIyLjk5NSAyMy43NTAxIDIzWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTM5LjA2MzIgMjVIMzUuNDM3MlYxNC45OUgzOS4wNjMyQzQxLjgyMTIgMTQuOTkgNDMuNTE1MiAxNi43ODIgNDMuNTE1MiAyMC4wMDJDNDMuNTE1MiAyMy4yMjIgNDEuODIxMiAyNSAzOS4wNjMyIDI1Wk0zNi42OTcyIDIzLjg4SDM5LjA2MzJDNDEuNjExMiAyMy44OCA0Mi4xOTkyIDIxLjk2MiA0Mi4xOTkyIDIwLjAwMkM0Mi4xOTkyIDE4LjA0MiA0MS42MTEyIDE2LjExIDM5LjA2MzIgMTYuMTFIMzYuNjk3MlYyMy44OFpNNTEuNDMwOSAyMS4xNjRDNTEuNDMwOSAyMS4zNzQgNTEuNDMwOSAyMS42MTIgNTEuNDE2OSAyMS43MjRINDUuODMwOUM0NS44NTg5IDIyLjk4NCA0Ni41NTg5IDI0LjI0NCA0OC4xNDA5IDI0LjI0NEM0OS41NDA5IDI0LjI0NCA1MC4wNzI5IDIzLjMwNiA1MC4xOTg5IDIyLjgwMkg1MS4zMzI5QzUwLjk2ODkgMjQuMTMyIDQ5Ljk2MDkgMjUuMjEgNDguMTI2OSAyNS4yMUM0NS44NzI5IDI1LjIxIDQ0LjY1NDkgMjMuNTg2IDQ0LjY1NDkgMjEuNDE2QzQ0LjY1NDkgMTkuMTM0IDQ2LjAxMjkgMTcuNjUgNDguMTI2OSAxNy42NUM1MC4yMTI5IDE3LjY1IDUxLjQzMDkgMTkuMDc4IDUxLjQzMDkgMjEuMTY0Wk00NS44MzA5IDIwLjc0NEg1MC4yNDA5QzUwLjI0MDkgMTkuNTY4IDQ5LjQwMDkgMTguNjE2IDQ4LjA3MDkgMTguNjE2QzQ2LjgzODkgMTguNjE2IDQ1LjkwMDkgMTkuNDk4IDQ1LjgzMDkgMjAuNzQ0Wk01Ni4xODk4IDE3LjY2NEM1Ny45ODE4IDE3LjY2NCA1OS40MDk4IDE5LjA3OCA1OS40MDk4IDIxLjQzQzU5LjQwOTggMjMuNzgyIDU3Ljk4MTggMjUuMTk2IDU2LjE4OTggMjUuMTk2QzU1LjA0MTggMjUuMTk2IDU0LjM2OTggMjQuNjkyIDUzLjk0OTggMjQuMDc2SDUzLjkyMThWMjcuNDc4SDUyLjgwMThWMTcuODZINTMuOTIxOFYxOC43NDJINTMuOTQ5OEM1NC4zNjk4IDE4LjE5NiA1NS4wNDE4IDE3LjY2NCA1Ni4xODk4IDE3LjY2NFpNNTYuMDc3OCAyNC4yMTZDNTcuNTQ3OCAyNC4yMTYgNTguMjMzOCAyMi44MyA1OC4yMzM4IDIxLjQzQzU4LjIzMzggMjAuMDMgNTcuNTQ3OCAxOC42NDQgNTYuMDc3OCAxOC42NDRDNTQuNzQ3OCAxOC42NDQgNTMuOTIxOCAxOS43NSA1My45MjE4IDIxLjQzQzUzLjkyMTggMjMuMTEgNTQuNzQ3OCAyNC4yMTYgNTYuMDc3OCAyNC4yMTZaTTYxLjkwOTQgMjVINjAuNzg5NFYxNC45OUg2MS45MDk0VjI1Wk02Ni43ODU1IDI1LjIxQzY0LjYwMTUgMjUuMjEgNjMuMjg1NSAyMy42NTYgNjMuMjg1NSAyMS40M0M2My4yODU1IDE5LjIwNCA2NC42MDE1IDE3LjY1IDY2Ljc4NTUgMTcuNjVDNjguOTU1NSAxNy42NSA3MC4yNzE1IDE5LjIwNCA3MC4yNzE1IDIxLjQzQzcwLjI3MTUgMjMuNjU2IDY4Ljk1NTUgMjUuMjEgNjYuNzg1NSAyNS4yMVpNNjYuNzg1NSAyNC4yM0M2OC4zODE1IDI0LjIzIDY5LjA5NTUgMjIuOTU2IDY5LjA5NTUgMjEuNDNDNjkuMDk1NSAxOS45MDQgNjguMzgxNSAxOC42MyA2Ni43ODU1IDE4LjYzQzY1LjE3NTUgMTguNjMgNjQuNDYxNSAxOS45MDQgNjQuNDYxNSAyMS40M0M2NC40NjE1IDIyLjk1NiA2NS4xNzU1IDI0LjIzIDY2Ljc4NTUgMjQuMjNaTTcyLjIwMiAyNy41MDZDNzEuOTUgMjcuNTA2IDcxLjc4MiAyNy40OTIgNzEuNDYgMjcuNDM2VjI2LjQ4NEM3MS42OTggMjYuNTEyIDcxLjgxIDI2LjUyNiA3Mi4wMiAyNi41MjZDNzIuNjA4IDI2LjUyNiA3My4yNTIgMjYuMTYyIDczLjU2IDI0LjkzTDcwLjY2MiAxNy44Nkg3MS45MjJMNzQuMTIgMjMuNTQ0SDc0LjE0OEw3Ni4yNDggMTcuODZINzcuNDUyTDc0LjU2OCAyNS4yMUM3My44NTQgMjcuMDE2IDczLjE2OCAyNy41MDYgNzIuMjAyIDI3LjUwNlpNODQuMjM3IDE3Ljg2VjE4Ljg0SDgyLjgzN1YyMy4xMzhDODIuODM3IDIzLjg5NCA4My4wMTkgMjQuMDkgODMuNjQ5IDI0LjA5QzgzLjg4NyAyNC4wOSA4My45OTkgMjQuMDc2IDg0LjIzNyAyNC4wNDhWMjVDODMuOTE1IDI1LjA1NiA4My43NDcgMjUuMDcgODMuNDk1IDI1LjA3QzgyLjQ0NSAyNS4wNyA4MS43MTcgMjQuNzA2IDgxLjcxNyAyMy4wODJWMTguODRIODAuNjY3VjE3Ljg2SDgxLjcxN1YxNS40OEg4Mi44MzdWMTcuODZIODQuMjM3Wk04OC41MDk1IDI1LjIxQzg2LjMyNTUgMjUuMjEgODUuMDA5NSAyMy42NTYgODUuMDA5NSAyMS40M0M4NS4wMDk1IDE5LjIwNCA4Ni4zMjU1IDE3LjY1IDg4LjUwOTUgMTcuNjVDOTAuNjc5NSAxNy42NSA5MS45OTU1IDE5LjIwNCA5MS45OTU1IDIxLjQzQzkxLjk5NTUgMjMuNjU2IDkwLjY3OTUgMjUuMjEgODguNTA5NSAyNS4yMVpNODguNTA5NSAyNC4yM0M5MC4xMDU1IDI0LjIzIDkwLjgxOTUgMjIuOTU2IDkwLjgxOTUgMjEuNDNDOTAuODE5NSAxOS45MDQgOTAuMTA1NSAxOC42MyA4OC41MDk1IDE4LjYzQzg2Ljg5OTUgMTguNjMgODYuMTg1NSAxOS45MDQgODYuMTg1NSAyMS40M0M4Ni4xODU1IDIyLjk1NiA4Ni44OTk1IDI0LjIzIDg4LjUwOTUgMjQuMjNaTTk3Ljk4IDI1SDk2LjcyVjE0Ljk5SDEwMC43MzhDMTAyLjkzNiAxNC45OSAxMDQuMDg0IDE2LjAyNiAxMDQuMDg0IDE3Ljg3NEMxMDQuMDg0IDE5LjEyIDEwMy4zMTQgMjAuMDcyIDEwMi4yNjQgMjAuMzI0VjIwLjM1MkMxMDQuNTE4IDIwLjc4NiAxMDMuNjkyIDI0Ljc0OCAxMDQuMjI0IDI0LjkxNlYyNUgxMDIuODY2QzEwMi40MzIgMjQuNTggMTAzLjM4NCAyMC45NTQgMTAwLjg1IDIwLjk1NEg5Ny45OFYyNVpNOTcuOTggMTkuODM0SDEwMC40NDRDMTAxLjk3IDE5LjgzNCAxMDIuODI0IDE5LjE0OCAxMDIuODI0IDE3LjkwMkMxMDIuODI0IDE2Ljc1NCAxMDIuMTggMTYuMTEgMTAwLjQ4NiAxNi4xMUg5Ny45OFYxOS44MzRaTTExMS45NjIgMjEuMTY0QzExMS45NjIgMjEuMzc0IDExMS45NjIgMjEuNjEyIDExMS45NDggMjEuNzI0SDEwNi4zNjJDMTA2LjM5IDIyLjk4NCAxMDcuMDkgMjQuMjQ0IDEwOC42NzIgMjQuMjQ0QzExMC4wNzIgMjQuMjQ0IDExMC42MDQgMjMuMzA2IDExMC43MyAyMi44MDJIMTExLjg2NEMxMTEuNSAyNC4xMzIgMTEwLjQ5MiAyNS4yMSAxMDguNjU4IDI1LjIxQzEwNi40MDQgMjUuMjEgMTA1LjE4NiAyMy41ODYgMTA1LjE4NiAyMS40MTZDMTA1LjE4NiAxOS4xMzQgMTA2LjU0NCAxNy42NSAxMDguNjU4IDE3LjY1QzExMC43NDQgMTcuNjUgMTExLjk2MiAxOS4wNzggMTExLjk2MiAyMS4xNjRaTTEwNi4zNjIgMjAuNzQ0SDExMC43NzJDMTEwLjc3MiAxOS41NjggMTA5LjkzMiAxOC42MTYgMTA4LjYwMiAxOC42MTZDMTA3LjM3IDE4LjYxNiAxMDYuNDMyIDE5LjQ5OCAxMDYuMzYyIDIwLjc0NFpNMTE2LjgzMyAxNy42NjRDMTE4LjEzNSAxNy42NjQgMTE5LjIyNyAxOC4zNzggMTE5LjIyNyAyMC4wMTZWMjVIMTE4LjEwN1YyMC4yOTZDMTE4LjEwNyAxOS4zNzIgMTE3LjY3MyAxOC42NDQgMTE2LjU1MyAxOC42NDRDMTE1LjI5MyAxOC42NDQgMTE0LjQ1MyAxOS40NDIgMTE0LjQ1MyAyMC41NDhWMjVIMTEzLjMzM1YxNy44NkgxMTQuNDUzVjE4LjcxNEgxMTQuNDgxQzExNC44NTkgMTguMjEgMTE1LjYxNSAxNy42NjQgMTE2LjgzMyAxNy42NjRaTTEyNi4wNDcgMTguNzg0VjE0Ljk5SDEyNy4xNjdWMjVIMTI2LjA0N1YyNC4xMThIMTI2LjAxOUMxMjUuNTk5IDI0LjY2NCAxMjQuOTI3IDI1LjE5NiAxMjMuNzc5IDI1LjE5NkMxMjEuOTg3IDI1LjE5NiAxMjAuNTU5IDIzLjc4MiAxMjAuNTU5IDIxLjQzQzEyMC41NTkgMTkuMDc4IDEyMS45ODcgMTcuNjY0IDEyMy43NzkgMTcuNjY0QzEyNC45MjcgMTcuNjY0IDEyNS41OTkgMTguMTY4IDEyNi4wMTkgMTguNzg0SDEyNi4wNDdaTTEyMy44OTEgMjQuMjE2QzEyNS4yMjEgMjQuMjE2IDEyNi4wNDcgMjMuMTEgMTI2LjA0NyAyMS40M0MxMjYuMDQ3IDE5Ljc1IDEyNS4yMjEgMTguNjQ0IDEyMy44OTEgMTguNjQ0QzEyMi40MjEgMTguNjQ0IDEyMS43MzUgMjAuMDMgMTIxLjczNSAyMS40M0MxMjEuNzM1IDIyLjgzIDEyMi40MjEgMjQuMjE2IDEyMy44OTEgMjQuMjE2Wk0xMzUuMzIzIDIxLjE2NEMxMzUuMzIzIDIxLjM3NCAxMzUuMzIzIDIxLjYxMiAxMzUuMzA5IDIxLjcyNEgxMjkuNzIzQzEyOS43NTEgMjIuOTg0IDEzMC40NTEgMjQuMjQ0IDEzMi4wMzMgMjQuMjQ0QzEzMy40MzMgMjQuMjQ0IDEzMy45NjUgMjMuMzA2IDEzNC4wOTEgMjIuODAySDEzNS4yMjVDMTM0Ljg2MSAyNC4xMzIgMTMzLjg1MyAyNS4yMSAxMzIuMDE5IDI1LjIxQzEyOS43NjUgMjUuMjEgMTI4LjU0NyAyMy41ODYgMTI4LjU0NyAyMS40MTZDMTI4LjU0NyAxOS4xMzQgMTI5LjkwNSAxNy42NSAxMzIuMDE5IDE3LjY1QzEzNC4xMDUgMTcuNjUgMTM1LjMyMyAxOS4wNzggMTM1LjMyMyAyMS4xNjRaTTEyOS43MjMgMjAuNzQ0SDEzNC4xMzNDMTM0LjEzMyAxOS41NjggMTMzLjI5MyAxOC42MTYgMTMxLjk2MyAxOC42MTZDMTMwLjczMSAxOC42MTYgMTI5Ljc5MyAxOS40OTggMTI5LjcyMyAyMC43NDRaTTEzOS44MTYgMTcuNjY0QzE0MC4wODIgMTcuNjY0IDE0MC4yNzggMTcuNjc4IDE0MC40NzQgMTcuNzA2VjE4LjgyNkMxNDAuMzA2IDE4Ljc5OCAxNDAuMTggMTguNzg0IDE0MC4wMTIgMTguNzg0QzEzOC42OTYgMTguNzg0IDEzNy44MTQgMTkuODIgMTM3LjgxNCAyMS4xOTJWMjVIMTM2LjY5NFYxNy44NkgxMzcuODE0VjE5LjI3NEgxMzcuODQyQzEzOC4yMiAxOC4zMzYgMTM4Ljc5NCAxNy42NjQgMTM5LjgxNiAxNy42NjRaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K"},18849:(M,j,N)=>{N.r(j),N.d(j,{assets:()=>u,contentTitle:()=>y,default:()=>x,frontMatter:()=>T,metadata:()=>D,toc:()=>e});const D=JSON.parse('{"id":"Deployment/deployment-render","title":"Render","description":"Deploy on Render","source":"@site/docs/Deployment/deployment-render.md","sourceDirName":"Deployment","slug":"/deployment-render","permalink":"/deployment-render","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Render","slug":"/deployment-render"},"sidebar":"docs","previous":{"title":"Railway","permalink":"/deployment-railway"},"next":{"title":"Apify","permalink":"/integrations-apify"}}');var I=N(74848),g=N(28453);const T={title:"Render",slug:"/deployment-render"},y=void 0,u={},e=[{value:"Deploy on Render",id:"20a959b7047e44e490cc129fd21895c0",level:2}];function A(M){const j={a:"a",code:"code",h2:"h2",hr:"hr",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",...(0,g.R)(),...M.components};return(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(j.h2,{id:"20a959b7047e44e490cc129fd21895c0",children:"Deploy on Render"}),"\n",(0,I.jsx)(j.hr,{}),"\n",(0,I.jsxs)(j.p,{children:[(0,I.jsx)(j.a,{href:"http://render.com/",children:"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."]}),"\n",(0,I.jsx)(j.p,{children:"Deploying Langflow to Render is a straightforward process that can be completed in just a few steps:"}),"\n",(0,I.jsxs)(j.ol,{children:["\n",(0,I.jsxs)(j.li,{children:["\n",(0,I.jsxs)(j.p,{children:[(0,I.jsx)(j.strong,{children:"Click the Button Below"}),": Start by clicking the deployment button provided below. This will redirect you to the Render platform."]}),"\n",(0,I.jsx)(j.p,{children:(0,I.jsx)(j.a,{href:"https://render.com/deploy?repo=https%3A%2F%2Fgithub.com%2Flangflow-ai%2Flangflow%2Ftree%2Fdev",children:(0,I.jsx)(j.img,{alt:"Deploy to Render",src:N(1975).A+"",width:"153",height:"40"})})}),"\n"]}),"\n",(0,I.jsxs)(j.li,{children:["\n",(0,I.jsxs)(j.p,{children:[(0,I.jsx)(j.strong,{children:"Select the Blueprint Configuration"}),": Once on the Render platform, you will be prompted to provide a blueprint name and to select the branch for your ",(0,I.jsx)(j.code,{children:"render.yaml"})," file in Langflow. This configuration file includes all the necessary settings and resources to deploy Langflow in Render. The default is ",(0,I.jsx)(j.code,{children:"main"}),"."]}),"\n"]}),"\n",(0,I.jsxs)(j.li,{children:["\n",(0,I.jsxs)(j.p,{children:["The ",(0,I.jsx)(j.code,{children:"render.yaml"})," file specifies a ",(0,I.jsx)(j.code,{children:"standard"})," Render instance, because Langflow requires at least 2 GB of RAM to run. This may require a credit card to sign up. Review the pricing details on the Render platform to understand any costs involved before proceeding. If you need to change your plan later, from the Render dashboard, go to ",(0,I.jsx)(j.strong,{children:"Settings"})," > ",(0,I.jsx)(j.strong,{children:"Instance Type"}),"."]}),"\n"]}),"\n",(0,I.jsxs)(j.li,{children:["\n",(0,I.jsxs)(j.p,{children:["Click ",(0,I.jsx)(j.strong,{children:"Deploy Blueprint"})," to deploy Langflow. Render will handle the rest, including setting up the database, deploying the Langflow instance, and starting the application."]}),"\n"]}),"\n"]}),"\n",(0,I.jsx)(j.p,{children:"By following these steps, your Langflow instance will be successfully deployed on Render."})]})}function x(M={}){const{wrapper:j}={...(0,g.R)(),...M.components};return j?(0,I.jsx)(j,{...M,children:(0,I.jsx)(A,{...M})}):A(M)}},28453:(M,j,N)=>{N.d(j,{R:()=>T,x:()=>y});var D=N(96540);const I={},g=D.createContext(I);function T(M){const j=D.useContext(g);return D.useMemo((function(){return"function"==typeof M?M(j):{...j,...M}}),[j,M])}function y(M){let j;return j=M.disableParentContext?"function"==typeof M.components?M.components(I):M.components||I:T(M.components),D.createElement(g.Provider,{value:j},M.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[8929],{1975:(M,j,N)=>{N.d(j,{A:()=>D});const D="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUzIiBoZWlnaHQ9IjQwIiB2aWV3Qm94PSIwIDAgMTUzIDQwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cmVjdCB3aWR0aD0iMTUzIiBoZWlnaHQ9IjQwIiBmaWxsPSIjOEEwNUZGIi8+CjxwYXRoIGQ9Ik0xNy41MDAxIDIxTDE4LjIwNTEgMjEuNzA1TDE5LjUwMDEgMjAuNDE1VjI2LjVIMjAuNTAwMVYyMC40MTVMMjEuNzk1MSAyMS43MDVMMjIuNTAwMSAyMUwyMC4wMDAxIDE4LjVMMTcuNTAwMSAyMVoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0yMy43NTAxIDIzSDIzLjUwMDFWMjJIMjMuNzUwMUMyNC4zNDY4IDIyLjAyMzkgMjQuOTI4NiAyMS44MDk3IDI1LjM2NzQgMjEuNDA0N0MyNS44MDYyIDIwLjk5OTYgMjYuMDY2MiAyMC40MzY4IDI2LjA5MDEgMTkuODRDMjYuMTEzOSAxOS4yNDMzIDI1Ljg5OTggMTguNjYxNSAyNS40OTQ3IDE4LjIyMjdDMjUuMDg5NiAxNy43ODM4IDI0LjUyNjggMTcuNTIzOSAyMy45MzAxIDE3LjVIMjMuNTAwMUwyMy40NTAxIDE3LjA5QzIzLjMzOTEgMTYuMjQ4MyAyMi45MjYgMTUuNDc1NSAyMi4yODc2IDE0LjkxNTdDMjEuNjQ5MiAxNC4zNTU5IDIwLjgyOTEgMTQuMDQ3MyAxOS45ODAxIDE0LjA0NzNDMTkuMTMxIDE0LjA0NzMgMTguMzEwOSAxNC4zNTU5IDE3LjY3MjUgMTQuOTE1N0MxNy4wMzQxIDE1LjQ3NTUgMTYuNjIxIDE2LjI0ODMgMTYuNTEwMSAxNy4wOUwxNi41MDAxIDE3LjVIMTYuMDcwMUMxNS40NzMzIDE3LjUyMzkgMTQuOTEwNSAxNy43ODM4IDE0LjUwNTQgMTguMjIyN0MxNC4xMDAzIDE4LjY2MTUgMTMuODg2MiAxOS4yNDMzIDEzLjkxMDEgMTkuODRDMTMuOTMzOSAyMC40MzY4IDE0LjE5MzkgMjAuOTk5NiAxNC42MzI3IDIxLjQwNDdDMTUuMDcxNSAyMS44MDk3IDE1LjY1MzMgMjIuMDIzOSAxNi4yNTAxIDIySDE2LjUwMDFWMjNIMTYuMjUwMUMxNS40NDgzIDIyLjk5NSAxNC42NzY2IDIyLjY5MzcgMTQuMDgzNSAyMi4xNTQxQzEzLjQ5MDUgMjEuNjE0NSAxMy4xMTc4IDIwLjg3NDcgMTMuMDM3MSAyMC4wNzdDMTIuOTU2NSAxOS4yNzkyIDEzLjE3MzYgMTguNDc5OCAxMy42NDY3IDE3LjgzMjVDMTQuMTE5OCAxNy4xODUxIDE0LjgxNTUgMTYuNzM1NSAxNS42MDAxIDE2LjU3QzE1LjgxNTkgMTUuNTYzMyAxNi4zNzA1IDE0LjY2MSAxNy4xNzEyIDE0LjAxMzhDMTcuOTcxOSAxMy4zNjY1IDE4Ljk3MDQgMTMuMDEzNCAyMC4wMDAxIDEzLjAxMzRDMjEuMDI5NyAxMy4wMTM0IDIyLjAyODIgMTMuMzY2NSAyMi44Mjg5IDE0LjAxMzhDMjMuNjI5NiAxNC42NjEgMjQuMTg0MiAxNS41NjMzIDI0LjQwMDEgMTYuNTdDMjUuMTg0NiAxNi43MzU1IDI1Ljg4MDMgMTcuMTg1MSAyNi4zNTM0IDE3LjgzMjVDMjYuODI2NSAxOC40Nzk4IDI3LjA0MzYgMTkuMjc5MiAyNi45NjMgMjAuMDc3QzI2Ljg4MjMgMjAuODc0NyAyNi41MDk2IDIxLjYxNDUgMjUuOTE2NiAyMi4xNTQxQzI1LjMyMzUgMjIuNjkzNyAyNC41NTE4IDIyLjk5NSAyMy43NTAxIDIzWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTM5LjA2MzIgMjVIMzUuNDM3MlYxNC45OUgzOS4wNjMyQzQxLjgyMTIgMTQuOTkgNDMuNTE1MiAxNi43ODIgNDMuNTE1MiAyMC4wMDJDNDMuNTE1MiAyMy4yMjIgNDEuODIxMiAyNSAzOS4wNjMyIDI1Wk0zNi42OTcyIDIzLjg4SDM5LjA2MzJDNDEuNjExMiAyMy44OCA0Mi4xOTkyIDIxLjk2MiA0Mi4xOTkyIDIwLjAwMkM0Mi4xOTkyIDE4LjA0MiA0MS42MTEyIDE2LjExIDM5LjA2MzIgMTYuMTFIMzYuNjk3MlYyMy44OFpNNTEuNDMwOSAyMS4xNjRDNTEuNDMwOSAyMS4zNzQgNTEuNDMwOSAyMS42MTIgNTEuNDE2OSAyMS43MjRINDUuODMwOUM0NS44NTg5IDIyLjk4NCA0Ni41NTg5IDI0LjI0NCA0OC4xNDA5IDI0LjI0NEM0OS41NDA5IDI0LjI0NCA1MC4wNzI5IDIzLjMwNiA1MC4xOTg5IDIyLjgwMkg1MS4zMzI5QzUwLjk2ODkgMjQuMTMyIDQ5Ljk2MDkgMjUuMjEgNDguMTI2OSAyNS4yMUM0NS44NzI5IDI1LjIxIDQ0LjY1NDkgMjMuNTg2IDQ0LjY1NDkgMjEuNDE2QzQ0LjY1NDkgMTkuMTM0IDQ2LjAxMjkgMTcuNjUgNDguMTI2OSAxNy42NUM1MC4yMTI5IDE3LjY1IDUxLjQzMDkgMTkuMDc4IDUxLjQzMDkgMjEuMTY0Wk00NS44MzA5IDIwLjc0NEg1MC4yNDA5QzUwLjI0MDkgMTkuNTY4IDQ5LjQwMDkgMTguNjE2IDQ4LjA3MDkgMTguNjE2QzQ2LjgzODkgMTguNjE2IDQ1LjkwMDkgMTkuNDk4IDQ1LjgzMDkgMjAuNzQ0Wk01Ni4xODk4IDE3LjY2NEM1Ny45ODE4IDE3LjY2NCA1OS40MDk4IDE5LjA3OCA1OS40MDk4IDIxLjQzQzU5LjQwOTggMjMuNzgyIDU3Ljk4MTggMjUuMTk2IDU2LjE4OTggMjUuMTk2QzU1LjA0MTggMjUuMTk2IDU0LjM2OTggMjQuNjkyIDUzLjk0OTggMjQuMDc2SDUzLjkyMThWMjcuNDc4SDUyLjgwMThWMTcuODZINTMuOTIxOFYxOC43NDJINTMuOTQ5OEM1NC4zNjk4IDE4LjE5NiA1NS4wNDE4IDE3LjY2NCA1Ni4xODk4IDE3LjY2NFpNNTYuMDc3OCAyNC4yMTZDNTcuNTQ3OCAyNC4yMTYgNTguMjMzOCAyMi44MyA1OC4yMzM4IDIxLjQzQzU4LjIzMzggMjAuMDMgNTcuNTQ3OCAxOC42NDQgNTYuMDc3OCAxOC42NDRDNTQuNzQ3OCAxOC42NDQgNTMuOTIxOCAxOS43NSA1My45MjE4IDIxLjQzQzUzLjkyMTggMjMuMTEgNTQuNzQ3OCAyNC4yMTYgNTYuMDc3OCAyNC4yMTZaTTYxLjkwOTQgMjVINjAuNzg5NFYxNC45OUg2MS45MDk0VjI1Wk02Ni43ODU1IDI1LjIxQzY0LjYwMTUgMjUuMjEgNjMuMjg1NSAyMy42NTYgNjMuMjg1NSAyMS40M0M2My4yODU1IDE5LjIwNCA2NC42MDE1IDE3LjY1IDY2Ljc4NTUgMTcuNjVDNjguOTU1NSAxNy42NSA3MC4yNzE1IDE5LjIwNCA3MC4yNzE1IDIxLjQzQzcwLjI3MTUgMjMuNjU2IDY4Ljk1NTUgMjUuMjEgNjYuNzg1NSAyNS4yMVpNNjYuNzg1NSAyNC4yM0M2OC4zODE1IDI0LjIzIDY5LjA5NTUgMjIuOTU2IDY5LjA5NTUgMjEuNDNDNjkuMDk1NSAxOS45MDQgNjguMzgxNSAxOC42MyA2Ni43ODU1IDE4LjYzQzY1LjE3NTUgMTguNjMgNjQuNDYxNSAxOS45MDQgNjQuNDYxNSAyMS40M0M2NC40NjE1IDIyLjk1NiA2NS4xNzU1IDI0LjIzIDY2Ljc4NTUgMjQuMjNaTTcyLjIwMiAyNy41MDZDNzEuOTUgMjcuNTA2IDcxLjc4MiAyNy40OTIgNzEuNDYgMjcuNDM2VjI2LjQ4NEM3MS42OTggMjYuNTEyIDcxLjgxIDI2LjUyNiA3Mi4wMiAyNi41MjZDNzIuNjA4IDI2LjUyNiA3My4yNTIgMjYuMTYyIDczLjU2IDI0LjkzTDcwLjY2MiAxNy44Nkg3MS45MjJMNzQuMTIgMjMuNTQ0SDc0LjE0OEw3Ni4yNDggMTcuODZINzcuNDUyTDc0LjU2OCAyNS4yMUM3My44NTQgMjcuMDE2IDczLjE2OCAyNy41MDYgNzIuMjAyIDI3LjUwNlpNODQuMjM3IDE3Ljg2VjE4Ljg0SDgyLjgzN1YyMy4xMzhDODIuODM3IDIzLjg5NCA4My4wMTkgMjQuMDkgODMuNjQ5IDI0LjA5QzgzLjg4NyAyNC4wOSA4My45OTkgMjQuMDc2IDg0LjIzNyAyNC4wNDhWMjVDODMuOTE1IDI1LjA1NiA4My43NDcgMjUuMDcgODMuNDk1IDI1LjA3QzgyLjQ0NSAyNS4wNyA4MS43MTcgMjQuNzA2IDgxLjcxNyAyMy4wODJWMTguODRIODAuNjY3VjE3Ljg2SDgxLjcxN1YxNS40OEg4Mi44MzdWMTcuODZIODQuMjM3Wk04OC41MDk1IDI1LjIxQzg2LjMyNTUgMjUuMjEgODUuMDA5NSAyMy42NTYgODUuMDA5NSAyMS40M0M4NS4wMDk1IDE5LjIwNCA4Ni4zMjU1IDE3LjY1IDg4LjUwOTUgMTcuNjVDOTAuNjc5NSAxNy42NSA5MS45OTU1IDE5LjIwNCA5MS45OTU1IDIxLjQzQzkxLjk5NTUgMjMuNjU2IDkwLjY3OTUgMjUuMjEgODguNTA5NSAyNS4yMVpNODguNTA5NSAyNC4yM0M5MC4xMDU1IDI0LjIzIDkwLjgxOTUgMjIuOTU2IDkwLjgxOTUgMjEuNDNDOTAuODE5NSAxOS45MDQgOTAuMTA1NSAxOC42MyA4OC41MDk1IDE4LjYzQzg2Ljg5OTUgMTguNjMgODYuMTg1NSAxOS45MDQgODYuMTg1NSAyMS40M0M4Ni4xODU1IDIyLjk1NiA4Ni44OTk1IDI0LjIzIDg4LjUwOTUgMjQuMjNaTTk3Ljk4IDI1SDk2LjcyVjE0Ljk5SDEwMC43MzhDMTAyLjkzNiAxNC45OSAxMDQuMDg0IDE2LjAyNiAxMDQuMDg0IDE3Ljg3NEMxMDQuMDg0IDE5LjEyIDEwMy4zMTQgMjAuMDcyIDEwMi4yNjQgMjAuMzI0VjIwLjM1MkMxMDQuNTE4IDIwLjc4NiAxMDMuNjkyIDI0Ljc0OCAxMDQuMjI0IDI0LjkxNlYyNUgxMDIuODY2QzEwMi40MzIgMjQuNTggMTAzLjM4NCAyMC45NTQgMTAwLjg1IDIwLjk1NEg5Ny45OFYyNVpNOTcuOTggMTkuODM0SDEwMC40NDRDMTAxLjk3IDE5LjgzNCAxMDIuODI0IDE5LjE0OCAxMDIuODI0IDE3LjkwMkMxMDIuODI0IDE2Ljc1NCAxMDIuMTggMTYuMTEgMTAwLjQ4NiAxNi4xMUg5Ny45OFYxOS44MzRaTTExMS45NjIgMjEuMTY0QzExMS45NjIgMjEuMzc0IDExMS45NjIgMjEuNjEyIDExMS45NDggMjEuNzI0SDEwNi4zNjJDMTA2LjM5IDIyLjk4NCAxMDcuMDkgMjQuMjQ0IDEwOC42NzIgMjQuMjQ0QzExMC4wNzIgMjQuMjQ0IDExMC42MDQgMjMuMzA2IDExMC43MyAyMi44MDJIMTExLjg2NEMxMTEuNSAyNC4xMzIgMTEwLjQ5MiAyNS4yMSAxMDguNjU4IDI1LjIxQzEwNi40MDQgMjUuMjEgMTA1LjE4NiAyMy41ODYgMTA1LjE4NiAyMS40MTZDMTA1LjE4NiAxOS4xMzQgMTA2LjU0NCAxNy42NSAxMDguNjU4IDE3LjY1QzExMC43NDQgMTcuNjUgMTExLjk2MiAxOS4wNzggMTExLjk2MiAyMS4xNjRaTTEwNi4zNjIgMjAuNzQ0SDExMC43NzJDMTEwLjc3MiAxOS41NjggMTA5LjkzMiAxOC42MTYgMTA4LjYwMiAxOC42MTZDMTA3LjM3IDE4LjYxNiAxMDYuNDMyIDE5LjQ5OCAxMDYuMzYyIDIwLjc0NFpNMTE2LjgzMyAxNy42NjRDMTE4LjEzNSAxNy42NjQgMTE5LjIyNyAxOC4zNzggMTE5LjIyNyAyMC4wMTZWMjVIMTE4LjEwN1YyMC4yOTZDMTE4LjEwNyAxOS4zNzIgMTE3LjY3MyAxOC42NDQgMTE2LjU1MyAxOC42NDRDMTE1LjI5MyAxOC42NDQgMTE0LjQ1MyAxOS40NDIgMTE0LjQ1MyAyMC41NDhWMjVIMTEzLjMzM1YxNy44NkgxMTQuNDUzVjE4LjcxNEgxMTQuNDgxQzExNC44NTkgMTguMjEgMTE1LjYxNSAxNy42NjQgMTE2LjgzMyAxNy42NjRaTTEyNi4wNDcgMTguNzg0VjE0Ljk5SDEyNy4xNjdWMjVIMTI2LjA0N1YyNC4xMThIMTI2LjAxOUMxMjUuNTk5IDI0LjY2NCAxMjQuOTI3IDI1LjE5NiAxMjMuNzc5IDI1LjE5NkMxMjEuOTg3IDI1LjE5NiAxMjAuNTU5IDIzLjc4MiAxMjAuNTU5IDIxLjQzQzEyMC41NTkgMTkuMDc4IDEyMS45ODcgMTcuNjY0IDEyMy43NzkgMTcuNjY0QzEyNC45MjcgMTcuNjY0IDEyNS41OTkgMTguMTY4IDEyNi4wMTkgMTguNzg0SDEyNi4wNDdaTTEyMy44OTEgMjQuMjE2QzEyNS4yMjEgMjQuMjE2IDEyNi4wNDcgMjMuMTEgMTI2LjA0NyAyMS40M0MxMjYuMDQ3IDE5Ljc1IDEyNS4yMjEgMTguNjQ0IDEyMy44OTEgMTguNjQ0QzEyMi40MjEgMTguNjQ0IDEyMS43MzUgMjAuMDMgMTIxLjczNSAyMS40M0MxMjEuNzM1IDIyLjgzIDEyMi40MjEgMjQuMjE2IDEyMy44OTEgMjQuMjE2Wk0xMzUuMzIzIDIxLjE2NEMxMzUuMzIzIDIxLjM3NCAxMzUuMzIzIDIxLjYxMiAxMzUuMzA5IDIxLjcyNEgxMjkuNzIzQzEyOS43NTEgMjIuOTg0IDEzMC40NTEgMjQuMjQ0IDEzMi4wMzMgMjQuMjQ0QzEzMy40MzMgMjQuMjQ0IDEzMy45NjUgMjMuMzA2IDEzNC4wOTEgMjIuODAySDEzNS4yMjVDMTM0Ljg2MSAyNC4xMzIgMTMzLjg1MyAyNS4yMSAxMzIuMDE5IDI1LjIxQzEyOS43NjUgMjUuMjEgMTI4LjU0NyAyMy41ODYgMTI4LjU0NyAyMS40MTZDMTI4LjU0NyAxOS4xMzQgMTI5LjkwNSAxNy42NSAxMzIuMDE5IDE3LjY1QzEzNC4xMDUgMTcuNjUgMTM1LjMyMyAxOS4wNzggMTM1LjMyMyAyMS4xNjRaTTEyOS43MjMgMjAuNzQ0SDEzNC4xMzNDMTM0LjEzMyAxOS41NjggMTMzLjI5MyAxOC42MTYgMTMxLjk2MyAxOC42MTZDMTMwLjczMSAxOC42MTYgMTI5Ljc5MyAxOS40OTggMTI5LjcyMyAyMC43NDRaTTEzOS44MTYgMTcuNjY0QzE0MC4wODIgMTcuNjY0IDE0MC4yNzggMTcuNjc4IDE0MC40NzQgMTcuNzA2VjE4LjgyNkMxNDAuMzA2IDE4Ljc5OCAxNDAuMTggMTguNzg0IDE0MC4wMTIgMTguNzg0QzEzOC42OTYgMTguNzg0IDEzNy44MTQgMTkuODIgMTM3LjgxNCAyMS4xOTJWMjVIMTM2LjY5NFYxNy44NkgxMzcuODE0VjE5LjI3NEgxMzcuODQyQzEzOC4yMiAxOC4zMzYgMTM4Ljc5NCAxNy42NjQgMTM5LjgxNiAxNy42NjRaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K"},18849:(M,j,N)=>{N.r(j),N.d(j,{assets:()=>e,contentTitle:()=>y,default:()=>x,frontMatter:()=>T,metadata:()=>D,toc:()=>u});const D=JSON.parse('{"id":"Deployment/deployment-render","title":"Render","description":"Deploy on Render","source":"@site/docs/Deployment/deployment-render.md","sourceDirName":"Deployment","slug":"/deployment-render","permalink":"/deployment-render","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Render","slug":"/deployment-render"},"sidebar":"docs","previous":{"title":"Railway","permalink":"/deployment-railway"},"next":{"title":"API examples","permalink":"/api-reference-api-examples"}}');var I=N(74848),g=N(28453);const T={title:"Render",slug:"/deployment-render"},y=void 0,e={},u=[{value:"Deploy on Render",id:"20a959b7047e44e490cc129fd21895c0",level:2}];function A(M){const j={a:"a",code:"code",h2:"h2",hr:"hr",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",...(0,g.R)(),...M.components};return(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(j.h2,{id:"20a959b7047e44e490cc129fd21895c0",children:"Deploy on Render"}),"\n",(0,I.jsx)(j.hr,{}),"\n",(0,I.jsxs)(j.p,{children:[(0,I.jsx)(j.a,{href:"http://render.com/",children:"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."]}),"\n",(0,I.jsx)(j.p,{children:"Deploying Langflow to Render is a straightforward process that can be completed in just a few steps:"}),"\n",(0,I.jsxs)(j.ol,{children:["\n",(0,I.jsxs)(j.li,{children:["\n",(0,I.jsxs)(j.p,{children:[(0,I.jsx)(j.strong,{children:"Click the Button Below"}),": Start by clicking the deployment button provided below. This will redirect you to the Render platform."]}),"\n",(0,I.jsx)(j.p,{children:(0,I.jsx)(j.a,{href:"https://render.com/deploy?repo=https%3A%2F%2Fgithub.com%2Flangflow-ai%2Flangflow%2Ftree%2Fdev",children:(0,I.jsx)(j.img,{alt:"Deploy to Render",src:N(1975).A+"",width:"153",height:"40"})})}),"\n"]}),"\n",(0,I.jsxs)(j.li,{children:["\n",(0,I.jsxs)(j.p,{children:[(0,I.jsx)(j.strong,{children:"Select the Blueprint Configuration"}),": Once on the Render platform, you will be prompted to provide a blueprint name and to select the branch for your ",(0,I.jsx)(j.code,{children:"render.yaml"})," file in Langflow. This configuration file includes all the necessary settings and resources to deploy Langflow in Render. The default is ",(0,I.jsx)(j.code,{children:"main"}),"."]}),"\n"]}),"\n",(0,I.jsxs)(j.li,{children:["\n",(0,I.jsxs)(j.p,{children:["The ",(0,I.jsx)(j.code,{children:"render.yaml"})," file specifies a ",(0,I.jsx)(j.code,{children:"standard"})," Render instance, because Langflow requires at least 2 GB of RAM to run. This may require a credit card to sign up. Review the pricing details on the Render platform to understand any costs involved before proceeding. If you need to change your plan later, from the Render dashboard, go to ",(0,I.jsx)(j.strong,{children:"Settings"})," > ",(0,I.jsx)(j.strong,{children:"Instance Type"}),"."]}),"\n"]}),"\n",(0,I.jsxs)(j.li,{children:["\n",(0,I.jsxs)(j.p,{children:["Click ",(0,I.jsx)(j.strong,{children:"Deploy Blueprint"})," to deploy Langflow. Render will handle the rest, including setting up the database, deploying the Langflow instance, and starting the application."]}),"\n"]}),"\n"]}),"\n",(0,I.jsx)(j.p,{children:"By following these steps, your Langflow instance will be successfully deployed on Render."})]})}function x(M={}){const{wrapper:j}={...(0,g.R)(),...M.components};return j?(0,I.jsx)(j,{...M,children:(0,I.jsx)(A,{...M})}):A(M)}},28453:(M,j,N)=>{N.d(j,{R:()=>T,x:()=>y});var D=N(96540);const I={},g=D.createContext(I);function T(M){const j=D.useContext(g);return D.useMemo((function(){return"function"==typeof M?M(j):{...j,...M}}),[j,M])}function y(M){let j;return j=M.disableParentContext?"function"==typeof M.components?M.components(I):M.components||I:T(M.components),D.createElement(g.Provider,{value:j},M.children)}}}]); \ No newline at end of file diff --git a/assets/js/22dd74f7.18fd1848.js b/assets/js/22dd74f7.18fd1848.js new file mode 100644 index 0000000000..7714f6f137 --- /dev/null +++ b/assets/js/22dd74f7.18fd1848.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":"Math agent","href":"/tutorials-math-agent","docId":"Tutorials/tutorials-math-agent","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":"Concepts","items":[{"type":"link","label":"Langflow overview","href":"/concepts-overview","docId":"Concepts/concepts-overview","unlisted":false},{"type":"link","label":"Playground","href":"/concepts-playground","docId":"Concepts/concepts-playground","unlisted":false},{"type":"link","label":"Components","href":"/concepts-components","docId":"Concepts/concepts-components","unlisted":false},{"type":"link","label":"Flows","href":"/Concepts/concepts-flows","docId":"Concepts/concepts-flows","unlisted":false},{"type":"link","label":"Langflow objects","href":"/concepts-objects","docId":"Concepts/concepts-objects","unlisted":false},{"type":"link","label":"API pane","href":"/concepts-api","docId":"Concepts/concepts-api","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Components","items":[{"type":"link","label":"Agents","href":"/components-agents","docId":"Components/components-agents","unlisted":false},{"type":"link","label":"Create custom Python 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":"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}],"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":"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":"Docker","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":"API reference","items":[{"type":"link","label":"API documentation","href":"/api"},{"type":"link","label":"API examples","href":"/api-reference-api-examples","docId":"API-Reference/api-reference-api-examples","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Integrations","items":[{"type":"link","label":"Apify","href":"/integrations-apify","docId":"Integrations/Apify/integrations-apify","unlisted":false},{"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},{"type":"category","label":"NVIDIA","items":[{"type":"link","label":"Integrate Nvidia Ingest with Langflow","href":"/integrations-nvidia-ingest","docId":"Integrations/Nvidia/integrations-nvidia-ingest","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":"Changelog","items":[{"type":"link","label":"Changelog","href":"https://github.com/langflow-ai/langflow/releases/latest"}],"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"},"API-Reference/api-reference-api-examples":{"id":"API-Reference/api-reference-api-examples","title":"API examples","description":"This page provides examples and practices for managing Langflow using the Langflow API.","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 Python 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":"Input and output components define where data enters and exits your flow.","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-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"},"Concepts/concepts-api":{"id":"Concepts/concepts-api","title":"API pane","description":"The\xa0API\xa0pane presents code templates for integrating your flow into external applications.","sidebar":"docs"},"Concepts/concepts-components":{"id":"Concepts/concepts-components","title":"Components","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"},"Concepts/concepts-flows":{"id":"Concepts/concepts-flows","title":"Flows","description":"Flows in Langflow are fully serializable and can be saved and loaded from the file system. In this guide, we\'ll explore how to import and export flows.","sidebar":"docs"},"Concepts/concepts-objects":{"id":"Concepts/concepts-objects","title":"Langflow objects","description":"In Langflow, objects are Pydantic models that serve as structured, functional representations of data.","sidebar":"docs"},"Concepts/concepts-overview":{"id":"Concepts/concepts-overview","title":"Langflow overview","description":"This page explores the fundamental building blocks of Langflow, beginning with the question, \\"What is a flow?\\"","sidebar":"docs"},"Concepts/concepts-playground":{"id":"Concepts/concepts-playground","title":"Playground","description":"The\xa0Playground\xa0is a dynamic interface designed for real-time interaction with LLMs, allowing users to chat, access memories, and monitor inputs and outputs. Here, users can directly prototype their models, making adjustments and observing different outcomes.","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-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":"Docker","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/Apify/integrations-apify":{"id":"Integrations/Apify/integrations-apify","title":"Apify","description":"Apify is a web scraping and data extraction platform. It provides an app store with more than three thousand ready-made cloud tools called Actors.","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"},"Integrations/Nvidia/integrations-nvidia-ingest":{"id":"Integrations/Nvidia/integrations-nvidia-ingest","title":"Integrate Nvidia Ingest with Langflow","description":"The NVIDIA Ingest component integrates with the NVIDIA nv-ingest microservice for data ingestion, processing, and extraction of text files.","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 component.","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-math-agent":{"id":"Tutorials/tutorials-math-agent","title":"Math agent","description":"Build a Math Agent flow for an agentic application using the Tool-calling agent component.","sidebar":"docs"},"Tutorials/tutorials-memory-chatbot":{"id":"Tutorials/tutorials-memory-chatbot","title":"Memory chatbot","description":"This flow extends the\xa0basic prompting flow\xa0with a Chat memory component that stores up to 100 previous chat messages and uses them to provide context for the current conversation.","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"}}}}')}}]); \ No newline at end of file diff --git a/assets/js/22dd74f7.a2531470.js b/assets/js/22dd74f7.a2531470.js deleted file mode 100644 index bf79df8d14..0000000000 --- a/assets/js/22dd74f7.a2531470.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":false,"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":false,"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":"Math agent","href":"/tutorials-math-agent","docId":"Tutorials/tutorials-math-agent","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":false,"collapsible":true},{"type":"category","label":"Concepts","items":[{"type":"link","label":"Langflow overview","href":"/concepts-overview","docId":"Concepts/concepts-overview","unlisted":false},{"type":"link","label":"Playground","href":"/concepts-playground","docId":"Concepts/concepts-playground","unlisted":false},{"type":"link","label":"Components","href":"/concepts-components","docId":"Concepts/concepts-components","unlisted":false},{"type":"link","label":"Flows","href":"/Concepts/concepts-flows","docId":"Concepts/concepts-flows","unlisted":false},{"type":"link","label":"Langflow objects","href":"/concepts-objects","docId":"Concepts/concepts-objects","unlisted":false},{"type":"link","label":"API pane","href":"/concepts-api","docId":"Concepts/concepts-api","unlisted":false}],"collapsed":false,"collapsible":true},{"type":"category","label":"Components","items":[{"type":"link","label":"Agents","href":"/components-agents","docId":"Components/components-agents","unlisted":false},{"type":"link","label":"Create custom Python 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":"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}],"collapsed":false,"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":false,"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":"Security best practices","href":"/configuration-security-best-practices","docId":"Configuration/configuration-security-best-practices","unlisted":false}],"collapsed":false,"collapsible":true},{"type":"category","label":"Deployment","items":[{"type":"link","label":"Docker","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":false,"collapsible":true},{"type":"category","label":"Integrations","items":[{"type":"link","label":"Apify","href":"/integrations-apify","docId":"Integrations/Apify/integrations-apify","unlisted":false},{"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":false,"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":false,"collapsible":true},{"type":"category","label":"NVIDIA","items":[{"type":"link","label":"Integrate Nvidia Ingest with Langflow","href":"/integrations-nvidia-ingest","docId":"Integrations/Nvidia/integrations-nvidia-ingest","unlisted":false}],"collapsed":false,"collapsible":true}],"collapsed":false,"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":false,"collapsible":true},{"type":"category","label":"API reference","items":[{"type":"link","label":"API documentation","href":"/api"},{"type":"link","label":"API examples","href":"/api-reference-api-examples","docId":"API-Reference/api-reference-api-examples","unlisted":false}],"collapsed":false,"collapsible":true},{"type":"category","label":"Changelog","items":[{"type":"link","label":"Changelog","href":"https://github.com/langflow-ai/langflow/releases/latest"}],"collapsed":false,"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"},"API-Reference/api-reference-api-examples":{"id":"API-Reference/api-reference-api-examples","title":"API examples","description":"This page provides examples and practices for managing Langflow using the Langflow API.","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 Python 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-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"},"Concepts/concepts-api":{"id":"Concepts/concepts-api","title":"API pane","description":"The\xa0API\xa0pane presents code templates for integrating your flow into external applications.","sidebar":"docs"},"Concepts/concepts-components":{"id":"Concepts/concepts-components","title":"Components","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"},"Concepts/concepts-flows":{"id":"Concepts/concepts-flows","title":"Flows","description":"Flows in Langflow are fully serializable and can be saved and loaded from the file system. In this guide, we\'ll explore how to import and export flows.","sidebar":"docs"},"Concepts/concepts-objects":{"id":"Concepts/concepts-objects","title":"Langflow objects","description":"In Langflow, objects are Pydantic models that serve as structured, functional representations of data.","sidebar":"docs"},"Concepts/concepts-overview":{"id":"Concepts/concepts-overview","title":"Langflow overview","description":"This page explores the fundamental building blocks of Langflow, beginning with the question, \\"What is a flow?\\"","sidebar":"docs"},"Concepts/concepts-playground":{"id":"Concepts/concepts-playground","title":"Playground","description":"The\xa0Playground\xa0is a dynamic interface designed for real-time interaction with LLMs, allowing users to chat, access memories, and monitor inputs and outputs. Here, users can directly prototype their models, making adjustments and observing different outcomes.","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-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":"Docker","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/Apify/integrations-apify":{"id":"Integrations/Apify/integrations-apify","title":"Apify","description":"Apify is a web scraping and data extraction platform. It provides an app store with more than three thousand ready-made cloud tools called Actors.","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"},"Integrations/Nvidia/integrations-nvidia-ingest":{"id":"Integrations/Nvidia/integrations-nvidia-ingest","title":"Integrate Nvidia Ingest with Langflow","description":"The NVIDIA Ingest component integrates with the NVIDIA nv-ingest microservice for data ingestion, processing, and extraction of text files.","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 component.","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-math-agent":{"id":"Tutorials/tutorials-math-agent","title":"Math agent","description":"Build a Math Agent flow for an agentic application using the Tool-calling agent component.","sidebar":"docs"},"Tutorials/tutorials-memory-chatbot":{"id":"Tutorials/tutorials-memory-chatbot","title":"Memory chatbot","description":"This flow extends the\xa0basic prompting flow\xa0with a Chat memory component that stores up to 100 previous chat messages and uses them to provide context for the current conversation.","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"}}}}')}}]); \ No newline at end of file diff --git a/assets/js/2ab0d4f5.624fbc0f.js b/assets/js/2ab0d4f5.624fbc0f.js new file mode 100644 index 0000000000..82d83ec6de --- /dev/null +++ b/assets/js/2ab0d4f5.624fbc0f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1845],{28453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>o});var i=t(96540);const s={},r=i.createContext(s);function a(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),i.createElement(r.Provider,{value:n},e.children)}},83640:(e,n,t)=>{t.r(n),t.d(n,{contentTitle:()=>o,default:()=>c,frontMatter:()=>a,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"type":"api","id":"simplified-run-flow","title":"Simplified Run Flow","description":"","slug":"/simplified-run-flow","frontMatter":{},"api":{"tags":["Base"],"description":"Executes a specified flow by ID with support for streaming and telemetry.\\n\\nThis endpoint executes a flow identified by ID or name, with options for streaming the response\\nand tracking execution metrics. It handles both streaming and non-streaming execution modes.\\n\\nArgs:\\n background_tasks (BackgroundTasks): FastAPI background task manager\\n flow (FlowRead | None): The flow to execute, loaded via dependency\\n input_request (SimplifiedAPIRequest | None): Input parameters for the flow\\n stream (bool): Whether to stream the response\\n api_key_user (UserRead): Authenticated user from API key\\n request (Request): The incoming HTTP request\\n\\nReturns:\\n Union[StreamingResponse, RunResponse]: Either a streaming response for real-time results\\n or a RunResponse with the complete execution results\\n\\nRaises:\\n HTTPException: For flow not found (404) or invalid input (400)\\n APIException: For internal execution errors (500)\\n\\nNotes:\\n - Supports both streaming and non-streaming execution modes\\n - Tracks execution time and success/failure via telemetry\\n - Handles graceful client disconnection in streaming mode\\n - Provides detailed error handling with appropriate HTTP status codes\\n - In streaming mode, uses EventManager to handle events:\\n - \\"add_message\\": New messages during execution\\n - \\"token\\": Individual tokens during streaming\\n - \\"end\\": Final execution result","operationId":"simplified_run_flow_api_v1_run__flow_id_or_name__post","security":[{"API key query":[]},{"API key header":[]}],"parameters":[{"name":"flow_id_or_name","in":"path","required":true,"schema":{"type":"string","title":"Flow Id Or Name"}},{"name":"stream","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Stream"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"string","format":"uuid"},{"type":"null"}],"title":"User Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"properties":{"input_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Value","description":"The input value"},"input_type":{"anyOf":[{"type":"string","enum":["chat","text","any"]},{"type":"null"}],"title":"Input Type","description":"The input type","default":"chat"},"output_type":{"anyOf":[{"type":"string","enum":["chat","text","any","debug"]},{"type":"null"}],"title":"Output Type","description":"The output type","default":"chat"},"output_component":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output Component","description":"If there are multiple output components, you can specify the component to get the output from.","default":""},"tweaks":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"object"}]},"type":"object","title":"Tweaks","description":"A dictionary of tweaks to adjust the flow\'s execution. Allows customizing flow behavior dynamically. All tweaks are overridden by the input values.","examples":[{"Component Name":{"parameter_name":"value"},"component_id":{"parameter_name":"value"},"parameter_name":"value"}]},{"type":"null"}],"description":"The tweaks"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"The session id"}},"type":"object","title":"SimplifiedAPIRequest"},{"type":"null"}],"title":"Input Request"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}},"method":"post","path":"/api/v1/run/{flow_id_or_name}","securitySchemes":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"api/v1/login"}}},"API key query":{"type":"apiKey","in":"query","name":"x-api-key"},"API key header":{"type":"apiKey","in":"header","name":"x-api-key"}},"info":{"title":"Langflow","version":"1.1.4"},"postman":{"name":"Simplified Run Flow","description":{"content":"Executes a specified flow by ID with support for streaming and telemetry.\\n\\nThis endpoint executes a flow identified by ID or name, with options for streaming the response\\nand tracking execution metrics. It handles both streaming and non-streaming execution modes.\\n\\nArgs:\\n background_tasks (BackgroundTasks): FastAPI background task manager\\n flow (FlowRead | None): The flow to execute, loaded via dependency\\n input_request (SimplifiedAPIRequest | None): Input parameters for the flow\\n stream (bool): Whether to stream the response\\n api_key_user (UserRead): Authenticated user from API key\\n request (Request): The incoming HTTP request\\n\\nReturns:\\n Union[StreamingResponse, RunResponse]: Either a streaming response for real-time results\\n or a RunResponse with the complete execution results\\n\\nRaises:\\n HTTPException: For flow not found (404) or invalid input (400)\\n APIException: For internal execution errors (500)\\n\\nNotes:\\n - Supports both streaming and non-streaming execution modes\\n - Tracks execution time and success/failure via telemetry\\n - Handles graceful client disconnection in streaming mode\\n - Provides detailed error handling with appropriate HTTP status codes\\n - In streaming mode, uses EventManager to handle events:\\n - \\"add_message\\": New messages during execution\\n - \\"token\\": Individual tokens during streaming\\n - \\"end\\": Final execution result","type":"text/plain"},"url":{"path":["api","v1","run",":flow_id_or_name"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"key":"stream","value":"false"},{"disabled":false,"key":"user_id","value":""}],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"flow_id_or_name"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\\n \\"input_value\\": \\"\\",\\n \\"input_type\\": \\"\\",\\n \\"output_type\\": \\"\\",\\n \\"output_component\\": \\"\\",\\n \\"tweaks\\": {\\n \\"ad_4\\": \\"\\",\\n \\"sint1\\": \\"\\",\\n \\"tempor7\\": \\"\\",\\n \\"consectetur0e4\\": \\"\\"\\n },\\n \\"session_id\\": \\"\\"\\n}","options":{"raw":{"language":"json"}}},"auth":{"type":"apikey","apikey":[{"type":"any","value":"x-api-key","key":"key"},{"type":"any","value":"{{apiKey}}","key":"value"},{"type":"any","value":"query","key":"in"}]}}},"source":"@site/openapi.json","sourceDirName":".","permalink":"/api/simplified-run-flow","previous":{"title":"Get All","permalink":"/api/get-all"},"next":{"title":"Webhook Run Flow","permalink":"/api/webhook-run-flow"}}');var s=t(74848),r=t(28453);const a={},o="Simplified Run Flow",l=[];function d(e){const n={h1:"h1",header:"header",li:"li",p:"p",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"simplified-run-flow",children:"Simplified Run Flow"})}),"\n",(0,s.jsx)(n.p,{children:"Executes a specified flow by ID with support for streaming and telemetry."}),"\n",(0,s.jsx)(n.p,{children:"This endpoint executes a flow identified by ID or name, with options for streaming the response\nand tracking execution metrics. It handles both streaming and non-streaming execution modes."}),"\n",(0,s.jsx)(n.p,{children:"Args:\nbackground_tasks (BackgroundTasks): FastAPI background task manager\nflow (FlowRead | None): The flow to execute, loaded via dependency\ninput_request (SimplifiedAPIRequest | None): Input parameters for the flow\nstream (bool): Whether to stream the response\napi_key_user (UserRead): Authenticated user from API key\nrequest (Request): The incoming HTTP request"}),"\n",(0,s.jsx)(n.p,{children:"Returns:\nUnion[StreamingResponse, RunResponse]: Either a streaming response for real-time results\nor a RunResponse with the complete execution results"}),"\n",(0,s.jsx)(n.p,{children:"Raises:\nHTTPException: For flow not found (404) or invalid input (400)\nAPIException: For internal execution errors (500)"}),"\n",(0,s.jsx)(n.p,{children:"Notes:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Supports both streaming and non-streaming execution modes"}),"\n",(0,s.jsx)(n.li,{children:"Tracks execution time and success/failure via telemetry"}),"\n",(0,s.jsx)(n.li,{children:"Handles graceful client disconnection in streaming mode"}),"\n",(0,s.jsx)(n.li,{children:"Provides detailed error handling with appropriate HTTP status codes"}),"\n",(0,s.jsxs)(n.li,{children:["In streaming mode, uses EventManager to handle events:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:'"add_message": New messages during execution'}),"\n",(0,s.jsx)(n.li,{children:'"token": Individual tokens during streaming'}),"\n",(0,s.jsx)(n.li,{children:'"end": Final execution result'}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("th",{style:{textAlign:"left"},children:"Path Parameters"})})}),(0,s.jsx)("tbody",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"flow_id_or_name"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" Flow Id Or Name"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,s.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-required)"},children:" REQUIRED"})]})})})]}),"\n",(0,s.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("th",{style:{textAlign:"left"},children:"Query Parameters"})})}),(0,s.jsxs)("tbody",{children:[(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"stream"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" Stream"})]})}),(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"user_id"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" User Id"})]})})]})]}),"\n",(0,s.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("th",{style:{textAlign:"left"},children:[(0,s.jsx)("span",{children:"Request Body "}),(0,s.jsx)("div",{})]})})}),(0,s.jsx)("tbody",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("td",{children:(0,s.jsx)("span",{style:{opacity:"0.6"},children:" undefined"})})})})]}),"\n",(0,s.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("th",{style:{textAlign:"left"},children:"Responses"})})}),(0,s.jsxs)("tbody",{children:[(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsxs)("div",{style:{display:"flex"},children:[(0,s.jsx)("div",{style:{marginRight:"var(--ifm-table-cell-padding)"},children:(0,s.jsx)("code",{children:"200"})}),(0,s.jsx)("div",{children:(0,s.jsx)(n.p,{children:"Successful Response"})})]}),(0,s.jsx)("div",{children:(0,s.jsxs)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("th",{style:{textAlign:"left"},children:[(0,s.jsx)("span",{children:"Schema "}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,s.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,s.jsx)("div",{})]})})}),(0,s.jsx)("tbody",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("td",{children:(0,s.jsx)("span",{style:{opacity:"0.6"},children:" undefined"})})})})]})})]})}),(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsxs)("div",{style:{display:"flex"},children:[(0,s.jsx)("div",{style:{marginRight:"var(--ifm-table-cell-padding)"},children:(0,s.jsx)("code",{children:"422"})}),(0,s.jsx)("div",{children:(0,s.jsx)(n.p,{children:"Validation Error"})})]}),(0,s.jsx)("div",{children:(0,s.jsxs)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("th",{style:{textAlign:"left"},children:[(0,s.jsx)("span",{children:"Schema "}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,s.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,s.jsx)("div",{})]})})}),(0,s.jsx)("tbody",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"detail"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" object[]"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,s.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,s.jsx)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:(0,s.jsxs)("tbody",{children:[(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"loc"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" undefined[]"})]})}),(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"msg"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" Message"})]})}),(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"type"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" Error Type"})]})})]})})]})})})]})})]})})]})]})]})}function c(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}}}]); \ No newline at end of file diff --git a/assets/js/2ab0d4f5.c8c2bf13.js b/assets/js/2ab0d4f5.c8c2bf13.js deleted file mode 100644 index b9059ebd52..0000000000 --- a/assets/js/2ab0d4f5.c8c2bf13.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1845],{28453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>o});var i=t(96540);const s={},r=i.createContext(s);function a(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),i.createElement(r.Provider,{value:n},e.children)}},83640:(e,n,t)=>{t.r(n),t.d(n,{contentTitle:()=>o,default:()=>c,frontMatter:()=>a,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"type":"api","id":"simplified-run-flow","title":"Simplified Run Flow","description":"","slug":"/simplified-run-flow","frontMatter":{},"api":{"tags":["Base"],"description":"Executes a specified flow by ID with support for streaming and telemetry.\\n\\nThis endpoint executes a flow identified by ID or name, with options for streaming the response\\nand tracking execution metrics. It handles both streaming and non-streaming execution modes.\\n\\nArgs:\\n background_tasks (BackgroundTasks): FastAPI background task manager\\n flow (FlowRead | None): The flow to execute, loaded via dependency\\n input_request (SimplifiedAPIRequest | None): Input parameters for the flow\\n stream (bool): Whether to stream the response\\n api_key_user (UserRead): Authenticated user from API key\\n request (Request): The incoming HTTP request\\n\\nReturns:\\n Union[StreamingResponse, RunResponse]: Either a streaming response for real-time results\\n or a RunResponse with the complete execution results\\n\\nRaises:\\n HTTPException: For flow not found (404) or invalid input (400)\\n APIException: For internal execution errors (500)\\n\\nNotes:\\n - Supports both streaming and non-streaming execution modes\\n - Tracks execution time and success/failure via telemetry\\n - Handles graceful client disconnection in streaming mode\\n - Provides detailed error handling with appropriate HTTP status codes\\n - In streaming mode, uses EventManager to handle events:\\n - \\"add_message\\": New messages during execution\\n - \\"token\\": Individual tokens during streaming\\n - \\"end\\": Final execution result","operationId":"simplified_run_flow_api_v1_run__flow_id_or_name__post","security":[{"API key query":[]},{"API key header":[]}],"parameters":[{"name":"flow_id_or_name","in":"path","required":true,"schema":{"type":"string","title":"Flow Id Or Name"}},{"name":"stream","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Stream"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"string","format":"uuid"},{"type":"null"}],"title":"User Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"properties":{"input_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Value","description":"The input value"},"input_type":{"anyOf":[{"type":"string","enum":["chat","text","any"]},{"type":"null"}],"title":"Input Type","description":"The input type","default":"chat"},"output_type":{"anyOf":[{"type":"string","enum":["chat","text","any","debug"]},{"type":"null"}],"title":"Output Type","description":"The output type","default":"chat"},"output_component":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output Component","description":"If there are multiple output components, you can specify the component to get the output from.","default":""},"tweaks":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"object"}]},"type":"object","title":"Tweaks","description":"A dictionary of tweaks to adjust the flow\'s execution. Allows customizing flow behavior dynamically. All tweaks are overridden by the input values.","examples":[{"Component Name":{"parameter_name":"value"},"component_id":{"parameter_name":"value"},"parameter_name":"value"}]},{"type":"null"}],"description":"The tweaks"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"The session id"}},"type":"object","title":"SimplifiedAPIRequest"},{"type":"null"}],"title":"Input Request"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}},"method":"post","path":"/api/v1/run/{flow_id_or_name}","securitySchemes":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"api/v1/login"}}},"API key query":{"type":"apiKey","in":"query","name":"x-api-key"},"API key header":{"type":"apiKey","in":"header","name":"x-api-key"}},"info":{"title":"Langflow","version":"1.1.4"},"postman":{"name":"Simplified Run Flow","description":{"content":"Executes a specified flow by ID with support for streaming and telemetry.\\n\\nThis endpoint executes a flow identified by ID or name, with options for streaming the response\\nand tracking execution metrics. It handles both streaming and non-streaming execution modes.\\n\\nArgs:\\n background_tasks (BackgroundTasks): FastAPI background task manager\\n flow (FlowRead | None): The flow to execute, loaded via dependency\\n input_request (SimplifiedAPIRequest | None): Input parameters for the flow\\n stream (bool): Whether to stream the response\\n api_key_user (UserRead): Authenticated user from API key\\n request (Request): The incoming HTTP request\\n\\nReturns:\\n Union[StreamingResponse, RunResponse]: Either a streaming response for real-time results\\n or a RunResponse with the complete execution results\\n\\nRaises:\\n HTTPException: For flow not found (404) or invalid input (400)\\n APIException: For internal execution errors (500)\\n\\nNotes:\\n - Supports both streaming and non-streaming execution modes\\n - Tracks execution time and success/failure via telemetry\\n - Handles graceful client disconnection in streaming mode\\n - Provides detailed error handling with appropriate HTTP status codes\\n - In streaming mode, uses EventManager to handle events:\\n - \\"add_message\\": New messages during execution\\n - \\"token\\": Individual tokens during streaming\\n - \\"end\\": Final execution result","type":"text/plain"},"url":{"path":["api","v1","run",":flow_id_or_name"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"key":"stream","value":"false"},{"disabled":false,"key":"user_id","value":""}],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"flow_id_or_name"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\\n \\"input_value\\": \\"\\",\\n \\"input_type\\": \\"\\",\\n \\"output_type\\": \\"\\",\\n \\"output_component\\": \\"\\",\\n \\"tweaks\\": {\\n \\"aliquipeec\\": \\"\\",\\n \\"sit_a\\": \\"\\"\\n },\\n \\"session_id\\": \\"\\"\\n}","options":{"raw":{"language":"json"}}},"auth":{"type":"apikey","apikey":[{"type":"any","value":"x-api-key","key":"key"},{"type":"any","value":"{{apiKey}}","key":"value"},{"type":"any","value":"query","key":"in"}]}}},"source":"@site/openapi.json","sourceDirName":".","permalink":"/api/simplified-run-flow","previous":{"title":"Get All","permalink":"/api/get-all"},"next":{"title":"Webhook Run Flow","permalink":"/api/webhook-run-flow"}}');var s=t(74848),r=t(28453);const a={},o="Simplified Run Flow",l=[];function d(e){const n={h1:"h1",header:"header",li:"li",p:"p",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"simplified-run-flow",children:"Simplified Run Flow"})}),"\n",(0,s.jsx)(n.p,{children:"Executes a specified flow by ID with support for streaming and telemetry."}),"\n",(0,s.jsx)(n.p,{children:"This endpoint executes a flow identified by ID or name, with options for streaming the response\nand tracking execution metrics. It handles both streaming and non-streaming execution modes."}),"\n",(0,s.jsx)(n.p,{children:"Args:\nbackground_tasks (BackgroundTasks): FastAPI background task manager\nflow (FlowRead | None): The flow to execute, loaded via dependency\ninput_request (SimplifiedAPIRequest | None): Input parameters for the flow\nstream (bool): Whether to stream the response\napi_key_user (UserRead): Authenticated user from API key\nrequest (Request): The incoming HTTP request"}),"\n",(0,s.jsx)(n.p,{children:"Returns:\nUnion[StreamingResponse, RunResponse]: Either a streaming response for real-time results\nor a RunResponse with the complete execution results"}),"\n",(0,s.jsx)(n.p,{children:"Raises:\nHTTPException: For flow not found (404) or invalid input (400)\nAPIException: For internal execution errors (500)"}),"\n",(0,s.jsx)(n.p,{children:"Notes:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Supports both streaming and non-streaming execution modes"}),"\n",(0,s.jsx)(n.li,{children:"Tracks execution time and success/failure via telemetry"}),"\n",(0,s.jsx)(n.li,{children:"Handles graceful client disconnection in streaming mode"}),"\n",(0,s.jsx)(n.li,{children:"Provides detailed error handling with appropriate HTTP status codes"}),"\n",(0,s.jsxs)(n.li,{children:["In streaming mode, uses EventManager to handle events:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:'"add_message": New messages during execution'}),"\n",(0,s.jsx)(n.li,{children:'"token": Individual tokens during streaming'}),"\n",(0,s.jsx)(n.li,{children:'"end": Final execution result'}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("th",{style:{textAlign:"left"},children:"Path Parameters"})})}),(0,s.jsx)("tbody",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"flow_id_or_name"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" Flow Id Or Name"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,s.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-required)"},children:" REQUIRED"})]})})})]}),"\n",(0,s.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("th",{style:{textAlign:"left"},children:"Query Parameters"})})}),(0,s.jsxs)("tbody",{children:[(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"stream"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" Stream"})]})}),(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"user_id"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" User Id"})]})})]})]}),"\n",(0,s.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("th",{style:{textAlign:"left"},children:[(0,s.jsx)("span",{children:"Request Body "}),(0,s.jsx)("div",{})]})})}),(0,s.jsx)("tbody",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("td",{children:(0,s.jsx)("span",{style:{opacity:"0.6"},children:" undefined"})})})})]}),"\n",(0,s.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("th",{style:{textAlign:"left"},children:"Responses"})})}),(0,s.jsxs)("tbody",{children:[(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsxs)("div",{style:{display:"flex"},children:[(0,s.jsx)("div",{style:{marginRight:"var(--ifm-table-cell-padding)"},children:(0,s.jsx)("code",{children:"200"})}),(0,s.jsx)("div",{children:(0,s.jsx)(n.p,{children:"Successful Response"})})]}),(0,s.jsx)("div",{children:(0,s.jsxs)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("th",{style:{textAlign:"left"},children:[(0,s.jsx)("span",{children:"Schema "}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,s.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,s.jsx)("div",{})]})})}),(0,s.jsx)("tbody",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("td",{children:(0,s.jsx)("span",{style:{opacity:"0.6"},children:" undefined"})})})})]})})]})}),(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsxs)("div",{style:{display:"flex"},children:[(0,s.jsx)("div",{style:{marginRight:"var(--ifm-table-cell-padding)"},children:(0,s.jsx)("code",{children:"422"})}),(0,s.jsx)("div",{children:(0,s.jsx)(n.p,{children:"Validation Error"})})]}),(0,s.jsx)("div",{children:(0,s.jsxs)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("th",{style:{textAlign:"left"},children:[(0,s.jsx)("span",{children:"Schema "}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,s.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,s.jsx)("div",{})]})})}),(0,s.jsx)("tbody",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"detail"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" object[]"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,s.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,s.jsx)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:(0,s.jsxs)("tbody",{children:[(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"loc"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" undefined[]"})]})}),(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"msg"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" Message"})]})}),(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"type"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" Error Type"})]})})]})})]})})})]})})]})})]})]})]})}function c(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}}}]); \ No newline at end of file diff --git a/assets/js/2d2c4fcb.f6e09b74.js b/assets/js/2d2c4fcb.15905c36.js similarity index 99% rename from assets/js/2d2c4fcb.f6e09b74.js rename to assets/js/2d2c4fcb.15905c36.js index 430987c961..5dbbfd09bf 100644 --- a/assets/js/2d2c4fcb.f6e09b74.js +++ b/assets/js/2d2c4fcb.15905c36.js @@ -1 +1 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[4973],{3331:(n,e,o)=>{o.r(e),o.d(e,{CH:()=>d,assets:()=>c,chCodeConfig:()=>h,contentTitle:()=>r,default:()=>f,frontMatter:()=>i,metadata:()=>t,toc:()=>p});const t=JSON.parse('{"id":"Get-Started/get-started-installation","title":"Install Langflow","description":"You can deploy Langflow either locally or as a hosted service with Datastax Langflow.","source":"@site/docs/Get-Started/get-started-installation.md","sourceDirName":"Get-Started","slug":"/get-started-installation","permalink":"/get-started-installation","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Install Langflow","slug":"/get-started-installation"},"sidebar":"docs","previous":{"title":"Welcome to Langflow","permalink":"/"},"next":{"title":"Quickstart","permalink":"/get-started-quickstart"}}');var l=o(74848),s=o(28453),a=o(24754);const i={title:"Install Langflow",slug:"/get-started-installation"},r=void 0,c={},d={annotations:a.hk,Code:a.Cy},h={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},p=[{value:"Install Langflow locally",id:"install-langflow-locally",level:2},{value:"Prerequisites",id:"prerequisites",level:3},{value:"Install Langflow with pip or pipx",id:"install-langflow-with-pip-or-pipx",level:3},{value:"Run Langflow",id:"run-langflow",level:2},{value:"Manage Langflow versions",id:"manage-langflow-versions",level:2},{value:"DataStax Langflow",id:"datastax-langflow",level:2},{value:"Common installation issues",id:"common-installation-issues",level:2},{value:"No langflow.__main__ module",id:"no-langflow__main__-module",level:3},{value:"Langflow runTraceback",id:"langflow-runtraceback",level:3},{value:"Something went wrong running migrations",id:"something-went-wrong-running-migrations",level:3},{value:"Langflow installation freezes at pip dependency resolution",id:"langflow-installation-freezes-at-pip-dependency-resolution",level:3}];function g(n){const e={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,s.R)(),...n.components};return d||u("CH",!1),d.Code||u("CH.Code",!0),(0,l.jsxs)(l.Fragment,{children:[(0,l.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,l.jsxs)(e.p,{children:["You can deploy Langflow either locally or as a hosted service with ",(0,l.jsx)(e.a,{href:"#datastax-langflow",children:(0,l.jsx)(e.strong,{children:"Datastax Langflow"})}),"."]}),"\n",(0,l.jsx)(e.h2,{id:"install-langflow-locally",children:"Install Langflow locally"}),"\n",(0,l.jsxs)(e.p,{children:["Install Langflow locally with ",(0,l.jsx)(e.a,{href:"https://docs.astral.sh/uv/getting-started/installation/",children:"uv (recommended)"}),", ",(0,l.jsx)(e.a,{href:"https://pypi.org/project/pip/",children:"pip"}),",\xa0or ",(0,l.jsx)(e.a,{href:"https://pipx.pypa.io/stable/installation/",children:"pipx"}),"."]}),"\n",(0,l.jsx)(e.h3,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.a,{href:"https://www.python.org/downloads/release/python-3100/",children:"Python 3.10 to 3.12"})," installed"]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.a,{href:"https://docs.astral.sh/uv/getting-started/installation/",children:"uv"}),", ",(0,l.jsx)(e.a,{href:"https://pypi.org/project/pip/",children:"pip"}),", or ",(0,l.jsx)(e.a,{href:"https://pipx.pypa.io/stable/installation/",children:"pipx"})," installed"]}),"\n",(0,l.jsxs)(e.li,{children:["Before installing Langflow, we recommend creating a virtual environment to isolate your Python dependencies with ",(0,l.jsx)(e.a,{href:"https://docs.astral.sh/uv/pip/environments",children:"uv"}),", ",(0,l.jsx)(e.a,{href:"https://docs.python.org/3/library/venv.html",children:"venv"}),", or ",(0,l.jsx)(e.a,{href:"https://anaconda.org/anaconda/conda",children:"conda"})]}),"\n"]}),"\n",(0,l.jsx)(e.h3,{id:"install-langflow-with-pip-or-pipx",children:"Install Langflow with pip or pipx"}),"\n",(0,l.jsx)(e.p,{children:"Install Langflow with uv:"}),"\n",(0,l.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv ",props:{style:{color:"#FFA657"}}},{content:"pip install langflow",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsx)(e.p,{children:"Install Langflow with pip:"}),"\n",(0,l.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"pip install langflow",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsx)(e.p,{children:"Install Langflow with pipx using the Python 3.10 executable:"}),"\n",(0,l.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"pipx ",props:{style:{color:"#FFA657"}}},{content:"install langflow ",props:{style:{color:"#A5D6FF"}}},{content:"--python ",props:{style:{color:"#79C0FF"}}},{content:"python3.",props:{style:{color:"#A5D6FF"}}},{content:"10",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsx)(e.h2,{id:"run-langflow",children:"Run Langflow"}),"\n",(0,l.jsxs)(e.ol,{children:["\n",(0,l.jsx)(e.li,{children:"To run Langflow with uv, enter the following command."}),"\n"]}),"\n",(0,l.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv ",props:{style:{color:"#FFA657"}}},{content:"run langflow run",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsxs)(e.ol,{start:"2",children:["\n",(0,l.jsx)(e.li,{children:"To run Langflow with pip, enter the following command."}),"\n"]}),"\n",(0,l.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow run",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsxs)(e.ol,{start:"3",children:["\n",(0,l.jsxs)(e.li,{children:["Confirm that a local Langflow instance starts by visiting\xa0",(0,l.jsx)(e.code,{children:"http://127.0.0.1:7860"}),"\xa0in a Chromium-based browser."]}),"\n"]}),"\n",(0,l.jsxs)(e.p,{children:["Now that Langflow is running, follow the ",(0,l.jsx)(e.a,{href:"/get-started-quickstart",children:"Quickstart"})," to create your first flow."]}),"\n",(0,l.jsx)(e.h2,{id:"manage-langflow-versions",children:"Manage Langflow versions"}),"\n",(0,l.jsx)(e.p,{children:"To upgrade Langflow to the latest version with uv, use the uv pip upgrade command."}),"\n",(0,l.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv ",props:{style:{color:"#FFA657"}}},{content:"pip install langflow ",props:{style:{color:"#A5D6FF"}}},{content:"-U",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsx)(e.p,{children:"To upgrade Langflow to the latest version, use the pip upgrade command."}),"\n",(0,l.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"pip install langflow ",props:{style:{color:"#A5D6FF"}}},{content:"-U",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsx)(e.p,{children:"To install a specific version of the Langflow package, add the required version to the command."}),"\n",(0,l.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"pip install langflow==",props:{style:{color:"#A5D6FF"}}},{content:"1.1",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsxs)(e.p,{children:["To reinstall Langflow and all of its dependencies, add the ",(0,l.jsx)(e.code,{children:"--force-reinstall"})," flag to the command."]}),"\n",(0,l.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"pip install langflow ",props:{style:{color:"#A5D6FF"}}},{content:"--force-reinstall",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsx)(e.h2,{id:"datastax-langflow",children:"DataStax Langflow"}),"\n",(0,l.jsxs)(e.p,{children:[(0,l.jsx)(e.strong,{children:"DataStax Langflow"})," is a hosted version of Langflow integrated with\xa0",(0,l.jsx)(e.a,{href:"https://www.datastax.com/products/datastax-astra",children:"Astra DB"}),". Be up and running in minutes with no installation or setup required.\xa0",(0,l.jsx)(e.a,{href:"https://astra.datastax.com/signup?type=langflow",children:"Sign up for free"}),"."]}),"\n",(0,l.jsx)(e.h2,{id:"common-installation-issues",children:"Common installation issues"}),"\n",(0,l.jsx)(e.p,{children:"This is a list of possible issues that you may encounter when installing and running Langflow."}),"\n",(0,l.jsxs)(e.h3,{id:"no-langflow__main__-module",children:["No ",(0,l.jsx)(e.code,{children:"langflow.__main__"})," module"]}),"\n",(0,l.jsxs)(e.p,{children:["When you try to run Langflow with the command ",(0,l.jsx)(e.code,{children:"langflow run"}),", you encounter the following error:"]}),"\n",(0,l.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:">",props:{style:{color:"#FF7B72"}}},{content:" No\xa0module\xa0named\xa0",props:{style:{color:"#C9D1D9"}}},{content:"'langflow.__main__'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsxs)(e.ol,{children:["\n",(0,l.jsxs)(e.li,{children:["Run\xa0",(0,l.jsx)(e.code,{children:"python\xa0-m langflow run"}),"\xa0instead of\xa0",(0,l.jsx)(e.code,{children:"langflow run"}),"."]}),"\n",(0,l.jsxs)(e.li,{children:["If that doesn't work, reinstall the latest Langflow version with\xa0",(0,l.jsx)(e.code,{children:"python\xa0-m pip install langflow\xa0-U"}),"."]}),"\n",(0,l.jsxs)(e.li,{children:["If that doesn't work, reinstall Langflow and its dependencies with\xa0",(0,l.jsx)(e.code,{children:"python\xa0-m pip install langflow\xa0--pre\xa0-U\xa0--force-reinstall"}),"."]}),"\n"]}),"\n",(0,l.jsx)(e.h3,{id:"langflow-runtraceback",children:"Langflow runTraceback"}),"\n",(0,l.jsxs)(e.p,{children:["When you try to run Langflow using the command\xa0",(0,l.jsx)(e.code,{children:"langflow run"}),", you encounter the following error:"]}),"\n",(0,l.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:">",props:{style:{color:"#FF7B72"}}},{content:" langflow runTraceback (",props:{style:{color:"#C9D1D9"}}},{content:"most ",props:{style:{color:"#FFA657"}}},{content:"recent call last",props:{style:{color:"#A5D6FF"}}},{content:"): File ",props:{style:{color:"#C9D1D9"}}},{content:'".../langflow"',props:{style:{color:"#A5D6FF"}}},{content:", line 5, ",props:{style:{color:"#C9D1D9"}}},{content:"in <",props:{style:{color:"#FF7B72"}}},{content:"module",props:{style:{color:"#C9D1D9"}}},{content:">",props:{style:{color:"#FF7B72"}}},{content:" from langflow.__main__ import mainModuleNotFoundError: No module named ",props:{style:{color:"#C9D1D9"}}},{content:"'langflow.__main__'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsx)(e.p,{children:"There are two possible reasons for this error:"}),"\n",(0,l.jsxs)(e.ol,{children:["\n",(0,l.jsxs)(e.li,{children:["You've installed Langflow using\xa0",(0,l.jsx)(e.code,{children:"pip install langflow"}),"\xa0but you already had a previous version of Langflow installed in your system. In this case, you might be running the wrong executable. To solve this issue, run the correct executable by running\xa0",(0,l.jsx)(e.code,{children:"python\xa0-m langflow run"}),"\xa0instead of\xa0",(0,l.jsx)(e.code,{children:"langflow run"}),". If that doesn't work, try uninstalling and reinstalling Langflow with\xa0",(0,l.jsx)(e.code,{children:"python\xa0-m pip install langflow\xa0--pre\xa0-U"}),"."]}),"\n",(0,l.jsxs)(e.li,{children:["Some version conflicts might have occurred during the installation process. Run\xa0",(0,l.jsx)(e.code,{children:"python\xa0-m pip install langflow\xa0--pre\xa0-U\xa0--force-reinstall"}),"\xa0to reinstall Langflow and its dependencies."]}),"\n"]}),"\n",(0,l.jsx)(e.h3,{id:"something-went-wrong-running-migrations",children:"Something went wrong running migrations"}),"\n",(0,l.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:">",props:{style:{color:"#FF7B72"}}},{content:" Something went wrong running migrations. Please, run\xa0",props:{style:{color:"#C9D1D9"}}},{content:"'langflow migration --fix'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsx)(e.p,{children:"Clear the cache by deleting the contents of the cache folder."}),"\n",(0,l.jsx)(e.p,{children:"This folder can be found at:"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.strong,{children:"Linux or WSL2 on Windows"}),":\xa0",(0,l.jsx)(e.code,{children:"home//.cache/langflow/"})]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.strong,{children:"MacOS"}),":\xa0",(0,l.jsx)(e.code,{children:"/Users//Library/Caches/langflow/"})]}),"\n"]}),"\n",(0,l.jsxs)(e.p,{children:["This error can occur during Langflow upgrades when the new version can't override\xa0",(0,l.jsx)(e.code,{children:"langflow-pre.db"}),"\xa0in\xa0",(0,l.jsx)(e.code,{children:".cache/langflow/"}),". Clearing the cache removes this file but also erases your settings."]}),"\n",(0,l.jsx)(e.p,{children:"If you wish to retain your files, back them up before clearing the folder."}),"\n",(0,l.jsx)(e.h3,{id:"langflow-installation-freezes-at-pip-dependency-resolution",children:"Langflow installation freezes at pip dependency resolution"}),"\n",(0,l.jsxs)(e.p,{children:["Installing Langflow with ",(0,l.jsx)(e.code,{children:"pip install langflow"})," slowly fails with this error message:"]}),"\n",(0,l.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"pip is looking at multiple versions of <> to determine which version is compatible with other requirements. This could take a while.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,l.jsxs)(e.p,{children:["To work around this issue, install Langflow with ",(0,l.jsx)(e.a,{href:"https://docs.astral.sh/uv/getting-started/installation/",children:(0,l.jsx)(e.code,{children:"uv"})})," instead of ",(0,l.jsx)(e.code,{children:"pip"}),"."]}),"\n",(0,l.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv pip install langflow",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,l.jsx)(e.p,{children:"To run Langflow with uv:"}),"\n",(0,l.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv run langflow run",props:{}}]}],lang:"text"},annotations:[]}]})]})}function f(n={}){const{wrapper:e}={...(0,s.R)(),...n.components};return e?(0,l.jsx)(e,{...n,children:(0,l.jsx)(g,{...n})}):g(n)}function u(n,e){throw new Error("Expected "+(e?"component":"object")+" `"+n+"` 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([[4973],{3331:(n,e,o)=>{o.r(e),o.d(e,{CH:()=>d,assets:()=>c,chCodeConfig:()=>h,contentTitle:()=>r,default:()=>f,frontMatter:()=>i,metadata:()=>t,toc:()=>p});const t=JSON.parse('{"id":"Get-Started/get-started-installation","title":"Install Langflow","description":"You can deploy Langflow either locally or as a hosted service with Datastax Langflow.","source":"@site/docs/Get-Started/get-started-installation.md","sourceDirName":"Get-Started","slug":"/get-started-installation","permalink":"/get-started-installation","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Install Langflow","slug":"/get-started-installation"},"sidebar":"docs","previous":{"title":"Welcome to Langflow","permalink":"/"},"next":{"title":"Quickstart","permalink":"/get-started-quickstart"}}');var l=o(74848),s=o(28453),a=o(24754);const i={title:"Install Langflow",slug:"/get-started-installation"},r=void 0,c={},d={annotations:a.hk,Code:a.Cy},h={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},p=[{value:"Install Langflow locally",id:"install-langflow-locally",level:2},{value:"Prerequisites",id:"prerequisites",level:3},{value:"Install Langflow with pip or pipx",id:"install-langflow-with-pip-or-pipx",level:3},{value:"Run Langflow",id:"run-langflow",level:2},{value:"Manage Langflow versions",id:"manage-langflow-versions",level:2},{value:"DataStax Langflow",id:"datastax-langflow",level:2},{value:"Common installation issues",id:"common-installation-issues",level:2},{value:"No langflow.__main__ module",id:"no-langflow__main__-module",level:3},{value:"Langflow runTraceback",id:"langflow-runtraceback",level:3},{value:"Something went wrong running migrations",id:"something-went-wrong-running-migrations",level:3},{value:"Langflow installation freezes at pip dependency resolution",id:"langflow-installation-freezes-at-pip-dependency-resolution",level:3}];function g(n){const e={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,s.R)(),...n.components};return d||u("CH",!1),d.Code||u("CH.Code",!0),(0,l.jsxs)(l.Fragment,{children:[(0,l.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,l.jsxs)(e.p,{children:["You can deploy Langflow either locally or as a hosted service with ",(0,l.jsx)(e.a,{href:"#datastax-langflow",children:(0,l.jsx)(e.strong,{children:"Datastax Langflow"})}),"."]}),"\n",(0,l.jsx)(e.h2,{id:"install-langflow-locally",children:"Install Langflow locally"}),"\n",(0,l.jsxs)(e.p,{children:["Install Langflow locally with ",(0,l.jsx)(e.a,{href:"https://docs.astral.sh/uv/getting-started/installation/",children:"uv (recommended)"}),", ",(0,l.jsx)(e.a,{href:"https://pypi.org/project/pip/",children:"pip"}),",\xa0or ",(0,l.jsx)(e.a,{href:"https://pipx.pypa.io/stable/installation/",children:"pipx"}),"."]}),"\n",(0,l.jsx)(e.h3,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.a,{href:"https://www.python.org/downloads/release/python-3100/",children:"Python 3.10 to 3.13"})," installed"]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.a,{href:"https://docs.astral.sh/uv/getting-started/installation/",children:"uv"}),", ",(0,l.jsx)(e.a,{href:"https://pypi.org/project/pip/",children:"pip"}),", or ",(0,l.jsx)(e.a,{href:"https://pipx.pypa.io/stable/installation/",children:"pipx"})," installed"]}),"\n",(0,l.jsxs)(e.li,{children:["Before installing Langflow, we recommend creating a virtual environment to isolate your Python dependencies with ",(0,l.jsx)(e.a,{href:"https://docs.astral.sh/uv/pip/environments",children:"uv"}),", ",(0,l.jsx)(e.a,{href:"https://docs.python.org/3/library/venv.html",children:"venv"}),", or ",(0,l.jsx)(e.a,{href:"https://anaconda.org/anaconda/conda",children:"conda"})]}),"\n"]}),"\n",(0,l.jsx)(e.h3,{id:"install-langflow-with-pip-or-pipx",children:"Install Langflow with pip or pipx"}),"\n",(0,l.jsx)(e.p,{children:"Install Langflow with uv:"}),"\n",(0,l.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv ",props:{style:{color:"#FFA657"}}},{content:"pip install langflow",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsx)(e.p,{children:"Install Langflow with pip:"}),"\n",(0,l.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"pip install langflow",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsx)(e.p,{children:"Install Langflow with pipx using the Python 3.10 executable:"}),"\n",(0,l.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"pipx ",props:{style:{color:"#FFA657"}}},{content:"install langflow ",props:{style:{color:"#A5D6FF"}}},{content:"--python ",props:{style:{color:"#79C0FF"}}},{content:"python3.",props:{style:{color:"#A5D6FF"}}},{content:"10",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsx)(e.h2,{id:"run-langflow",children:"Run Langflow"}),"\n",(0,l.jsxs)(e.ol,{children:["\n",(0,l.jsx)(e.li,{children:"To run Langflow with uv, enter the following command."}),"\n"]}),"\n",(0,l.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv ",props:{style:{color:"#FFA657"}}},{content:"run langflow run",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsxs)(e.ol,{start:"2",children:["\n",(0,l.jsx)(e.li,{children:"To run Langflow with pip, enter the following command."}),"\n"]}),"\n",(0,l.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow run",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsxs)(e.ol,{start:"3",children:["\n",(0,l.jsxs)(e.li,{children:["Confirm that a local Langflow instance starts by visiting\xa0",(0,l.jsx)(e.code,{children:"http://127.0.0.1:7860"}),"\xa0in a Chromium-based browser."]}),"\n"]}),"\n",(0,l.jsxs)(e.p,{children:["Now that Langflow is running, follow the ",(0,l.jsx)(e.a,{href:"/get-started-quickstart",children:"Quickstart"})," to create your first flow."]}),"\n",(0,l.jsx)(e.h2,{id:"manage-langflow-versions",children:"Manage Langflow versions"}),"\n",(0,l.jsx)(e.p,{children:"To upgrade Langflow to the latest version with uv, use the uv pip upgrade command."}),"\n",(0,l.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv ",props:{style:{color:"#FFA657"}}},{content:"pip install langflow ",props:{style:{color:"#A5D6FF"}}},{content:"-U",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsx)(e.p,{children:"To upgrade Langflow to the latest version, use the pip upgrade command."}),"\n",(0,l.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"pip install langflow ",props:{style:{color:"#A5D6FF"}}},{content:"-U",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsx)(e.p,{children:"To install a specific version of the Langflow package, add the required version to the command."}),"\n",(0,l.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"pip install langflow==",props:{style:{color:"#A5D6FF"}}},{content:"1.1",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsxs)(e.p,{children:["To reinstall Langflow and all of its dependencies, add the ",(0,l.jsx)(e.code,{children:"--force-reinstall"})," flag to the command."]}),"\n",(0,l.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"pip install langflow ",props:{style:{color:"#A5D6FF"}}},{content:"--force-reinstall",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsx)(e.h2,{id:"datastax-langflow",children:"DataStax Langflow"}),"\n",(0,l.jsxs)(e.p,{children:[(0,l.jsx)(e.strong,{children:"DataStax Langflow"})," is a hosted version of Langflow integrated with\xa0",(0,l.jsx)(e.a,{href:"https://www.datastax.com/products/datastax-astra",children:"Astra DB"}),". Be up and running in minutes with no installation or setup required.\xa0",(0,l.jsx)(e.a,{href:"https://astra.datastax.com/signup?type=langflow",children:"Sign up for free"}),"."]}),"\n",(0,l.jsx)(e.h2,{id:"common-installation-issues",children:"Common installation issues"}),"\n",(0,l.jsx)(e.p,{children:"This is a list of possible issues that you may encounter when installing and running Langflow."}),"\n",(0,l.jsxs)(e.h3,{id:"no-langflow__main__-module",children:["No ",(0,l.jsx)(e.code,{children:"langflow.__main__"})," module"]}),"\n",(0,l.jsxs)(e.p,{children:["When you try to run Langflow with the command ",(0,l.jsx)(e.code,{children:"langflow run"}),", you encounter the following error:"]}),"\n",(0,l.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:">",props:{style:{color:"#FF7B72"}}},{content:" No\xa0module\xa0named\xa0",props:{style:{color:"#C9D1D9"}}},{content:"'langflow.__main__'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsxs)(e.ol,{children:["\n",(0,l.jsxs)(e.li,{children:["Run\xa0",(0,l.jsx)(e.code,{children:"python\xa0-m langflow run"}),"\xa0instead of\xa0",(0,l.jsx)(e.code,{children:"langflow run"}),"."]}),"\n",(0,l.jsxs)(e.li,{children:["If that doesn't work, reinstall the latest Langflow version with\xa0",(0,l.jsx)(e.code,{children:"python\xa0-m pip install langflow\xa0-U"}),"."]}),"\n",(0,l.jsxs)(e.li,{children:["If that doesn't work, reinstall Langflow and its dependencies with\xa0",(0,l.jsx)(e.code,{children:"python\xa0-m pip install langflow\xa0--pre\xa0-U\xa0--force-reinstall"}),"."]}),"\n"]}),"\n",(0,l.jsx)(e.h3,{id:"langflow-runtraceback",children:"Langflow runTraceback"}),"\n",(0,l.jsxs)(e.p,{children:["When you try to run Langflow using the command\xa0",(0,l.jsx)(e.code,{children:"langflow run"}),", you encounter the following error:"]}),"\n",(0,l.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:">",props:{style:{color:"#FF7B72"}}},{content:" langflow runTraceback (",props:{style:{color:"#C9D1D9"}}},{content:"most ",props:{style:{color:"#FFA657"}}},{content:"recent call last",props:{style:{color:"#A5D6FF"}}},{content:"): File ",props:{style:{color:"#C9D1D9"}}},{content:'".../langflow"',props:{style:{color:"#A5D6FF"}}},{content:", line 5, ",props:{style:{color:"#C9D1D9"}}},{content:"in <",props:{style:{color:"#FF7B72"}}},{content:"module",props:{style:{color:"#C9D1D9"}}},{content:">",props:{style:{color:"#FF7B72"}}},{content:" from langflow.__main__ import mainModuleNotFoundError: No module named ",props:{style:{color:"#C9D1D9"}}},{content:"'langflow.__main__'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsx)(e.p,{children:"There are two possible reasons for this error:"}),"\n",(0,l.jsxs)(e.ol,{children:["\n",(0,l.jsxs)(e.li,{children:["You've installed Langflow using\xa0",(0,l.jsx)(e.code,{children:"pip install langflow"}),"\xa0but you already had a previous version of Langflow installed in your system. In this case, you might be running the wrong executable. To solve this issue, run the correct executable by running\xa0",(0,l.jsx)(e.code,{children:"python\xa0-m langflow run"}),"\xa0instead of\xa0",(0,l.jsx)(e.code,{children:"langflow run"}),". If that doesn't work, try uninstalling and reinstalling Langflow with\xa0",(0,l.jsx)(e.code,{children:"python\xa0-m pip install langflow\xa0--pre\xa0-U"}),"."]}),"\n",(0,l.jsxs)(e.li,{children:["Some version conflicts might have occurred during the installation process. Run\xa0",(0,l.jsx)(e.code,{children:"python\xa0-m pip install langflow\xa0--pre\xa0-U\xa0--force-reinstall"}),"\xa0to reinstall Langflow and its dependencies."]}),"\n"]}),"\n",(0,l.jsx)(e.h3,{id:"something-went-wrong-running-migrations",children:"Something went wrong running migrations"}),"\n",(0,l.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:">",props:{style:{color:"#FF7B72"}}},{content:" Something went wrong running migrations. Please, run\xa0",props:{style:{color:"#C9D1D9"}}},{content:"'langflow migration --fix'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsx)(e.p,{children:"Clear the cache by deleting the contents of the cache folder."}),"\n",(0,l.jsx)(e.p,{children:"This folder can be found at:"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.strong,{children:"Linux or WSL2 on Windows"}),":\xa0",(0,l.jsx)(e.code,{children:"home//.cache/langflow/"})]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.strong,{children:"MacOS"}),":\xa0",(0,l.jsx)(e.code,{children:"/Users//Library/Caches/langflow/"})]}),"\n"]}),"\n",(0,l.jsxs)(e.p,{children:["This error can occur during Langflow upgrades when the new version can't override\xa0",(0,l.jsx)(e.code,{children:"langflow-pre.db"}),"\xa0in\xa0",(0,l.jsx)(e.code,{children:".cache/langflow/"}),". Clearing the cache removes this file but also erases your settings."]}),"\n",(0,l.jsx)(e.p,{children:"If you wish to retain your files, back them up before clearing the folder."}),"\n",(0,l.jsx)(e.h3,{id:"langflow-installation-freezes-at-pip-dependency-resolution",children:"Langflow installation freezes at pip dependency resolution"}),"\n",(0,l.jsxs)(e.p,{children:["Installing Langflow with ",(0,l.jsx)(e.code,{children:"pip install langflow"})," slowly fails with this error message:"]}),"\n",(0,l.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"pip is looking at multiple versions of <> to determine which version is compatible with other requirements. This could take a while.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,l.jsxs)(e.p,{children:["To work around this issue, install Langflow with ",(0,l.jsx)(e.a,{href:"https://docs.astral.sh/uv/getting-started/installation/",children:(0,l.jsx)(e.code,{children:"uv"})})," instead of ",(0,l.jsx)(e.code,{children:"pip"}),"."]}),"\n",(0,l.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv pip install langflow",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,l.jsx)(e.p,{children:"To run Langflow with uv:"}),"\n",(0,l.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv run langflow run",props:{}}]}],lang:"text"},annotations:[]}]})]})}function f(n={}){const{wrapper:e}={...(0,s.R)(),...n.components};return e?(0,l.jsx)(e,{...n,children:(0,l.jsx)(g,{...n})}):g(n)}function u(n,e){throw new Error("Expected "+(e?"component":"object")+" `"+n+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]); \ No newline at end of file diff --git a/assets/js/320c2db0.bced4ab1.js b/assets/js/320c2db0.bced4ab1.js new file mode 100644 index 0000000000..cd35f0d20d --- /dev/null +++ b/assets/js/320c2db0.bced4ab1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[6511],{4558:(e,n,s)=>{s.d(n,{A:()=>o});const o=s.p+"assets/images/api-pane-97a01b20a262676d4e21906df0e29f46.png"},22202:(e,n,s)=>{s.d(n,{A:()=>o});const o=s.p+"assets/images/workspace-basic-prompting-5714c651361659596e80fa4a691701d9.png"},22640:(e,n,s)=>{s.d(n,{A:()=>o});const o=s.p+"assets/images/my-projects-20f73f0541b2f5b41398ef5df610b7b3.png"},28453:(e,n,s)=>{s.d(n,{R:()=>t,x:()=>l});var o=s(96540);const i={},r=o.createContext(i);function t(e){const n=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:t(e.components),o.createElement(r.Provider,{value:n},e.children)}},30706:(e,n,s)=>{s.d(n,{A:()=>o});const o=s.p+"assets/images/workspace-e7f86797a44d56c10b93c12b206d88f0.png"},75918:(e,n,s)=>{s.d(n,{A:()=>o});const o=s.p+"assets/images/playground-b2c623fb6849024570bc9bd5285309f5.png"},77232:(e,n,s)=>{s.d(n,{A:()=>o});const o=s.p+"assets/images/logs-6ae22cc6a87b128cbc0c7f4559b47f10.png"},84443:(e,n,s)=>{s.d(n,{A:()=>r});s(96540);var o=s(64058),i=s(74848);function r(e){let{name:n,...s}=e;const r=o[n];return r?(0,i.jsx)(r,{...s}):null}},88395:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>c,default:()=>p,frontMatter:()=>l,metadata:()=>o,toc:()=>d});const o=JSON.parse('{"id":"Concepts/concepts-overview","title":"Langflow overview","description":"This page explores the fundamental building blocks of Langflow, beginning with the question, \\"What is a flow?\\"","source":"@site/docs/Concepts/concepts-overview.md","sourceDirName":"Concepts","slug":"/concepts-overview","permalink":"/concepts-overview","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Langflow overview","slug":"/concepts-overview"},"sidebar":"docs","previous":{"title":"Travel planning agent","permalink":"/tutorials-travel-planning-agent"},"next":{"title":"Playground","permalink":"/concepts-playground"}}');var i=s(74848),r=s(28453),t=s(84443);const l={title:"Langflow overview",slug:"/concepts-overview"},c=void 0,a={},d=[{value:"What is a flow?",id:"what-is-a-flow",level:2},{value:"Find your way around",id:"find-your-way-around",level:2},{value:"Workspace",id:"workspace",level:2},{value:"Components",id:"components",level:2},{value:"Playground",id:"playground",level:2},{value:"API pane",id:"api-pane",level:2},{value:"View logs",id:"view-logs",level:2},{value:"Projects and folders",id:"projects-and-folders",level:2},{value:"Options menu",id:"options-menu",level:2},{value:"Settings",id:"settings",level:2}];function h(e){const n={a:"a",code:"code",h2:"h2",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:["This page explores the fundamental building blocks of Langflow, beginning with the question, ",(0,i.jsx)(n.strong,{children:'"What is a flow?"'})]}),"\n",(0,i.jsx)(n.h2,{id:"what-is-a-flow",children:"What is a flow?"}),"\n",(0,i.jsxs)(n.p,{children:["A ",(0,i.jsx)(n.strong,{children:"flow"})," is an application. It receives input, processes it, and produces output."]}),"\n",(0,i.jsxs)(n.p,{children:["Flows are created in the ",(0,i.jsx)(n.strong,{children:"workspace"})," with components dragged from the components sidebar."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Basic prompting flow within in the workspace",src:s(22202).A+"",width:"3438",height:"1764"})}),"\n",(0,i.jsxs)(n.p,{children:["A flow can be as simple as the ",(0,i.jsx)(n.a,{href:"/get-started-quickstart",children:"basic prompting flow"}),", which creates an OpenAI chatbot with four components."]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Each component in a flow is a ",(0,i.jsx)(n.strong,{children:"node"})," that performs a specific task, like an AI model or a data source."]}),"\n",(0,i.jsxs)(n.li,{children:["Each component has a ",(0,i.jsx)(n.strong,{children:"Configuration"})," menu. Click the ",(0,i.jsx)(n.strong,{children:"Code"})," pane to see a component's underlying Python code."]}),"\n",(0,i.jsxs)(n.li,{children:["Components are connected with ",(0,i.jsx)(n.strong,{children:"edges"})," to form flows."]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["If you're familiar with ",(0,i.jsx)(n.a,{href:"https://reactflow.dev/learn",children:"React Flow"}),", a ",(0,i.jsx)(n.strong,{children:"flow"})," is a node-based application, a ",(0,i.jsx)(n.strong,{children:"component"})," is a node, and the connections between components are ",(0,i.jsx)(n.strong,{children:"edges"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["When a flow is run, Langflow builds a Directed Acyclic Graph (DAG) graph object from the nodes (components) and edges (connections between components), with the nodes sorted to determine the order of execution. The graph build calls the individual components' ",(0,i.jsx)(n.code,{children:"def_build"})," functions to validate and prepare the nodes. This graph is then processed in dependency order. Each node is built and executed sequentially, with results from each built node being passed to nodes that are dependent on the previous node's results."]}),"\n",(0,i.jsx)(n.p,{children:"Flows are stored on local disk at these default locations:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Linux or WSL on Windows"}),": ",(0,i.jsx)(n.code,{children:"home//.cache/langflow/"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"MacOS"}),": ",(0,i.jsx)(n.code,{children:"/Users//Library/Caches/langflow/"})]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["The flow storage location can be customized with the ",(0,i.jsx)(n.a,{href:"/environment-variables#LANGFLOW_CONFIG_DIR",children:"LANGFLOW_CONFIG_DIR"})," environment variable."]}),"\n",(0,i.jsx)(n.h2,{id:"find-your-way-around",children:"Find your way around"}),"\n",(0,i.jsx)(n.p,{children:"If you're new to Langflow, it's OK to feel a bit lost at first. We\u2019ll take you on a tour, so you can orient yourself and start creating applications quickly."}),"\n",(0,i.jsxs)(n.p,{children:["Langflow has four distinct regions: the ",(0,i.jsx)(n.a,{href:"#workspace",children:"workspace"})," is the main area where you build your flows. The components sidebar is on the left, and lists the available ",(0,i.jsx)(n.a,{href:"#components",children:"components"}),". The ",(0,i.jsx)(n.a,{href:"#playground",children:"playground"})," and ",(0,i.jsx)(n.a,{href:"#api-pane",children:"API pane"})," are available in the upper right corner."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{src:s(30706).A+"",width:"3444",height:"1898"})}),"\n",(0,i.jsx)(n.h2,{id:"workspace",children:"Workspace"}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.strong,{children:"workspace"})," is where you create AI applications by connecting and running components in flows."]}),"\n",(0,i.jsx)(n.p,{children:"The workspace controls allow you to adjust your view and lock your flows in place."}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Add ",(0,i.jsx)(n.strong,{children:"Notes"})," to flows with the ",(0,i.jsx)(n.strong,{children:"Add Note"})," button, similar to commenting in code."]}),"\n",(0,i.jsxs)(n.li,{children:["To access the ",(0,i.jsx)(n.a,{href:"#settings",children:"Settings"})," menu, click ",(0,i.jsx)(t.A,{name:"Settings","aria-label":"Gear icon"})," ",(0,i.jsx)(n.strong,{children:"Settings"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["This menu contains configuration for ",(0,i.jsx)(n.strong,{children:"Global Variables"}),", ",(0,i.jsx)(n.strong,{children:"Langflow API"}),", ",(0,i.jsx)(n.strong,{children:"Shortcuts"}),", and ",(0,i.jsx)(n.strong,{children:"Messages"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"components",children:"Components"}),"\n",(0,i.jsxs)(n.p,{children:["A ",(0,i.jsx)(n.strong,{children:"component"})," is a single building block within a flow and consists of inputs, outputs, and parameters that define its functionality."]}),"\n",(0,i.jsx)(n.p,{children:"To add a component to your flow, drag it from the sidebar onto the workspace."}),"\n",(0,i.jsx)(n.p,{children:"To connect components, drag a line from the output handle (\u26aa) of one component to the input handle of another."}),"\n",(0,i.jsxs)(n.p,{children:["For more information, see ",(0,i.jsx)(n.a,{href:"/concepts-components",children:"Components overview"}),"."]}),"\n",(0,i.jsx)("img",{src:"/img/prompt-component.png",alt:"Prompt component",style:{display:"block",margin:"auto",width:300}}),"\n",(0,i.jsx)(n.h2,{id:"playground",children:"Playground"}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.strong,{children:"Playground"})," executes the current flow in the workspace."]}),"\n",(0,i.jsx)(n.p,{children:"Chat with your flow, view inputs and outputs, and modify your AI's memories to tune your responses in real time."}),"\n",(0,i.jsxs)(n.p,{children:["Either the ",(0,i.jsx)(n.strong,{children:"Chat Input"})," or ",(0,i.jsx)(n.strong,{children:"Chat Output"})," component can be opened in the ",(0,i.jsx)(n.strong,{children:"Playground"})," and tested in real time."]}),"\n",(0,i.jsxs)(n.p,{children:["For more information, see the ",(0,i.jsx)(n.a,{href:"/concepts-playground",children:"Playground"}),"."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{src:s(75918).A+"",width:"3244",height:"1776"})}),"\n",(0,i.jsx)(n.h2,{id:"api-pane",children:"API pane"}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.strong,{children:"API"})," pane provides code templates to integrate your flows into external applications."]}),"\n",(0,i.jsxs)(n.p,{children:["For more information, see the ",(0,i.jsx)(n.a,{href:"/concepts-api",children:"API pane"}),"."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{src:s(4558).A+"",width:"3236",height:"1760"})}),"\n",(0,i.jsx)(n.h2,{id:"view-logs",children:"View logs"}),"\n",(0,i.jsxs)(n.p,{children:["The\xa0",(0,i.jsx)(n.strong,{children:"Logs"}),"\xa0pane provides a detailed record of all component executions within a workspace."]}),"\n",(0,i.jsxs)(n.p,{children:["To access the ",(0,i.jsx)(n.strong,{children:"Logs"})," pane, click your ",(0,i.jsx)(n.strong,{children:"Flow Name"}),", and then select ",(0,i.jsx)(n.strong,{children:"Logs"}),"."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{src:s(77232).A+"",width:"3200",height:"1716"})}),"\n",(0,i.jsxs)(n.p,{children:["Langflow stores logs at the location specified in the ",(0,i.jsx)(n.code,{children:"LANGFLOW_CONFIG_DIR"})," environment variable."]}),"\n",(0,i.jsx)(n.p,{children:"This directory's default location depends on your operating system."}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Linux/WSL"}),": ",(0,i.jsx)(n.code,{children:"~/.cache/langflow/"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"macOS"}),": ",(0,i.jsx)(n.code,{children:"/Users//Library/Caches/langflow/"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Windows"}),": ",(0,i.jsx)(n.code,{children:"%LOCALAPPDATA%\\langflow\\langflow\\Cache"})]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"To modify the location of your log file:"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["Add ",(0,i.jsx)(n.code,{children:"LANGFLOW_LOG_FILE=path/to/logfile.log"})," in your ",(0,i.jsx)(n.code,{children:".env."})," file."]}),"\n",(0,i.jsxs)(n.li,{children:["To start Langflow with the values from your ",(0,i.jsx)(n.code,{children:".env"})," file, start Langflow with ",(0,i.jsx)(n.code,{children:"uv run langflow run --env-file .env"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["An example ",(0,i.jsx)(n.code,{children:".env"})," file is available in the ",(0,i.jsx)(n.a,{href:"https://github.com/langflow-ai/langflow/blob/main/.env.example",children:"project repository"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"projects-and-folders",children:"Projects and folders"}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.strong,{children:"My Projects"})," page displays all the flows and components you've created in the Langflow workspace."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{src:s(22640).A+"",width:"3412",height:"1758"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"My Projects"})," is the default folder where all new projects and components are initially stored."]}),"\n",(0,i.jsx)(n.p,{children:"Projects, folders, and flows are exchanged as JSON objects."}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["To create a new folder, click \ud83d\udcc1 ",(0,i.jsx)(n.strong,{children:"New Folder"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"To rename a folder, double-click the folder name."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["To download a folder, click \ud83d\udce5 ",(0,i.jsx)(n.strong,{children:"Download"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["To upload a folder, click \ud83d\udce4 ",(0,i.jsx)(n.strong,{children:"Upload"}),". The default maximum file upload size is 100 MB."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"To move a flow or component, drag and drop it into the desired folder."}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"options-menu",children:"Options menu"}),"\n",(0,i.jsx)(n.p,{children:"The dropdown menu labeled with the project name offers several management and customization options for the current flow in the Langflow workspace."}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"New"}),": Create a new flow from scratch."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Settings"}),": Adjust settings specific to the current flow, such as its name, description, and endpoint name."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Logs"}),": View logs for the current project, including execution history, errors, and other runtime events."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Import"}),": Import a flow or component from a JSON file into the workspace."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Export"}),": Export the current flow as a JSON file."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Undo (\u2318Z)"}),": Revert the last action taken in the project."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Redo (\u2318Y)"}),": Reapply a previously undone action."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Refresh All"}),": Refresh all components and delete cache."]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"settings",children:"Settings"}),"\n",(0,i.jsxs)(n.p,{children:["Click ",(0,i.jsx)(t.A,{name:"Settings","aria-label":"Gear icon"})," ",(0,i.jsx)(n.strong,{children:"Settings"})," to access ",(0,i.jsx)(n.strong,{children:"Global variables"}),", ",(0,i.jsx)(n.strong,{children:"Langflow API"}),", ",(0,i.jsx)(n.strong,{children:"Shortcuts"}),", and ",(0,i.jsx)(n.strong,{children:"Messages"}),"."]})]})}function p(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}}}]); \ No newline at end of file diff --git a/assets/js/320c2db0.fed0ef2b.js b/assets/js/320c2db0.fed0ef2b.js deleted file mode 100644 index bfbb327524..0000000000 --- a/assets/js/320c2db0.fed0ef2b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[6511],{4558:(e,n,s)=>{s.d(n,{A:()=>o});const o=s.p+"assets/images/api-pane-97a01b20a262676d4e21906df0e29f46.png"},22202:(e,n,s)=>{s.d(n,{A:()=>o});const o=s.p+"assets/images/workspace-basic-prompting-5714c651361659596e80fa4a691701d9.png"},22640:(e,n,s)=>{s.d(n,{A:()=>o});const o=s.p+"assets/images/my-projects-20f73f0541b2f5b41398ef5df610b7b3.png"},28453:(e,n,s)=>{s.d(n,{R:()=>t,x:()=>l});var o=s(96540);const i={},r=o.createContext(i);function t(e){const n=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:t(e.components),o.createElement(r.Provider,{value:n},e.children)}},30706:(e,n,s)=>{s.d(n,{A:()=>o});const o=s.p+"assets/images/workspace-e7f86797a44d56c10b93c12b206d88f0.png"},75918:(e,n,s)=>{s.d(n,{A:()=>o});const o=s.p+"assets/images/playground-b2c623fb6849024570bc9bd5285309f5.png"},77232:(e,n,s)=>{s.d(n,{A:()=>o});const o=s.p+"assets/images/logs-6ae22cc6a87b128cbc0c7f4559b47f10.png"},84443:(e,n,s)=>{s.d(n,{A:()=>r});s(96540);var o=s(64058),i=s(74848);function r(e){let{name:n,...s}=e;const r=o[n];return r?(0,i.jsx)(r,{...s}):null}},88395:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>c,default:()=>p,frontMatter:()=>l,metadata:()=>o,toc:()=>d});const o=JSON.parse('{"id":"Concepts/concepts-overview","title":"Langflow overview","description":"This page explores the fundamental building blocks of Langflow, beginning with the question, \\"What is a flow?\\"","source":"@site/docs/Concepts/concepts-overview.md","sourceDirName":"Concepts","slug":"/concepts-overview","permalink":"/concepts-overview","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Langflow overview","slug":"/concepts-overview"},"sidebar":"docs","previous":{"title":"Travel planning agent","permalink":"/tutorials-travel-planning-agent"},"next":{"title":"Playground","permalink":"/concepts-playground"}}');var i=s(74848),r=s(28453),t=s(84443);const l={title:"Langflow overview",slug:"/concepts-overview"},c=void 0,a={},d=[{value:"What is a flow?",id:"what-is-a-flow",level:2},{value:"Find your way around",id:"find-your-way-around",level:2},{value:"Workspace",id:"workspace",level:2},{value:"Components",id:"components",level:2},{value:"Playground",id:"playground",level:2},{value:"API pane",id:"api-pane",level:2},{value:"View logs",id:"view-logs",level:2},{value:"Projects and folders",id:"projects-and-folders",level:2},{value:"Options menu",id:"options-menu",level:2},{value:"Settings",id:"settings",level:2}];function h(e){const n={a:"a",code:"code",h2:"h2",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:["This page explores the fundamental building blocks of Langflow, beginning with the question, ",(0,i.jsx)(n.strong,{children:'"What is a flow?"'})]}),"\n",(0,i.jsx)(n.h2,{id:"what-is-a-flow",children:"What is a flow?"}),"\n",(0,i.jsxs)(n.p,{children:["A ",(0,i.jsx)(n.strong,{children:"flow"})," is an application. It receives input, processes it, and produces output."]}),"\n",(0,i.jsxs)(n.p,{children:["Flows are created in the ",(0,i.jsx)(n.strong,{children:"workspace"})," with components dragged from the components sidebar."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Basic prompting flow within in the workspace",src:s(22202).A+"",width:"3438",height:"1764"})}),"\n",(0,i.jsxs)(n.p,{children:["A flow can be as simple as the ",(0,i.jsx)(n.a,{href:"/get-started-quickstart",children:"basic prompting flow"}),", which creates an OpenAI chatbot with four components."]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Each component in a flow is a ",(0,i.jsx)(n.strong,{children:"node"})," that performs a specific task, like an AI model or a data source."]}),"\n",(0,i.jsxs)(n.li,{children:["Each component has a ",(0,i.jsx)(n.strong,{children:"Configuration"})," menu. Click the ",(0,i.jsx)(n.strong,{children:"Code"})," pane to see a component's underlying Python code."]}),"\n",(0,i.jsxs)(n.li,{children:["Components are connected with ",(0,i.jsx)(n.strong,{children:"edges"})," to form flows."]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["If you're familiar with ",(0,i.jsx)(n.a,{href:"https://reactflow.dev/learn",children:"ReactFlow"}),", a ",(0,i.jsx)(n.strong,{children:"flow"})," is a node-based application, a ",(0,i.jsx)(n.strong,{children:"component"})," is a node, and the connections between components are ",(0,i.jsx)(n.strong,{children:"edges"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["When a flow is run, Langflow builds a Directed Acyclic Graph (DAG) graph object from the nodes (components) and edges (connections between components), with the nodes sorted to determine the order of execution. The graph build calls the individual components' ",(0,i.jsx)(n.code,{children:"def_build"})," functions to validate and prepare the nodes. This graph is then processed in dependency order. Each node is built and executed sequentially, with results from each built node being passed to nodes that are dependent on the previous node's results."]}),"\n",(0,i.jsx)(n.p,{children:"Flows are stored on local disk at these default locations:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Linux or WSL on Windows"}),": ",(0,i.jsx)(n.code,{children:"home//.cache/langflow/"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"MacOS"}),": ",(0,i.jsx)(n.code,{children:"/Users//Library/Caches/langflow/"})]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["The flow storage location can be customized with the ",(0,i.jsx)(n.a,{href:"/environment-variables#LANGFLOW_CONFIG_DIR",children:"LANGFLOW_CONFIG_DIR"})," environment variable."]}),"\n",(0,i.jsx)(n.h2,{id:"find-your-way-around",children:"Find your way around"}),"\n",(0,i.jsx)(n.p,{children:"If you're new to Langflow, it's OK to feel a bit lost at first. We\u2019ll take you on a tour, so you can orient yourself and start creating applications quickly."}),"\n",(0,i.jsxs)(n.p,{children:["Langflow has four distinct regions: the ",(0,i.jsx)(n.a,{href:"#workspace",children:"workspace"})," is the main area where you build your flows. The components sidebar is on the left, and lists the available ",(0,i.jsx)(n.a,{href:"#components",children:"components"}),". The ",(0,i.jsx)(n.a,{href:"#playground",children:"playground"})," and ",(0,i.jsx)(n.a,{href:"#api-pane",children:"API pane"})," are available in the upper right corner."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{src:s(30706).A+"",width:"3444",height:"1898"})}),"\n",(0,i.jsx)(n.h2,{id:"workspace",children:"Workspace"}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.strong,{children:"workspace"})," is where you create AI applications by connecting and running components in flows."]}),"\n",(0,i.jsx)(n.p,{children:"The workspace controls allow you to adjust your view and lock your flows in place."}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Add ",(0,i.jsx)(n.strong,{children:"Notes"})," to flows with the ",(0,i.jsx)(n.strong,{children:"Add Note"})," button, similar to commenting in code."]}),"\n",(0,i.jsxs)(n.li,{children:["To access the ",(0,i.jsx)(n.a,{href:"#settings",children:"Settings"})," menu, click ",(0,i.jsx)(t.A,{name:"Settings","aria-label":"Gear icon"})," ",(0,i.jsx)(n.strong,{children:"Settings"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["This menu contains configuration for ",(0,i.jsx)(n.strong,{children:"Global Variables"}),", ",(0,i.jsx)(n.strong,{children:"Langflow API"}),", ",(0,i.jsx)(n.strong,{children:"Shortcuts"}),", and ",(0,i.jsx)(n.strong,{children:"Messages"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"components",children:"Components"}),"\n",(0,i.jsxs)(n.p,{children:["A ",(0,i.jsx)(n.strong,{children:"component"})," is a single building block within a flow and consists of inputs, outputs, and parameters that define its functionality."]}),"\n",(0,i.jsx)(n.p,{children:"To add a component to your flow, drag it from the sidebar onto the workspace."}),"\n",(0,i.jsx)(n.p,{children:"To connect components, drag a line from the output handle (\u26aa) of one component to the input handle of another."}),"\n",(0,i.jsxs)(n.p,{children:["For more information, see ",(0,i.jsx)(n.a,{href:"/concepts-components",children:"Components overview"}),"."]}),"\n",(0,i.jsx)("img",{src:"/img/prompt-component.png",alt:"Prompt component",style:{display:"block",margin:"auto",width:300}}),"\n",(0,i.jsx)(n.h2,{id:"playground",children:"Playground"}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.strong,{children:"Playground"})," executes the current flow in the workspace."]}),"\n",(0,i.jsx)(n.p,{children:"Chat with your flow, view inputs and outputs, and modify your AI's memories to tune your responses in real time."}),"\n",(0,i.jsxs)(n.p,{children:["Either the ",(0,i.jsx)(n.strong,{children:"Chat Input"})," or ",(0,i.jsx)(n.strong,{children:"Chat Output"})," component can be opened in the ",(0,i.jsx)(n.strong,{children:"Playground"})," and tested in real time."]}),"\n",(0,i.jsxs)(n.p,{children:["For more information, see the ",(0,i.jsx)(n.a,{href:"/concepts-playground",children:"Playground"}),"."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{src:s(75918).A+"",width:"3244",height:"1776"})}),"\n",(0,i.jsx)(n.h2,{id:"api-pane",children:"API pane"}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.strong,{children:"API"})," pane provides code templates to integrate your flows into external applications."]}),"\n",(0,i.jsxs)(n.p,{children:["For more information, see the ",(0,i.jsx)(n.a,{href:"/concepts-api",children:"API pane"}),"."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{src:s(4558).A+"",width:"3236",height:"1760"})}),"\n",(0,i.jsx)(n.h2,{id:"view-logs",children:"View logs"}),"\n",(0,i.jsxs)(n.p,{children:["The\xa0",(0,i.jsx)(n.strong,{children:"Logs"}),"\xa0pane provides a detailed record of all component executions within a workspace."]}),"\n",(0,i.jsxs)(n.p,{children:["To access the ",(0,i.jsx)(n.strong,{children:"Logs"})," pane, click your ",(0,i.jsx)(n.strong,{children:"Flow Name"}),", and then select ",(0,i.jsx)(n.strong,{children:"Logs"}),"."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{src:s(77232).A+"",width:"3200",height:"1716"})}),"\n",(0,i.jsxs)(n.p,{children:["Langflow stores logs at the location specified in the ",(0,i.jsx)(n.code,{children:"LANGFLOW_CONFIG_DIR"})," environment variable."]}),"\n",(0,i.jsx)(n.p,{children:"This directory's default location depends on your operating system."}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Linux/WSL"}),": ",(0,i.jsx)(n.code,{children:"~/.cache/langflow/"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"macOS"}),": ",(0,i.jsx)(n.code,{children:"/Users//Library/Caches/langflow/"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Windows"}),": ",(0,i.jsx)(n.code,{children:"%LOCALAPPDATA%\\langflow\\langflow\\Cache"})]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"To modify the location of your log file:"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["Add ",(0,i.jsx)(n.code,{children:"LANGFLOW_LOG_FILE=path/to/logfile.log"})," in your ",(0,i.jsx)(n.code,{children:".env."})," file."]}),"\n",(0,i.jsxs)(n.li,{children:["To start Langflow with the values from your ",(0,i.jsx)(n.code,{children:".env"})," file, start Langflow with ",(0,i.jsx)(n.code,{children:"uv run langflow run --env-file .env"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["An example ",(0,i.jsx)(n.code,{children:".env"})," file is available in the ",(0,i.jsx)(n.a,{href:"https://github.com/langflow-ai/langflow/blob/main/.env.example",children:"project repository"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"projects-and-folders",children:"Projects and folders"}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.strong,{children:"My Projects"})," page displays all the flows and components you've created in the Langflow workspace."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{src:s(22640).A+"",width:"3412",height:"1758"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"My Projects"})," is the default folder where all new projects and components are initially stored."]}),"\n",(0,i.jsx)(n.p,{children:"Projects, folders, and flows are exchanged as JSON objects."}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["To create a new folder, click \ud83d\udcc1 ",(0,i.jsx)(n.strong,{children:"New Folder"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"To rename a folder, double-click the folder name."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["To download a folder, click \ud83d\udce5 ",(0,i.jsx)(n.strong,{children:"Download"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["To upload a folder, click \ud83d\udce4 ",(0,i.jsx)(n.strong,{children:"Upload"}),". The default maximum file upload size is 100 MB."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"To move a flow or component, drag and drop it into the desired folder."}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"options-menu",children:"Options menu"}),"\n",(0,i.jsx)(n.p,{children:"The dropdown menu labeled with the project name offers several management and customization options for the current flow in the Langflow workspace."}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"New"}),": Create a new flow from scratch."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Settings"}),": Adjust settings specific to the current flow, such as its name, description, and endpoint name."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Logs"}),": View logs for the current project, including execution history, errors, and other runtime events."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Import"}),": Import a flow or component from a JSON file into the workspace."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Export"}),": Export the current flow as a JSON file."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Undo (\u2318Z)"}),": Revert the last action taken in the project."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Redo (\u2318Y)"}),": Reapply a previously undone action."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Refresh All"}),": Refresh all components and delete cache."]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"settings",children:"Settings"}),"\n",(0,i.jsxs)(n.p,{children:["Click ",(0,i.jsx)(t.A,{name:"Settings","aria-label":"Gear icon"})," ",(0,i.jsx)(n.strong,{children:"Settings"})," to access ",(0,i.jsx)(n.strong,{children:"Global variables"}),", ",(0,i.jsx)(n.strong,{children:"Langflow API"}),", ",(0,i.jsx)(n.strong,{children:"Shortcuts"}),", and ",(0,i.jsx)(n.strong,{children:"Messages"}),"."]})]})}function p(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}}}]); \ No newline at end of file diff --git a/assets/js/3ae94ad4.1fdd1802.js b/assets/js/3ae94ad4.1fdd1802.js deleted file mode 100644 index 5cf6154110..0000000000 --- a/assets/js/3ae94ad4.1fdd1802.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[7408],{28453:(e,t,s)=>{s.d(t,{R:()=>r,x:()=>l});var n=s(96540);const d={},i=n.createContext(d);function r(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:r(e.components),n.createElement(i.Provider,{value:t},e.children)}},42171:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>h,contentTitle:()=>l,default:()=>a,frontMatter:()=>r,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"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.","source":"@site/docs/Components/components-io.md","sourceDirName":"Components","slug":"/components-io","permalink":"/components-io","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Inputs and outputs","slug":"/components-io"},"sidebar":"docs","previous":{"title":"Helpers","permalink":"/components-helpers"},"next":{"title":"Loaders","permalink":"/components-loaders"}}');var d=s(74848),i=s(28453);const r={title:"Inputs and outputs",slug:"/components-io"},l="Input and output components in Langflow",h={},c=[{value:"Chat Input",id:"chat-input",level:2},{value:"Inputs",id:"inputs",level:3},{value:"Outputs",id:"outputs",level:3},{value:"Text Input",id:"text-input",level:2},{value:"Inputs",id:"inputs-1",level:3},{value:"Outputs",id:"outputs-1",level:3},{value:"Chat Output",id:"chat-output",level:2},{value:"Inputs",id:"inputs-2",level:3},{value:"Outputs",id:"outputs-2",level:3},{value:"Text Output",id:"text-output",level:2},{value:"Inputs",id:"inputs-3",level:3},{value:"Outputs",id:"outputs-3",level:3}];function o(e){const t={a:"a",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(t.header,{children:(0,d.jsx)(t.h1,{id:"input-and-output-components-in-langflow",children:"Input and output components in Langflow"})}),"\n",(0,d.jsx)(t.p,{children:"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."}),"\n",(0,d.jsx)(t.p,{children:"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."}),"\n",(0,d.jsx)(t.h2,{id:"chat-input",children:"Chat Input"}),"\n",(0,d.jsx)(t.p,{children:"This component collects user input from the chat."}),"\n",(0,d.jsxs)(t.p,{children:["The Chat Input component creates a ",(0,d.jsx)(t.a,{href:"/concepts-objects",children:"Message"})," object that includes the input text, sender information, session ID, file attachments, and styling properties.\nIt can optionally store the message in a chat history and supports customization of the message appearance."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"}),(0,d.jsx)(t.th,{children:"Type"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"input_value"}),(0,d.jsx)(t.td,{children:"Text"}),(0,d.jsx)(t.td,{children:"Message to be passed as input."}),(0,d.jsx)(t.td,{children:"MultilineInput"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"should_store_message"}),(0,d.jsx)(t.td,{children:"Store Messages"}),(0,d.jsx)(t.td,{children:"Store the message in the history."}),(0,d.jsx)(t.td,{children:"BoolInput"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"sender"}),(0,d.jsx)(t.td,{children:"Sender Type"}),(0,d.jsx)(t.td,{children:"Type of sender."}),(0,d.jsx)(t.td,{children:"DropdownInput"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"sender_name"}),(0,d.jsx)(t.td,{children:"Sender Name"}),(0,d.jsx)(t.td,{children:"Name of the sender."}),(0,d.jsx)(t.td,{children:"MessageTextInput"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"session_id"}),(0,d.jsx)(t.td,{children:"Session ID"}),(0,d.jsx)(t.td,{children:"The session ID of the chat. If empty, the current session ID parameter will be used."}),(0,d.jsx)(t.td,{children:"MessageTextInput"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"files"}),(0,d.jsx)(t.td,{children:"Files"}),(0,d.jsx)(t.td,{children:"Files to be sent with the message."}),(0,d.jsx)(t.td,{children:"FileInput"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"background_color"}),(0,d.jsx)(t.td,{children:"Background Color"}),(0,d.jsx)(t.td,{children:"The background color of the icon."}),(0,d.jsx)(t.td,{children:"MessageTextInput"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"chat_icon"}),(0,d.jsx)(t.td,{children:"Icon"}),(0,d.jsx)(t.td,{children:"The icon of the message."}),(0,d.jsx)(t.td,{children:"MessageTextInput"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"text_color"}),(0,d.jsx)(t.td,{children:"Text Color"}),(0,d.jsx)(t.td,{children:"The text color of the name"}),(0,d.jsx)(t.td,{children:"MessageTextInput"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"message"}),(0,d.jsx)(t.td,{children:"Message"}),(0,d.jsx)(t.td,{children:"The resulting chat message object with all specified properties."})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"text-input",children:"Text Input"}),"\n",(0,d.jsx)(t.p,{children:"The Text Input component adds an Input field on the Playground."}),"\n",(0,d.jsx)(t.p,{children:"The Text Input component offers one input field for text, while the Chat Input has multiple fields for various chat-related features."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-1",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"}),(0,d.jsx)(t.th,{children:"Type"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"input_value"}),(0,d.jsx)(t.td,{children:"Text"}),(0,d.jsx)(t.td,{children:"Text to be passed as input."}),(0,d.jsx)(t.td,{children:"MultilineInput"})]})})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-1",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"text"}),(0,d.jsx)(t.td,{children:"Text"}),(0,d.jsx)(t.td,{children:"The resulting text message."})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"chat-output",children:"Chat Output"}),"\n",(0,d.jsxs)(t.p,{children:["The Chat Output component creates a ",(0,d.jsx)(t.a,{href:"/concepts-objects",children:"Message"})," object that includes the input text, sender information, session ID, and styling properties.\nIt can optionally store the message in a chat history and supports customization of the message appearance, including background color, icon, and text color."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-2",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"}),(0,d.jsx)(t.th,{children:"Type"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"input_value"}),(0,d.jsx)(t.td,{children:"Text"}),(0,d.jsx)(t.td,{children:"Message to be passed as output."}),(0,d.jsx)(t.td,{children:"MessageInput"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"should_store_message"}),(0,d.jsx)(t.td,{children:"Store Messages"}),(0,d.jsx)(t.td,{children:"Store the message in the history."}),(0,d.jsx)(t.td,{children:"BoolInput"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"sender"}),(0,d.jsx)(t.td,{children:"Sender Type"}),(0,d.jsx)(t.td,{children:"Type of sender."}),(0,d.jsx)(t.td,{children:"DropdownInput"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"sender_name"}),(0,d.jsx)(t.td,{children:"Sender Name"}),(0,d.jsx)(t.td,{children:"Name of the sender."}),(0,d.jsx)(t.td,{children:"MessageTextInput"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"session_id"}),(0,d.jsx)(t.td,{children:"Session ID"}),(0,d.jsx)(t.td,{children:"The session ID of the chat. If empty, the current session ID parameter will be used."}),(0,d.jsx)(t.td,{children:"MessageTextInput"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data_template"}),(0,d.jsx)(t.td,{children:"Data Template"}),(0,d.jsx)(t.td,{children:"Template to convert data to text. If left empty, it will be dynamically set to the data's text key."}),(0,d.jsx)(t.td,{children:"MessageTextInput"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"background_color"}),(0,d.jsx)(t.td,{children:"Background Color"}),(0,d.jsx)(t.td,{children:"The background color of the icon."}),(0,d.jsx)(t.td,{children:"MessageTextInput"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"chat_icon"}),(0,d.jsx)(t.td,{children:"Icon"}),(0,d.jsx)(t.td,{children:"The icon of the message."}),(0,d.jsx)(t.td,{children:"MessageTextInput"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"text_color"}),(0,d.jsx)(t.td,{children:"Text Color"}),(0,d.jsx)(t.td,{children:"The text color of the name"}),(0,d.jsx)(t.td,{children:"MessageTextInput"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-2",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"message"}),(0,d.jsx)(t.td,{children:"Message"}),(0,d.jsx)(t.td,{children:"The resulting chat message object with all specified properties."})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"text-output",children:"Text Output"}),"\n",(0,d.jsxs)(t.p,{children:["The TextOutputComponent displays text output in the ",(0,d.jsx)(t.strong,{children:"Playground"}),".\nIt takes a single input of text and returns a ",(0,d.jsx)(t.a,{href:"/concepts-objects",children:"Message"})," object containing that text.\nThe component is simpler compared to the Chat Output but focuses solely on displaying text without additional chat-specific features or customizations."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-3",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"}),(0,d.jsx)(t.th,{children:"Type"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"input_value"}),(0,d.jsx)(t.td,{children:"Text"}),(0,d.jsx)(t.td,{children:"Text to be passed as output."}),(0,d.jsx)(t.td,{children:"MultilineInput"})]})})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-3",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"text"}),(0,d.jsx)(t.td,{children:"Text"}),(0,d.jsx)(t.td,{children:"The resulting text message."})]})})]})]})}function a(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,d.jsx)(t,{...e,children:(0,d.jsx)(o,{...e})}):o(e)}}}]); \ No newline at end of file diff --git a/assets/js/3ae94ad4.fe273d8c.js b/assets/js/3ae94ad4.fe273d8c.js new file mode 100644 index 0000000000..44b1496971 --- /dev/null +++ b/assets/js/3ae94ad4.fe273d8c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[7408],{42171:(e,t,s)=>{s.r(t),s.d(t,{CH:()=>h,assets:()=>l,chCodeConfig:()=>a,contentTitle:()=>i,default:()=>u,frontMatter:()=>c,metadata:()=>n,toc:()=>p});const n=JSON.parse('{"id":"Components/components-io","title":"Inputs and outputs","description":"Input and output components define where data enters and exits your flow.","source":"@site/docs/Components/components-io.md","sourceDirName":"Components","slug":"/components-io","permalink":"/components-io","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Inputs and outputs","slug":"/components-io"},"sidebar":"docs","previous":{"title":"Helpers","permalink":"/components-helpers"},"next":{"title":"Loaders","permalink":"/components-loaders"}}');var r=s(74848),o=s(28453),d=s(24754);const c={title:"Inputs and outputs",slug:"/components-io"},i="Input and output components in Langflow",l={},h={annotations:d.hk,Code:d.Cy},a={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},p=[{value:"Chat Input",id:"chat-input",level:2},{value:"Inputs",id:"inputs",level:3},{value:"Outputs",id:"outputs",level:3},{value:"Message method",id:"message-method",level:3},{value:"Text Input",id:"text-input",level:2},{value:"Inputs",id:"inputs-1",level:3},{value:"Outputs",id:"outputs-1",level:3},{value:"Chat Output",id:"chat-output",level:2},{value:"Inputs",id:"inputs-2",level:3},{value:"Outputs",id:"outputs-2",level:3},{value:"Text Output",id:"text-output",level:2},{value:"Inputs",id:"inputs-3",level:3},{value:"Outputs",id:"outputs-3",level:3}];function x(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,o.R)(),...e.components};return h||j("CH",!1),h.Code||j("CH.Code",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.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,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"input-and-output-components-in-langflow",children:"Input and output components in Langflow"})}),"\n",(0,r.jsx)(t.p,{children:"Input and output components define where data enters and exits your flow."}),"\n",(0,r.jsxs)(t.p,{children:["Both components accept user input and return a ",(0,r.jsx)(t.code,{children:"Message"})," object, but serve different purposes."]}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"Text Input"})," component accepts a text string input and returns a ",(0,r.jsx)(t.code,{children:"Message"})," object containing only the input text. The output does not appear in the ",(0,r.jsx)(t.strong,{children:"Playground"}),"."]}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"Chat Input"})," component accepts multiple input types including text, files, and metadata, and returns a ",(0,r.jsx)(t.code,{children:"Message"})," object containing the text along with sender information, session ID, and file attachments."]}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"Chat Input"})," component provides an interactive chat interface in the ",(0,r.jsx)(t.strong,{children:"Playground"}),"."]}),"\n",(0,r.jsx)(t.h2,{id:"chat-input",children:"Chat Input"}),"\n",(0,r.jsxs)(t.p,{children:["This component collects user input as ",(0,r.jsx)(t.code,{children:"Text"})," strings from the chat and wraps it in a ",(0,r.jsx)(t.a,{href:"/concepts-objects",children:"Message"})," object that includes the input text, sender information, session ID, file attachments, and styling properties."]}),"\n",(0,r.jsx)(t.p,{children:"It can optionally store the message in a chat history."}),"\n",(0,r.jsx)(t.h3,{id:"inputs",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_value"}),(0,r.jsx)(t.td,{children:"Text"}),(0,r.jsx)(t.td,{children:"The Message to be passed as input."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"should_store_message"}),(0,r.jsx)(t.td,{children:"Store Messages"}),(0,r.jsx)(t.td,{children:"Store the message in the history."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"sender"}),(0,r.jsx)(t.td,{children:"Sender Type"}),(0,r.jsx)(t.td,{children:"The type of sender."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"sender_name"}),(0,r.jsx)(t.td,{children:"Sender Name"}),(0,r.jsx)(t.td,{children:"The name of the sender."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"session_id"}),(0,r.jsx)(t.td,{children:"Session ID"}),(0,r.jsx)(t.td,{children:"The session ID of the chat. If empty, the current session ID parameter is used."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"files"}),(0,r.jsx)(t.td,{children:"Files"}),(0,r.jsx)(t.td,{children:"The files to be sent with the message."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"background_color"}),(0,r.jsx)(t.td,{children:"Background Color"}),(0,r.jsx)(t.td,{children:"The background color of the icon."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"chat_icon"}),(0,r.jsx)(t.td,{children:"Icon"}),(0,r.jsx)(t.td,{children:"The icon of the message."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"text_color"}),(0,r.jsx)(t.td,{children:"Text Color"}),(0,r.jsx)(t.td,{children:"The text color of the name."})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"message"}),(0,r.jsx)(t.td,{children:"Message"}),(0,r.jsx)(t.td,{children:"The resulting chat message object with all specified properties."})]})})]}),"\n",(0,r.jsx)(t.h3,{id:"message-method",children:"Message method"}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.code,{children:"ChatInput"})," class provides an asynchronous method to create and store a ",(0,r.jsx)(t.code,{children:"Message"})," object based on the input parameters.\nThe ",(0,r.jsx)(t.code,{children:"Message"})," object is created in the ",(0,r.jsx)(t.code,{children:"message_response"})," method of the ChatInput class using the ",(0,r.jsx)(t.code,{children:"Message.create()"})," factory method."]}),"\n",(0,r.jsx)(h.Code,{codeConfig:a,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"message ",props:{style:{color:"#C9D1D9"}}},{content:"= await",props:{style:{color:"#FF7B72"}}},{content:" Message.create(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" text",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".input_value,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" sender",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".sender,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" sender_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".sender_name,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" session_id",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".session_id,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" files",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".files,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" properties",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "background_color"',props:{style:{color:"#A5D6FF"}}},{content:": background_color,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text_color"',props:{style:{color:"#A5D6FF"}}},{content:": text_color,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#A5D6FF"}}},{content:": icon,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:")",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,r.jsx)(t.h2,{id:"text-input",children:"Text Input"}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"Text Input"})," component accepts a text string input and returns a ",(0,r.jsx)(t.code,{children:"Message"})," object containing only the input text."]}),"\n",(0,r.jsxs)(t.p,{children:["The output does not appear in the ",(0,r.jsx)(t.strong,{children:"Playground"}),"."]}),"\n",(0,r.jsx)(t.h3,{id:"inputs-1",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_value"}),(0,r.jsx)(t.td,{children:"Text"}),(0,r.jsx)(t.td,{children:"The text/content to be passed as output."})]})})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-1",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"text"}),(0,r.jsx)(t.td,{children:"Text"}),(0,r.jsx)(t.td,{children:"The resulting text message."})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"chat-output",children:"Chat Output"}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"Chat Output"})," component creates a ",(0,r.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})," object that includes the input text, sender information, session ID, and styling properties."]}),"\n",(0,r.jsx)(t.p,{children:"The component accepts the following input types."}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})}),"\n"]}),"\n",(0,r.jsx)(t.h3,{id:"inputs-2",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_value"}),(0,r.jsx)(t.td,{children:"Text"}),(0,r.jsx)(t.td,{children:"The message to be passed as output."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"should_store_message"}),(0,r.jsx)(t.td,{children:"Store Messages"}),(0,r.jsx)(t.td,{children:"The flag to store the message in the history."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"sender"}),(0,r.jsx)(t.td,{children:"Sender Type"}),(0,r.jsx)(t.td,{children:"The type of sender."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"sender_name"}),(0,r.jsx)(t.td,{children:"Sender Name"}),(0,r.jsx)(t.td,{children:"The name of the sender."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"session_id"}),(0,r.jsx)(t.td,{children:"Session ID"}),(0,r.jsx)(t.td,{children:"The session ID of the chat. If empty, the current session ID parameter is used."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"data_template"}),(0,r.jsx)(t.td,{children:"Data Template"}),(0,r.jsx)(t.td,{children:"The template to convert Data to Text. If the option is left empty, it is dynamically set to the Data's text key."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"background_color"}),(0,r.jsx)(t.td,{children:"Background Color"}),(0,r.jsx)(t.td,{children:"The background color of the icon."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"chat_icon"}),(0,r.jsx)(t.td,{children:"Icon"}),(0,r.jsx)(t.td,{children:"The icon of the message."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"text_color"}),(0,r.jsx)(t.td,{children:"Text Color"}),(0,r.jsx)(t.td,{children:"The text color of the name."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"clean_data"}),(0,r.jsx)(t.td,{children:"Basic Clean Data"}),(0,r.jsxs)(t.td,{children:["When enabled, ",(0,r.jsx)(t.code,{children:"DataFrame"})," inputs are cleaned when converted to text. Cleaning removes empty rows, empty lines in cells, and multiple newlines."]})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-2",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"message"}),(0,r.jsx)(t.td,{children:"Message"}),(0,r.jsx)(t.td,{children:"The resulting chat message object with all specified properties."})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"text-output",children:"Text Output"}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"Text Output"})," takes a single input of text and returns a ",(0,r.jsx)(t.a,{href:"/concepts-objects",children:"Message"})," object containing that text."]}),"\n",(0,r.jsxs)(t.p,{children:["The output does not appear in the ",(0,r.jsx)(t.strong,{children:"Playground"}),"."]}),"\n",(0,r.jsx)(t.h3,{id:"inputs-3",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_value"}),(0,r.jsx)(t.td,{children:"Text"}),(0,r.jsx)(t.td,{children:"The text to be passed as output."})]})})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-3",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"text"}),(0,r.jsx)(t.td,{children:"Text"}),(0,r.jsx)(t.td,{children:"The resulting text message."})]})})]})]})}function u(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(x,{...e})}):x(e)}function j(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/537e1953.4dc45868.js b/assets/js/537e1953.4dc45868.js deleted file mode 100644 index 5f0d30f7ba..0000000000 --- a/assets/js/537e1953.4dc45868.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[9789],{28453:(e,t,n)=>{n.d(t,{R:()=>o,x:()=>s});var i=n(96540);const a={},r=i.createContext(a);function o(e){const t=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),i.createElement(r.Provider,{value:t},e.children)}},44347:(e,t,n)=>{n.d(t,{A:()=>i});const i=n.p+"assets/images/apify_agent_flow_simple-6a14081c57b8328d7b225d80448e1793.png"},54998:(e,t,n)=>{n.d(t,{A:()=>i});const i=n.p+"assets/images/apify_flow_wcc-4be614102f62d74ea2e4eb4975d8b72e.png"},77907:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>p,frontMatter:()=>o,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"Integrations/Apify/integrations-apify","title":"Apify","description":"Apify is a web scraping and data extraction platform. It provides an app store with more than three thousand ready-made cloud tools called Actors.","source":"@site/docs/Integrations/Apify/integrations-apify.md","sourceDirName":"Integrations/Apify","slug":"/integrations-apify","permalink":"/integrations-apify","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Apify","slug":"/integrations-apify"},"sidebar":"docs","previous":{"title":"Render","permalink":"/deployment-render"},"next":{"title":"AssemblyAI","permalink":"/integrations-assemblyai"}}');var a=n(74848),r=n(28453);const o={title:"Apify",slug:"/integrations-apify"},s="Integrate Apify with Langflow",c={},l=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Example flows",id:"example-flows",level:2},{value:"Extract website text content in Markdown format",id:"extract-website-text-content-in-markdown-format",level:3},{value:"Analyze and process website content with an Agent",id:"analyze-and-process-website-content-with-an-agent",level:3},{value:"Search and analyze social media profiles with an Agent",id:"search-and-analyze-social-media-profiles-with-an-agent",level:3},{value:"Components",id:"components",level:2},{value:"Apify Actors",id:"apify-actors",level:3},{value:"How to use Apify Actors in Langflow",id:"how-to-use-apify-actors-in-langflow",level:2}];function h(e){const t={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.header,{children:(0,a.jsx)(t.h1,{id:"integrate-apify-with-langflow",children:"Integrate Apify with Langflow"})}),"\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.a,{href:"https://apify.com/",children:"Apify"})," is a web scraping and data extraction platform. It provides an app store with more than three thousand ready-made cloud tools called Actors."]}),"\n",(0,a.jsx)(t.p,{children:"The Apify components allow you to run Apify Actors in your flow to accomplish tasks such as:"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsx)(t.li,{children:"Crawling websites and extracting text content"}),"\n",(0,a.jsx)(t.li,{children:"Scraping social media platforms like Instagram and Facebook"}),"\n",(0,a.jsx)(t.li,{children:"Extracting data from Google Maps"}),"\n",(0,a.jsx)(t.li,{children:"Inserting data into a PostgreSQL/MySQL/MSSQL database"}),"\n",(0,a.jsx)(t.li,{children:"Running various other automation tasks"}),"\n"]}),"\n",(0,a.jsx)(t.p,{children:"More info about Apify:"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsx)(t.li,{children:(0,a.jsx)(t.a,{href:"https://apify.com/",children:"Website"})}),"\n",(0,a.jsx)(t.li,{children:(0,a.jsx)(t.a,{href:"https://apify.com/store",children:"Apify Actor Store"})}),"\n",(0,a.jsx)(t.li,{children:(0,a.jsx)(t.a,{href:"https://whitepaper.actor/",children:"Actor Whitepaper"})}),"\n"]}),"\n",(0,a.jsx)(t.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,a.jsxs)(t.p,{children:["You need an ",(0,a.jsx)(t.strong,{children:"Apify API token"}),". You can create a free account on ",(0,a.jsx)(t.a,{href:"https://apify.com/",children:"Apify"})," and generate your API key in the Apify Console. ",(0,a.jsx)(t.a,{href:"https://docs.apify.com/platform/integrations/api",children:"Get a Free API key here"}),"."]}),"\n",(0,a.jsxs)(t.p,{children:["Enter the key in the ",(0,a.jsx)(t.em,{children:"Apify Token"})," field in all components that require the key."]}),"\n",(0,a.jsx)(t.h2,{id:"example-flows",children:"Example flows"}),"\n",(0,a.jsx)(t.h3,{id:"extract-website-text-content-in-markdown-format",children:"Extract website text content in Markdown format"}),"\n",(0,a.jsxs)(t.p,{children:["Use the ",(0,a.jsx)(t.a,{href:"https://apify.com/apify/website-content-crawler",children:"Website Content Crawler Actor"})," to extract text content in Markdown format from a website and process it in your flow.\n",(0,a.jsx)(t.img,{alt:"Apify Flow - Website Content Crawler",src:n(54998).A+"",width:"699",height:"643"})]}),"\n",(0,a.jsx)(t.h3,{id:"analyze-and-process-website-content-with-an-agent",children:"Analyze and process website content with an Agent"}),"\n",(0,a.jsxs)(t.p,{children:["Building on the previous example, this flow not only extracts website content using the ",(0,a.jsx)(t.a,{href:"https://apify.com/apify/website-content-crawler",children:"Website Content Crawler Actor"})," but also processes and analyzes it with an agent. The agent takes the extracted data and transforms it into summaries, insights, or structured responses, making the information more actionable. Unlike simple extraction, this approach enables automated content understanding and contextual processing.\n",(0,a.jsx)(t.img,{alt:"Apify Agent Flow - Simple",src:n(44347).A+"",width:"919",height:"713"})]}),"\n",(0,a.jsx)(t.h3,{id:"search-and-analyze-social-media-profiles-with-an-agent",children:"Search and analyze social media profiles with an Agent"}),"\n",(0,a.jsxs)(t.p,{children:["Perform comprehensive social media research with multiple Apify Actors. Start with the ",(0,a.jsx)(t.a,{href:"https://apify.com/apify/google-search-scraper",children:"Google Search Results Scraper Actor"})," to find relevant social media profiles, then use the ",(0,a.jsx)(t.a,{href:"https://apify.com/clockworks/free-tiktok-scraper",children:"TikTok Data Extractor Actor"})," to gather data and videos. The agent streamlines the process by collecting links from Google and retrieving content from TikTok, enabling deeper analysis of a person, brand, or topic.\n",(0,a.jsx)(t.img,{alt:"Apify Agent Flow",src:n(89976).A+"",width:"964",height:"864"})]}),"\n",(0,a.jsx)(t.h2,{id:"components",children:"Components"}),"\n",(0,a.jsx)(t.h3,{id:"apify-actors",children:"Apify Actors"}),"\n",(0,a.jsx)(t.p,{children:"This component allows you to run Apify Actors in your flow. It can be used manually by providing run input or integrated as a tool for an AI Agent. When used with an AI Agent, the agent can leverage the Apify Actors to perform various tasks."}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:["\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.strong,{children:"Input"}),":"]}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsx)(t.li,{children:"Apify Token: Your API key."}),"\n",(0,a.jsxs)(t.li,{children:["Actor: The Apify Actor to run. Example: ",(0,a.jsx)(t.code,{children:"apify/website-content-crawler"}),"."]}),"\n",(0,a.jsx)(t.li,{children:"Run Input: The JSON input for configuring the Actor run."}),"\n"]}),"\n"]}),"\n",(0,a.jsxs)(t.li,{children:["\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.strong,{children:"Output"}),":"]}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsx)(t.li,{children:"Actor Run Result: The JSON response containing the output of the Actor run."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,a.jsx)(t.h2,{id:"how-to-use-apify-actors-in-langflow",children:"How to use Apify Actors in Langflow"}),"\n",(0,a.jsxs)(t.p,{children:["First, you need to pick an Actor that you want to use in your flow from the ",(0,a.jsx)(t.a,{href:"https://apify.com/store",children:"Apify Actor Store"}),". Then, create the ",(0,a.jsx)(t.strong,{children:"Apify Actors"})," component and input your Apify API token and the Actor ID. You can find the Actor ID in the Apify Actor Store, for instance, the ",(0,a.jsx)(t.a,{href:"https://apify.com/apify/website-content-crawler",children:"Website Content Crawler"})," has Actor ID ",(0,a.jsx)(t.code,{children:"apify/website-content-crawler"}),". Now you can either connect the ",(0,a.jsx)(t.strong,{children:"Tool"})," output to an AI Agent or configure the Run input JSON manually and run the component to retrieve data from the ",(0,a.jsx)(t.strong,{children:"Output Data"}),". Example Run input can be obtained from the Actor details page in the Apify Actor Store. See the ",(0,a.jsx)(t.strong,{children:"JSON Example"})," in the input schema section ",(0,a.jsx)(t.a,{href:"https://apify.com/apify/website-content-crawler/input-schema",children:"here"}),"."]})]})}function p(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(h,{...e})}):h(e)}},89976:(e,t,n)=>{n.d(t,{A:()=>i});const i=n.p+"assets/images/apify_agent_flow-4893aed54213b8b79d760ff091cbf467.png"}}]); \ No newline at end of file diff --git a/assets/js/537e1953.5a4c254e.js b/assets/js/537e1953.5a4c254e.js new file mode 100644 index 0000000000..c65ae66769 --- /dev/null +++ b/assets/js/537e1953.5a4c254e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[9789],{28453:(e,t,n)=>{n.d(t,{R:()=>o,x:()=>s});var i=n(96540);const a={},r=i.createContext(a);function o(e){const t=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),i.createElement(r.Provider,{value:t},e.children)}},44347:(e,t,n)=>{n.d(t,{A:()=>i});const i=n.p+"assets/images/apify_agent_flow_simple-6a14081c57b8328d7b225d80448e1793.png"},54998:(e,t,n)=>{n.d(t,{A:()=>i});const i=n.p+"assets/images/apify_flow_wcc-4be614102f62d74ea2e4eb4975d8b72e.png"},77907:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>p,frontMatter:()=>o,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"Integrations/Apify/integrations-apify","title":"Apify","description":"Apify is a web scraping and data extraction platform. It provides an app store with more than three thousand ready-made cloud tools called Actors.","source":"@site/docs/Integrations/Apify/integrations-apify.md","sourceDirName":"Integrations/Apify","slug":"/integrations-apify","permalink":"/integrations-apify","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Apify","slug":"/integrations-apify"},"sidebar":"docs","previous":{"title":"API examples","permalink":"/api-reference-api-examples"},"next":{"title":"AssemblyAI","permalink":"/integrations-assemblyai"}}');var a=n(74848),r=n(28453);const o={title:"Apify",slug:"/integrations-apify"},s="Integrate Apify with Langflow",c={},l=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Example flows",id:"example-flows",level:2},{value:"Extract website text content in Markdown format",id:"extract-website-text-content-in-markdown-format",level:3},{value:"Analyze and process website content with an Agent",id:"analyze-and-process-website-content-with-an-agent",level:3},{value:"Search and analyze social media profiles with an Agent",id:"search-and-analyze-social-media-profiles-with-an-agent",level:3},{value:"Components",id:"components",level:2},{value:"Apify Actors",id:"apify-actors",level:3},{value:"How to use Apify Actors in Langflow",id:"how-to-use-apify-actors-in-langflow",level:2}];function h(e){const t={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.header,{children:(0,a.jsx)(t.h1,{id:"integrate-apify-with-langflow",children:"Integrate Apify with Langflow"})}),"\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.a,{href:"https://apify.com/",children:"Apify"})," is a web scraping and data extraction platform. It provides an app store with more than three thousand ready-made cloud tools called Actors."]}),"\n",(0,a.jsx)(t.p,{children:"The Apify components allow you to run Apify Actors in your flow to accomplish tasks such as:"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsx)(t.li,{children:"Crawling websites and extracting text content"}),"\n",(0,a.jsx)(t.li,{children:"Scraping social media platforms like Instagram and Facebook"}),"\n",(0,a.jsx)(t.li,{children:"Extracting data from Google Maps"}),"\n",(0,a.jsx)(t.li,{children:"Inserting data into a PostgreSQL/MySQL/MSSQL database"}),"\n",(0,a.jsx)(t.li,{children:"Running various other automation tasks"}),"\n"]}),"\n",(0,a.jsx)(t.p,{children:"More info about Apify:"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsx)(t.li,{children:(0,a.jsx)(t.a,{href:"https://apify.com/",children:"Website"})}),"\n",(0,a.jsx)(t.li,{children:(0,a.jsx)(t.a,{href:"https://apify.com/store",children:"Apify Actor Store"})}),"\n",(0,a.jsx)(t.li,{children:(0,a.jsx)(t.a,{href:"https://whitepaper.actor/",children:"Actor Whitepaper"})}),"\n"]}),"\n",(0,a.jsx)(t.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,a.jsxs)(t.p,{children:["You need an ",(0,a.jsx)(t.strong,{children:"Apify API token"}),". You can create a free account on ",(0,a.jsx)(t.a,{href:"https://apify.com/",children:"Apify"})," and generate your API key in the Apify Console. ",(0,a.jsx)(t.a,{href:"https://docs.apify.com/platform/integrations/api",children:"Get a Free API key here"}),"."]}),"\n",(0,a.jsxs)(t.p,{children:["Enter the key in the ",(0,a.jsx)(t.em,{children:"Apify Token"})," field in all components that require the key."]}),"\n",(0,a.jsx)(t.h2,{id:"example-flows",children:"Example flows"}),"\n",(0,a.jsx)(t.h3,{id:"extract-website-text-content-in-markdown-format",children:"Extract website text content in Markdown format"}),"\n",(0,a.jsxs)(t.p,{children:["Use the ",(0,a.jsx)(t.a,{href:"https://apify.com/apify/website-content-crawler",children:"Website Content Crawler Actor"})," to extract text content in Markdown format from a website and process it in your flow.\n",(0,a.jsx)(t.img,{alt:"Apify Flow - Website Content Crawler",src:n(54998).A+"",width:"699",height:"643"})]}),"\n",(0,a.jsx)(t.h3,{id:"analyze-and-process-website-content-with-an-agent",children:"Analyze and process website content with an Agent"}),"\n",(0,a.jsxs)(t.p,{children:["Building on the previous example, this flow not only extracts website content using the ",(0,a.jsx)(t.a,{href:"https://apify.com/apify/website-content-crawler",children:"Website Content Crawler Actor"})," but also processes and analyzes it with an agent. The agent takes the extracted data and transforms it into summaries, insights, or structured responses, making the information more actionable. Unlike simple extraction, this approach enables automated content understanding and contextual processing.\n",(0,a.jsx)(t.img,{alt:"Apify Agent Flow - Simple",src:n(44347).A+"",width:"919",height:"713"})]}),"\n",(0,a.jsx)(t.h3,{id:"search-and-analyze-social-media-profiles-with-an-agent",children:"Search and analyze social media profiles with an Agent"}),"\n",(0,a.jsxs)(t.p,{children:["Perform comprehensive social media research with multiple Apify Actors. Start with the ",(0,a.jsx)(t.a,{href:"https://apify.com/apify/google-search-scraper",children:"Google Search Results Scraper Actor"})," to find relevant social media profiles, then use the ",(0,a.jsx)(t.a,{href:"https://apify.com/clockworks/free-tiktok-scraper",children:"TikTok Data Extractor Actor"})," to gather data and videos. The agent streamlines the process by collecting links from Google and retrieving content from TikTok, enabling deeper analysis of a person, brand, or topic.\n",(0,a.jsx)(t.img,{alt:"Apify Agent Flow",src:n(89976).A+"",width:"964",height:"864"})]}),"\n",(0,a.jsx)(t.h2,{id:"components",children:"Components"}),"\n",(0,a.jsx)(t.h3,{id:"apify-actors",children:"Apify Actors"}),"\n",(0,a.jsx)(t.p,{children:"This component allows you to run Apify Actors in your flow. It can be used manually by providing run input or integrated as a tool for an AI Agent. When used with an AI Agent, the agent can leverage the Apify Actors to perform various tasks."}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:["\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.strong,{children:"Input"}),":"]}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsx)(t.li,{children:"Apify Token: Your API key."}),"\n",(0,a.jsxs)(t.li,{children:["Actor: The Apify Actor to run. Example: ",(0,a.jsx)(t.code,{children:"apify/website-content-crawler"}),"."]}),"\n",(0,a.jsx)(t.li,{children:"Run Input: The JSON input for configuring the Actor run."}),"\n"]}),"\n"]}),"\n",(0,a.jsxs)(t.li,{children:["\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.strong,{children:"Output"}),":"]}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsx)(t.li,{children:"Actor Run Result: The JSON response containing the output of the Actor run."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,a.jsx)(t.h2,{id:"how-to-use-apify-actors-in-langflow",children:"How to use Apify Actors in Langflow"}),"\n",(0,a.jsxs)(t.p,{children:["First, you need to pick an Actor that you want to use in your flow from the ",(0,a.jsx)(t.a,{href:"https://apify.com/store",children:"Apify Actor Store"}),". Then, create the ",(0,a.jsx)(t.strong,{children:"Apify Actors"})," component and input your Apify API token and the Actor ID. You can find the Actor ID in the Apify Actor Store, for instance, the ",(0,a.jsx)(t.a,{href:"https://apify.com/apify/website-content-crawler",children:"Website Content Crawler"})," has Actor ID ",(0,a.jsx)(t.code,{children:"apify/website-content-crawler"}),". Now you can either connect the ",(0,a.jsx)(t.strong,{children:"Tool"})," output to an AI Agent or configure the Run input JSON manually and run the component to retrieve data from the ",(0,a.jsx)(t.strong,{children:"Output Data"}),". Example Run input can be obtained from the Actor details page in the Apify Actor Store. See the ",(0,a.jsx)(t.strong,{children:"JSON Example"})," in the input schema section ",(0,a.jsx)(t.a,{href:"https://apify.com/apify/website-content-crawler/input-schema",children:"here"}),"."]})]})}function p(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(h,{...e})}):h(e)}},89976:(e,t,n)=>{n.d(t,{A:()=>i});const i=n.p+"assets/images/apify_agent_flow-4893aed54213b8b79d760ff091cbf467.png"}}]); \ No newline at end of file diff --git a/assets/js/6e1a9721.61b7e3dd.js b/assets/js/6e1a9721.24adcb42.js similarity index 90% rename from assets/js/6e1a9721.61b7e3dd.js rename to assets/js/6e1a9721.24adcb42.js index 35dbd108bf..4c0a631a1f 100644 --- a/assets/js/6e1a9721.61b7e3dd.js +++ b/assets/js/6e1a9721.24adcb42.js @@ -1 +1 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[321],{7685:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/vector-store-document-ingestion-fce32e9be440846a2545397e3a18b7bf.png"},28453:(e,t,s)=>{s.d(t,{R:()=>r,x:()=>l});var n=s(96540);const d={},i=n.createContext(d);function r(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:r(e.components),n.createElement(i.Provider,{value:t},e.children)}},59748:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>o,frontMatter:()=>r,metadata:()=>n,toc:()=>a});const n=JSON.parse('{"id":"Components/components-processing","title":"Processing","description":"Processing components process and transform data within a flow.","source":"@site/docs/Components/components-processing.md","sourceDirName":"Components","slug":"/components-processing","permalink":"/components-processing","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Processing","slug":"/components-processing"},"sidebar":"docs","previous":{"title":"Models","permalink":"/components-models"},"next":{"title":"Prompts","permalink":"/components-prompts"}}');var d=s(74848),i=s(28453);const r={title:"Processing",slug:"/components-processing"},l="Processing components in Langflow",c={},a=[{value:"Use a processing component in a flow",id:"use-a-processing-component-in-a-flow",level:2},{value:"Alter metadata",id:"alter-metadata",level:2},{value:"Inputs",id:"inputs",level:3},{value:"Outputs",id:"outputs",level:3},{value:"Combine text",id:"combine-text",level:2},{value:"Inputs",id:"inputs-1",level:3},{value:"Outputs",id:"outputs-1",level:3},{value:"Create data",id:"create-data",level:2},{value:"Inputs",id:"inputs-2",level:3},{value:"Outputs",id:"outputs-2",level:3},{value:"Data combiner",id:"data-combiner",level:2},{value:"Inputs",id:"inputs-3",level:3},{value:"Outputs",id:"outputs-3",level:3},{value:"DataFrame operations",id:"dataframe-operations",level:2},{value:"Inputs",id:"inputs-4",level:3},{value:"Outputs",id:"outputs-4",level:3},{value:"Data to message",id:"data-to-message",level:2},{value:"Inputs",id:"inputs-5",level:3},{value:"Outputs",id:"outputs-5",level:3},{value:"Filter data",id:"filter-data",level:2},{value:"Inputs",id:"inputs-6",level:3},{value:"Outputs",id:"outputs-6",level:3},{value:"Filter values",id:"filter-values",level:2},{value:"Inputs",id:"inputs-7",level:3},{value:"Outputs",id:"outputs-7",level:3},{value:"JSON cleaner",id:"json-cleaner",level:2},{value:"Inputs",id:"inputs-8",level:3},{value:"Outputs",id:"outputs-8",level:3},{value:"LLM router",id:"llm-router",level:2},{value:"Inputs",id:"inputs-9",level:3},{value:"Outputs",id:"outputs-9",level:3},{value:"Message to data",id:"message-to-data",level:2},{value:"Inputs",id:"inputs-10",level:3},{value:"Outputs",id:"outputs-10",level:3},{value:"Parse DataFrame",id:"parse-dataframe",level:2},{value:"Inputs",id:"inputs-11",level:3},{value:"Outputs",id:"outputs-11",level:3},{value:"Parse JSON",id:"parse-json",level:2},{value:"Inputs",id:"inputs-12",level:3},{value:"Outputs",id:"outputs-12",level:3},{value:"Select data",id:"select-data",level:2},{value:"Inputs",id:"inputs-13",level:3},{value:"Outputs",id:"outputs-13",level:3},{value:"Split text",id:"split-text",level:2},{value:"Inputs",id:"inputs-14",level:3},{value:"Outputs",id:"outputs-14",level:3},{value:"Update data",id:"update-data",level:2},{value:"Inputs",id:"inputs-15",level:3},{value:"Outputs",id:"outputs-15",level:3}];function h(e){const t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(t.header,{children:(0,d.jsx)(t.h1,{id:"processing-components-in-langflow",children:"Processing components in Langflow"})}),"\n",(0,d.jsx)(t.p,{children:"Processing components process and transform data within a flow."}),"\n",(0,d.jsx)(t.h2,{id:"use-a-processing-component-in-a-flow",children:"Use a processing component in a flow"}),"\n",(0,d.jsxs)(t.p,{children:["The ",(0,d.jsx)(t.strong,{children:"Split Text"})," processing component in this flow splits the incoming ",(0,d.jsx)(t.a,{href:"/concepts-objects",children:"Data"})," into chunks to be embedded into the vector store component."]}),"\n",(0,d.jsx)(t.p,{children:"The component offers control over chunk size, overlap, and separator, which affect context and granularity in vector store retrieval results."}),"\n",(0,d.jsx)(t.p,{children:(0,d.jsx)(t.img,{src:s(7685).A+"",width:"1804",height:"1546"})}),"\n",(0,d.jsx)(t.h2,{id:"alter-metadata",children:"Alter metadata"}),"\n",(0,d.jsxs)(t.p,{children:["This component modifies metadata of input objects. It can add new metadata, update existing metadata, and remove specified metadata fields. The component works with both ",(0,d.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})," and ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," objects, and can also create a new Data object from user-provided text."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"input_value"}),(0,d.jsx)(t.td,{children:"Input"}),(0,d.jsx)(t.td,{children:"Objects to which Metadata should be added"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"text_in"}),(0,d.jsx)(t.td,{children:"User Text"}),(0,d.jsxs)(t.td,{children:["Text input; the value will be in the 'text' attribute of the ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object. Empty text entries are ignored."]})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"metadata"}),(0,d.jsx)(t.td,{children:"Metadata"}),(0,d.jsx)(t.td,{children:"Metadata to add to each object"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"remove_fields"}),(0,d.jsx)(t.td,{children:"Fields to Remove"}),(0,d.jsx)(t.td,{children:"Metadata Fields to Remove"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"List of Input objects, each with added metadata"})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"combine-text",children:"Combine text"}),"\n",(0,d.jsx)(t.p,{children:"This component concatenates two text sources into a single text chunk using a specified delimiter."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-1",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"first_text"}),(0,d.jsx)(t.td,{children:"First Text"}),(0,d.jsx)(t.td,{children:"The first text input to concatenate."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"second_text"}),(0,d.jsx)(t.td,{children:"Second Text"}),(0,d.jsx)(t.td,{children:"The second text input to concatenate."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"delimiter"}),(0,d.jsx)(t.td,{children:"Delimiter"}),(0,d.jsx)(t.td,{children:"A string used to separate the two text inputs. Defaults to a space."})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-1",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"message"}),(0,d.jsx)(t.td,{children:"Message"}),(0,d.jsxs)(t.td,{children:["A ",(0,d.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})," object containing the combined text."]})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"create-data",children:"Create data"}),"\n",(0,d.jsx)(t.admonition,{type:"important",children:(0,d.jsxs)(t.p,{children:["This component is in ",(0,d.jsx)(t.strong,{children:"Legacy"}),", which means it is no longer in active development as of Langflow version 1.1.3."]})}),"\n",(0,d.jsxs)(t.p,{children:["This component dynamically creates a ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object with a specified number of fields."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-2",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_fields"}),(0,d.jsx)(t.td,{children:"Number of Fields"}),(0,d.jsx)(t.td,{children:"The number of fields to be added to the record."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"text_key"}),(0,d.jsx)(t.td,{children:"Text Key"}),(0,d.jsx)(t.td,{children:"Key that identifies the field to be used as the text content."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"text_key_validator"}),(0,d.jsx)(t.td,{children:"Text Key Validator"}),(0,d.jsxs)(t.td,{children:["If enabled, checks if the given ",(0,d.jsx)(t.code,{children:"Text Key"})," is present in the given ",(0,d.jsx)(t.code,{children:"Data"}),"."]})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-2",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsxs)(t.td,{children:["A ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object created with the specified fields and text key."]})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"data-combiner",children:"Data combiner"}),"\n",(0,d.jsx)(t.admonition,{type:"important",children:(0,d.jsxs)(t.p,{children:["Prior to Langflow version 1.1.3, this component was named ",(0,d.jsx)(t.strong,{children:"Merge Data"}),"."]})}),"\n",(0,d.jsxs)(t.p,{children:["This component combines multiple data sources into a single unified ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object."]}),"\n",(0,d.jsx)(t.p,{children:"The component iterates through the input list of data objects, merging them into a single data object. If the input list is empty, it returns an empty data object. If there's only one input data object, it returns that object unchanged. The merging process uses the addition operator to combine data objects."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-3",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"A list of data objects to be merged."})]})})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-3",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"merged_data"}),(0,d.jsx)(t.td,{children:"Merged Data"}),(0,d.jsxs)(t.td,{children:["A single ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object containing the combined information from all input data objects."]})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"dataframe-operations",children:"DataFrame operations"}),"\n",(0,d.jsxs)(t.p,{children:["This component performs the following operations on Pandas ",(0,d.jsx)(t.a,{href:"https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html",children:"DataFrame"}),":"]}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Operation"}),(0,d.jsx)(t.th,{children:"Description"}),(0,d.jsx)(t.th,{children:"Required Inputs"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"Add Column"}),(0,d.jsx)(t.td,{children:"Adds a new column with a constant value"}),(0,d.jsx)(t.td,{children:"new_column_name, new_column_value"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"Drop Column"}),(0,d.jsx)(t.td,{children:"Removes a specified column"}),(0,d.jsx)(t.td,{children:"column_name"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"Filter"}),(0,d.jsx)(t.td,{children:"Filters rows based on column value"}),(0,d.jsx)(t.td,{children:"column_name, filter_value"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"Head"}),(0,d.jsx)(t.td,{children:"Returns first n rows"}),(0,d.jsx)(t.td,{children:"num_rows"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"Rename Column"}),(0,d.jsx)(t.td,{children:"Renames an existing column"}),(0,d.jsx)(t.td,{children:"column_name, new_column_name"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"Replace Value"}),(0,d.jsx)(t.td,{children:"Replaces values in a column"}),(0,d.jsx)(t.td,{children:"column_name, replace_value, replacement_value"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"Select Columns"}),(0,d.jsx)(t.td,{children:"Selects specific columns"}),(0,d.jsx)(t.td,{children:"columns_to_select"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"Sort"}),(0,d.jsx)(t.td,{children:"Sorts DataFrame by column"}),(0,d.jsx)(t.td,{children:"column_name, ascending"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"Tail"}),(0,d.jsx)(t.td,{children:"Returns last n rows"}),(0,d.jsx)(t.td,{children:"num_rows"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-4",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"df"}),(0,d.jsx)(t.td,{children:"DataFrame"}),(0,d.jsx)(t.td,{children:"The input DataFrame to operate on."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"operation"}),(0,d.jsx)(t.td,{children:"Operation"}),(0,d.jsx)(t.td,{children:"Select the DataFrame operation to perform. Options: Add Column, Drop Column, Filter, Head, Rename Column, Replace Value, Select Columns, Sort, Tail"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"column_name"}),(0,d.jsx)(t.td,{children:"Column Name"}),(0,d.jsx)(t.td,{children:"The column name to use for the operation."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"filter_value"}),(0,d.jsx)(t.td,{children:"Filter Value"}),(0,d.jsx)(t.td,{children:"The value to filter rows by."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ascending"}),(0,d.jsx)(t.td,{children:"Sort Ascending"}),(0,d.jsx)(t.td,{children:"Whether to sort in ascending order."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"new_column_name"}),(0,d.jsx)(t.td,{children:"New Column Name"}),(0,d.jsx)(t.td,{children:"The new column name when renaming or adding a column."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"new_column_value"}),(0,d.jsx)(t.td,{children:"New Column Value"}),(0,d.jsx)(t.td,{children:"The value to populate the new column with."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"columns_to_select"}),(0,d.jsx)(t.td,{children:"Columns to Select"}),(0,d.jsx)(t.td,{children:"List of column names to select."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"num_rows"}),(0,d.jsx)(t.td,{children:"Number of Rows"}),(0,d.jsx)(t.td,{children:"Number of rows to return (for head/tail). Default: 5"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"replace_value"}),(0,d.jsx)(t.td,{children:"Value to Replace"}),(0,d.jsx)(t.td,{children:"The value to replace in the column."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"replacement_value"}),(0,d.jsx)(t.td,{children:"Replacement Value"}),(0,d.jsx)(t.td,{children:"The value to replace with."})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-4",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"output"}),(0,d.jsx)(t.td,{children:"DataFrame"}),(0,d.jsx)(t.td,{children:"The resulting DataFrame after the operation."})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"data-to-message",children:"Data to message"}),"\n",(0,d.jsx)(t.admonition,{type:"important",children:(0,d.jsxs)(t.p,{children:["Prior to Langflow version 1.1.3, this component was named ",(0,d.jsx)(t.strong,{children:"Parse Data"}),"."]})}),"\n",(0,d.jsx)(t.p,{children:"The ParseData component converts data objects into plain text using a specified template.\nThis component transforms structured data into human-readable text formats, allowing for customizable output through the use of templates."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-5",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"The data to convert to text."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"template"}),(0,d.jsx)(t.td,{children:"Template"}),(0,d.jsxs)(t.td,{children:["The template to use for formatting the data. It can contain the keys ",(0,d.jsx)(t.code,{children:"{text}"}),", ",(0,d.jsx)(t.code,{children:"{data}"}),", or any other key in the data."]})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"sep"}),(0,d.jsx)(t.td,{children:"Separator"}),(0,d.jsx)(t.td,{children:"The separator to use between multiple data items."})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-5",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"text"}),(0,d.jsx)(t.td,{children:"Text"}),(0,d.jsxs)(t.td,{children:["The resulting formatted text string as a ",(0,d.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})," object."]})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"filter-data",children:"Filter data"}),"\n",(0,d.jsx)(t.admonition,{type:"important",children:(0,d.jsxs)(t.p,{children:["This component is in ",(0,d.jsx)(t.strong,{children:"Beta"})," as of Langflow version 1.1.3, and is not yet fully supported."]})}),"\n",(0,d.jsxs)(t.p,{children:["This component filters a ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object based on a list of keys."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-6",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Data object to filter."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"filter_criteria"}),(0,d.jsx)(t.td,{children:"Filter Criteria"}),(0,d.jsx)(t.td,{children:"List of keys to filter by."})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-6",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"filtered_data"}),(0,d.jsx)(t.td,{children:"Filtered Data"}),(0,d.jsxs)(t.td,{children:["A new ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object containing only the key-value pairs that match the filter criteria."]})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"filter-values",children:"Filter values"}),"\n",(0,d.jsx)(t.admonition,{type:"important",children:(0,d.jsxs)(t.p,{children:["This component is in ",(0,d.jsx)(t.strong,{children:"Beta"})," as of Langflow version 1.1.3, and is not yet fully supported."]})}),"\n",(0,d.jsx)(t.p,{children:"The Filter values component filters a list of data items based on a specified key, filter value, and comparison operator."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-7",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"input_data"}),(0,d.jsx)(t.td,{children:"Input data"}),(0,d.jsx)(t.td,{children:"The list of data items to filter."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"filter_key"}),(0,d.jsx)(t.td,{children:"Filter Key"}),(0,d.jsx)(t.td,{children:"The key to filter on, for example, 'route'."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"filter_value"}),(0,d.jsx)(t.td,{children:"Filter Value"}),(0,d.jsx)(t.td,{children:"The value to filter by, for example, 'CMIP'."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"operator"}),(0,d.jsx)(t.td,{children:"Comparison Operator"}),(0,d.jsx)(t.td,{children:"The operator to apply for comparing the values."})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-7",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"filtered_data"}),(0,d.jsx)(t.td,{children:"Filtered data"}),(0,d.jsx)(t.td,{children:"The resulting list of filtered data items."})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"json-cleaner",children:"JSON cleaner"}),"\n",(0,d.jsx)(t.p,{children:"The JSON cleaner component cleans JSON strings to ensure they are fully compliant with the JSON specification."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-8",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"json_str"}),(0,d.jsx)(t.td,{children:"JSON String"}),(0,d.jsx)(t.td,{children:"The JSON string to be cleaned. This can be a raw, potentially malformed JSON string produced by language models or other sources that may not fully comply with JSON specifications."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"remove_control_chars"}),(0,d.jsx)(t.td,{children:"Remove Control Characters"}),(0,d.jsx)(t.td,{children:"If set to True, this option removes control characters (ASCII characters 0-31 and 127) from the JSON string. This can help eliminate invisible characters that might cause parsing issues or make the JSON invalid."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"normalize_unicode"}),(0,d.jsx)(t.td,{children:"Normalize Unicode"}),(0,d.jsx)(t.td,{children:"When enabled, this option normalizes Unicode characters in the JSON string to their canonical composition form (NFC). This ensures consistent representation of Unicode characters across different systems and prevents potential issues with character encoding."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"validate_json"}),(0,d.jsx)(t.td,{children:"Validate JSON"}),(0,d.jsx)(t.td,{children:"If set to True, this option attempts to parse the JSON string to ensure it is well-formed before applying the final repair operation. It raises a ValueError if the JSON is invalid, allowing for early detection of major structural issues in the JSON."})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-8",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"output"}),(0,d.jsx)(t.td,{children:"Cleaned JSON String"}),(0,d.jsx)(t.td,{children:"The resulting cleaned, repaired, and validated JSON string that fully complies with the JSON specification."})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"llm-router",children:"LLM router"}),"\n",(0,d.jsx)(t.p,{children:"This component routes requests to the most appropriate LLM based on OpenRouter model specifications."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-9",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"models"}),(0,d.jsx)(t.td,{children:"Language Models"}),(0,d.jsx)(t.td,{children:"List of LLMs to route between"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"input_value"}),(0,d.jsx)(t.td,{children:"Input"}),(0,d.jsx)(t.td,{children:"The input message to be routed"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"judge_llm"}),(0,d.jsx)(t.td,{children:"Judge LLM"}),(0,d.jsx)(t.td,{children:"LLM that will evaluate and select the most appropriate model"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"optimization"}),(0,d.jsx)(t.td,{children:"Optimization"}),(0,d.jsx)(t.td,{children:"Optimization preference (quality/speed/cost/balanced)"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-9",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"output"}),(0,d.jsx)(t.td,{children:"Output"}),(0,d.jsx)(t.td,{children:"The response from the selected model"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"selected_model"}),(0,d.jsx)(t.td,{children:"Selected Model"}),(0,d.jsx)(t.td,{children:"Name of the chosen model"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"message-to-data",children:"Message to data"}),"\n",(0,d.jsxs)(t.p,{children:["This component converts ",(0,d.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})," objects to ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," objects."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-10",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"message"}),(0,d.jsx)(t.td,{children:"Message"}),(0,d.jsxs)(t.td,{children:["The ",(0,d.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})," object to convert to a ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object."]})]})})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-10",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsxs)(t.td,{children:["The converted ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object."]})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"parse-dataframe",children:"Parse DataFrame"}),"\n",(0,d.jsx)(t.p,{children:"This component converts DataFrames into plain text using templates."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-11",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"df"}),(0,d.jsx)(t.td,{children:"DataFrame"}),(0,d.jsx)(t.td,{children:"The DataFrame to convert to text rows"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"template"}),(0,d.jsx)(t.td,{children:"Template"}),(0,d.jsxs)(t.td,{children:["Template for formatting (use ",(0,d.jsx)(t.code,{children:"{column_name}"})," placeholders)"]})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"sep"}),(0,d.jsx)(t.td,{children:"Separator"}),(0,d.jsx)(t.td,{children:"String to join rows in output"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-11",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"text"}),(0,d.jsx)(t.td,{children:"Text"}),(0,d.jsx)(t.td,{children:"All rows combined into single text"})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"parse-json",children:"Parse JSON"}),"\n",(0,d.jsx)(t.admonition,{type:"important",children:(0,d.jsxs)(t.p,{children:["This component is in ",(0,d.jsx)(t.strong,{children:"Legacy"}),", which means it is no longer in active development as of Langflow version 1.1.3."]})}),"\n",(0,d.jsx)(t.p,{children:"This component converts and extracts JSON fields using JQ queries."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-12",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"input_value"}),(0,d.jsx)(t.td,{children:"Input"}),(0,d.jsxs)(t.td,{children:["Data object to filter (",(0,d.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})," or ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"}),")."]})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"query"}),(0,d.jsx)(t.td,{children:"JQ Query"}),(0,d.jsx)(t.td,{children:"JQ Query to filter the data"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-12",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"filtered_data"}),(0,d.jsx)(t.td,{children:"Filtered Data"}),(0,d.jsxs)(t.td,{children:["Filtered data as list of ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," objects."]})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"select-data",children:"Select data"}),"\n",(0,d.jsx)(t.admonition,{type:"important",children:(0,d.jsxs)(t.p,{children:["This component is in ",(0,d.jsx)(t.strong,{children:"Legacy"}),", which means it is no longer in active development as of Langflow version 1.1.3."]})}),"\n",(0,d.jsxs)(t.p,{children:["This component selects a single ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," item from a list."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-13",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data_list"}),(0,d.jsx)(t.td,{children:"Data List"}),(0,d.jsx)(t.td,{children:"List of data to select from"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data_index"}),(0,d.jsx)(t.td,{children:"Data Index"}),(0,d.jsx)(t.td,{children:"Index of the data to select"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-13",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"selected_data"}),(0,d.jsx)(t.td,{children:"Selected Data"}),(0,d.jsxs)(t.td,{children:["The selected ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object."]})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"split-text",children:"Split text"}),"\n",(0,d.jsx)(t.p,{children:"This component splits text into chunks based on specified criteria."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-14",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data_inputs"}),(0,d.jsx)(t.td,{children:"Data Inputs"}),(0,d.jsx)(t.td,{children:"The data to split"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"chunk_overlap"}),(0,d.jsx)(t.td,{children:"Chunk Overlap"}),(0,d.jsx)(t.td,{children:"Number of characters to overlap between chunks"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"chunk_size"}),(0,d.jsx)(t.td,{children:"Chunk Size"}),(0,d.jsx)(t.td,{children:"Maximum number of characters in each chunk"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"separator"}),(0,d.jsx)(t.td,{children:"Separator"}),(0,d.jsx)(t.td,{children:"Character to split on (defaults to newline)"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-14",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"chunks"}),(0,d.jsx)(t.td,{children:"Chunks"}),(0,d.jsxs)(t.td,{children:["List of split text chunks as ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," objects."]})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"dataframe"}),(0,d.jsx)(t.td,{children:"DataFrame"}),(0,d.jsx)(t.td,{children:"The chunks as a DataFrame"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"update-data",children:"Update data"}),"\n",(0,d.jsx)(t.p,{children:"This component dynamically updates or appends data with specified fields."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-15",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"old_data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"The records to update"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_fields"}),(0,d.jsx)(t.td,{children:"Number of Fields"}),(0,d.jsx)(t.td,{children:"Number of fields to add (max 15)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"text_key"}),(0,d.jsx)(t.td,{children:"Text Key"}),(0,d.jsx)(t.td,{children:"Key for text content"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"text_key_validator"}),(0,d.jsx)(t.td,{children:"Text Key Validator"}),(0,d.jsx)(t.td,{children:"Validates text key presence"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-15",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsxs)(t.td,{children:["Updated ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," objects."]})]})})]})]})}function o(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,d.jsx)(t,{...e,children:(0,d.jsx)(h,{...e})}):h(e)}}}]); \ No newline at end of file +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[321],{7685:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/vector-store-document-ingestion-fce32e9be440846a2545397e3a18b7bf.png"},28453:(e,t,s)=>{s.d(t,{R:()=>r,x:()=>l});var n=s(96540);const d={},i=n.createContext(d);function r(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:r(e.components),n.createElement(i.Provider,{value:t},e.children)}},59748:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>o,frontMatter:()=>r,metadata:()=>n,toc:()=>a});const n=JSON.parse('{"id":"Components/components-processing","title":"Processing","description":"Processing components process and transform data within a flow.","source":"@site/docs/Components/components-processing.md","sourceDirName":"Components","slug":"/components-processing","permalink":"/components-processing","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Processing","slug":"/components-processing"},"sidebar":"docs","previous":{"title":"Models","permalink":"/components-models"},"next":{"title":"Prompts","permalink":"/components-prompts"}}');var d=s(74848),i=s(28453);const r={title:"Processing",slug:"/components-processing"},l="Processing components in Langflow",c={},a=[{value:"Use a processing component in a flow",id:"use-a-processing-component-in-a-flow",level:2},{value:"Alter metadata",id:"alter-metadata",level:2},{value:"Inputs",id:"inputs",level:3},{value:"Outputs",id:"outputs",level:3},{value:"Combine text",id:"combine-text",level:2},{value:"Inputs",id:"inputs-1",level:3},{value:"Outputs",id:"outputs-1",level:3},{value:"Create data",id:"create-data",level:2},{value:"Inputs",id:"inputs-2",level:3},{value:"Outputs",id:"outputs-2",level:3},{value:"Data combiner",id:"data-combiner",level:2},{value:"Inputs",id:"inputs-3",level:3},{value:"Outputs",id:"outputs-3",level:3},{value:"DataFrame operations",id:"dataframe-operations",level:2},{value:"Inputs",id:"inputs-4",level:3},{value:"Outputs",id:"outputs-4",level:3},{value:"Data to message",id:"data-to-message",level:2},{value:"Inputs",id:"inputs-5",level:3},{value:"Outputs",id:"outputs-5",level:3},{value:"Filter data",id:"filter-data",level:2},{value:"Inputs",id:"inputs-6",level:3},{value:"Outputs",id:"outputs-6",level:3},{value:"Filter values",id:"filter-values",level:2},{value:"Inputs",id:"inputs-7",level:3},{value:"Outputs",id:"outputs-7",level:3},{value:"JSON cleaner",id:"json-cleaner",level:2},{value:"Inputs",id:"inputs-8",level:3},{value:"Outputs",id:"outputs-8",level:3},{value:"LLM router",id:"llm-router",level:2},{value:"Inputs",id:"inputs-9",level:3},{value:"Outputs",id:"outputs-9",level:3},{value:"Message to data",id:"message-to-data",level:2},{value:"Inputs",id:"inputs-10",level:3},{value:"Outputs",id:"outputs-10",level:3},{value:"Parse DataFrame",id:"parse-dataframe",level:2},{value:"Inputs",id:"inputs-11",level:3},{value:"Outputs",id:"outputs-11",level:3},{value:"Parse JSON",id:"parse-json",level:2},{value:"Inputs",id:"inputs-12",level:3},{value:"Outputs",id:"outputs-12",level:3},{value:"Select data",id:"select-data",level:2},{value:"Inputs",id:"inputs-13",level:3},{value:"Outputs",id:"outputs-13",level:3},{value:"Split text",id:"split-text",level:2},{value:"Inputs",id:"inputs-14",level:3},{value:"Outputs",id:"outputs-14",level:3},{value:"Update data",id:"update-data",level:2},{value:"Inputs",id:"inputs-15",level:3},{value:"Outputs",id:"outputs-15",level:3}];function h(e){const t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(t.header,{children:(0,d.jsx)(t.h1,{id:"processing-components-in-langflow",children:"Processing components in Langflow"})}),"\n",(0,d.jsx)(t.p,{children:"Processing components process and transform data within a flow."}),"\n",(0,d.jsx)(t.h2,{id:"use-a-processing-component-in-a-flow",children:"Use a processing component in a flow"}),"\n",(0,d.jsxs)(t.p,{children:["The ",(0,d.jsx)(t.strong,{children:"Split Text"})," processing component in this flow splits the incoming ",(0,d.jsx)(t.a,{href:"/concepts-objects",children:"Data"})," into chunks to be embedded into the vector store component."]}),"\n",(0,d.jsx)(t.p,{children:"The component offers control over chunk size, overlap, and separator, which affect context and granularity in vector store retrieval results."}),"\n",(0,d.jsx)(t.p,{children:(0,d.jsx)(t.img,{src:s(7685).A+"",width:"1804",height:"1546"})}),"\n",(0,d.jsx)(t.h2,{id:"alter-metadata",children:"Alter metadata"}),"\n",(0,d.jsxs)(t.p,{children:["This component modifies metadata of input objects. It can add new metadata, update existing metadata, and remove specified metadata fields. The component works with both ",(0,d.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})," and ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," objects, and can also create a new Data object from user-provided text."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"input_value"}),(0,d.jsx)(t.td,{children:"Input"}),(0,d.jsx)(t.td,{children:"Objects to which Metadata should be added"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"text_in"}),(0,d.jsx)(t.td,{children:"User Text"}),(0,d.jsxs)(t.td,{children:["Text input; the value will be in the 'text' attribute of the ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object. Empty text entries are ignored."]})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"metadata"}),(0,d.jsx)(t.td,{children:"Metadata"}),(0,d.jsx)(t.td,{children:"Metadata to add to each object"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"remove_fields"}),(0,d.jsx)(t.td,{children:"Fields to Remove"}),(0,d.jsx)(t.td,{children:"Metadata Fields to Remove"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"List of Input objects, each with added metadata"})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"combine-text",children:"Combine text"}),"\n",(0,d.jsx)(t.p,{children:"This component concatenates two text sources into a single text chunk using a specified delimiter."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-1",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"first_text"}),(0,d.jsx)(t.td,{children:"First Text"}),(0,d.jsx)(t.td,{children:"The first text input to concatenate."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"second_text"}),(0,d.jsx)(t.td,{children:"Second Text"}),(0,d.jsx)(t.td,{children:"The second text input to concatenate."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"delimiter"}),(0,d.jsx)(t.td,{children:"Delimiter"}),(0,d.jsx)(t.td,{children:"A string used to separate the two text inputs. Defaults to a space."})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-1",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"message"}),(0,d.jsx)(t.td,{children:"Message"}),(0,d.jsxs)(t.td,{children:["A ",(0,d.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})," object containing the combined text."]})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"create-data",children:"Create data"}),"\n",(0,d.jsx)(t.admonition,{type:"important",children:(0,d.jsxs)(t.p,{children:["This component is in ",(0,d.jsx)(t.strong,{children:"Legacy"}),", which means it is no longer in active development as of Langflow version 1.1.3."]})}),"\n",(0,d.jsxs)(t.p,{children:["This component dynamically creates a ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object with a specified number of fields."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-2",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_fields"}),(0,d.jsx)(t.td,{children:"Number of Fields"}),(0,d.jsx)(t.td,{children:"The number of fields to be added to the record."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"text_key"}),(0,d.jsx)(t.td,{children:"Text Key"}),(0,d.jsx)(t.td,{children:"Key that identifies the field to be used as the text content."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"text_key_validator"}),(0,d.jsx)(t.td,{children:"Text Key Validator"}),(0,d.jsxs)(t.td,{children:["If enabled, checks if the given ",(0,d.jsx)(t.code,{children:"Text Key"})," is present in the given ",(0,d.jsx)(t.code,{children:"Data"}),"."]})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-2",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsxs)(t.td,{children:["A ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object created with the specified fields and text key."]})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"data-combiner",children:"Data combiner"}),"\n",(0,d.jsx)(t.admonition,{type:"important",children:(0,d.jsxs)(t.p,{children:["Prior to Langflow version 1.1.3, this component was named ",(0,d.jsx)(t.strong,{children:"Merge Data"}),"."]})}),"\n",(0,d.jsxs)(t.p,{children:["This component combines multiple data sources into a single unified ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object."]}),"\n",(0,d.jsx)(t.p,{children:"The component iterates through the input list of data objects, merging them into a single data object. If the input list is empty, it returns an empty data object. If there's only one input data object, it returns that object unchanged. The merging process uses the addition operator to combine data objects."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-3",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"A list of data objects to be merged."})]})})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-3",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"merged_data"}),(0,d.jsx)(t.td,{children:"Merged Data"}),(0,d.jsxs)(t.td,{children:["A single ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object containing the combined information from all input data objects."]})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"dataframe-operations",children:"DataFrame operations"}),"\n",(0,d.jsxs)(t.p,{children:["This component performs the following operations on Pandas ",(0,d.jsx)(t.a,{href:"https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html",children:"DataFrame"}),":"]}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Operation"}),(0,d.jsx)(t.th,{children:"Description"}),(0,d.jsx)(t.th,{children:"Required Inputs"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"Add Column"}),(0,d.jsx)(t.td,{children:"Adds a new column with a constant value"}),(0,d.jsx)(t.td,{children:"new_column_name, new_column_value"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"Drop Column"}),(0,d.jsx)(t.td,{children:"Removes a specified column"}),(0,d.jsx)(t.td,{children:"column_name"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"Filter"}),(0,d.jsx)(t.td,{children:"Filters rows based on column value"}),(0,d.jsx)(t.td,{children:"column_name, filter_value"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"Head"}),(0,d.jsx)(t.td,{children:"Returns first n rows"}),(0,d.jsx)(t.td,{children:"num_rows"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"Rename Column"}),(0,d.jsx)(t.td,{children:"Renames an existing column"}),(0,d.jsx)(t.td,{children:"column_name, new_column_name"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"Replace Value"}),(0,d.jsx)(t.td,{children:"Replaces values in a column"}),(0,d.jsx)(t.td,{children:"column_name, replace_value, replacement_value"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"Select Columns"}),(0,d.jsx)(t.td,{children:"Selects specific columns"}),(0,d.jsx)(t.td,{children:"columns_to_select"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"Sort"}),(0,d.jsx)(t.td,{children:"Sorts DataFrame by column"}),(0,d.jsx)(t.td,{children:"column_name, ascending"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"Tail"}),(0,d.jsx)(t.td,{children:"Returns last n rows"}),(0,d.jsx)(t.td,{children:"num_rows"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-4",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"df"}),(0,d.jsx)(t.td,{children:"DataFrame"}),(0,d.jsx)(t.td,{children:"The input DataFrame to operate on."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"operation"}),(0,d.jsx)(t.td,{children:"Operation"}),(0,d.jsx)(t.td,{children:"Select the DataFrame operation to perform. Options: Add Column, Drop Column, Filter, Head, Rename Column, Replace Value, Select Columns, Sort, Tail"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"column_name"}),(0,d.jsx)(t.td,{children:"Column Name"}),(0,d.jsx)(t.td,{children:"The column name to use for the operation."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"filter_value"}),(0,d.jsx)(t.td,{children:"Filter Value"}),(0,d.jsx)(t.td,{children:"The value to filter rows by."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ascending"}),(0,d.jsx)(t.td,{children:"Sort Ascending"}),(0,d.jsx)(t.td,{children:"Whether to sort in ascending order."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"new_column_name"}),(0,d.jsx)(t.td,{children:"New Column Name"}),(0,d.jsx)(t.td,{children:"The new column name when renaming or adding a column."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"new_column_value"}),(0,d.jsx)(t.td,{children:"New Column Value"}),(0,d.jsx)(t.td,{children:"The value to populate the new column with."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"columns_to_select"}),(0,d.jsx)(t.td,{children:"Columns to Select"}),(0,d.jsx)(t.td,{children:"List of column names to select."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"num_rows"}),(0,d.jsx)(t.td,{children:"Number of Rows"}),(0,d.jsx)(t.td,{children:"Number of rows to return (for head/tail). Default: 5"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"replace_value"}),(0,d.jsx)(t.td,{children:"Value to Replace"}),(0,d.jsx)(t.td,{children:"The value to replace in the column."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"replacement_value"}),(0,d.jsx)(t.td,{children:"Replacement Value"}),(0,d.jsx)(t.td,{children:"The value to replace with."})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-4",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"output"}),(0,d.jsx)(t.td,{children:"DataFrame"}),(0,d.jsx)(t.td,{children:"The resulting DataFrame after the operation."})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"data-to-message",children:"Data to message"}),"\n",(0,d.jsx)(t.admonition,{type:"important",children:(0,d.jsxs)(t.p,{children:["Prior to Langflow version 1.1.3, this component was named ",(0,d.jsx)(t.strong,{children:"Parse Data"}),"."]})}),"\n",(0,d.jsx)(t.p,{children:"The ParseData component converts data objects into plain text using a specified template.\nThis component transforms structured data into human-readable text formats, allowing for customizable output through the use of templates."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-5",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"The data to convert to text."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"template"}),(0,d.jsx)(t.td,{children:"Template"}),(0,d.jsxs)(t.td,{children:["The template to use for formatting the data. It can contain the keys ",(0,d.jsx)(t.code,{children:"{text}"}),", ",(0,d.jsx)(t.code,{children:"{data}"}),", or any other key in the data."]})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"sep"}),(0,d.jsx)(t.td,{children:"Separator"}),(0,d.jsx)(t.td,{children:"The separator to use between multiple data items."})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-5",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"text"}),(0,d.jsx)(t.td,{children:"Text"}),(0,d.jsxs)(t.td,{children:["The resulting formatted text string as a ",(0,d.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})," object."]})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"filter-data",children:"Filter data"}),"\n",(0,d.jsx)(t.admonition,{type:"important",children:(0,d.jsxs)(t.p,{children:["This component is in ",(0,d.jsx)(t.strong,{children:"Beta"})," as of Langflow version 1.1.3, and is not yet fully supported."]})}),"\n",(0,d.jsxs)(t.p,{children:["This component filters a ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object based on a list of keys."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-6",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Data object to filter."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"filter_criteria"}),(0,d.jsx)(t.td,{children:"Filter Criteria"}),(0,d.jsx)(t.td,{children:"List of keys to filter by."})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-6",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"filtered_data"}),(0,d.jsx)(t.td,{children:"Filtered Data"}),(0,d.jsxs)(t.td,{children:["A new ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object containing only the key-value pairs that match the filter criteria."]})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"filter-values",children:"Filter values"}),"\n",(0,d.jsx)(t.admonition,{type:"important",children:(0,d.jsxs)(t.p,{children:["This component is in ",(0,d.jsx)(t.strong,{children:"Beta"})," as of Langflow version 1.1.3, and is not yet fully supported."]})}),"\n",(0,d.jsx)(t.p,{children:"The Filter values component filters a list of data items based on a specified key, filter value, and comparison operator."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-7",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"input_data"}),(0,d.jsx)(t.td,{children:"Input data"}),(0,d.jsx)(t.td,{children:"The list of data items to filter."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"filter_key"}),(0,d.jsx)(t.td,{children:"Filter Key"}),(0,d.jsx)(t.td,{children:"The key to filter on, for example, 'route'."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"filter_value"}),(0,d.jsx)(t.td,{children:"Filter Value"}),(0,d.jsx)(t.td,{children:"The value to filter by, for example, 'CMIP'."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"operator"}),(0,d.jsx)(t.td,{children:"Comparison Operator"}),(0,d.jsx)(t.td,{children:"The operator to apply for comparing the values."})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-7",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"filtered_data"}),(0,d.jsx)(t.td,{children:"Filtered data"}),(0,d.jsx)(t.td,{children:"The resulting list of filtered data items."})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"json-cleaner",children:"JSON cleaner"}),"\n",(0,d.jsx)(t.p,{children:"The JSON cleaner component cleans JSON strings to ensure they are fully compliant with the JSON specification."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-8",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"json_str"}),(0,d.jsx)(t.td,{children:"JSON String"}),(0,d.jsx)(t.td,{children:"The JSON string to be cleaned. This can be a raw, potentially malformed JSON string produced by language models or other sources that may not fully comply with JSON specifications."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"remove_control_chars"}),(0,d.jsx)(t.td,{children:"Remove Control Characters"}),(0,d.jsx)(t.td,{children:"If set to True, this option removes control characters (ASCII characters 0-31 and 127) from the JSON string. This can help eliminate invisible characters that might cause parsing issues or make the JSON invalid."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"normalize_unicode"}),(0,d.jsx)(t.td,{children:"Normalize Unicode"}),(0,d.jsx)(t.td,{children:"When enabled, this option normalizes Unicode characters in the JSON string to their canonical composition form (NFC). This ensures consistent representation of Unicode characters across different systems and prevents potential issues with character encoding."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"validate_json"}),(0,d.jsx)(t.td,{children:"Validate JSON"}),(0,d.jsx)(t.td,{children:"If set to True, this option attempts to parse the JSON string to ensure it is well-formed before applying the final repair operation. It raises a ValueError if the JSON is invalid, allowing for early detection of major structural issues in the JSON."})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-8",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"output"}),(0,d.jsx)(t.td,{children:"Cleaned JSON String"}),(0,d.jsx)(t.td,{children:"The resulting cleaned, repaired, and validated JSON string that fully complies with the JSON specification."})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"llm-router",children:"LLM router"}),"\n",(0,d.jsx)(t.p,{children:"This component routes requests to the most appropriate LLM based on OpenRouter model specifications."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-9",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"models"}),(0,d.jsx)(t.td,{children:"Language Models"}),(0,d.jsx)(t.td,{children:"List of LLMs to route between"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"input_value"}),(0,d.jsx)(t.td,{children:"Input"}),(0,d.jsx)(t.td,{children:"The input message to be routed"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"judge_llm"}),(0,d.jsx)(t.td,{children:"Judge LLM"}),(0,d.jsx)(t.td,{children:"LLM that will evaluate and select the most appropriate model"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"optimization"}),(0,d.jsx)(t.td,{children:"Optimization"}),(0,d.jsx)(t.td,{children:"Optimization preference (quality/speed/cost/balanced)"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-9",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"output"}),(0,d.jsx)(t.td,{children:"Output"}),(0,d.jsx)(t.td,{children:"The response from the selected model"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"selected_model"}),(0,d.jsx)(t.td,{children:"Selected Model"}),(0,d.jsx)(t.td,{children:"Name of the chosen model"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"message-to-data",children:"Message to data"}),"\n",(0,d.jsxs)(t.p,{children:["This component converts ",(0,d.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})," objects to ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," objects."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-10",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"message"}),(0,d.jsx)(t.td,{children:"Message"}),(0,d.jsxs)(t.td,{children:["The ",(0,d.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})," object to convert to a ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object."]})]})})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-10",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsxs)(t.td,{children:["The converted ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object."]})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"parse-dataframe",children:"Parse DataFrame"}),"\n",(0,d.jsx)(t.p,{children:"This component converts DataFrames into plain text using templates."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-11",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"df"}),(0,d.jsx)(t.td,{children:"DataFrame"}),(0,d.jsx)(t.td,{children:"The DataFrame to convert to text rows"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"template"}),(0,d.jsx)(t.td,{children:"Template"}),(0,d.jsxs)(t.td,{children:["Template for formatting (use ",(0,d.jsx)(t.code,{children:"{column_name}"})," placeholders)"]})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"sep"}),(0,d.jsx)(t.td,{children:"Separator"}),(0,d.jsx)(t.td,{children:"String to join rows in output"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-11",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"text"}),(0,d.jsx)(t.td,{children:"Text"}),(0,d.jsx)(t.td,{children:"All rows combined into single text"})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"parse-json",children:"Parse JSON"}),"\n",(0,d.jsx)(t.admonition,{type:"important",children:(0,d.jsxs)(t.p,{children:["This component is in ",(0,d.jsx)(t.strong,{children:"Legacy"}),", which means it is no longer in active development as of Langflow version 1.1.3."]})}),"\n",(0,d.jsx)(t.p,{children:"This component converts and extracts JSON fields using JQ queries."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-12",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"input_value"}),(0,d.jsx)(t.td,{children:"Input"}),(0,d.jsxs)(t.td,{children:["Data object to filter (",(0,d.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})," or ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"}),")."]})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"query"}),(0,d.jsx)(t.td,{children:"JQ Query"}),(0,d.jsx)(t.td,{children:"JQ Query to filter the data"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-12",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"filtered_data"}),(0,d.jsx)(t.td,{children:"Filtered Data"}),(0,d.jsxs)(t.td,{children:["Filtered data as list of ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," objects."]})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"select-data",children:"Select data"}),"\n",(0,d.jsx)(t.admonition,{type:"important",children:(0,d.jsxs)(t.p,{children:["This component is in ",(0,d.jsx)(t.strong,{children:"Legacy"}),", which means it is no longer in active development as of Langflow version 1.1.3."]})}),"\n",(0,d.jsxs)(t.p,{children:["This component selects a single ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," item from a list."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-13",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data_list"}),(0,d.jsx)(t.td,{children:"Data List"}),(0,d.jsx)(t.td,{children:"List of data to select from"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data_index"}),(0,d.jsx)(t.td,{children:"Data Index"}),(0,d.jsx)(t.td,{children:"Index of the data to select"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-13",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"selected_data"}),(0,d.jsx)(t.td,{children:"Selected Data"}),(0,d.jsxs)(t.td,{children:["The selected ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object."]})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"split-text",children:"Split text"}),"\n",(0,d.jsx)(t.p,{children:"This component splits text into chunks based on specified criteria."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-14",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data_inputs"}),(0,d.jsx)(t.td,{children:"Input Documents"}),(0,d.jsxs)(t.td,{children:["The data to split.The component accepts ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," or ",(0,d.jsx)(t.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"})," objects."]})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"chunk_overlap"}),(0,d.jsx)(t.td,{children:"Chunk Overlap"}),(0,d.jsxs)(t.td,{children:["The number of characters to overlap between chunks. Default: ",(0,d.jsx)(t.code,{children:"200"}),"."]})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"chunk_size"}),(0,d.jsx)(t.td,{children:"Chunk Size"}),(0,d.jsxs)(t.td,{children:["The maximum number of characters in each chunk. Default: ",(0,d.jsx)(t.code,{children:"1000"}),"."]})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"separator"}),(0,d.jsx)(t.td,{children:"Separator"}),(0,d.jsxs)(t.td,{children:["The character to split on. Default: ",(0,d.jsx)(t.code,{children:"newline"}),"."]})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"text_key"}),(0,d.jsx)(t.td,{children:"Text Key"}),(0,d.jsxs)(t.td,{children:["The key to use for the text column (advanced). Default: ",(0,d.jsx)(t.code,{children:"text"}),"."]})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-14",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"chunks"}),(0,d.jsx)(t.td,{children:"Chunks"}),(0,d.jsxs)(t.td,{children:["List of split text chunks as ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," objects."]})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"dataframe"}),(0,d.jsx)(t.td,{children:"DataFrame"}),(0,d.jsxs)(t.td,{children:["List of split text chunks as ",(0,d.jsx)(t.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"})," objects."]})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"update-data",children:"Update data"}),"\n",(0,d.jsx)(t.p,{children:"This component dynamically updates or appends data with specified fields."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-15",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"old_data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"The records to update"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_fields"}),(0,d.jsx)(t.td,{children:"Number of Fields"}),(0,d.jsx)(t.td,{children:"Number of fields to add (max 15)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"text_key"}),(0,d.jsx)(t.td,{children:"Text Key"}),(0,d.jsx)(t.td,{children:"Key for text content"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"text_key_validator"}),(0,d.jsx)(t.td,{children:"Text Key Validator"}),(0,d.jsx)(t.td,{children:"Validates text key presence"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-15",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsxs)(t.td,{children:["Updated ",(0,d.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," objects."]})]})})]})]})}function o(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,d.jsx)(t,{...e,children:(0,d.jsx)(h,{...e})}):h(e)}}}]); \ No newline at end of file diff --git a/assets/js/8ff68e6f.5e1041c8.js b/assets/js/8ff68e6f.5e1041c8.js new file mode 100644 index 0000000000..10beb1228e --- /dev/null +++ b/assets/js/8ff68e6f.5e1041c8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[2624],{6961:(e,t,s)=>{s.r(t),s.d(t,{CH:()=>o,assets:()=>c,chCodeConfig:()=>a,contentTitle:()=>h,default:()=>u,frontMatter:()=>l,metadata:()=>n,toc:()=>x});const n=JSON.parse('{"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.","source":"@site/docs/Components/components-tools.md","sourceDirName":"Components","slug":"/components-tools","permalink":"/components-tools","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Tools","slug":"/components-tools"},"sidebar":"docs","previous":{"title":"Prompts","permalink":"/components-prompts"},"next":{"title":"Vector stores","permalink":"/components-vector-stores"}}');var r=s(74848),i=s(28453),d=s(24754);const l={title:"Tools",slug:"/components-tools"},h="Tool components in Langflow",c={},o={annotations:d.hk,Code:d.Cy},a={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},x=[{value:"Use a tool in a flow",id:"use-a-tool-in-a-flow",level:2},{value:"arXiv",id:"arxiv",level:2},{value:"Inputs",id:"inputs",level:3},{value:"Outputs",id:"outputs",level:3},{value:"Astra DB Tool",id:"astra-db-tool",level:2},{value:"Inputs",id:"inputs-1",level:3},{value:"Outputs",id:"outputs-1",level:3},{value:"Astra DB CQL Tool",id:"astra-db-cql-tool",level:2},{value:"Inputs",id:"inputs-2",level:3},{value:"Outputs",id:"outputs-2",level:3},{value:"Bing Search API",id:"bing-search-api",level:2},{value:"Inputs",id:"inputs-3",level:3},{value:"Outputs",id:"outputs-3",level:3},{value:"Calculator Tool",id:"calculator-tool",level:2},{value:"Inputs",id:"inputs-4",level:3},{value:"Outputs",id:"outputs-4",level:3},{value:"Combinatorial Reasoner",id:"combinatorial-reasoner",level:2},{value:"Inputs",id:"inputs-5",level:3},{value:"Outputs",id:"outputs-5",level:3},{value:"DuckDuckGo search",id:"duckduckgo-search",level:2},{value:"Inputs",id:"inputs-6",level:3},{value:"Outputs",id:"outputs-6",level:3},{value:"Exa Search",id:"exa-search",level:2},{value:"Inputs",id:"inputs-7",level:3},{value:"Outputs",id:"outputs-7",level:3},{value:"Glean Search API",id:"glean-search-api",level:2},{value:"Inputs",id:"inputs-8",level:3},{value:"Outputs",id:"outputs-8",level:3},{value:"Google Search API",id:"google-search-api",level:2},{value:"Inputs",id:"inputs-9",level:3},{value:"Outputs",id:"outputs-9",level:3},{value:"Google Serper API",id:"google-serper-api",level:2},{value:"Inputs",id:"inputs-10",level:3},{value:"Outputs",id:"outputs-10",level:3},{value:"MCP Tools (stdio)",id:"mcp-tools-stdio",level:2},{value:"Inputs",id:"inputs-11",level:3},{value:"Outputs",id:"outputs-11",level:3},{value:"MCP Tools (SSE)",id:"mcp-tools-sse",level:2},{value:"Inputs",id:"inputs-12",level:3},{value:"Outputs",id:"outputs-12",level:3},{value:"Python Code Structured Tool",id:"python-code-structured-tool",level:2},{value:"Inputs",id:"inputs-13",level:3},{value:"Outputs",id:"outputs-13",level:3},{value:"Python REPL Tool",id:"python-repl-tool",level:2},{value:"Inputs",id:"inputs-14",level:3},{value:"Outputs",id:"outputs-14",level:3},{value:"Retriever Tool",id:"retriever-tool",level:2},{value:"Inputs",id:"inputs-15",level:3},{value:"Outputs",id:"outputs-15",level:3},{value:"SearXNG Search Tool",id:"searxng-search-tool",level:2},{value:"Inputs",id:"inputs-16",level:3},{value:"Outputs",id:"outputs-16",level:3},{value:"Search API",id:"search-api",level:2},{value:"Inputs",id:"inputs-17",level:3},{value:"Outputs",id:"outputs-17",level:3},{value:"Serp Search API",id:"serp-search-api",level:2},{value:"Inputs",id:"inputs-18",level:3},{value:"Outputs",id:"outputs-18",level:3},{value:"Tavily AI Search",id:"tavily-ai-search",level:2},{value:"Inputs",id:"inputs-19",level:3},{value:"Outputs",id:"outputs-19",level:3},{value:"Wikidata",id:"wikidata",level:2},{value:"Inputs",id:"inputs-20",level:3},{value:"Outputs",id:"outputs-20",level:3},{value:"Wikipedia API",id:"wikipedia-api",level:2},{value:"Inputs",id:"inputs-21",level:3},{value:"Outputs",id:"outputs-21",level:3},{value:"Wolfram Alpha API",id:"wolfram-alpha-api",level:2},{value:"Inputs",id:"inputs-22",level:3},{value:"Outputs",id:"outputs-22",level:3},{value:"Yahoo Finance News Tool",id:"yahoo-finance-news-tool",level:2},{value:"Inputs",id:"inputs-23",level:3},{value:"Outputs",id:"outputs-23",level:3}];function j(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return o||p("CH",!1),o.Code||p("CH.Code",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.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,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"tool-components-in-langflow",children:"Tool components in Langflow"})}),"\n",(0,r.jsxs)(t.p,{children:["Tools are typically connected to agent components at the ",(0,r.jsx)(t.strong,{children:"Tools"})," port. Agents use LLMs as a reasoning engine to decide which of the connected tool components to use to solve a problem."]}),"\n",(0,r.jsxs)(t.p,{children:["Tools in agentic functions are, essentially, functions that the agent can call to perform tasks or access external resources.\nA function is wrapped as a ",(0,r.jsx)(t.code,{children:"Tool"})," object, with a common interface the agent understands.\nAgents become aware of tools through tool registration, where the agent is provided a list of available tools, typically at agent initialization. The ",(0,r.jsx)(t.code,{children:"Tool"})," object's description tells the agent what the tool can do."]}),"\n",(0,r.jsx)(t.p,{children:"The agent then uses a connected LLM to reason through the problem to decide which tool is best for the job."}),"\n",(0,r.jsx)(t.h2,{id:"use-a-tool-in-a-flow",children:"Use a tool in a flow"}),"\n",(0,r.jsxs)(t.p,{children:["Tools are typically connected to agent components at the ",(0,r.jsx)(t.strong,{children:"Tools"})," port."]}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.a,{href:"/starter-projects-simple-agent",children:"simple agent starter project"})," uses URL and Calculator tools connected to an ",(0,r.jsx)(t.a,{href:"/components-agents#agent-component",children:"agent component"})," to answer a user's questions. The OpenAI LLM acts as a brain for the agent to decide which tool to use."]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Simple agent starter flow",src:s(19680).A+"",width:"1732",height:"1748"})}),"\n",(0,r.jsxs)(t.p,{children:["To make a component into a tool that an agent can use, enable ",(0,r.jsx)(t.strong,{children:"Tool mode"})," in the component. Enabling ",(0,r.jsx)(t.strong,{children:"Tool mode"})," modifies a component input to accept calls from an agent.\nIf the component you want to connect to an agent doesn't have a ",(0,r.jsx)(t.strong,{children:"Tool mode"})," option, you can modify the component's inputs to become a tool.\nFor an example, see ",(0,r.jsx)(t.a,{href:"/agents-tool-calling-agent-component#make-any-component-a-tool",children:"Make any component a tool"}),"."]}),"\n",(0,r.jsx)(t.h2,{id:"arxiv",children:"arXiv"}),"\n",(0,r.jsxs)(t.p,{children:["This component searches and retrieves papers from ",(0,r.jsx)(t.a,{href:"https://arXiv.org",children:"arXiv.org"}),"."]}),"\n",(0,r.jsx)(t.h3,{id:"inputs",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"search_query"}),(0,r.jsx)(t.td,{children:"Search Query"}),(0,r.jsxs)(t.td,{children:["The search query for arXiv papers (for example, ",(0,r.jsx)(t.code,{children:"quantum computing"}),")"]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"search_type"}),(0,r.jsx)(t.td,{children:"Search Field"}),(0,r.jsx)(t.td,{children:"The field to search in"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"max_results"}),(0,r.jsx)(t.td,{children:"Max Results"}),(0,r.jsx)(t.td,{children:"Maximum number of results to return"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"papers"}),(0,r.jsx)(t.td,{children:"Papers"}),(0,r.jsx)(t.td,{children:"List of retrieved arXiv papers"})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"astra-db-tool",children:"Astra DB Tool"}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.code,{children:"Astra DB Tool"})," allows agents to connect to and query data from Astra DB collections."]}),"\n",(0,r.jsx)(t.h3,{id:"inputs-1",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Tool Name"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The name used to reference the tool in the agent's prompt."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Tool Description"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"A brief description of the tool. This helps the model decide when to use it."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Collection Name"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The name of the Astra DB collection to query."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Token"}),(0,r.jsx)(t.td,{children:"SecretString"}),(0,r.jsx)(t.td,{children:"The authentication token for accessing Astra DB."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"API Endpoint"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The Astra DB API endpoint."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Projection Fields"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:'The attributes to return, separated by commas. Default: "*".'})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Tool Parameters"}),(0,r.jsx)(t.td,{children:"Dict"}),(0,r.jsxs)(t.td,{children:["Parameters the model needs to fill to execute the tool. For required parameters, use an exclamation mark (for example, ",(0,r.jsx)(t.code,{children:"!customer_id"}),")."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Static Filters"}),(0,r.jsx)(t.td,{children:"Dict"}),(0,r.jsx)(t.td,{children:"Attribute-value pairs used to filter query results."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Limit"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The number of documents to return."})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-1",children:"Outputs"}),"\n",(0,r.jsx)(t.p,{children:"The Data output is primarily used when directly querying Astra DB, while the Tool output is used when integrating with LangChain agents or chains."}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Data"}),(0,r.jsxs)(t.td,{children:["List[",(0,r.jsx)(t.code,{children:"Data"}),"]"]}),(0,r.jsxs)(t.td,{children:["A list of ",(0,r.jsx)(t.a,{href:"/concepts-objects",children:"Data"})," objects containing the query results from Astra DB. Each ",(0,r.jsx)(t.code,{children:"Data"})," object contains the document fields specified by the projection attributes. Limited by the ",(0,r.jsx)(t.code,{children:"number_of_results"})," parameter."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"StructuredTool"}),(0,r.jsxs)(t.td,{children:["A LangChain ",(0,r.jsx)(t.code,{children:"StructuredTool"})," object that can be used in agent workflows. Contains the tool name, description, argument schema based on tool parameters, and the query function."]})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"astra-db-cql-tool",children:"Astra DB CQL Tool"}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.code,{children:"Astra DB CQL Tool"})," allows agents to query data from CQL tables in Astra DB."]}),"\n",(0,r.jsxs)(t.p,{children:["The main difference between this tool and the ",(0,r.jsx)(t.strong,{children:"Astra DB Tool"})," is that this tool is specifically designed for CQL tables and requires partition keys for querying, while also supporting clustering keys for more specific queries."]}),"\n",(0,r.jsx)(t.h3,{id:"inputs-2",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Tool Name"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The name used to reference the tool in the agent's prompt."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Tool Description"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"A brief description of the tool to guide the model in using it."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Keyspace"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The name of the keyspace."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Table Name"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The name of the Astra DB CQL table to query."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Token"}),(0,r.jsx)(t.td,{children:"SecretString"}),(0,r.jsx)(t.td,{children:"The authentication token for Astra DB."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"API Endpoint"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The Astra DB API endpoint."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Projection Fields"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:'The attributes to return, separated by commas. Default: "*".'})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Partition Keys"}),(0,r.jsx)(t.td,{children:"Dict"}),(0,r.jsx)(t.td,{children:"Required parameters that the model must fill to query the tool."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Clustering Keys"}),(0,r.jsx)(t.td,{children:"Dict"}),(0,r.jsxs)(t.td,{children:["Optional parameters the model can fill to refine the query. Required parameters should be marked with an exclamation mark (for example, ",(0,r.jsx)(t.code,{children:"!customer_id"}),")."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Static Filters"}),(0,r.jsx)(t.td,{children:"Dict"}),(0,r.jsx)(t.td,{children:"Attribute-value pairs used to filter query results."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Limit"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The number of records to return."})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-2",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Data"}),(0,r.jsx)(t.td,{children:"List[Data]"}),(0,r.jsxs)(t.td,{children:["A list of ",(0,r.jsx)(t.a,{href:"/concepts-objects",children:"Data"})," objects containing the query results from the Astra DB CQL table. Each Data object contains the document fields specified by the projection fields. Limited by the ",(0,r.jsx)(t.code,{children:"number_of_results"})," parameter."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"StructuredTool"}),(0,r.jsx)(t.td,{children:"A LangChain StructuredTool object that can be used in agent workflows. Contains the tool name, description, argument schema based on partition and clustering keys, and the query function."})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"bing-search-api",children:"Bing Search API"}),"\n",(0,r.jsx)(t.p,{children:"This component allows you to call the Bing Search API."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-3",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"bing_subscription_key"}),(0,r.jsx)(t.td,{children:"SecretString"}),(0,r.jsx)(t.td,{children:"Bing API subscription key"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_value"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Search query input"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"bing_search_url"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Custom Bing Search URL (optional)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"k"}),(0,r.jsx)(t.td,{children:"Integer"}),(0,r.jsx)(t.td,{children:"Number of search results to return"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-3",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"results"}),(0,r.jsx)(t.td,{children:"List[Data]"}),(0,r.jsx)(t.td,{children:"List of search results"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Bing Search tool for use in LangChain"})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"calculator-tool",children:"Calculator Tool"}),"\n",(0,r.jsx)(t.p,{children:"This component creates a tool for performing basic arithmetic operations on a given expression."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-4",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"expression"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsxs)(t.td,{children:["The arithmetic expression to evaluate (for example, ",(0,r.jsx)(t.code,{children:"4*4*(33/22)+12-20"}),")."]})]})})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-4",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"result"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Calculator tool for use in LangChain"})]})})]}),"\n",(0,r.jsx)(t.p,{children:"This component allows you to evaluate basic arithmetic expressions. It supports addition, subtraction, multiplication, division, and exponentiation. The tool uses a secure evaluation method that prevents the execution of arbitrary Python code."}),"\n",(0,r.jsx)(t.h2,{id:"combinatorial-reasoner",children:"Combinatorial Reasoner"}),"\n",(0,r.jsxs)(t.p,{children:["This component runs Icosa's Combinatorial Reasoning (CR) pipeline on an input to create an optimized prompt with embedded reasons. Sign up for access here: ",(0,r.jsx)(t.a,{href:"https://forms.gle/oWNv2NKjBNaqqvCx6",children:"https://forms.gle/oWNv2NKjBNaqqvCx6"})]}),"\n",(0,r.jsx)(t.h3,{id:"inputs-5",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"prompt"}),(0,r.jsx)(t.td,{children:"Prompt"}),(0,r.jsx)(t.td,{children:"Input to run CR on"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"openai_api_key"}),(0,r.jsx)(t.td,{children:"OpenAI API Key"}),(0,r.jsx)(t.td,{children:"OpenAI API key for authentication"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"username"}),(0,r.jsx)(t.td,{children:"Username"}),(0,r.jsx)(t.td,{children:"Username for Icosa API authentication"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"password"}),(0,r.jsx)(t.td,{children:"Password"}),(0,r.jsx)(t.td,{children:"Password for Icosa API authentication"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"model_name"}),(0,r.jsx)(t.td,{children:"Model Name"}),(0,r.jsx)(t.td,{children:"OpenAI LLM to use for reason generation"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-5",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"optimized_prompt"}),(0,r.jsx)(t.td,{children:"Optimized Prompt"}),(0,r.jsx)(t.td,{children:"A message object containing the optimized prompt"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"reasons"}),(0,r.jsx)(t.td,{children:"Selected Reasons"}),(0,r.jsx)(t.td,{children:"A list of the selected reasons that are embedded in the optimized prompt"})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"duckduckgo-search",children:"DuckDuckGo search"}),"\n",(0,r.jsxs)(t.p,{children:["This component performs web searches using the ",(0,r.jsx)(t.a,{href:"https://www.duckduckgo.com",children:"DuckDuckGo"})," search engine with result-limiting capabilities."]}),"\n",(0,r.jsx)(t.h3,{id:"inputs-6",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_value"}),(0,r.jsx)(t.td,{children:"Search Query"}),(0,r.jsx)(t.td,{children:"The search query to execute with DuckDuckGo."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"max_results"}),(0,r.jsx)(t.td,{children:"Max Results"}),(0,r.jsxs)(t.td,{children:["The maximum number of search results to return. Default: ",(0,r.jsx)(t.code,{children:"5"}),"."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"max_snippet_length"}),(0,r.jsx)(t.td,{children:"Max Snippet Length"}),(0,r.jsxs)(t.td,{children:["The maximum length of each result snippet. Default: ",(0,r.jsx)(t.code,{children:"100"}),"."]})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-6",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"data"}),(0,r.jsx)(t.td,{children:(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})}),(0,r.jsx)(t.td,{children:"List of search results as Data objects containing snippets and full content."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"text"}),(0,r.jsx)(t.td,{children:"Text"}),(0,r.jsx)(t.td,{children:"Search results formatted as a single text string."})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"exa-search",children:"Exa Search"}),"\n",(0,r.jsxs)(t.p,{children:["This component provides an [",(0,r.jsx)(t.a,{href:"https://exa.ai/%5D(Exa",children:"https://exa.ai/](Exa"})," Search) toolkit for search and content retrieval."]}),"\n",(0,r.jsx)(t.h3,{id:"inputs-7",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"metaphor_api_key"}),(0,r.jsx)(t.td,{children:"Exa Search API Key"}),(0,r.jsx)(t.td,{children:"API key for Exa Search (entered as a password)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"use_autoprompt"}),(0,r.jsx)(t.td,{children:"Use Autoprompt"}),(0,r.jsx)(t.td,{children:"Whether to use autoprompt feature (default: true)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"search_num_results"}),(0,r.jsx)(t.td,{children:"Search Number of Results"}),(0,r.jsx)(t.td,{children:"Number of results to return for search (default: 5)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"similar_num_results"}),(0,r.jsx)(t.td,{children:"Similar Number of Results"}),(0,r.jsx)(t.td,{children:"Number of similar results to return (default: 5)"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-7",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tools"}),(0,r.jsx)(t.td,{children:"Tools"}),(0,r.jsx)(t.td,{children:"List of search tools provided by the toolkit"})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"glean-search-api",children:"Glean Search API"}),"\n",(0,r.jsx)(t.p,{children:"This component allows you to call the Glean Search API."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-8",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"glean_api_url"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"URL of the Glean API"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"glean_access_token"}),(0,r.jsx)(t.td,{children:"SecretString"}),(0,r.jsx)(t.td,{children:"Access token for Glean API authentication"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"query"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Search query input"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"page_size"}),(0,r.jsx)(t.td,{children:"Integer"}),(0,r.jsx)(t.td,{children:"Number of results per page (default: 10)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"request_options"}),(0,r.jsx)(t.td,{children:"Dict"}),(0,r.jsx)(t.td,{children:"Additional options for the API request (optional)"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-8",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"results"}),(0,r.jsx)(t.td,{children:"List[Data]"}),(0,r.jsx)(t.td,{children:"List of search results"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Glean Search tool for use in LangChain"})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"google-search-api",children:"Google Search API"}),"\n",(0,r.jsx)(t.p,{children:"This component allows you to call the Google Search API."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-9",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"google_api_key"}),(0,r.jsx)(t.td,{children:"SecretString"}),(0,r.jsx)(t.td,{children:"Google API key for authentication"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"google_cse_id"}),(0,r.jsx)(t.td,{children:"SecretString"}),(0,r.jsx)(t.td,{children:"Google Custom Search Engine ID"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_value"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Search query input"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"k"}),(0,r.jsx)(t.td,{children:"Integer"}),(0,r.jsx)(t.td,{children:"Number of search results to return"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-9",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"results"}),(0,r.jsx)(t.td,{children:"List[Data]"}),(0,r.jsx)(t.td,{children:"List of search results"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Google Search tool for use in LangChain"})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"google-serper-api",children:"Google Serper API"}),"\n",(0,r.jsx)(t.p,{children:"This component allows you to call the Serper.dev Google Search API."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-10",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"serper_api_key"}),(0,r.jsx)(t.td,{children:"SecretString"}),(0,r.jsx)(t.td,{children:"API key for Serper.dev authentication"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_value"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Search query input"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"k"}),(0,r.jsx)(t.td,{children:"Integer"}),(0,r.jsx)(t.td,{children:"Number of search results to return"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-10",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"results"}),(0,r.jsx)(t.td,{children:"List[Data]"}),(0,r.jsx)(t.td,{children:"List of search results"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Google Serper search tool for use in LangChain"})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"mcp-tools-stdio",children:"MCP Tools (stdio)"}),"\n",(0,r.jsxs)(t.p,{children:["This component connects to a ",(0,r.jsx)(t.a,{href:"https://modelcontextprotocol.io/introduction",children:"Model Context Protocol (MCP)"})," server over ",(0,r.jsx)(t.code,{children:"stdio"})," and exposes its tools as Langflow tools to be used by an Agent component."]}),"\n",(0,r.jsx)(t.p,{children:"To use the MCP stdio component, follow these steps:"}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsx)(t.li,{children:"Add the MCP stdio component to your workflow, and connect it to an agent. The flow looks like this:"}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"MCP stdio component",src:s(19951).A+"",width:"2438",height:"1552"})}),"\n",(0,r.jsxs)(t.ol,{start:"2",children:["\n",(0,r.jsxs)(t.li,{children:["In the MCP stdio component, in the ",(0,r.jsx)(t.strong,{children:"mcp command"})," field, enter the command to start your MCP server. For a ",(0,r.jsx)(t.a,{href:"https://github.com/modelcontextprotocol/servers/tree/main/src/fetch",children:"Fetch"})," server, the command is:"]}),"\n"]}),"\n",(0,r.jsx)(o.Code,{codeConfig:a,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uvx ",props:{style:{color:"#FFA657"}}},{content:"mcp-server-fetch",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,r.jsxs)(t.ol,{start:"3",children:["\n",(0,r.jsxs)(t.li,{children:["Open the ",(0,r.jsx)(t.strong,{children:"Playground"}),".\nAsk the agent to summarize recent tech news. The agent calls the MCP server function ",(0,r.jsx)(t.code,{children:"fetch"})," and returns the summary.\nThis confirms the MCP server is connected and working."]}),"\n"]}),"\n",(0,r.jsx)(t.h3,{id:"inputs-11",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"command"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsxs)(t.td,{children:["MCP command (default: ",(0,r.jsx)(t.code,{children:"uvx mcp-sse-shim@latest"}),")"]})]})})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-11",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tools"}),(0,r.jsx)(t.td,{children:"List[Tool]"}),(0,r.jsx)(t.td,{children:"List of tools exposed by the MCP server"})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"mcp-tools-sse",children:"MCP Tools (SSE)"}),"\n",(0,r.jsxs)(t.p,{children:["This component connects to a ",(0,r.jsx)(t.a,{href:"https://modelcontextprotocol.io/introduction",children:"Model Context Protocol (MCP)"})," server over ",(0,r.jsx)(t.a,{href:"https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events",children:"SSE (Server-Sent Events)"})," and exposes its tools as Langflow tools to be used by an Agent component."]}),"\n",(0,r.jsx)(t.p,{children:"To use the MCP SSE component, follow these steps:"}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsx)(t.p,{children:"Add the MCP SSE component to your workflow, and connect it to an agent. The flow looks similar to the MCP stdio component flow."}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["In the MCP SSE component, in the ",(0,r.jsx)(t.strong,{children:"url"})," field, enter the URL of your current Langflow server's ",(0,r.jsx)(t.code,{children:"mcp/sse"})," endpoint.\nThis will fetch all currently available tools from the Langflow server."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(t.h3,{id:"inputs-12",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"url"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsxs)(t.td,{children:["SSE URL (default: ",(0,r.jsx)(t.code,{children:"http://localhost:7860/api/v1/mcp/sse"}),")"]})]})})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-12",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tools"}),(0,r.jsx)(t.td,{children:"List[Tool]"}),(0,r.jsx)(t.td,{children:"List of tools exposed by the MCP server"})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"python-code-structured-tool",children:"Python Code Structured Tool"}),"\n",(0,r.jsx)(t.p,{children:"This component creates a structured tool from Python code using a dataclass."}),"\n",(0,r.jsx)(t.p,{children:"The component dynamically updates its configuration based on the provided Python code, allowing for custom function arguments and descriptions."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-13",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool_code"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Python code for the tool's dataclass"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool_name"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Name of the tool"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool_description"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Description of the tool"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"return_direct"}),(0,r.jsx)(t.td,{children:"Boolean"}),(0,r.jsx)(t.td,{children:"Whether to return the function output directly"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool_function"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Selected function for the tool"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"global_variables"}),(0,r.jsx)(t.td,{children:"Dict"}),(0,r.jsx)(t.td,{children:"Global variables or data for the tool"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-13",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"result_tool"}),(0,r.jsx)(t.td,{children:"Tool \u2502 Structured tool created from the Python code"}),(0,r.jsx)(t.td,{})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"python-repl-tool",children:"Python REPL Tool"}),"\n",(0,r.jsx)(t.p,{children:"This component creates a Python REPL (Read-Eval-Print Loop) tool for executing Python code."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-14",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"name"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:'The name of the tool (default: "python_repl")'})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"description"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"A description of the tool's functionality"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"global_imports"}),(0,r.jsx)(t.td,{children:"List[String]"}),(0,r.jsx)(t.td,{children:'List of modules to import globally (default: ["math"])'})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-14",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Python REPL tool for use in LangChain"})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"retriever-tool",children:"Retriever Tool"}),"\n",(0,r.jsx)(t.p,{children:"This component creates a tool for interacting with a retriever in LangChain."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-15",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"retriever"}),(0,r.jsx)(t.td,{children:"BaseRetriever"}),(0,r.jsx)(t.td,{children:"The retriever to interact with"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"name"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The name of the tool"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"description"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"A description of the tool's functionality"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-15",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Retriever tool for use in LangChain"})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"searxng-search-tool",children:"SearXNG Search Tool"}),"\n",(0,r.jsx)(t.p,{children:"This component creates a tool for searching using SearXNG, a metasearch engine."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-16",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"url"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The URL of the SearXNG instance"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"max_results"}),(0,r.jsx)(t.td,{children:"Integer"}),(0,r.jsx)(t.td,{children:"Maximum number of results to return"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"categories"}),(0,r.jsx)(t.td,{children:"List[String]"}),(0,r.jsx)(t.td,{children:"Categories to search in"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"language"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Language for the search results"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-16",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"result_tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"SearXNG search tool for use in LangChain"})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"search-api",children:"Search API"}),"\n",(0,r.jsxs)(t.p,{children:["This component calls the ",(0,r.jsx)(t.code,{children:"searchapi.io"})," API. It can be used to search the web for information."]}),"\n",(0,r.jsxs)(t.p,{children:["For more information, see the ",(0,r.jsx)(t.a,{href:"https://www.searchapi.io/docs/google",children:"SearchAPI documentation"}),"."]}),"\n",(0,r.jsx)(t.h3,{id:"inputs-17",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"engine"}),(0,r.jsx)(t.td,{children:"Engine"}),(0,r.jsx)(t.td,{children:'The search engine to use (default: "google")'})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"api_key"}),(0,r.jsx)(t.td,{children:"SearchAPI API Key"}),(0,r.jsx)(t.td,{children:"The API key for authenticating with SearchAPI"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_value"}),(0,r.jsx)(t.td,{children:"Input"}),(0,r.jsx)(t.td,{children:"The search query or input for the API call"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"search_params"}),(0,r.jsx)(t.td,{children:"Search parameters"}),(0,r.jsx)(t.td,{children:"Additional parameters for customizing the search"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-17",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"data"}),(0,r.jsx)(t.td,{children:"Search Results"}),(0,r.jsx)(t.td,{children:"List of Data objects containing search results"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Search API Tool"}),(0,r.jsx)(t.td,{children:"A Tool object for use in LangChain workflows"})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"serp-search-api",children:"Serp Search API"}),"\n",(0,r.jsx)(t.p,{children:"This component creates a tool for searching using the Serp API."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-18",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"serpapi_api_key"}),(0,r.jsx)(t.td,{children:"SecretString"}),(0,r.jsx)(t.td,{children:"API key for Serp API authentication"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_value"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Search query input"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"search_params"}),(0,r.jsx)(t.td,{children:"Dict"}),(0,r.jsx)(t.td,{children:"Additional search parameters (optional)"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-18",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"results"}),(0,r.jsx)(t.td,{children:"List[Data]"}),(0,r.jsx)(t.td,{children:"List of search results"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Serp API search tool for use in LangChain"})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"tavily-ai-search",children:"Tavily AI Search"}),"\n",(0,r.jsx)(t.p,{children:"This component performs searches using the Tavily AI search engine, which is optimized for LLMs and RAG applications."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-19",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"api_key"}),(0,r.jsx)(t.td,{children:"Tavily API Key"}),(0,r.jsx)(t.td,{children:"Your Tavily API Key."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"query"}),(0,r.jsx)(t.td,{children:"Search Query"}),(0,r.jsx)(t.td,{children:"The search query you want to execute with Tavily."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"search_depth"}),(0,r.jsx)(t.td,{children:"Search Depth"}),(0,r.jsx)(t.td,{children:"The depth of the search."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"topic"}),(0,r.jsx)(t.td,{children:"Search Topic"}),(0,r.jsx)(t.td,{children:"The category of the search."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"max_results"}),(0,r.jsx)(t.td,{children:"Max Results"}),(0,r.jsx)(t.td,{children:"The maximum number of search results to return."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"include_images"}),(0,r.jsx)(t.td,{children:"Include Images"}),(0,r.jsx)(t.td,{children:"Include a list of query-related images in the response."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"include_answer"}),(0,r.jsx)(t.td,{children:"Include Answer"}),(0,r.jsx)(t.td,{children:"Include a short answer to original query."})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-19",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"data"}),(0,r.jsx)(t.td,{children:"Data"}),(0,r.jsx)(t.td,{children:"The search results as a list of Data objects."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"text"}),(0,r.jsx)(t.td,{children:"Text"}),(0,r.jsx)(t.td,{children:"The search results formatted as a text string."})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"wikidata",children:"Wikidata"}),"\n",(0,r.jsx)(t.p,{children:"This component performs a search using the Wikidata API."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-20",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"query"}),(0,r.jsx)(t.td,{children:"Query"}),(0,r.jsx)(t.td,{children:"The text query for similarity search on Wikidata."})]})})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-20",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"data"}),(0,r.jsx)(t.td,{children:"Data"}),(0,r.jsx)(t.td,{children:"The search results from Wikidata API as a list of Data objects."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"text"}),(0,r.jsx)(t.td,{children:"Message"}),(0,r.jsx)(t.td,{children:"The search results formatted as a text message."})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"wikipedia-api",children:"Wikipedia API"}),"\n",(0,r.jsx)(t.p,{children:"This component creates a tool for searching and retrieving information from Wikipedia."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-21",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_value"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Search query input"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"lang"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:'Language code for Wikipedia (default: "en")'})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"k"}),(0,r.jsx)(t.td,{children:"Integer"}),(0,r.jsx)(t.td,{children:"Number of results to return"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"load_all_available_meta"}),(0,r.jsx)(t.td,{children:"Boolean"}),(0,r.jsx)(t.td,{children:"Whether to load all available metadata (advanced)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"doc_content_chars_max"}),(0,r.jsx)(t.td,{children:"Integer"}),(0,r.jsx)(t.td,{children:"Maximum number of characters for document content (advanced)"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-21",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"results"}),(0,r.jsx)(t.td,{children:"List[Data]"}),(0,r.jsx)(t.td,{children:"List of Wikipedia search results"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Wikipedia search tool for use in LangChain"})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"wolfram-alpha-api",children:"Wolfram Alpha API"}),"\n",(0,r.jsx)(t.p,{children:"This component creates a tool for querying the Wolfram Alpha API."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-22",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_value"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Query input for Wolfram Alpha"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"app_id"}),(0,r.jsx)(t.td,{children:"SecretString"}),(0,r.jsx)(t.td,{children:"Wolfram Alpha API App ID"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-22",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"results"}),(0,r.jsx)(t.td,{children:"List[Data]"}),(0,r.jsx)(t.td,{children:"List containing the Wolfram Alpha API response"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Wolfram Alpha API tool for use in LangChain"})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"yahoo-finance-news-tool",children:"Yahoo Finance News Tool"}),"\n",(0,r.jsx)(t.p,{children:"This component creates a tool for retrieving news from Yahoo Finance."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-23",children:"Inputs"}),"\n",(0,r.jsx)(t.p,{children:"This component does not have any input parameters."}),"\n",(0,r.jsx)(t.h3,{id:"outputs-23",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Yahoo Finance News tool for use in LangChain"})]})})]})]})}function u(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(j,{...e})}):j(e)}function p(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},19680:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/starter-flow-simple-agent-71d0dec218a5da8e3110c51716f1c91e.png"},19951:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/mcp-stdio-component-860817f2217f383380e3be273b9beaf7.png"}}]); \ No newline at end of file diff --git a/assets/js/8ff68e6f.662368fe.js b/assets/js/8ff68e6f.662368fe.js deleted file mode 100644 index b107966f8d..0000000000 --- a/assets/js/8ff68e6f.662368fe.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[2624],{6961:(e,t,s)=>{s.r(t),s.d(t,{CH:()=>o,assets:()=>c,chCodeConfig:()=>a,contentTitle:()=>h,default:()=>u,frontMatter:()=>l,metadata:()=>n,toc:()=>x});const n=JSON.parse('{"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.","source":"@site/docs/Components/components-tools.md","sourceDirName":"Components","slug":"/components-tools","permalink":"/components-tools","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Tools","slug":"/components-tools"},"sidebar":"docs","previous":{"title":"Prompts","permalink":"/components-prompts"},"next":{"title":"Vector stores","permalink":"/components-vector-stores"}}');var r=s(74848),i=s(28453),d=s(24754);const l={title:"Tools",slug:"/components-tools"},h="Tool components in Langflow",c={},o={annotations:d.hk,Code:d.Cy},a={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},x=[{value:"Use a tool in a flow",id:"use-a-tool-in-a-flow",level:2},{value:"arXiv",id:"arxiv",level:2},{value:"Inputs",id:"inputs",level:3},{value:"Outputs",id:"outputs",level:3},{value:"Astra DB Tool",id:"astra-db-tool",level:2},{value:"Inputs",id:"inputs-1",level:3},{value:"Outputs",id:"outputs-1",level:3},{value:"Astra DB CQL Tool",id:"astra-db-cql-tool",level:2},{value:"Inputs",id:"inputs-2",level:3},{value:"Outputs",id:"outputs-2",level:3},{value:"Bing Search API",id:"bing-search-api",level:2},{value:"Inputs",id:"inputs-3",level:3},{value:"Outputs",id:"outputs-3",level:3},{value:"Calculator Tool",id:"calculator-tool",level:2},{value:"Inputs",id:"inputs-4",level:3},{value:"Outputs",id:"outputs-4",level:3},{value:"Combinatorial Reasoner",id:"combinatorial-reasoner",level:2},{value:"Inputs",id:"inputs-5",level:3},{value:"Outputs",id:"outputs-5",level:3},{value:"DuckDuckGo search",id:"duckduckgo-search",level:2},{value:"Inputs",id:"inputs-6",level:3},{value:"Outputs",id:"outputs-6",level:3},{value:"Exa Search",id:"exa-search",level:2},{value:"Inputs",id:"inputs-7",level:3},{value:"Outputs",id:"outputs-7",level:3},{value:"Glean Search API",id:"glean-search-api",level:2},{value:"Inputs",id:"inputs-8",level:3},{value:"Outputs",id:"outputs-8",level:3},{value:"Google Search API",id:"google-search-api",level:2},{value:"Inputs",id:"inputs-9",level:3},{value:"Outputs",id:"outputs-9",level:3},{value:"Google Serper API",id:"google-serper-api",level:2},{value:"Inputs",id:"inputs-10",level:3},{value:"Outputs",id:"outputs-10",level:3},{value:"MCP Tools (stdio)",id:"mcp-tools-stdio",level:2},{value:"Inputs",id:"inputs-11",level:3},{value:"Outputs",id:"outputs-11",level:3},{value:"MCP Tools (SSE)",id:"mcp-tools-sse",level:2},{value:"Inputs",id:"inputs-12",level:3},{value:"Outputs",id:"outputs-12",level:3},{value:"Python Code Structured Tool",id:"python-code-structured-tool",level:2},{value:"Inputs",id:"inputs-13",level:3},{value:"Outputs",id:"outputs-13",level:3},{value:"Python REPL Tool",id:"python-repl-tool",level:2},{value:"Inputs",id:"inputs-14",level:3},{value:"Outputs",id:"outputs-14",level:3},{value:"Retriever Tool",id:"retriever-tool",level:2},{value:"Inputs",id:"inputs-15",level:3},{value:"Outputs",id:"outputs-15",level:3},{value:"SearXNG Search Tool",id:"searxng-search-tool",level:2},{value:"Inputs",id:"inputs-16",level:3},{value:"Outputs",id:"outputs-16",level:3},{value:"Search API",id:"search-api",level:2},{value:"Inputs",id:"inputs-17",level:3},{value:"Outputs",id:"outputs-17",level:3},{value:"Serp Search API",id:"serp-search-api",level:2},{value:"Inputs",id:"inputs-18",level:3},{value:"Outputs",id:"outputs-18",level:3},{value:"Tavily AI Search",id:"tavily-ai-search",level:2},{value:"Inputs",id:"inputs-19",level:3},{value:"Outputs",id:"outputs-19",level:3},{value:"Wikidata",id:"wikidata",level:2},{value:"Inputs",id:"inputs-20",level:3},{value:"Outputs",id:"outputs-20",level:3},{value:"Wikipedia API",id:"wikipedia-api",level:2},{value:"Inputs",id:"inputs-21",level:3},{value:"Outputs",id:"outputs-21",level:3},{value:"Wolfram Alpha API",id:"wolfram-alpha-api",level:2},{value:"Inputs",id:"inputs-22",level:3},{value:"Outputs",id:"outputs-22",level:3},{value:"Yahoo Finance News Tool",id:"yahoo-finance-news-tool",level:2},{value:"Inputs",id:"inputs-23",level:3},{value:"Outputs",id:"outputs-23",level:3}];function j(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return o||p("CH",!1),o.Code||p("CH.Code",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.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,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"tool-components-in-langflow",children:"Tool components in Langflow"})}),"\n",(0,r.jsxs)(t.p,{children:["Tools are typically connected to agent components at the ",(0,r.jsx)(t.strong,{children:"Tools"})," port. Agents use LLMs as a reasoning engine to decide which of the connected tool components to use to solve a problem."]}),"\n",(0,r.jsxs)(t.p,{children:["Tools in agentic functions are, essentially, functions that the agent can call to perform tasks or access external resources.\nA function is wrapped as a ",(0,r.jsx)(t.code,{children:"Tool"})," object, with a common interface the agent understands.\nAgents become aware of tools through tool registration, where the agent is provided a list of available tools, typically at agent initialization. The ",(0,r.jsx)(t.code,{children:"Tool"})," object's description tells the agent what the tool can do."]}),"\n",(0,r.jsx)(t.p,{children:"The agent then uses a connected LLM to reason through the problem to decide which tool is best for the job."}),"\n",(0,r.jsx)(t.h2,{id:"use-a-tool-in-a-flow",children:"Use a tool in a flow"}),"\n",(0,r.jsxs)(t.p,{children:["Tools are typically connected to agent components at the ",(0,r.jsx)(t.strong,{children:"Tools"})," port."]}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.a,{href:"/starter-projects-simple-agent",children:"simple agent starter project"})," uses URL and Calculator tools connected to an ",(0,r.jsx)(t.a,{href:"/components-agents#agent-component",children:"agent component"})," to answer a user's questions. The OpenAI LLM acts as a brain for the agent to decide which tool to use."]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Simple agent starter flow",src:s(19680).A+"",width:"1732",height:"1748"})}),"\n",(0,r.jsxs)(t.p,{children:["To make a component into a tool that an agent can use, enable ",(0,r.jsx)(t.strong,{children:"Tool mode"})," in the component. Enabling ",(0,r.jsx)(t.strong,{children:"Tool mode"})," modifies a component input to accept calls from an agent.\nIf the component you want to connect to an agent doesn't have a ",(0,r.jsx)(t.strong,{children:"Tool mode"})," option, you can modify the component's inputs to become a tool.\nFor an example, see ",(0,r.jsx)(t.a,{href:"/agents-tool-calling-agent-component#make-any-component-a-tool",children:"Make any component a tool"}),"."]}),"\n",(0,r.jsx)(t.h2,{id:"arxiv",children:"arXiv"}),"\n",(0,r.jsxs)(t.p,{children:["This component searches and retrieves papers from ",(0,r.jsx)(t.a,{href:"https://arXiv.org",children:"arXiv.org"}),"."]}),"\n",(0,r.jsx)(t.h3,{id:"inputs",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"search_query"}),(0,r.jsx)(t.td,{children:"Search Query"}),(0,r.jsxs)(t.td,{children:["The search query for arXiv papers (for example, ",(0,r.jsx)(t.code,{children:"quantum computing"}),")"]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"search_type"}),(0,r.jsx)(t.td,{children:"Search Field"}),(0,r.jsx)(t.td,{children:"The field to search in"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"max_results"}),(0,r.jsx)(t.td,{children:"Max Results"}),(0,r.jsx)(t.td,{children:"Maximum number of results to return"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"papers"}),(0,r.jsx)(t.td,{children:"Papers"}),(0,r.jsx)(t.td,{children:"List of retrieved arXiv papers"})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"astra-db-tool",children:"Astra DB Tool"}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.code,{children:"Astra DB Tool"})," allows agents to connect to and query data from Astra DB collections."]}),"\n",(0,r.jsx)(t.h3,{id:"inputs-1",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Tool Name"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The name used to reference the tool in the agent's prompt."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Tool Description"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"A brief description of the tool. This helps the model decide when to use it."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Collection Name"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The name of the Astra DB collection to query."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Token"}),(0,r.jsx)(t.td,{children:"SecretString"}),(0,r.jsx)(t.td,{children:"The authentication token for accessing Astra DB."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"API Endpoint"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The Astra DB API endpoint."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Projection Fields"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:'The attributes to return, separated by commas. Default: "*".'})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Tool Parameters"}),(0,r.jsx)(t.td,{children:"Dict"}),(0,r.jsxs)(t.td,{children:["Parameters the model needs to fill to execute the tool. For required parameters, use an exclamation mark (for example, ",(0,r.jsx)(t.code,{children:"!customer_id"}),")."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Static Filters"}),(0,r.jsx)(t.td,{children:"Dict"}),(0,r.jsx)(t.td,{children:"Attribute-value pairs used to filter query results."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Limit"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The number of documents to return."})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-1",children:"Outputs"}),"\n",(0,r.jsx)(t.p,{children:"The Data output is primarily used when directly querying Astra DB, while the Tool output is used when integrating with LangChain agents or chains."}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Data"}),(0,r.jsxs)(t.td,{children:["List[",(0,r.jsx)(t.code,{children:"Data"}),"]"]}),(0,r.jsxs)(t.td,{children:["A list of ",(0,r.jsx)(t.a,{href:"/concepts-objects",children:"Data"})," objects containing the query results from Astra DB. Each ",(0,r.jsx)(t.code,{children:"Data"})," object contains the document fields specified by the projection attributes. Limited by the ",(0,r.jsx)(t.code,{children:"number_of_results"})," parameter."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"StructuredTool"}),(0,r.jsxs)(t.td,{children:["A LangChain ",(0,r.jsx)(t.code,{children:"StructuredTool"})," object that can be used in agent workflows. Contains the tool name, description, argument schema based on tool parameters, and the query function."]})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"astra-db-cql-tool",children:"Astra DB CQL Tool"}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.code,{children:"Astra DB CQL Tool"})," allows agents to query data from CQL tables in Astra DB."]}),"\n",(0,r.jsxs)(t.p,{children:["The main difference between this tool and the ",(0,r.jsx)(t.strong,{children:"Astra DB Tool"})," is that this tool is specifically designed for CQL tables and requires partition keys for querying, while also supporting clustering keys for more specific queries."]}),"\n",(0,r.jsx)(t.h3,{id:"inputs-2",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Tool Name"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The name used to reference the tool in the agent's prompt."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Tool Description"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"A brief description of the tool to guide the model in using it."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Keyspace"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The name of the keyspace."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Table Name"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The name of the Astra DB CQL table to query."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Token"}),(0,r.jsx)(t.td,{children:"SecretString"}),(0,r.jsx)(t.td,{children:"The authentication token for Astra DB."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"API Endpoint"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The Astra DB API endpoint."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Projection Fields"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:'The attributes to return, separated by commas. Default: "*".'})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Partition Keys"}),(0,r.jsx)(t.td,{children:"Dict"}),(0,r.jsx)(t.td,{children:"Required parameters that the model must fill to query the tool."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Clustering Keys"}),(0,r.jsx)(t.td,{children:"Dict"}),(0,r.jsxs)(t.td,{children:["Optional parameters the model can fill to refine the query. Required parameters should be marked with an exclamation mark (for example, ",(0,r.jsx)(t.code,{children:"!customer_id"}),")."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Static Filters"}),(0,r.jsx)(t.td,{children:"Dict"}),(0,r.jsx)(t.td,{children:"Attribute-value pairs used to filter query results."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Limit"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The number of records to return."})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-2",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Data"}),(0,r.jsx)(t.td,{children:"List[Data]"}),(0,r.jsxs)(t.td,{children:["A list of ",(0,r.jsx)(t.a,{href:"/concepts-objects",children:"Data"})," objects containing the query results from the Astra DB CQL table. Each Data object contains the document fields specified by the projection fields. Limited by the ",(0,r.jsx)(t.code,{children:"number_of_results"})," parameter."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"StructuredTool"}),(0,r.jsx)(t.td,{children:"A LangChain StructuredTool object that can be used in agent workflows. Contains the tool name, description, argument schema based on partition and clustering keys, and the query function."})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"bing-search-api",children:"Bing Search API"}),"\n",(0,r.jsx)(t.p,{children:"This component allows you to call the Bing Search API."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-3",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"bing_subscription_key"}),(0,r.jsx)(t.td,{children:"SecretString"}),(0,r.jsx)(t.td,{children:"Bing API subscription key"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_value"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Search query input"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"bing_search_url"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Custom Bing Search URL (optional)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"k"}),(0,r.jsx)(t.td,{children:"Integer"}),(0,r.jsx)(t.td,{children:"Number of search results to return"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-3",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"results"}),(0,r.jsx)(t.td,{children:"List[Data]"}),(0,r.jsx)(t.td,{children:"List of search results"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Bing Search tool for use in LangChain"})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"calculator-tool",children:"Calculator Tool"}),"\n",(0,r.jsx)(t.p,{children:"This component creates a tool for performing basic arithmetic operations on a given expression."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-4",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"expression"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsxs)(t.td,{children:["The arithmetic expression to evaluate (for example, ",(0,r.jsx)(t.code,{children:"4*4*(33/22)+12-20"}),")."]})]})})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-4",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"result"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Calculator tool for use in LangChain"})]})})]}),"\n",(0,r.jsx)(t.p,{children:"This component allows you to evaluate basic arithmetic expressions. It supports addition, subtraction, multiplication, division, and exponentiation. The tool uses a secure evaluation method that prevents the execution of arbitrary Python code."}),"\n",(0,r.jsx)(t.h2,{id:"combinatorial-reasoner",children:"Combinatorial Reasoner"}),"\n",(0,r.jsxs)(t.p,{children:["This component runs Icosa's Combinatorial Reasoning (CR) pipeline on an input to create an optimized prompt with embedded reasons. Sign up for access here: ",(0,r.jsx)(t.a,{href:"https://forms.gle/oWNv2NKjBNaqqvCx6",children:"https://forms.gle/oWNv2NKjBNaqqvCx6"})]}),"\n",(0,r.jsx)(t.h3,{id:"inputs-5",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"prompt"}),(0,r.jsx)(t.td,{children:"Prompt"}),(0,r.jsx)(t.td,{children:"Input to run CR on"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"openai_api_key"}),(0,r.jsx)(t.td,{children:"OpenAI API Key"}),(0,r.jsx)(t.td,{children:"OpenAI API key for authentication"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"username"}),(0,r.jsx)(t.td,{children:"Username"}),(0,r.jsx)(t.td,{children:"Username for Icosa API authentication"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"password"}),(0,r.jsx)(t.td,{children:"Password"}),(0,r.jsx)(t.td,{children:"Password for Icosa API authentication"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"model_name"}),(0,r.jsx)(t.td,{children:"Model Name"}),(0,r.jsx)(t.td,{children:"OpenAI LLM to use for reason generation"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-5",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"optimized_prompt"}),(0,r.jsx)(t.td,{children:"Optimized Prompt"}),(0,r.jsx)(t.td,{children:"A message object containing the optimized prompt"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"reasons"}),(0,r.jsx)(t.td,{children:"Selected Reasons"}),(0,r.jsx)(t.td,{children:"A list of the selected reasons that are embedded in the optimized prompt"})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"duckduckgo-search",children:"DuckDuckGo search"}),"\n",(0,r.jsxs)(t.p,{children:["This component performs web searches using the ",(0,r.jsx)(t.a,{href:"https://www.duckduckgo.com",children:"DuckDuckGo"})," search engine with result-limiting capabilities."]}),"\n",(0,r.jsx)(t.h3,{id:"inputs-6",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_value"}),(0,r.jsx)(t.td,{children:"Search Query"}),(0,r.jsx)(t.td,{children:"The search query to be used for the DuckDuckGo search"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"max_results"}),(0,r.jsx)(t.td,{children:"Max Results"}),(0,r.jsx)(t.td,{children:"Maximum number of results to return"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"max_snippet_length"}),(0,r.jsx)(t.td,{children:"Max Snippet Length"}),(0,r.jsx)(t.td,{children:"Maximum length of each result snippet"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-6",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"data"}),(0,r.jsx)(t.td,{children:"Data"}),(0,r.jsx)(t.td,{children:"List of search results as Data objects"})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"exa-search",children:"Exa Search"}),"\n",(0,r.jsxs)(t.p,{children:["This component provides an [",(0,r.jsx)(t.a,{href:"https://exa.ai/%5D(Exa",children:"https://exa.ai/](Exa"})," Search) toolkit for search and content retrieval."]}),"\n",(0,r.jsx)(t.h3,{id:"inputs-7",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"metaphor_api_key"}),(0,r.jsx)(t.td,{children:"Exa Search API Key"}),(0,r.jsx)(t.td,{children:"API key for Exa Search (entered as a password)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"use_autoprompt"}),(0,r.jsx)(t.td,{children:"Use Autoprompt"}),(0,r.jsx)(t.td,{children:"Whether to use autoprompt feature (default: true)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"search_num_results"}),(0,r.jsx)(t.td,{children:"Search Number of Results"}),(0,r.jsx)(t.td,{children:"Number of results to return for search (default: 5)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"similar_num_results"}),(0,r.jsx)(t.td,{children:"Similar Number of Results"}),(0,r.jsx)(t.td,{children:"Number of similar results to return (default: 5)"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-7",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tools"}),(0,r.jsx)(t.td,{children:"Tools"}),(0,r.jsx)(t.td,{children:"List of search tools provided by the toolkit"})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"glean-search-api",children:"Glean Search API"}),"\n",(0,r.jsx)(t.p,{children:"This component allows you to call the Glean Search API."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-8",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"glean_api_url"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"URL of the Glean API"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"glean_access_token"}),(0,r.jsx)(t.td,{children:"SecretString"}),(0,r.jsx)(t.td,{children:"Access token for Glean API authentication"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"query"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Search query input"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"page_size"}),(0,r.jsx)(t.td,{children:"Integer"}),(0,r.jsx)(t.td,{children:"Number of results per page (default: 10)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"request_options"}),(0,r.jsx)(t.td,{children:"Dict"}),(0,r.jsx)(t.td,{children:"Additional options for the API request (optional)"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-8",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"results"}),(0,r.jsx)(t.td,{children:"List[Data]"}),(0,r.jsx)(t.td,{children:"List of search results"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Glean Search tool for use in LangChain"})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"google-search-api",children:"Google Search API"}),"\n",(0,r.jsx)(t.p,{children:"This component allows you to call the Google Search API."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-9",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"google_api_key"}),(0,r.jsx)(t.td,{children:"SecretString"}),(0,r.jsx)(t.td,{children:"Google API key for authentication"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"google_cse_id"}),(0,r.jsx)(t.td,{children:"SecretString"}),(0,r.jsx)(t.td,{children:"Google Custom Search Engine ID"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_value"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Search query input"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"k"}),(0,r.jsx)(t.td,{children:"Integer"}),(0,r.jsx)(t.td,{children:"Number of search results to return"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-9",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"results"}),(0,r.jsx)(t.td,{children:"List[Data]"}),(0,r.jsx)(t.td,{children:"List of search results"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Google Search tool for use in LangChain"})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"google-serper-api",children:"Google Serper API"}),"\n",(0,r.jsx)(t.p,{children:"This component allows you to call the Serper.dev Google Search API."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-10",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"serper_api_key"}),(0,r.jsx)(t.td,{children:"SecretString"}),(0,r.jsx)(t.td,{children:"API key for Serper.dev authentication"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_value"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Search query input"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"k"}),(0,r.jsx)(t.td,{children:"Integer"}),(0,r.jsx)(t.td,{children:"Number of search results to return"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-10",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"results"}),(0,r.jsx)(t.td,{children:"List[Data]"}),(0,r.jsx)(t.td,{children:"List of search results"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Google Serper search tool for use in LangChain"})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"mcp-tools-stdio",children:"MCP Tools (stdio)"}),"\n",(0,r.jsxs)(t.p,{children:["This component connects to a ",(0,r.jsx)(t.a,{href:"https://modelcontextprotocol.io/introduction",children:"Model Context Protocol (MCP)"})," server over ",(0,r.jsx)(t.code,{children:"stdio"})," and exposes its tools as Langflow tools to be used by an Agent component."]}),"\n",(0,r.jsx)(t.p,{children:"To use the MCP stdio component, follow these steps:"}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsx)(t.li,{children:"Add the MCP stdio component to your workflow, and connect it to an agent. The flow looks like this:"}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"MCP stdio component",src:s(19951).A+"",width:"2438",height:"1552"})}),"\n",(0,r.jsxs)(t.ol,{start:"2",children:["\n",(0,r.jsxs)(t.li,{children:["In the MCP stdio component, in the ",(0,r.jsx)(t.strong,{children:"mcp command"})," field, enter the command to start your MCP server. For a ",(0,r.jsx)(t.a,{href:"https://github.com/modelcontextprotocol/servers/tree/main/src/fetch",children:"Fetch"})," server, the command is:"]}),"\n"]}),"\n",(0,r.jsx)(o.Code,{codeConfig:a,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uvx ",props:{style:{color:"#FFA657"}}},{content:"mcp-server-fetch",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,r.jsxs)(t.ol,{start:"3",children:["\n",(0,r.jsxs)(t.li,{children:["Open the ",(0,r.jsx)(t.strong,{children:"Playground"}),".\nAsk the agent to summarize recent tech news. The agent calls the MCP server function ",(0,r.jsx)(t.code,{children:"fetch"})," and returns the summary.\nThis confirms the MCP server is connected and working."]}),"\n"]}),"\n",(0,r.jsx)(t.h3,{id:"inputs-11",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"command"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsxs)(t.td,{children:["MCP command (default: ",(0,r.jsx)(t.code,{children:"uvx mcp-sse-shim@latest"}),")"]})]})})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-11",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tools"}),(0,r.jsx)(t.td,{children:"List[Tool]"}),(0,r.jsx)(t.td,{children:"List of tools exposed by the MCP server"})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"mcp-tools-sse",children:"MCP Tools (SSE)"}),"\n",(0,r.jsxs)(t.p,{children:["This component connects to a ",(0,r.jsx)(t.a,{href:"https://modelcontextprotocol.io/introduction",children:"Model Context Protocol (MCP)"})," server over ",(0,r.jsx)(t.a,{href:"https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events",children:"SSE (Server-Sent Events)"})," and exposes its tools as Langflow tools to be used by an Agent component."]}),"\n",(0,r.jsx)(t.p,{children:"To use the MCP SSE component, follow these steps:"}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsx)(t.p,{children:"Add the MCP SSE component to your workflow, and connect it to an agent. The flow looks similar to the MCP stdio component flow."}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["In the MCP SSE component, in the ",(0,r.jsx)(t.strong,{children:"url"})," field, enter the URL of your current Langflow server's ",(0,r.jsx)(t.code,{children:"mcp/sse"})," endpoint.\nThis will fetch all currently available tools from the Langflow server."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(t.h3,{id:"inputs-12",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"url"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsxs)(t.td,{children:["SSE URL (default: ",(0,r.jsx)(t.code,{children:"http://localhost:7860/api/v1/mcp/sse"}),")"]})]})})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-12",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tools"}),(0,r.jsx)(t.td,{children:"List[Tool]"}),(0,r.jsx)(t.td,{children:"List of tools exposed by the MCP server"})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"python-code-structured-tool",children:"Python Code Structured Tool"}),"\n",(0,r.jsx)(t.p,{children:"This component creates a structured tool from Python code using a dataclass."}),"\n",(0,r.jsx)(t.p,{children:"The component dynamically updates its configuration based on the provided Python code, allowing for custom function arguments and descriptions."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-13",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool_code"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Python code for the tool's dataclass"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool_name"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Name of the tool"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool_description"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Description of the tool"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"return_direct"}),(0,r.jsx)(t.td,{children:"Boolean"}),(0,r.jsx)(t.td,{children:"Whether to return the function output directly"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool_function"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Selected function for the tool"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"global_variables"}),(0,r.jsx)(t.td,{children:"Dict"}),(0,r.jsx)(t.td,{children:"Global variables or data for the tool"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-13",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"result_tool"}),(0,r.jsx)(t.td,{children:"Tool \u2502 Structured tool created from the Python code"}),(0,r.jsx)(t.td,{})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"python-repl-tool",children:"Python REPL Tool"}),"\n",(0,r.jsx)(t.p,{children:"This component creates a Python REPL (Read-Eval-Print Loop) tool for executing Python code."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-14",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"name"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:'The name of the tool (default: "python_repl")'})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"description"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"A description of the tool's functionality"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"global_imports"}),(0,r.jsx)(t.td,{children:"List[String]"}),(0,r.jsx)(t.td,{children:'List of modules to import globally (default: ["math"])'})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-14",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Python REPL tool for use in LangChain"})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"retriever-tool",children:"Retriever Tool"}),"\n",(0,r.jsx)(t.p,{children:"This component creates a tool for interacting with a retriever in LangChain."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-15",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"retriever"}),(0,r.jsx)(t.td,{children:"BaseRetriever"}),(0,r.jsx)(t.td,{children:"The retriever to interact with"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"name"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The name of the tool"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"description"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"A description of the tool's functionality"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-15",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Retriever tool for use in LangChain"})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"searxng-search-tool",children:"SearXNG Search Tool"}),"\n",(0,r.jsx)(t.p,{children:"This component creates a tool for searching using SearXNG, a metasearch engine."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-16",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"url"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The URL of the SearXNG instance"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"max_results"}),(0,r.jsx)(t.td,{children:"Integer"}),(0,r.jsx)(t.td,{children:"Maximum number of results to return"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"categories"}),(0,r.jsx)(t.td,{children:"List[String]"}),(0,r.jsx)(t.td,{children:"Categories to search in"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"language"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Language for the search results"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-16",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"result_tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"SearXNG search tool for use in LangChain"})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"search-api",children:"Search API"}),"\n",(0,r.jsxs)(t.p,{children:["This component calls the ",(0,r.jsx)(t.code,{children:"searchapi.io"})," API. It can be used to search the web for information."]}),"\n",(0,r.jsxs)(t.p,{children:["For more information, see the ",(0,r.jsx)(t.a,{href:"https://www.searchapi.io/docs/google",children:"SearchAPI documentation"}),"."]}),"\n",(0,r.jsx)(t.h3,{id:"inputs-17",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"engine"}),(0,r.jsx)(t.td,{children:"Engine"}),(0,r.jsx)(t.td,{children:'The search engine to use (default: "google")'})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"api_key"}),(0,r.jsx)(t.td,{children:"SearchAPI API Key"}),(0,r.jsx)(t.td,{children:"The API key for authenticating with SearchAPI"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_value"}),(0,r.jsx)(t.td,{children:"Input"}),(0,r.jsx)(t.td,{children:"The search query or input for the API call"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"search_params"}),(0,r.jsx)(t.td,{children:"Search parameters"}),(0,r.jsx)(t.td,{children:"Additional parameters for customizing the search"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-17",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"data"}),(0,r.jsx)(t.td,{children:"Search Results"}),(0,r.jsx)(t.td,{children:"List of Data objects containing search results"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Search API Tool"}),(0,r.jsx)(t.td,{children:"A Tool object for use in LangChain workflows"})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"serp-search-api",children:"Serp Search API"}),"\n",(0,r.jsx)(t.p,{children:"This component creates a tool for searching using the Serp API."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-18",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"serpapi_api_key"}),(0,r.jsx)(t.td,{children:"SecretString"}),(0,r.jsx)(t.td,{children:"API key for Serp API authentication"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_value"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Search query input"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"search_params"}),(0,r.jsx)(t.td,{children:"Dict"}),(0,r.jsx)(t.td,{children:"Additional search parameters (optional)"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-18",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"results"}),(0,r.jsx)(t.td,{children:"List[Data]"}),(0,r.jsx)(t.td,{children:"List of search results"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Serp API search tool for use in LangChain"})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"tavily-ai-search",children:"Tavily AI Search"}),"\n",(0,r.jsx)(t.p,{children:"This component performs searches using the Tavily AI search engine, which is optimized for LLMs and RAG applications."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-19",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"api_key"}),(0,r.jsx)(t.td,{children:"Tavily API Key"}),(0,r.jsx)(t.td,{children:"Your Tavily API Key."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"query"}),(0,r.jsx)(t.td,{children:"Search Query"}),(0,r.jsx)(t.td,{children:"The search query you want to execute with Tavily."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"search_depth"}),(0,r.jsx)(t.td,{children:"Search Depth"}),(0,r.jsx)(t.td,{children:"The depth of the search."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"topic"}),(0,r.jsx)(t.td,{children:"Search Topic"}),(0,r.jsx)(t.td,{children:"The category of the search."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"max_results"}),(0,r.jsx)(t.td,{children:"Max Results"}),(0,r.jsx)(t.td,{children:"The maximum number of search results to return."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"include_images"}),(0,r.jsx)(t.td,{children:"Include Images"}),(0,r.jsx)(t.td,{children:"Include a list of query-related images in the response."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"include_answer"}),(0,r.jsx)(t.td,{children:"Include Answer"}),(0,r.jsx)(t.td,{children:"Include a short answer to original query."})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-19",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"data"}),(0,r.jsx)(t.td,{children:"Data"}),(0,r.jsx)(t.td,{children:"The search results as a list of Data objects."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"text"}),(0,r.jsx)(t.td,{children:"Text"}),(0,r.jsx)(t.td,{children:"The search results formatted as a text string."})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"wikidata",children:"Wikidata"}),"\n",(0,r.jsx)(t.p,{children:"This component performs a search using the Wikidata API."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-20",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"query"}),(0,r.jsx)(t.td,{children:"Query"}),(0,r.jsx)(t.td,{children:"The text query for similarity search on Wikidata."})]})})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-20",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"data"}),(0,r.jsx)(t.td,{children:"Data"}),(0,r.jsx)(t.td,{children:"The search results from Wikidata API as a list of Data objects."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"text"}),(0,r.jsx)(t.td,{children:"Message"}),(0,r.jsx)(t.td,{children:"The search results formatted as a text message."})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"wikipedia-api",children:"Wikipedia API"}),"\n",(0,r.jsx)(t.p,{children:"This component creates a tool for searching and retrieving information from Wikipedia."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-21",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_value"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Search query input"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"lang"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:'Language code for Wikipedia (default: "en")'})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"k"}),(0,r.jsx)(t.td,{children:"Integer"}),(0,r.jsx)(t.td,{children:"Number of results to return"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"load_all_available_meta"}),(0,r.jsx)(t.td,{children:"Boolean"}),(0,r.jsx)(t.td,{children:"Whether to load all available metadata (advanced)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"doc_content_chars_max"}),(0,r.jsx)(t.td,{children:"Integer"}),(0,r.jsx)(t.td,{children:"Maximum number of characters for document content (advanced)"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-21",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"results"}),(0,r.jsx)(t.td,{children:"List[Data]"}),(0,r.jsx)(t.td,{children:"List of Wikipedia search results"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Wikipedia search tool for use in LangChain"})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"wolfram-alpha-api",children:"Wolfram Alpha API"}),"\n",(0,r.jsx)(t.p,{children:"This component creates a tool for querying the Wolfram Alpha API."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-22",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_value"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Query input for Wolfram Alpha"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"app_id"}),(0,r.jsx)(t.td,{children:"SecretString"}),(0,r.jsx)(t.td,{children:"Wolfram Alpha API App ID"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-22",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"results"}),(0,r.jsx)(t.td,{children:"List[Data]"}),(0,r.jsx)(t.td,{children:"List containing the Wolfram Alpha API response"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Wolfram Alpha API tool for use in LangChain"})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"yahoo-finance-news-tool",children:"Yahoo Finance News Tool"}),"\n",(0,r.jsx)(t.p,{children:"This component creates a tool for retrieving news from Yahoo Finance."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-23",children:"Inputs"}),"\n",(0,r.jsx)(t.p,{children:"This component does not have any input parameters."}),"\n",(0,r.jsx)(t.h3,{id:"outputs-23",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Yahoo Finance News tool for use in LangChain"})]})})]})]})}function u(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(j,{...e})}):j(e)}function p(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},19680:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/starter-flow-simple-agent-71d0dec218a5da8e3110c51716f1c91e.png"},19951:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/mcp-stdio-component-860817f2217f383380e3be273b9beaf7.png"}}]); \ No newline at end of file diff --git a/assets/js/a3ab51d1.958f945c.js b/assets/js/a3ab51d1.958f945c.js new file mode 100644 index 0000000000..efa5791206 --- /dev/null +++ b/assets/js/a3ab51d1.958f945c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[2657],{28453:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>l});var i=t(96540);const s={},o=i.createContext(s);function r(e){const n=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),i.createElement(o.Provider,{value:n},e.children)}},44871:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"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.","source":"@site/docs/Contributing/contributing-telemetry.md","sourceDirName":"Contributing","slug":"/contributing-telemetry","permalink":"/contributing-telemetry","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Telemetry","slug":"/contributing-telemetry"},"sidebar":"docs","previous":{"title":"Contribute to Langflow","permalink":"/contributing-how-to-contribute"}}');var s=t(74848),o=t(28453);const r={title:"Telemetry",slug:"/contributing-telemetry"},l=void 0,a={},c=[{value:"Opt out of telemetry",id:"opt-out-of-telemetry",level:2},{value:"Data that Langflow collects",id:"data-that-langflow-collects",level:2},{value:"Run",id:"2d427dca4f0148ae867997f6789e8bfb",level:3},{value:"Shutdown",id:"081e4bd4faec430fb05b657026d1a69c",level:3},{value:"Version",id:"dc09f6aba6c64c7b8dad3d86a7cba6d6",level:3},{value:"Playground",id:"ae6c3859f612441db3c15a7155e9f920",level:3},{value:"Component",id:"630728d6654c40a6b8901459a4bc3a4e",level:3}];function d(e){const n={code:"code",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:"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."}),"\n",(0,s.jsx)(n.p,{children:"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."}),"\n",(0,s.jsx)(n.h2,{id:"opt-out-of-telemetry",children:"Opt out of telemetry"}),"\n",(0,s.jsxs)(n.p,{children:["To opt out of telemetry, set the\xa0",(0,s.jsx)(n.code,{children:"LANGFLOW_DO_NOT_TRACK"}),"\xa0or\xa0",(0,s.jsx)(n.code,{children:"DO_NOT_TRACK"}),"\xa0environment variable to\xa0",(0,s.jsx)(n.code,{children:"true"}),"\xa0before running Langflow. This disables telemetry data collection."]}),"\n",(0,s.jsx)(n.h2,{id:"data-that-langflow-collects",children:"Data that Langflow collects"}),"\n",(0,s.jsx)(n.h3,{id:"2d427dca4f0148ae867997f6789e8bfb",children:"Run"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"IsWebhook"}),": Indicates whether the operation was triggered via a webhook."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Seconds"}),": Duration in seconds for how long the operation lasted, providing insights into performance."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Success"}),": Boolean value indicating whether the operation was successful, helping identify potential errors or issues."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"ErrorMessage"}),": Provides error message details if the operation was unsuccessful, aiding in troubleshooting and enhancements."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"081e4bd4faec430fb05b657026d1a69c",children:"Shutdown"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Time Running"}),": Total runtime before shutdown, useful for understanding application lifecycle and optimizing uptime."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"dc09f6aba6c64c7b8dad3d86a7cba6d6",children:"Version"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Version"}),": The specific version of Langflow used, which helps in tracking feature adoption and compatibility."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Platform"}),": Operating system of the host machine, which aids in focusing our support for popular platforms like Windows, macOS, and Linux."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Python"}),": The version of Python used, assisting in maintaining compatibility and support for various Python versions."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Arch"}),": Architecture of the system (e.g., x86, ARM), which helps optimize our software for different hardware."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"AutoLogin"}),": Indicates whether the auto-login feature is enabled, reflecting user preference settings."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"CacheType"}),": Type of caching mechanism used, which impacts performance and efficiency."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"BackendOnly"}),": Boolean indicating whether you are running Langflow in a backend-only mode, useful for understanding deployment configurations."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"ae6c3859f612441db3c15a7155e9f920",children:"Playground"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Seconds"}),": Duration in seconds for playground execution, offering insights into performance during testing or experimental stages."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"ComponentCount"}),": Number of components used in the playground, which helps understand complexity and usage patterns."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Success"}),": Success status of the playground operation, aiding in identifying the stability of experimental features."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"630728d6654c40a6b8901459a4bc3a4e",children:"Component"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Name"}),": Identifies the component, providing data on which components are most utilized or prone to issues."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Seconds"}),": Time taken by the component to execute, offering performance metrics."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Success"}),": Whether the component operated successfully, which helps in quality control."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"ErrorMessage"}),": Details of any errors encountered, crucial for debugging and improvement."]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}}}]); \ No newline at end of file diff --git a/assets/js/a3ab51d1.c2f12985.js b/assets/js/a3ab51d1.c2f12985.js deleted file mode 100644 index 4370d63e88..0000000000 --- a/assets/js/a3ab51d1.c2f12985.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[2657],{28453:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>l});var i=t(96540);const s={},o=i.createContext(s);function r(e){const n=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),i.createElement(o.Provider,{value:n},e.children)}},44871:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"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.","source":"@site/docs/Contributing/contributing-telemetry.md","sourceDirName":"Contributing","slug":"/contributing-telemetry","permalink":"/contributing-telemetry","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Telemetry","slug":"/contributing-telemetry"},"sidebar":"docs","previous":{"title":"Contribute to Langflow","permalink":"/contributing-how-to-contribute"},"next":{"title":"API examples","permalink":"/api-reference-api-examples"}}');var s=t(74848),o=t(28453);const r={title:"Telemetry",slug:"/contributing-telemetry"},l=void 0,a={},c=[{value:"Opt out of telemetry",id:"opt-out-of-telemetry",level:2},{value:"Data that Langflow collects",id:"data-that-langflow-collects",level:2},{value:"Run",id:"2d427dca4f0148ae867997f6789e8bfb",level:3},{value:"Shutdown",id:"081e4bd4faec430fb05b657026d1a69c",level:3},{value:"Version",id:"dc09f6aba6c64c7b8dad3d86a7cba6d6",level:3},{value:"Playground",id:"ae6c3859f612441db3c15a7155e9f920",level:3},{value:"Component",id:"630728d6654c40a6b8901459a4bc3a4e",level:3}];function d(e){const n={code:"code",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:"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."}),"\n",(0,s.jsx)(n.p,{children:"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."}),"\n",(0,s.jsx)(n.h2,{id:"opt-out-of-telemetry",children:"Opt out of telemetry"}),"\n",(0,s.jsxs)(n.p,{children:["To opt out of telemetry, set the\xa0",(0,s.jsx)(n.code,{children:"LANGFLOW_DO_NOT_TRACK"}),"\xa0or\xa0",(0,s.jsx)(n.code,{children:"DO_NOT_TRACK"}),"\xa0environment variable to\xa0",(0,s.jsx)(n.code,{children:"true"}),"\xa0before running Langflow. This disables telemetry data collection."]}),"\n",(0,s.jsx)(n.h2,{id:"data-that-langflow-collects",children:"Data that Langflow collects"}),"\n",(0,s.jsx)(n.h3,{id:"2d427dca4f0148ae867997f6789e8bfb",children:"Run"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"IsWebhook"}),": Indicates whether the operation was triggered via a webhook."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Seconds"}),": Duration in seconds for how long the operation lasted, providing insights into performance."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Success"}),": Boolean value indicating whether the operation was successful, helping identify potential errors or issues."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"ErrorMessage"}),": Provides error message details if the operation was unsuccessful, aiding in troubleshooting and enhancements."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"081e4bd4faec430fb05b657026d1a69c",children:"Shutdown"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Time Running"}),": Total runtime before shutdown, useful for understanding application lifecycle and optimizing uptime."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"dc09f6aba6c64c7b8dad3d86a7cba6d6",children:"Version"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Version"}),": The specific version of Langflow used, which helps in tracking feature adoption and compatibility."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Platform"}),": Operating system of the host machine, which aids in focusing our support for popular platforms like Windows, macOS, and Linux."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Python"}),": The version of Python used, assisting in maintaining compatibility and support for various Python versions."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Arch"}),": Architecture of the system (e.g., x86, ARM), which helps optimize our software for different hardware."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"AutoLogin"}),": Indicates whether the auto-login feature is enabled, reflecting user preference settings."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"CacheType"}),": Type of caching mechanism used, which impacts performance and efficiency."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"BackendOnly"}),": Boolean indicating whether you are running Langflow in a backend-only mode, useful for understanding deployment configurations."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"ae6c3859f612441db3c15a7155e9f920",children:"Playground"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Seconds"}),": Duration in seconds for playground execution, offering insights into performance during testing or experimental stages."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"ComponentCount"}),": Number of components used in the playground, which helps understand complexity and usage patterns."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Success"}),": Success status of the playground operation, aiding in identifying the stability of experimental features."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"630728d6654c40a6b8901459a4bc3a4e",children:"Component"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Name"}),": Identifies the component, providing data on which components are most utilized or prone to issues."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Seconds"}),": Time taken by the component to execute, offering performance metrics."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Success"}),": Whether the component operated successfully, which helps in quality control."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"ErrorMessage"}),": Details of any errors encountered, crucial for debugging and improvement."]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}}}]); \ No newline at end of file diff --git a/assets/js/c39b795e.465fb5c5.js b/assets/js/c39b795e.465fb5c5.js new file mode 100644 index 0000000000..182339259c --- /dev/null +++ b/assets/js/c39b795e.465fb5c5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[7338],{28453:(e,t,s)=>{s.d(t,{R:()=>i,x:()=>l});var n=s(96540);const r={},d=n.createContext(r);function i(e){const t=n.useContext(d);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),n.createElement(d.Provider,{value:t},e.children)}},31154:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>h,contentTitle:()=>l,default:()=>o,frontMatter:()=>i,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"Components/components-helpers","title":"Helpers","description":"Helper components provide utility functions to help manage data, tasks, and other components in your flow.","source":"@site/docs/Components/components-helpers.md","sourceDirName":"Components","slug":"/components-helpers","permalink":"/components-helpers","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Helpers","slug":"/components-helpers"},"sidebar":"docs","previous":{"title":"Embeddings","permalink":"/components-embedding-models"},"next":{"title":"Inputs and outputs","permalink":"/components-io"}}');var r=s(74848),d=s(28453);const i={title:"Helpers",slug:"/components-helpers"},l="Helper components in Langflow",h={},c=[{value:"Use a helper component in a flow",id:"use-a-helper-component-in-a-flow",level:2},{value:"Batch Run Component",id:"batch-run-component",level:2},{value:"Inputs",id:"inputs",level:3},{value:"Outputs",id:"outputs",level:3},{value:"Create List",id:"create-list",level:2},{value:"Inputs",id:"inputs-1",level:3},{value:"Outputs",id:"outputs-1",level:3},{value:"Current date",id:"current-date",level:2},{value:"Inputs",id:"inputs-2",level:3},{value:"Outputs",id:"outputs-2",level:3},{value:"ID Generator",id:"id-generator",level:2},{value:"Inputs",id:"inputs-3",level:3},{value:"Outputs",id:"outputs-3",level:3},{value:"Message history",id:"message-history",level:2},{value:"Inputs",id:"inputs-4",level:3},{value:"Outputs",id:"outputs-4",level:3},{value:"Message store",id:"message-store",level:2},{value:"Inputs",id:"inputs-5",level:3},{value:"Outputs",id:"outputs-5",level:3},{value:"Structured output",id:"structured-output",level:2},{value:"Inputs",id:"inputs-6",level:3},{value:"Outputs",id:"outputs-6",level:3}];function a(e){const t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,d.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"helper-components-in-langflow",children:"Helper components in Langflow"})}),"\n",(0,r.jsx)(t.p,{children:"Helper components provide utility functions to help manage data, tasks, and other components in your flow."}),"\n",(0,r.jsx)(t.h2,{id:"use-a-helper-component-in-a-flow",children:"Use a helper component in a flow"}),"\n",(0,r.jsxs)(t.p,{children:["Chat memory in Langflow is stored either in local Langflow tables with ",(0,r.jsx)(t.code,{children:"LCBufferMemory"}),", or connected to an external database."]}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"Store Message"})," helper component stores chat memories as ",(0,r.jsx)(t.a,{href:"/concepts-objects",children:"Data"})," objects, and the ",(0,r.jsx)(t.strong,{children:"Message History"})," helper component retrieves chat messages as data objects or strings."]}),"\n",(0,r.jsxs)(t.p,{children:["This example flow stores and retrieves chat history from an ",(0,r.jsx)(t.a,{href:"/components-memories#astradbchatmemory-component",children:"AstraDBChatMemory"})," component with ",(0,r.jsx)(t.strong,{children:"Store Message"})," and ",(0,r.jsx)(t.strong,{children:"Chat Memory"})," components."]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Sample Flow storing Chat Memory in AstraDB",src:s(72654).A+"",width:"3178",height:"1228"})}),"\n",(0,r.jsx)(t.h2,{id:"batch-run-component",children:"Batch Run Component"}),"\n",(0,r.jsxs)(t.p,{children:["The Batch Run component runs a language model over each row of a ",(0,r.jsx)(t.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"})," text column and returns a new DataFrame with the original text and the model's response."]}),"\n",(0,r.jsx)(t.h3,{id:"inputs",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Info"}),(0,r.jsx)(t.th,{children:"Required"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"model"}),(0,r.jsx)(t.td,{children:"Language Model"}),(0,r.jsx)(t.td,{children:"HandleInput"}),(0,r.jsx)(t.td,{children:"Connect the 'Language Model' output from your LLM component here."}),(0,r.jsx)(t.td,{children:"Yes"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"system_message"}),(0,r.jsx)(t.td,{children:"System Message"}),(0,r.jsx)(t.td,{children:"MultilineInput"}),(0,r.jsx)(t.td,{children:"Multi-line system instruction for all rows in the DataFrame."}),(0,r.jsx)(t.td,{children:"No"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"df"}),(0,r.jsx)(t.td,{children:"DataFrame"}),(0,r.jsx)(t.td,{children:"DataFrameInput"}),(0,r.jsx)(t.td,{children:"The DataFrame whose column (specified by 'column_name') will be treated as text messages."}),(0,r.jsx)(t.td,{children:"Yes"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"column_name"}),(0,r.jsx)(t.td,{children:"Column Name"}),(0,r.jsx)(t.td,{children:"StrInput"}),(0,r.jsx)(t.td,{children:"The name of the DataFrame column to treat as text messages. Default='text'."}),(0,r.jsx)(t.td,{children:"Yes"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Method"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"batch_results"}),(0,r.jsx)(t.td,{children:"Batch Results"}),(0,r.jsx)(t.td,{children:"run_batch"}),(0,r.jsx)(t.td,{children:"A DataFrame with two columns: 'text_input' and 'model_response'."})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"create-list",children:"Create List"}),"\n",(0,r.jsx)(t.p,{children:"This component dynamically creates a record with a specified number of fields."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-1",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"n_fields"}),(0,r.jsx)(t.td,{children:"Number of Fields"}),(0,r.jsx)(t.td,{children:"Number of fields to be added to the record."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"text_key"}),(0,r.jsx)(t.td,{children:"Text Key"}),(0,r.jsx)(t.td,{children:"Key used as text."})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-1",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"list"}),(0,r.jsx)(t.td,{children:"List"}),(0,r.jsx)(t.td,{children:"The dynamically created list with the specified number of fields."})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"current-date",children:"Current date"}),"\n",(0,r.jsx)(t.p,{children:"The Current Date component returns the current date and time in a selected timezone. This component provides a flexible way to obtain timezone-specific date and time information within a Langflow pipeline."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-2",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"timezone"}),(0,r.jsx)(t.td,{children:"Timezone"}),(0,r.jsx)(t.td,{children:"Select the timezone for the current date and time."})]})})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-2",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"current_date"}),(0,r.jsx)(t.td,{children:"Current Date"}),(0,r.jsx)(t.td,{children:"The resulting current date and time in the selected timezone."})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"id-generator",children:"ID Generator"}),"\n",(0,r.jsx)(t.p,{children:"This component generates a unique ID."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-3",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"unique_id"}),(0,r.jsx)(t.td,{children:"Value"}),(0,r.jsx)(t.td,{children:"The generated unique ID."})]})})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-3",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"id"}),(0,r.jsx)(t.td,{children:"ID"}),(0,r.jsx)(t.td,{children:"The generated unique ID."})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"message-history",children:"Message history"}),"\n",(0,r.jsx)(t.admonition,{type:"info",children:(0,r.jsx)(t.p,{children:"Prior to Langflow 1.1, this component was known as the Chat Memory component."})}),"\n",(0,r.jsx)(t.p,{children:"This component retrieves and manages chat messages from Langflow tables or an external memory."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-4",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"memory"}),(0,r.jsx)(t.td,{children:"External Memory"}),(0,r.jsx)(t.td,{children:"Retrieve messages from an external memory. If empty, it will use the Langflow tables."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"sender"}),(0,r.jsx)(t.td,{children:"Sender Type"}),(0,r.jsx)(t.td,{children:"Filter by sender type."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"sender_name"}),(0,r.jsx)(t.td,{children:"Sender Name"}),(0,r.jsx)(t.td,{children:"Filter by sender name."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"n_messages"}),(0,r.jsx)(t.td,{children:"Number of Messages"}),(0,r.jsx)(t.td,{children:"Number of messages to retrieve."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"session_id"}),(0,r.jsx)(t.td,{children:"Session ID"}),(0,r.jsx)(t.td,{children:"The session ID of the chat. If empty, the current session ID parameter will be used."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"order"}),(0,r.jsx)(t.td,{children:"Order"}),(0,r.jsx)(t.td,{children:"Order of the messages."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"template"}),(0,r.jsx)(t.td,{children:"Template"}),(0,r.jsxs)(t.td,{children:["The template to use for formatting the data. It can contain the keys ",(0,r.jsx)(t.code,{children:"{text}"}),", ",(0,r.jsx)(t.code,{children:"{sender}"})," or any other key in the message data."]})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-4",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"messages"}),(0,r.jsx)(t.td,{children:"Messages (Data)"}),(0,r.jsx)(t.td,{children:"Retrieved messages as Data objects."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"messages_text"}),(0,r.jsx)(t.td,{children:"Messages (Text)"}),(0,r.jsx)(t.td,{children:"Retrieved messages formatted as text."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"lc_memory"}),(0,r.jsx)(t.td,{children:"Memory"}),(0,r.jsxs)(t.td,{children:["A constructed Langchain ",(0,r.jsx)(t.a,{href:"https://api.python.langchain.com/en/latest/memory/langchain.memory.buffer.ConversationBufferMemory.html",children:"ConversationBufferMemory"})," object"]})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"message-store",children:"Message store"}),"\n",(0,r.jsx)(t.p,{children:"This component stores chat messages or text into Langflow tables or an external memory."}),"\n",(0,r.jsx)(t.p,{children:"It provides flexibility in managing message storage and retrieval within a chat system."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-5",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"message"}),(0,r.jsx)(t.td,{children:"Message"}),(0,r.jsx)(t.td,{children:"The chat message to be stored. (Required)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"memory"}),(0,r.jsx)(t.td,{children:"External Memory"}),(0,r.jsx)(t.td,{children:"The external memory to store the message. If empty, it will use the Langflow tables."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"sender"}),(0,r.jsx)(t.td,{children:"Sender"}),(0,r.jsx)(t.td,{children:"The sender of the message. Can be Machine or User. If empty, the current sender parameter will be used."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"sender_name"}),(0,r.jsx)(t.td,{children:"Sender Name"}),(0,r.jsx)(t.td,{children:"The name of the sender. Can be AI or User. If empty, the current sender parameter will be used."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"session_id"}),(0,r.jsx)(t.td,{children:"Session ID"}),(0,r.jsx)(t.td,{children:"The session ID of the chat. If empty, the current session ID parameter will be used."})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-5",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"stored_messages"}),(0,r.jsx)(t.td,{children:"Stored Messages"}),(0,r.jsx)(t.td,{children:"The list of stored messages after the current message has been added."})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"structured-output",children:"Structured output"}),"\n",(0,r.jsx)(t.p,{children:"This component transforms LLM responses into structured data formats."}),"\n",(0,r.jsxs)(t.p,{children:["In this example from the ",(0,r.jsx)(t.strong,{children:"Financial Support Parser"})," template, the ",(0,r.jsx)(t.strong,{children:"Structured Output"})," component transforms unstructured financial reports into structured data."]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Structured output example",src:s(82798).A+"",width:"2554",height:"1548"})}),"\n",(0,r.jsxs)(t.p,{children:["The connected LLM model is prompted by the ",(0,r.jsx)(t.strong,{children:"Structured Output"})," component's ",(0,r.jsx)(t.code,{children:"Format Instructions"})," parameter to extract structured output from the unstructured text. ",(0,r.jsx)(t.code,{children:"Format Instructions"})," is utilized as the system prompt for the ",(0,r.jsx)(t.strong,{children:"Structured Output"})," component."]}),"\n",(0,r.jsxs)(t.p,{children:["In the ",(0,r.jsx)(t.strong,{children:"Structured Output"})," component, click the ",(0,r.jsx)(t.strong,{children:"Open table"})," button to view the ",(0,r.jsx)(t.code,{children:"Output Schema"})," table.\nThe ",(0,r.jsx)(t.code,{children:"Output Schema"})," parameter defines the structure and data types for the model's output using a table with the following fields:"]}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.strong,{children:"Name"}),": The name of the output field."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.strong,{children:"Description"}),": The purpose of the output field."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.strong,{children:"Type"}),": The data type of the output field. The available types are ",(0,r.jsx)(t.code,{children:"str"}),", ",(0,r.jsx)(t.code,{children:"int"}),", ",(0,r.jsx)(t.code,{children:"float"}),", ",(0,r.jsx)(t.code,{children:"bool"}),", ",(0,r.jsx)(t.code,{children:"list"}),", or ",(0,r.jsx)(t.code,{children:"dict"}),". The default is ",(0,r.jsx)(t.code,{children:"text"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.strong,{children:"Multiple"}),": This feature is deprecated. Currently, it is set to ",(0,r.jsx)(t.code,{children:"True"})," by default if you expect multiple values for a single field. For example, a ",(0,r.jsx)(t.code,{children:"list"})," of ",(0,r.jsx)(t.code,{children:"features"})," is set to ",(0,r.jsx)(t.code,{children:"True"})," to contain multiple values, such as ",(0,r.jsx)(t.code,{children:'["waterproof", "durable", "lightweight"]'}),". Default: ",(0,r.jsx)(t.code,{children:"True"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"Parse DataFrame"})," component parses the structured output into a template for orderly presentation in chat output. The template receives the values from the ",(0,r.jsx)(t.code,{children:"output_schema"})," table with curly braces."]}),"\n",(0,r.jsxs)(t.p,{children:["For example, the template ",(0,r.jsx)(t.code,{children:"EBITDA: {EBITDA} , Net Income: {NET_INCOME} , GROSS_PROFIT: {GROSS_PROFIT}"})," presents the extracted values in the ",(0,r.jsx)(t.strong,{children:"Playground"})," as ",(0,r.jsx)(t.code,{children:"EBITDA: 900 million , Net Income: 500 million , GROSS_PROFIT: 1.2 billion"}),"."]}),"\n",(0,r.jsx)(t.h3,{id:"inputs-6",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"llm"}),(0,r.jsx)(t.td,{children:"Language Model"}),(0,r.jsx)(t.td,{children:"The language model to use to generate the structured output."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_value"}),(0,r.jsx)(t.td,{children:"Input Message"}),(0,r.jsx)(t.td,{children:"The input message to the language model."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"system_prompt"}),(0,r.jsx)(t.td,{children:"Format Instructions"}),(0,r.jsx)(t.td,{children:"Instructions to the language model for formatting the output."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"schema_name"}),(0,r.jsx)(t.td,{children:"Schema Name"}),(0,r.jsx)(t.td,{children:"The name for the output data schema."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"output_schema"}),(0,r.jsx)(t.td,{children:"Output Schema"}),(0,r.jsx)(t.td,{children:"Defines the structure and data types for the model's output."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"multiple"}),(0,r.jsx)(t.td,{children:"Generate Multiple"}),(0,r.jsxs)(t.td,{children:["[Deprecated] Always set to ",(0,r.jsx)(t.code,{children:"True"}),"."]})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-6",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"structured_output"}),(0,r.jsx)(t.td,{children:"Structured Output"}),(0,r.jsx)(t.td,{children:"The structured output is a Data object based on the defined schema."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"structured_output_dataframe"}),(0,r.jsx)(t.td,{children:"DataFrame"}),(0,r.jsxs)(t.td,{children:["The structured output converted to a ",(0,r.jsx)(t.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"})," format."]})]})]})]})]})}function o(e={}){const{wrapper:t}={...(0,d.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},72654:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/astra_db_chat_memory_rounded-9746ca2bb69d3b07ac0a071f4b9471b3.png"},82798:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/component-structured-output-7bb5a996464cb83d4c94a893419bb176.png"}}]); \ No newline at end of file diff --git a/assets/js/c39b795e.d4ee879e.js b/assets/js/c39b795e.d4ee879e.js deleted file mode 100644 index e08aee6c71..0000000000 --- a/assets/js/c39b795e.d4ee879e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[7338],{28453:(e,t,s)=>{s.d(t,{R:()=>i,x:()=>l});var n=s(96540);const r={},d=n.createContext(r);function i(e){const t=n.useContext(d);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),n.createElement(d.Provider,{value:t},e.children)}},31154:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>h,contentTitle:()=>l,default:()=>o,frontMatter:()=>i,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"Components/components-helpers","title":"Helpers","description":"Helper components provide utility functions to help manage data, tasks, and other components in your flow.","source":"@site/docs/Components/components-helpers.md","sourceDirName":"Components","slug":"/components-helpers","permalink":"/components-helpers","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Helpers","slug":"/components-helpers"},"sidebar":"docs","previous":{"title":"Embeddings","permalink":"/components-embedding-models"},"next":{"title":"Inputs and outputs","permalink":"/components-io"}}');var r=s(74848),d=s(28453);const i={title:"Helpers",slug:"/components-helpers"},l="Helper components in Langflow",h={},c=[{value:"Use a helper component in a flow",id:"use-a-helper-component-in-a-flow",level:2},{value:"Batch Run Component",id:"batch-run-component",level:2},{value:"Inputs",id:"inputs",level:3},{value:"Outputs",id:"outputs",level:3},{value:"Create List",id:"create-list",level:2},{value:"Inputs",id:"inputs-1",level:3},{value:"Outputs",id:"outputs-1",level:3},{value:"Current date",id:"current-date",level:2},{value:"Inputs",id:"inputs-2",level:3},{value:"Outputs",id:"outputs-2",level:3},{value:"ID Generator",id:"id-generator",level:2},{value:"Inputs",id:"inputs-3",level:3},{value:"Outputs",id:"outputs-3",level:3},{value:"Message history",id:"message-history",level:2},{value:"Inputs",id:"inputs-4",level:3},{value:"Outputs",id:"outputs-4",level:3},{value:"Message store",id:"message-store",level:2},{value:"Inputs",id:"inputs-5",level:3},{value:"Outputs",id:"outputs-5",level:3},{value:"Structured output",id:"structured-output",level:2},{value:"Input",id:"input",level:3},{value:"Output",id:"output",level:3}];function a(e){const t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,d.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"helper-components-in-langflow",children:"Helper components in Langflow"})}),"\n",(0,r.jsx)(t.p,{children:"Helper components provide utility functions to help manage data, tasks, and other components in your flow."}),"\n",(0,r.jsx)(t.h2,{id:"use-a-helper-component-in-a-flow",children:"Use a helper component in a flow"}),"\n",(0,r.jsxs)(t.p,{children:["Chat memory in Langflow is stored either in local Langflow tables with ",(0,r.jsx)(t.code,{children:"LCBufferMemory"}),", or connected to an external database."]}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"Store Message"})," helper component stores chat memories as ",(0,r.jsx)(t.a,{href:"/concepts-objects",children:"Data"})," objects, and the ",(0,r.jsx)(t.strong,{children:"Message History"})," helper component retrieves chat messages as data objects or strings."]}),"\n",(0,r.jsxs)(t.p,{children:["This example flow stores and retrieves chat history from an ",(0,r.jsx)(t.a,{href:"/components-memories#astradbchatmemory-component",children:"AstraDBChatMemory"})," component with ",(0,r.jsx)(t.strong,{children:"Store Message"})," and ",(0,r.jsx)(t.strong,{children:"Chat Memory"})," components."]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Sample Flow storing Chat Memory in AstraDB",src:s(72654).A+"",width:"3178",height:"1228"})}),"\n",(0,r.jsx)(t.h2,{id:"batch-run-component",children:"Batch Run Component"}),"\n",(0,r.jsxs)(t.p,{children:["The Batch Run component runs a language model over each row of a ",(0,r.jsx)(t.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"})," text column and returns a new DataFrame with the original text and the model's response."]}),"\n",(0,r.jsx)(t.h3,{id:"inputs",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Info"}),(0,r.jsx)(t.th,{children:"Required"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"model"}),(0,r.jsx)(t.td,{children:"Language Model"}),(0,r.jsx)(t.td,{children:"HandleInput"}),(0,r.jsx)(t.td,{children:"Connect the 'Language Model' output from your LLM component here."}),(0,r.jsx)(t.td,{children:"Yes"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"system_message"}),(0,r.jsx)(t.td,{children:"System Message"}),(0,r.jsx)(t.td,{children:"MultilineInput"}),(0,r.jsx)(t.td,{children:"Multi-line system instruction for all rows in the DataFrame."}),(0,r.jsx)(t.td,{children:"No"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"df"}),(0,r.jsx)(t.td,{children:"DataFrame"}),(0,r.jsx)(t.td,{children:"DataFrameInput"}),(0,r.jsx)(t.td,{children:"The DataFrame whose column (specified by 'column_name') will be treated as text messages."}),(0,r.jsx)(t.td,{children:"Yes"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"column_name"}),(0,r.jsx)(t.td,{children:"Column Name"}),(0,r.jsx)(t.td,{children:"StrInput"}),(0,r.jsx)(t.td,{children:"The name of the DataFrame column to treat as text messages. Default='text'."}),(0,r.jsx)(t.td,{children:"Yes"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Method"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"batch_results"}),(0,r.jsx)(t.td,{children:"Batch Results"}),(0,r.jsx)(t.td,{children:"run_batch"}),(0,r.jsx)(t.td,{children:"A DataFrame with two columns: 'text_input' and 'model_response'."})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"create-list",children:"Create List"}),"\n",(0,r.jsx)(t.p,{children:"This component dynamically creates a record with a specified number of fields."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-1",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"n_fields"}),(0,r.jsx)(t.td,{children:"Number of Fields"}),(0,r.jsx)(t.td,{children:"Number of fields to be added to the record."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"text_key"}),(0,r.jsx)(t.td,{children:"Text Key"}),(0,r.jsx)(t.td,{children:"Key used as text."})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-1",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"list"}),(0,r.jsx)(t.td,{children:"List"}),(0,r.jsx)(t.td,{children:"The dynamically created list with the specified number of fields."})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"current-date",children:"Current date"}),"\n",(0,r.jsx)(t.p,{children:"The Current Date component returns the current date and time in a selected timezone. This component provides a flexible way to obtain timezone-specific date and time information within a Langflow pipeline."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-2",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"timezone"}),(0,r.jsx)(t.td,{children:"Timezone"}),(0,r.jsx)(t.td,{children:"Select the timezone for the current date and time."})]})})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-2",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"current_date"}),(0,r.jsx)(t.td,{children:"Current Date"}),(0,r.jsx)(t.td,{children:"The resulting current date and time in the selected timezone."})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"id-generator",children:"ID Generator"}),"\n",(0,r.jsx)(t.p,{children:"This component generates a unique ID."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-3",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"unique_id"}),(0,r.jsx)(t.td,{children:"Value"}),(0,r.jsx)(t.td,{children:"The generated unique ID."})]})})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-3",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"id"}),(0,r.jsx)(t.td,{children:"ID"}),(0,r.jsx)(t.td,{children:"The generated unique ID."})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"message-history",children:"Message history"}),"\n",(0,r.jsx)(t.admonition,{type:"info",children:(0,r.jsx)(t.p,{children:"Prior to Langflow 1.1, this component was known as the Chat Memory component."})}),"\n",(0,r.jsx)(t.p,{children:"This component retrieves and manages chat messages from Langflow tables or an external memory."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-4",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"memory"}),(0,r.jsx)(t.td,{children:"External Memory"}),(0,r.jsx)(t.td,{children:"Retrieve messages from an external memory. If empty, it will use the Langflow tables."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"sender"}),(0,r.jsx)(t.td,{children:"Sender Type"}),(0,r.jsx)(t.td,{children:"Filter by sender type."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"sender_name"}),(0,r.jsx)(t.td,{children:"Sender Name"}),(0,r.jsx)(t.td,{children:"Filter by sender name."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"n_messages"}),(0,r.jsx)(t.td,{children:"Number of Messages"}),(0,r.jsx)(t.td,{children:"Number of messages to retrieve."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"session_id"}),(0,r.jsx)(t.td,{children:"Session ID"}),(0,r.jsx)(t.td,{children:"The session ID of the chat. If empty, the current session ID parameter will be used."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"order"}),(0,r.jsx)(t.td,{children:"Order"}),(0,r.jsx)(t.td,{children:"Order of the messages."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"template"}),(0,r.jsx)(t.td,{children:"Template"}),(0,r.jsxs)(t.td,{children:["The template to use for formatting the data. It can contain the keys ",(0,r.jsx)(t.code,{children:"{text}"}),", ",(0,r.jsx)(t.code,{children:"{sender}"})," or any other key in the message data."]})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-4",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"messages"}),(0,r.jsx)(t.td,{children:"Messages (Data)"}),(0,r.jsx)(t.td,{children:"Retrieved messages as Data objects."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"messages_text"}),(0,r.jsx)(t.td,{children:"Messages (Text)"}),(0,r.jsx)(t.td,{children:"Retrieved messages formatted as text."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"lc_memory"}),(0,r.jsx)(t.td,{children:"Memory"}),(0,r.jsxs)(t.td,{children:["A constructed Langchain ",(0,r.jsx)(t.a,{href:"https://api.python.langchain.com/en/latest/memory/langchain.memory.buffer.ConversationBufferMemory.html",children:"ConversationBufferMemory"})," object"]})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"message-store",children:"Message store"}),"\n",(0,r.jsx)(t.p,{children:"This component stores chat messages or text into Langflow tables or an external memory."}),"\n",(0,r.jsx)(t.p,{children:"It provides flexibility in managing message storage and retrieval within a chat system."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-5",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"message"}),(0,r.jsx)(t.td,{children:"Message"}),(0,r.jsx)(t.td,{children:"The chat message to be stored. (Required)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"memory"}),(0,r.jsx)(t.td,{children:"External Memory"}),(0,r.jsx)(t.td,{children:"The external memory to store the message. If empty, it will use the Langflow tables."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"sender"}),(0,r.jsx)(t.td,{children:"Sender"}),(0,r.jsx)(t.td,{children:"The sender of the message. Can be Machine or User. If empty, the current sender parameter will be used."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"sender_name"}),(0,r.jsx)(t.td,{children:"Sender Name"}),(0,r.jsx)(t.td,{children:"The name of the sender. Can be AI or User. If empty, the current sender parameter will be used."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"session_id"}),(0,r.jsx)(t.td,{children:"Session ID"}),(0,r.jsx)(t.td,{children:"The session ID of the chat. If empty, the current session ID parameter will be used."})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-5",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"stored_messages"}),(0,r.jsx)(t.td,{children:"Stored Messages"}),(0,r.jsx)(t.td,{children:"The list of stored messages after the current message has been added."})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"structured-output",children:"Structured output"}),"\n",(0,r.jsx)(t.p,{children:"This component transforms LLM responses into structured data formats."}),"\n",(0,r.jsx)(t.h3,{id:"input",children:"Input"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"llm"}),(0,r.jsx)(t.td,{children:"Language Model"}),(0,r.jsx)(t.td,{children:"The language model to use to generate the structured output."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_value"}),(0,r.jsx)(t.td,{children:"Input message"}),(0,r.jsx)(t.td,{children:"The input message for the language model to process."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"schema_name"}),(0,r.jsx)(t.td,{children:"Schema Name"}),(0,r.jsx)(t.td,{children:"Provide a name for the output data schema."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"output_schema"}),(0,r.jsx)(t.td,{children:"Output Schema"}),(0,r.jsx)(t.td,{children:"Define the structure and data types for the model's output."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"multiple"}),(0,r.jsx)(t.td,{children:"Generate Multiple"}),(0,r.jsx)(t.td,{children:"Set to True if the model should generate a list of outputs instead of a single output."})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"output",children:"Output"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"stored_messages"}),(0,r.jsx)(t.td,{children:"Stored Messages"}),(0,r.jsx)(t.td,{children:"structured output based on the defined schema."})]})})]})]})}function o(e={}){const{wrapper:t}={...(0,d.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},72654:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/astra_db_chat_memory_rounded-9746ca2bb69d3b07ac0a071f4b9471b3.png"}}]); \ No newline at end of file diff --git a/assets/js/e6c6a4d2.cd3e2a95.js b/assets/js/e6c6a4d2.7828403d.js similarity index 55% rename from assets/js/e6c6a4d2.cd3e2a95.js rename to assets/js/e6c6a4d2.7828403d.js index db3b499935..3cfeee2fc4 100644 --- a/assets/js/e6c6a4d2.cd3e2a95.js +++ b/assets/js/e6c6a4d2.7828403d.js @@ -1 +1 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[8504],{28453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>l});var s=n(96540);const i={},o=s.createContext(i);function a(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(o.Provider,{value:t},e.children)}},94910:(e,t,n)=>{n.r(t),n.d(t,{contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>r});const s=JSON.parse('{"type":"api","id":"experimental-run-flow","title":"Experimental Run Flow","description":"","slug":"/experimental-run-flow","frontMatter":{},"api":{"tags":["Base"],"description":"Executes a specified flow by ID with optional input values, output selection, tweaks, and streaming capability.\\n\\nThis endpoint supports running flows with caching to enhance performance and efficiency.\\n\\n### Parameters:\\n- `flow_id` (str): The unique identifier of the flow to be executed.\\n- `inputs` (List[InputValueRequest], optional): A list of inputs specifying the input values and components\\n for the flow. Each input can target specific components and provide custom values.\\n- `outputs` (List[str], optional): A list of output names to retrieve from the executed flow.\\n If not provided, all outputs are returned.\\n- `tweaks` (Optional[Tweaks], optional): A dictionary of tweaks to customize the flow execution.\\n The tweaks can be used to modify the flow\'s parameters and components.\\n Tweaks can be overridden by the input values.\\n- `stream` (bool, optional): Specifies whether the results should be streamed. Defaults to False.\\n- `session_id` (Union[None, str], optional): An optional session ID to utilize existing session data for the flow\\n execution.\\n- `api_key_user` (User): The user associated with the current API key. Automatically resolved from the API key.\\n\\n### Returns:\\nA `RunResponse` object containing the selected outputs (or all if not specified) of the executed flow\\nand the session ID.\\nThe structure of the response accommodates multiple inputs, providing a nested list of outputs for each input.\\n\\n### Raises:\\nHTTPException: Indicates issues with finding the specified flow, invalid input formats, or internal errors during\\nflow execution.\\n\\n### Example usage:\\n```json\\nPOST /run/{flow_id}\\nx-api-key: YOUR_API_KEY\\nPayload:\\n{\\n \\"inputs\\": [\\n {\\"components\\": [\\"component1\\"], \\"input_value\\": \\"value1\\"},\\n {\\"components\\": [\\"component3\\"], \\"input_value\\": \\"value2\\"}\\n ],\\n \\"outputs\\": [\\"Component Name\\", \\"component_id\\"],\\n \\"tweaks\\": {\\"parameter_name\\": \\"value\\", \\"Component Name\\": {\\"parameter_name\\": \\"value\\"}, \\"component_id\\": {\\"parameter_name\\": \\"value\\"}}\\n \\"stream\\": false\\n}\\n```\\n\\nThis endpoint facilitates complex flow executions with customized inputs, outputs, and configurations,\\ncatering to diverse application requirements.","operationId":"experimental_run_flow_api_v1_run_advanced__flow_id__post","security":[{"API key query":[]},{"API key header":[]}],"parameters":[{"name":"flow_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Flow Id"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"inputs":{"anyOf":[{"items":{"properties":{"components":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Components","default":[]},"input_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Value"},"session":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session"},"type":{"anyOf":[{"type":"string","enum":["chat","text","any"]},{"type":"null"}],"title":"Type","description":"Defines on which components the input value should be applied. \'any\' applies to all input components.","default":"any"}},"additionalProperties":false,"type":"object","title":"InputValueRequest","examples":[{"components":["components_id","Component Name"],"input_value":"input_value","session":"session_id"},{"components":["Component Name"],"input_value":"input_value"},{"input_value":"input_value"},{"components":["Component Name"],"input_value":"input_value","session":"session_id"},{"input_value":"input_value","session":"session_id"},{"input_value":"input_value","type":"chat"},{"input_value":"{\\"key\\": \\"value\\"}","type":"json"}]},"type":"array"},{"type":"null"}],"title":"Inputs"},"outputs":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Outputs"},"tweaks":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"object"}]},"type":"object","title":"Tweaks","description":"A dictionary of tweaks to adjust the flow\'s execution. Allows customizing flow behavior dynamically. All tweaks are overridden by the input values.","examples":[{"Component Name":{"parameter_name":"value"},"component_id":{"parameter_name":"value"},"parameter_name":"value"}]},{"type":"null"}]},"stream":{"type":"boolean","title":"Stream","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}},"type":"object","title":"Body_experimental_run_flow_api_v1_run_advanced__flow_id__post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"outputs":{"anyOf":[{"items":{"properties":{"inputs":{"type":"object","title":"Inputs"},"outputs":{"items":{"anyOf":[{"properties":{"results":{"anyOf":[{},{"type":"null"}],"title":"Results"},"artifacts":{"anyOf":[{},{"type":"null"}],"title":"Artifacts"},"outputs":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Outputs"},"logs":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Logs"},"messages":{"anyOf":[{"items":{"properties":{"message":{"anyOf":[{"type":"string"},{"items":{"anyOf":[{"type":"string"},{"type":"object"}]},"type":"array"}],"title":"Message"},"sender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sender","default":"Machine"},"sender_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sender Name","default":"AI"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"stream_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stream Url"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id"},"files":{"items":{"properties":{"path":{"type":"string","title":"Path"},"name":{"type":"string","title":"Name"},"type":{"type":"string","title":"Type"}},"type":"object","required":["path","name","type"],"title":"File","description":"File schema."},"type":"array","title":"Files","default":[]},"type":{"type":"string","title":"Type"}},"type":"object","required":["message","type"],"title":"ChatOutputResponse","description":"Chat output response schema."},"type":"array"},{"type":"null"}],"title":"Messages"},"timedelta":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Timedelta"},"duration":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Duration"},"component_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Display Name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id"},"used_frozen_result":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Used Frozen Result","default":false}},"type":"object","title":"ResultData"},{"type":"null"}]},"type":"array","title":"Outputs"}},"type":"object","title":"RunOutputs"},"type":"array"},{"type":"null"}],"title":"Outputs","default":[]},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}},"type":"object","title":"RunResponse","description":"Run response schema."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}},"method":"post","path":"/api/v1/run/advanced/{flow_id}","securitySchemes":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"api/v1/login"}}},"API key query":{"type":"apiKey","in":"query","name":"x-api-key"},"API key header":{"type":"apiKey","in":"header","name":"x-api-key"}},"jsonRequestBodyExample":{"stream":false},"info":{"title":"Langflow","version":"1.1.4"},"postman":{"name":"Experimental Run Flow","description":{"content":"Executes a specified flow by ID with optional input values, output selection, tweaks, and streaming capability.\\n\\nThis endpoint supports running flows with caching to enhance performance and efficiency.\\n\\n### Parameters:\\n- `flow_id` (str): The unique identifier of the flow to be executed.\\n- `inputs` (List[InputValueRequest], optional): A list of inputs specifying the input values and components\\n for the flow. Each input can target specific components and provide custom values.\\n- `outputs` (List[str], optional): A list of output names to retrieve from the executed flow.\\n If not provided, all outputs are returned.\\n- `tweaks` (Optional[Tweaks], optional): A dictionary of tweaks to customize the flow execution.\\n The tweaks can be used to modify the flow\'s parameters and components.\\n Tweaks can be overridden by the input values.\\n- `stream` (bool, optional): Specifies whether the results should be streamed. Defaults to False.\\n- `session_id` (Union[None, str], optional): An optional session ID to utilize existing session data for the flow\\n execution.\\n- `api_key_user` (User): The user associated with the current API key. Automatically resolved from the API key.\\n\\n### Returns:\\nA `RunResponse` object containing the selected outputs (or all if not specified) of the executed flow\\nand the session ID.\\nThe structure of the response accommodates multiple inputs, providing a nested list of outputs for each input.\\n\\n### Raises:\\nHTTPException: Indicates issues with finding the specified flow, invalid input formats, or internal errors during\\nflow execution.\\n\\n### Example usage:\\n```json\\nPOST /run/{flow_id}\\nx-api-key: YOUR_API_KEY\\nPayload:\\n{\\n \\"inputs\\": [\\n {\\"components\\": [\\"component1\\"], \\"input_value\\": \\"value1\\"},\\n {\\"components\\": [\\"component3\\"], \\"input_value\\": \\"value2\\"}\\n ],\\n \\"outputs\\": [\\"Component Name\\", \\"component_id\\"],\\n \\"tweaks\\": {\\"parameter_name\\": \\"value\\", \\"Component Name\\": {\\"parameter_name\\": \\"value\\"}, \\"component_id\\": {\\"parameter_name\\": \\"value\\"}}\\n \\"stream\\": false\\n}\\n```\\n\\nThis endpoint facilitates complex flow executions with customized inputs, outputs, and configurations,\\ncatering to diverse application requirements.","type":"text/plain"},"url":{"path":["api","v1","run","advanced",":flow_id"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"flow_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\\n \\"inputs\\": [\\n {\\n \\"components\\": [\\n \\"\\",\\n \\"\\"\\n ],\\n \\"input_value\\": \\"\\",\\n \\"session\\": \\"\\",\\n \\"type\\": \\"\\"\\n },\\n {\\n \\"components\\": [\\n \\"\\",\\n \\"\\"\\n ],\\n \\"input_value\\": \\"\\",\\n \\"session\\": \\"\\",\\n \\"type\\": \\"\\"\\n }\\n ],\\n \\"outputs\\": [\\n \\"\\",\\n \\"\\"\\n ],\\n \\"tweaks\\": {\\n \\"culpa_97\\": \\"\\",\\n \\"et_d\\": \\"\\",\\n \\"ad1c\\": \\"\\",\\n \\"ine27\\": \\"\\"\\n },\\n \\"stream\\": false,\\n \\"session_id\\": \\"\\"\\n}","options":{"raw":{"language":"json"}}},"auth":{"type":"apikey","apikey":[{"type":"any","value":"x-api-key","key":"key"},{"type":"any","value":"{{apiKey}}","key":"value"},{"type":"any","value":"query","key":"in"}]}}},"source":"@site/openapi.json","sourceDirName":".","permalink":"/api/experimental-run-flow","previous":{"title":"Webhook Run Flow","permalink":"/api/webhook-run-flow"},"next":{"title":"Process","permalink":"/api/process"}}');var i=n(74848),o=n(28453);const a={},l="Experimental Run Flow",r=[{value:"Parameters:",id:"parameters",level:3},{value:"Returns:",id:"returns",level:3},{value:"Raises:",id:"raises",level:3},{value:"Example usage:",id:"example-usage",level:3}];function p(e){const t={code:"code",h1:"h1",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.header,{children:(0,i.jsx)(t.h1,{id:"experimental-run-flow",children:"Experimental Run Flow"})}),"\n",(0,i.jsx)(t.p,{children:"Executes a specified flow by ID with optional input values, output selection, tweaks, and streaming capability."}),"\n",(0,i.jsx)(t.p,{children:"This endpoint supports running flows with caching to enhance performance and efficiency."}),"\n",(0,i.jsx)(t.h3,{id:"parameters",children:"Parameters:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"flow_id"})," (str): The unique identifier of the flow to be executed."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"inputs"})," (List[InputValueRequest], optional): A list of inputs specifying the input values and components\nfor the flow. Each input can target specific components and provide custom values."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"outputs"})," (List[str], optional): A list of output names to retrieve from the executed flow.\nIf not provided, all outputs are returned."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"tweaks"})," (Optional[Tweaks], optional): A dictionary of tweaks to customize the flow execution.\nThe tweaks can be used to modify the flow's parameters and components.\nTweaks can be overridden by the input values."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"stream"})," (bool, optional): Specifies whether the results should be streamed. Defaults to False."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"session_id"})," (Union[None, str], optional): An optional session ID to utilize existing session data for the flow\nexecution."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"api_key_user"})," (User): The user associated with the current API key. Automatically resolved from the API key."]}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"returns",children:"Returns:"}),"\n",(0,i.jsxs)(t.p,{children:["A ",(0,i.jsx)(t.code,{children:"RunResponse"})," object containing the selected outputs (or all if not specified) of the executed flow\nand the session ID.\nThe structure of the response accommodates multiple inputs, providing a nested list of outputs for each input."]}),"\n",(0,i.jsx)(t.h3,{id:"raises",children:"Raises:"}),"\n",(0,i.jsx)(t.p,{children:"HTTPException: Indicates issues with finding the specified flow, invalid input formats, or internal errors during\nflow execution."}),"\n",(0,i.jsx)(t.h3,{id:"example-usage",children:"Example usage:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-json",children:'POST /run/{flow_id}\nx-api-key: YOUR_API_KEY\nPayload:\n{\n "inputs": [\n {"components": ["component1"], "input_value": "value1"},\n {"components": ["component3"], "input_value": "value2"}\n ],\n "outputs": ["Component Name", "component_id"],\n "tweaks": {"parameter_name": "value", "Component Name": {"parameter_name": "value"}, "component_id": {"parameter_name": "value"}}\n "stream": false\n}\n'})}),"\n",(0,i.jsx)(t.p,{children:"This endpoint facilitates complex flow executions with customized inputs, outputs, and configurations,\ncatering to diverse application requirements."}),"\n",(0,i.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsx)("th",{style:{textAlign:"left"},children:"Path Parameters"})})}),(0,i.jsx)("tbody",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"flow_id"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" uuid"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-required)"},children:" REQUIRED"})]})})})]}),"\n",(0,i.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("th",{style:{textAlign:"left"},children:[(0,i.jsx)("span",{children:"Request Body "}),(0,i.jsx)("div",{})]})})}),(0,i.jsxs)("tbody",{children:[(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"inputs"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Inputs"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"outputs"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Outputs"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"tweaks"}),(0,i.jsx)("span",{style:{opacity:"0.6"}})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"stream"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Stream"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"session_id"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Session Id"})]})})]})]}),"\n",(0,i.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsx)("th",{style:{textAlign:"left"},children:"Responses"})})}),(0,i.jsxs)("tbody",{children:[(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsxs)("div",{style:{display:"flex"},children:[(0,i.jsx)("div",{style:{marginRight:"var(--ifm-table-cell-padding)"},children:(0,i.jsx)("code",{children:"200"})}),(0,i.jsx)("div",{children:(0,i.jsx)(t.p,{children:"Successful Response"})})]}),(0,i.jsx)("div",{children:(0,i.jsxs)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("th",{style:{textAlign:"left"},children:[(0,i.jsx)("span",{children:"Schema "}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,i.jsx)("div",{})]})})}),(0,i.jsxs)("tbody",{children:[(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"outputs"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Outputs"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"session_id"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Session Id"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"})]})})]})]})})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsxs)("div",{style:{display:"flex"},children:[(0,i.jsx)("div",{style:{marginRight:"var(--ifm-table-cell-padding)"},children:(0,i.jsx)("code",{children:"422"})}),(0,i.jsx)("div",{children:(0,i.jsx)(t.p,{children:"Validation Error"})})]}),(0,i.jsx)("div",{children:(0,i.jsxs)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("th",{style:{textAlign:"left"},children:[(0,i.jsx)("span",{children:"Schema "}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,i.jsx)("div",{})]})})}),(0,i.jsx)("tbody",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"detail"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" object[]"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,i.jsx)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:(0,i.jsxs)("tbody",{children:[(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"loc"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" undefined[]"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"msg"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Message"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"type"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Error Type"})]})})]})})]})})})]})})]})})]})]})]})}function d(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}}}]); \ No newline at end of file +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[8504],{28453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>l});var s=n(96540);const i={},o=s.createContext(i);function a(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(o.Provider,{value:t},e.children)}},94910:(e,t,n)=>{n.r(t),n.d(t,{contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>r});const s=JSON.parse('{"type":"api","id":"experimental-run-flow","title":"Experimental Run Flow","description":"","slug":"/experimental-run-flow","frontMatter":{},"api":{"tags":["Base"],"description":"Executes a specified flow by ID with optional input values, output selection, tweaks, and streaming capability.\\n\\nThis endpoint supports running flows with caching to enhance performance and efficiency.\\n\\n### Parameters:\\n- `flow_id` (str): The unique identifier of the flow to be executed.\\n- `inputs` (List[InputValueRequest], optional): A list of inputs specifying the input values and components\\n for the flow. Each input can target specific components and provide custom values.\\n- `outputs` (List[str], optional): A list of output names to retrieve from the executed flow.\\n If not provided, all outputs are returned.\\n- `tweaks` (Optional[Tweaks], optional): A dictionary of tweaks to customize the flow execution.\\n The tweaks can be used to modify the flow\'s parameters and components.\\n Tweaks can be overridden by the input values.\\n- `stream` (bool, optional): Specifies whether the results should be streamed. Defaults to False.\\n- `session_id` (Union[None, str], optional): An optional session ID to utilize existing session data for the flow\\n execution.\\n- `api_key_user` (User): The user associated with the current API key. Automatically resolved from the API key.\\n\\n### Returns:\\nA `RunResponse` object containing the selected outputs (or all if not specified) of the executed flow\\nand the session ID.\\nThe structure of the response accommodates multiple inputs, providing a nested list of outputs for each input.\\n\\n### Raises:\\nHTTPException: Indicates issues with finding the specified flow, invalid input formats, or internal errors during\\nflow execution.\\n\\n### Example usage:\\n```json\\nPOST /run/{flow_id}\\nx-api-key: YOUR_API_KEY\\nPayload:\\n{\\n \\"inputs\\": [\\n {\\"components\\": [\\"component1\\"], \\"input_value\\": \\"value1\\"},\\n {\\"components\\": [\\"component3\\"], \\"input_value\\": \\"value2\\"}\\n ],\\n \\"outputs\\": [\\"Component Name\\", \\"component_id\\"],\\n \\"tweaks\\": {\\"parameter_name\\": \\"value\\", \\"Component Name\\": {\\"parameter_name\\": \\"value\\"}, \\"component_id\\": {\\"parameter_name\\": \\"value\\"}}\\n \\"stream\\": false\\n}\\n```\\n\\nThis endpoint facilitates complex flow executions with customized inputs, outputs, and configurations,\\ncatering to diverse application requirements.","operationId":"experimental_run_flow_api_v1_run_advanced__flow_id__post","security":[{"API key query":[]},{"API key header":[]}],"parameters":[{"name":"flow_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Flow Id"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"inputs":{"anyOf":[{"items":{"properties":{"components":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Components","default":[]},"input_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Value"},"session":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session"},"type":{"anyOf":[{"type":"string","enum":["chat","text","any"]},{"type":"null"}],"title":"Type","description":"Defines on which components the input value should be applied. \'any\' applies to all input components.","default":"any"}},"additionalProperties":false,"type":"object","title":"InputValueRequest","examples":[{"components":["components_id","Component Name"],"input_value":"input_value","session":"session_id"},{"components":["Component Name"],"input_value":"input_value"},{"input_value":"input_value"},{"components":["Component Name"],"input_value":"input_value","session":"session_id"},{"input_value":"input_value","session":"session_id"},{"input_value":"input_value","type":"chat"},{"input_value":"{\\"key\\": \\"value\\"}","type":"json"}]},"type":"array"},{"type":"null"}],"title":"Inputs"},"outputs":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Outputs"},"tweaks":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"object"}]},"type":"object","title":"Tweaks","description":"A dictionary of tweaks to adjust the flow\'s execution. Allows customizing flow behavior dynamically. All tweaks are overridden by the input values.","examples":[{"Component Name":{"parameter_name":"value"},"component_id":{"parameter_name":"value"},"parameter_name":"value"}]},{"type":"null"}]},"stream":{"type":"boolean","title":"Stream","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}},"type":"object","title":"Body_experimental_run_flow_api_v1_run_advanced__flow_id__post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"outputs":{"anyOf":[{"items":{"properties":{"inputs":{"type":"object","title":"Inputs"},"outputs":{"items":{"anyOf":[{"properties":{"results":{"anyOf":[{},{"type":"null"}],"title":"Results"},"artifacts":{"anyOf":[{},{"type":"null"}],"title":"Artifacts"},"outputs":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Outputs"},"logs":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Logs"},"messages":{"anyOf":[{"items":{"properties":{"message":{"anyOf":[{"type":"string"},{"items":{"anyOf":[{"type":"string"},{"type":"object"}]},"type":"array"}],"title":"Message"},"sender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sender","default":"Machine"},"sender_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sender Name","default":"AI"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"stream_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stream Url"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id"},"files":{"items":{"properties":{"path":{"type":"string","title":"Path"},"name":{"type":"string","title":"Name"},"type":{"type":"string","title":"Type"}},"type":"object","required":["path","name","type"],"title":"File","description":"File schema."},"type":"array","title":"Files","default":[]},"type":{"type":"string","title":"Type"}},"type":"object","required":["message","type"],"title":"ChatOutputResponse","description":"Chat output response schema."},"type":"array"},{"type":"null"}],"title":"Messages"},"timedelta":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Timedelta"},"duration":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Duration"},"component_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Display Name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id"},"used_frozen_result":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Used Frozen Result","default":false}},"type":"object","title":"ResultData"},{"type":"null"}]},"type":"array","title":"Outputs"}},"type":"object","title":"RunOutputs"},"type":"array"},{"type":"null"}],"title":"Outputs","default":[]},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}},"type":"object","title":"RunResponse","description":"Run response schema."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}},"method":"post","path":"/api/v1/run/advanced/{flow_id}","securitySchemes":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"api/v1/login"}}},"API key query":{"type":"apiKey","in":"query","name":"x-api-key"},"API key header":{"type":"apiKey","in":"header","name":"x-api-key"}},"jsonRequestBodyExample":{"stream":false},"info":{"title":"Langflow","version":"1.1.4"},"postman":{"name":"Experimental Run Flow","description":{"content":"Executes a specified flow by ID with optional input values, output selection, tweaks, and streaming capability.\\n\\nThis endpoint supports running flows with caching to enhance performance and efficiency.\\n\\n### Parameters:\\n- `flow_id` (str): The unique identifier of the flow to be executed.\\n- `inputs` (List[InputValueRequest], optional): A list of inputs specifying the input values and components\\n for the flow. Each input can target specific components and provide custom values.\\n- `outputs` (List[str], optional): A list of output names to retrieve from the executed flow.\\n If not provided, all outputs are returned.\\n- `tweaks` (Optional[Tweaks], optional): A dictionary of tweaks to customize the flow execution.\\n The tweaks can be used to modify the flow\'s parameters and components.\\n Tweaks can be overridden by the input values.\\n- `stream` (bool, optional): Specifies whether the results should be streamed. Defaults to False.\\n- `session_id` (Union[None, str], optional): An optional session ID to utilize existing session data for the flow\\n execution.\\n- `api_key_user` (User): The user associated with the current API key. Automatically resolved from the API key.\\n\\n### Returns:\\nA `RunResponse` object containing the selected outputs (or all if not specified) of the executed flow\\nand the session ID.\\nThe structure of the response accommodates multiple inputs, providing a nested list of outputs for each input.\\n\\n### Raises:\\nHTTPException: Indicates issues with finding the specified flow, invalid input formats, or internal errors during\\nflow execution.\\n\\n### Example usage:\\n```json\\nPOST /run/{flow_id}\\nx-api-key: YOUR_API_KEY\\nPayload:\\n{\\n \\"inputs\\": [\\n {\\"components\\": [\\"component1\\"], \\"input_value\\": \\"value1\\"},\\n {\\"components\\": [\\"component3\\"], \\"input_value\\": \\"value2\\"}\\n ],\\n \\"outputs\\": [\\"Component Name\\", \\"component_id\\"],\\n \\"tweaks\\": {\\"parameter_name\\": \\"value\\", \\"Component Name\\": {\\"parameter_name\\": \\"value\\"}, \\"component_id\\": {\\"parameter_name\\": \\"value\\"}}\\n \\"stream\\": false\\n}\\n```\\n\\nThis endpoint facilitates complex flow executions with customized inputs, outputs, and configurations,\\ncatering to diverse application requirements.","type":"text/plain"},"url":{"path":["api","v1","run","advanced",":flow_id"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"flow_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\\n \\"inputs\\": [\\n {\\n \\"components\\": [\\n \\"\\",\\n \\"\\"\\n ],\\n \\"input_value\\": \\"\\",\\n \\"session\\": \\"\\",\\n \\"type\\": \\"\\"\\n },\\n {\\n \\"components\\": [\\n \\"\\",\\n \\"\\"\\n ],\\n \\"input_value\\": \\"\\",\\n \\"session\\": \\"\\",\\n \\"type\\": \\"\\"\\n }\\n ],\\n \\"outputs\\": [\\n \\"\\",\\n \\"\\"\\n ],\\n \\"tweaks\\": {\\n \\"occaecat375\\": \\"\\",\\n \\"nisi_f33\\": \\"\\"\\n },\\n \\"stream\\": false,\\n \\"session_id\\": \\"\\"\\n}","options":{"raw":{"language":"json"}}},"auth":{"type":"apikey","apikey":[{"type":"any","value":"x-api-key","key":"key"},{"type":"any","value":"{{apiKey}}","key":"value"},{"type":"any","value":"query","key":"in"}]}}},"source":"@site/openapi.json","sourceDirName":".","permalink":"/api/experimental-run-flow","previous":{"title":"Webhook Run Flow","permalink":"/api/webhook-run-flow"},"next":{"title":"Process","permalink":"/api/process"}}');var i=n(74848),o=n(28453);const a={},l="Experimental Run Flow",r=[{value:"Parameters:",id:"parameters",level:3},{value:"Returns:",id:"returns",level:3},{value:"Raises:",id:"raises",level:3},{value:"Example usage:",id:"example-usage",level:3}];function p(e){const t={code:"code",h1:"h1",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.header,{children:(0,i.jsx)(t.h1,{id:"experimental-run-flow",children:"Experimental Run Flow"})}),"\n",(0,i.jsx)(t.p,{children:"Executes a specified flow by ID with optional input values, output selection, tweaks, and streaming capability."}),"\n",(0,i.jsx)(t.p,{children:"This endpoint supports running flows with caching to enhance performance and efficiency."}),"\n",(0,i.jsx)(t.h3,{id:"parameters",children:"Parameters:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"flow_id"})," (str): The unique identifier of the flow to be executed."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"inputs"})," (List[InputValueRequest], optional): A list of inputs specifying the input values and components\nfor the flow. Each input can target specific components and provide custom values."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"outputs"})," (List[str], optional): A list of output names to retrieve from the executed flow.\nIf not provided, all outputs are returned."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"tweaks"})," (Optional[Tweaks], optional): A dictionary of tweaks to customize the flow execution.\nThe tweaks can be used to modify the flow's parameters and components.\nTweaks can be overridden by the input values."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"stream"})," (bool, optional): Specifies whether the results should be streamed. Defaults to False."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"session_id"})," (Union[None, str], optional): An optional session ID to utilize existing session data for the flow\nexecution."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"api_key_user"})," (User): The user associated with the current API key. Automatically resolved from the API key."]}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"returns",children:"Returns:"}),"\n",(0,i.jsxs)(t.p,{children:["A ",(0,i.jsx)(t.code,{children:"RunResponse"})," object containing the selected outputs (or all if not specified) of the executed flow\nand the session ID.\nThe structure of the response accommodates multiple inputs, providing a nested list of outputs for each input."]}),"\n",(0,i.jsx)(t.h3,{id:"raises",children:"Raises:"}),"\n",(0,i.jsx)(t.p,{children:"HTTPException: Indicates issues with finding the specified flow, invalid input formats, or internal errors during\nflow execution."}),"\n",(0,i.jsx)(t.h3,{id:"example-usage",children:"Example usage:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-json",children:'POST /run/{flow_id}\nx-api-key: YOUR_API_KEY\nPayload:\n{\n "inputs": [\n {"components": ["component1"], "input_value": "value1"},\n {"components": ["component3"], "input_value": "value2"}\n ],\n "outputs": ["Component Name", "component_id"],\n "tweaks": {"parameter_name": "value", "Component Name": {"parameter_name": "value"}, "component_id": {"parameter_name": "value"}}\n "stream": false\n}\n'})}),"\n",(0,i.jsx)(t.p,{children:"This endpoint facilitates complex flow executions with customized inputs, outputs, and configurations,\ncatering to diverse application requirements."}),"\n",(0,i.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsx)("th",{style:{textAlign:"left"},children:"Path Parameters"})})}),(0,i.jsx)("tbody",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"flow_id"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" uuid"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-required)"},children:" REQUIRED"})]})})})]}),"\n",(0,i.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("th",{style:{textAlign:"left"},children:[(0,i.jsx)("span",{children:"Request Body "}),(0,i.jsx)("div",{})]})})}),(0,i.jsxs)("tbody",{children:[(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"inputs"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Inputs"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"outputs"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Outputs"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"tweaks"}),(0,i.jsx)("span",{style:{opacity:"0.6"}})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"stream"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Stream"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"session_id"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Session Id"})]})})]})]}),"\n",(0,i.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsx)("th",{style:{textAlign:"left"},children:"Responses"})})}),(0,i.jsxs)("tbody",{children:[(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsxs)("div",{style:{display:"flex"},children:[(0,i.jsx)("div",{style:{marginRight:"var(--ifm-table-cell-padding)"},children:(0,i.jsx)("code",{children:"200"})}),(0,i.jsx)("div",{children:(0,i.jsx)(t.p,{children:"Successful Response"})})]}),(0,i.jsx)("div",{children:(0,i.jsxs)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("th",{style:{textAlign:"left"},children:[(0,i.jsx)("span",{children:"Schema "}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,i.jsx)("div",{})]})})}),(0,i.jsxs)("tbody",{children:[(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"outputs"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Outputs"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"session_id"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Session Id"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"})]})})]})]})})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsxs)("div",{style:{display:"flex"},children:[(0,i.jsx)("div",{style:{marginRight:"var(--ifm-table-cell-padding)"},children:(0,i.jsx)("code",{children:"422"})}),(0,i.jsx)("div",{children:(0,i.jsx)(t.p,{children:"Validation Error"})})]}),(0,i.jsx)("div",{children:(0,i.jsxs)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("th",{style:{textAlign:"left"},children:[(0,i.jsx)("span",{children:"Schema "}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,i.jsx)("div",{})]})})}),(0,i.jsx)("tbody",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"detail"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" object[]"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,i.jsx)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:(0,i.jsxs)("tbody",{children:[(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"loc"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" undefined[]"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"msg"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Message"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"type"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Error Type"})]})})]})})]})})})]})})]})})]})]})]})}function d(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}}}]); \ No newline at end of file diff --git a/assets/js/main.7988a4a3.js b/assets/js/main.7988a4a3.js deleted file mode 100644 index 1f29d4840d..0000000000 --- a/assets/js/main.7988a4a3.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see main.7988a4a3.js.LICENSE.txt */ -(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[8792],{204:(e,t,n)=>{"use strict";n.d(t,{G:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",blogAuthorsListPage:"blog-authors-list-page",blogAuthorsPostsPage:"blog-authors-posts-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",draftBanner:"theme-draft-banner",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{blogFooterTagsRow:"theme-blog-footer-tags-row",blogFooterEditMetaRow:"theme-blog-footer-edit-meta-row"},pages:{pageFooterEditMetaRow:"theme-pages-footer-edit-meta-row"}}},1093:e=>{"use strict";var t=Object.prototype.toString;e.exports=function(e){var n=t.call(e),r="[object Arguments]"===n;return r||(r="[object Array]"!==n&&null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Function]"===t.call(e.callee)),r}},1189:(e,t,n)=>{"use strict";var r=Array.prototype.slice,o=n(1093),a=Object.keys,i=a?function(e){return a(e)}:n(28875),l=Object.keys;i.shim=function(){if(Object.keys){var e=function(){var e=Object.keys(arguments);return e&&e.length===arguments.length}(1,2);e||(Object.keys=function(e){return o(e)?l(r.call(e)):l(e)})}else Object.keys=i;return Object.keys||i},e.exports=i},2694:(e,t,n)=>{"use strict";var r=n(6925);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},2833:e=>{e.exports=function(e,t,n,r){var o=n?n.call(r,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var a=Object.keys(e),i=Object.keys(t);if(a.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),s=0;s{"use strict";var r=n(65606);function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;te.length)&&(n=e.length),e.substring(n-t.length,n)===t}var w="",k="",x="",S="",E={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"};function _(e){var t=Object.keys(e),n=Object.create(Object.getPrototypeOf(e));return t.forEach((function(t){n[t]=e[t]})),Object.defineProperty(n,"message",{value:e.message}),n}function j(e){return y(e,{compact:!1,customInspect:!1,depth:1e3,maxArrayLength:1/0,showHidden:!1,breakLength:1/0,showProxy:!1,sorted:!0,getters:!0})}function O(e,t,n){var o="",a="",i=0,l="",s=!1,c=j(e),u=c.split("\n"),p=j(t).split("\n"),d=0,f="";if("strictEqual"===n&&"object"===h(e)&&"object"===h(t)&&null!==e&&null!==t&&(n="strictEqualObject"),1===u.length&&1===p.length&&u[0]!==p[0]){var m=u[0].length+p[0].length;if(m<=10){if(!("object"===h(e)&&null!==e||"object"===h(t)&&null!==t||0===e&&0===t))return"".concat(E[n],"\n\n")+"".concat(u[0]," !== ").concat(p[0],"\n")}else if("strictEqualObject"!==n){if(m<(r.stderr&&r.stderr.isTTY?r.stderr.columns:80)){for(;u[0][d]===p[0][d];)d++;d>2&&(f="\n ".concat(function(e,t){if(t=Math.floor(t),0==e.length||0==t)return"";var n=e.length*t;for(t=Math.floor(Math.log(t)/Math.log(2));t;)e+=e,t--;return e+e.substring(0,n-e.length)}(" ",d),"^"),d=0)}}}for(var g=u[u.length-1],y=p[p.length-1];g===y&&(d++<2?l="\n ".concat(g).concat(l):o=g,u.pop(),p.pop(),0!==u.length&&0!==p.length);)g=u[u.length-1],y=p[p.length-1];var b=Math.max(u.length,p.length);if(0===b){var _=c.split("\n");if(_.length>30)for(_[26]="".concat(w,"...").concat(S);_.length>27;)_.pop();return"".concat(E.notIdentical,"\n\n").concat(_.join("\n"),"\n")}d>3&&(l="\n".concat(w,"...").concat(S).concat(l),s=!0),""!==o&&(l="\n ".concat(o).concat(l),o="");var O=0,A=E[n]+"\n".concat(k,"+ actual").concat(S," ").concat(x,"- expected").concat(S),C=" ".concat(w,"...").concat(S," Lines skipped");for(d=0;d1&&d>2&&(P>4?(a+="\n".concat(w,"...").concat(S),s=!0):P>3&&(a+="\n ".concat(p[d-2]),O++),a+="\n ".concat(p[d-1]),O++),i=d,o+="\n".concat(x,"-").concat(S," ").concat(p[d]),O++;else if(p.length1&&d>2&&(P>4?(a+="\n".concat(w,"...").concat(S),s=!0):P>3&&(a+="\n ".concat(u[d-2]),O++),a+="\n ".concat(u[d-1]),O++),i=d,a+="\n".concat(k,"+").concat(S," ").concat(u[d]),O++;else{var T=p[d],I=u[d],R=I!==T&&(!v(I,",")||I.slice(0,-1)!==T);R&&v(T,",")&&T.slice(0,-1)===I&&(R=!1,I+=","),R?(P>1&&d>2&&(P>4?(a+="\n".concat(w,"...").concat(S),s=!0):P>3&&(a+="\n ".concat(u[d-2]),O++),a+="\n ".concat(u[d-1]),O++),i=d,a+="\n".concat(k,"+").concat(S," ").concat(I),o+="\n".concat(x,"-").concat(S," ").concat(T),O+=2):(a+=o,o="",1!==P&&0!==d||(a+="\n ".concat(I),O++))}if(O>20&&d30)for(f[26]="".concat(w,"...").concat(S);f.length>27;)f.pop();t=1===f.length?d.call(this,"".concat(p," ").concat(f[0])):d.call(this,"".concat(p,"\n\n").concat(f.join("\n"),"\n"))}else{var m=j(i),g="",y=E[o];"notDeepEqual"===o||"notEqual"===o?(m="".concat(E[o],"\n\n").concat(m)).length>1024&&(m="".concat(m.slice(0,1021),"...")):(g="".concat(j(l)),m.length>512&&(m="".concat(m.slice(0,509),"...")),g.length>512&&(g="".concat(g.slice(0,509),"...")),"deepEqual"===o||"equal"===o?m="".concat(y,"\n\n").concat(m,"\n\nshould equal\n\n"):g=" ".concat(o," ").concat(g)),t=d.call(this,"".concat(m).concat(g))}return Error.stackTraceLimit=s,t.generatedMessage=!n,Object.defineProperty(u(t),"name",{value:"AssertionError [ERR_ASSERTION]",enumerable:!1,writable:!0,configurable:!0}),t.code="ERR_ASSERTION",t.actual=i,t.expected=l,t.operator=o,Error.captureStackTrace&&Error.captureStackTrace(u(t),a),t.stack,t.name="AssertionError",c(t)}return i=v,(s=[{key:"toString",value:function(){return"".concat(this.name," [").concat(this.code,"]: ").concat(this.message)}},{key:t,value:function(e,t){return y(this,a(a({},t),{},{customInspect:!1,depth:0}))}}])&&l(i.prototype,s),p&&l(i,p),Object.defineProperty(i,"prototype",{writable:!1}),v}(p(Error),y.custom);e.exports=A},4023:(e,t,n)=>{"use strict";n.d(t,{A:()=>g});var r=n(96540),o=n(61934),a=n(27143),i=n(30099),l=n(54051),s=n(75313),c=n(74848);function u(e){let{error:t,tryAgain:n}=e;return(0,c.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,c.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,c.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,c.jsx)(p,{error:t})]})}function p(e){let{error:t}=e;const n=(0,i.rA)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,c.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function d(e){let{children:t}=e;return(0,c.jsx)(s.W,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:t})}function f(e){let{error:t,tryAgain:n}=e;return(0,c.jsx)(d,{children:(0,c.jsxs)(g,{fallback:()=>(0,c.jsx)(u,{error:t,tryAgain:n}),children:[(0,c.jsx)(a.A,{children:(0,c.jsx)("title",{children:"Page Error"})}),(0,c.jsx)(l.A,{children:(0,c.jsx)(u,{error:t,tryAgain:n})})]})})}const m=e=>(0,c.jsx)(f,{...e});class g extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.A.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??m)(e)}return e??null}}},4146:(e,t,n)=>{"use strict";var r=n(44363),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||o}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var c=Object.defineProperty,u=Object.getOwnPropertyNames,p=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var o=f(n);o&&o!==m&&e(t,o,r)}var i=u(n);p&&(i=i.concat(p(n)));for(var l=s(t),g=s(n),h=0;h{"use strict";n.d(t,{A:()=>r});const r={title:"Langflow Documentation",tagline:"Langflow is a low-code app builder for RAG and multi-agent AI applications.",favicon:"img/favicon.ico",url:"https://docs.langflow.org",baseUrl:"/",onBrokenLinks:"throw",onBrokenMarkdownLinks:"warn",onBrokenAnchors:"warn",organizationName:"langflow-ai",projectName:"langflow",trailingSlash:!1,staticDirectories:["static"],i18n:{defaultLocale:"en",locales:["en"],path:"i18n",localeConfigs:{}},presets:[["docusaurus-preset-openapi",{api:{path:"openapi.json",routeBasePath:"/api"},docs:{routeBasePath:"/",sidebarPath:"/home/runner/work/langflow/langflow/docs/sidebars.js",sidebarCollapsed:!1,beforeDefaultRemarkPlugins:[[null,{theme:"github-dark",showCopyButton:!0,lineNumbers:!0}]]},sitemap:{lastmod:"datetime",changefreq:null,priority:null},gtag:{trackingID:"G-XHC7G628ZP",anonymizeIP:!0},googleTagManager:{containerId:"GTM-NK5M4ZT8"},blog:!1,theme:{customCss:["/home/runner/work/langflow/langflow/docs/node_modules/@code-hike/mdx/dist/index.css","/home/runner/work/langflow/langflow/docs/css/custom.css","/home/runner/work/langflow/langflow/docs/css/docu-notion-styles.css","/home/runner/work/langflow/langflow/docs/css/gifplayer.css"]}}]],plugins:[["docusaurus-node-polyfills",{excludeAliases:["console"]}],"docusaurus-plugin-image-zoom",["@docusaurus/plugin-client-redirects",{redirects:[{to:"/",from:["/whats-new-a-new-chapter-langflow","/\ud83d\udc4b Welcome-to-Langflow","/getting-started-welcome-to-langflow","/guides-new-to-llms"]},{to:"/get-started-installation",from:["/getting-started-installation","/getting-started-common-installation-issues"]},{to:"/get-started-quickstart",from:"/getting-started-quickstart"},{to:"/tutorials-travel-planning-agent",from:["/starter-projects-dynamic-agent/","/starter-projects-travel-planning-agent"]},{to:"concepts-overview",from:["/workspace-overview","/365085a8-a90a-43f9-a779-f8769ec7eca1","/My-Collection","/workspace","/settings-project-general-settings"]},{to:"/concepts-components",from:["/components","/components-overview"]},{to:"/configuration-global-variables",from:"/settings-global-variables"},{to:"/concepts-playground",from:["/workspace-playground","/workspace-logs","/guides-chat-memory"]},{to:"/concepts-objects",from:["/guides-data-message","/configuration-objects"]},{to:"/tutorials-sequential-agent",from:"/starter-projects-sequential-agent"},{to:"/tutorials-blog-writer",from:"/starter-projects-blog-writer"},{to:"/tutorials-memory-chatbot",from:"/starter-projects-memory-chatbot"},{to:"/tutorials-document-qa",from:"/starter-projects-document-qa"},{to:"/components-vector-stores",from:"/components-rag"},{to:"/concepts-api",from:"/workspace-api"},{to:"/components-custom-components",from:"/components/custom"}]}],null],themeConfig:{navbar:{hideOnScroll:!0,logo:{alt:"Langflow",src:"img/langflow-logo-black.svg",srcDark:"img/langflow-logo-white.svg"},items:[{position:"right",href:"https://github.com/langflow-ai/langflow",className:"header-github-link",target:"_blank",rel:null},{position:"right",href:"https://twitter.com/langflow_ai",className:"header-twitter-link",target:"_blank",rel:null},{position:"right",href:"https://discord.gg/EqksyE2EX9",className:"header-discord-link",target:"_blank",rel:null}]},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!0},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},zoom:{selector:".markdown :not(a) > img:not(.no-zoom)",background:{light:"rgba(240, 240, 240, 0.9)"},config:{}},docs:{sidebar:{hideable:!1,autoCollapseCategories:!1},versionPersistence:"localStorage"},algolia:{appId:"UZK6BDPCVY",apiKey:"adbd7686dceb1cd510d5ce20d04bf74c",indexName:"langflow",contextualSearch:!0,searchParameters:{},searchPagePath:"search"},blog:{sidebar:{groupByYear:!0}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},baseUrlIssueBanner:!0,future:{experimental_faster:{swcJsLoader:!1,swcJsMinimizer:!1,swcHtmlMinimizer:!1,lightningCssMinimizer:!1,mdxCrossCompilerCache:!1,rspackBundler:!1},experimental_storage:{type:"localStorage",namespace:!1},experimental_router:"browser"},onDuplicateRoutes:"warn",customFields:{},themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{format:"mdx",mermaid:!1,mdx1Compat:{comments:!0,admonitions:!0,headingIds:!0},anchors:{maintainCase:!1}}}},5338:(e,t,n)=>{"use strict";var r=n(40961);t.createRoot=r.createRoot,t.hydrateRoot=r.hydrateRoot},5528:(e,t,n)=>{"use strict";n.d(t,{M:()=>f,e:()=>d});var r=n(96540),o=n(63065),a=n(86682),i=n(30604),l=n(53115),s=n(26849),c=n(74848);const u=r.createContext(void 0);function p(){const e=function(){const e=(0,o.YL)(),{items:t}=(0,l.p)().navbar;return 0===t.length&&!e.component}(),t=(0,a.l)(),n=!e&&"mobile"===t,[s,c]=(0,r.useState)(!1);(0,i.$Z)((()=>{if(s)return c(!1),!1}));const u=(0,r.useCallback)((()=>{c((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&c(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:u,shown:s})),[e,n,u,s])}function d(e){let{children:t}=e;const n=p();return(0,c.jsx)(u.Provider,{value:n,children:t})}function f(){const e=r.useContext(u);if(void 0===e)throw new s.dV("NavbarMobileSidebarProvider");return e}},5556:(e,t,n)=>{e.exports=n(2694)()},5947:function(e,t,n){var r,o;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
    '};function o(e,t,n){return en?n:e}function a(e){return 100*(-1+e)}function i(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),c=a.querySelector(r.barSelector),u=r.speed,p=r.easing;return a.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(c,i(e,u,p)),1===e?(s(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){s(a,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),l=e?"-100":a(n.status||0),c=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&f(o),c!=document.body&&u(c,"nprogress-custom-parent"),c.appendChild(t),t},n.remove=function(){p(document.documentElement,"nprogress-busy"),p(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[2])}}();function c(e,t){return("string"==typeof e?e:d(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=d(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function p(e,t){var n,r=d(e);c(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function d(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},6188:e=>{"use strict";e.exports=Math.max},6549:e=>{"use strict";e.exports=Object.getOwnPropertyDescriptor},6925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},6969:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to WebPlatform.org documentation. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (.comment can become .namespace--comment) or replace them with your defined ones (like .editor__comment). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the highlightAll and highlightAllUnder methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},7176:(e,t,n)=>{"use strict";var r,o=n(73126),a=n(75795);try{r=[].__proto__===Array.prototype}catch(c){if(!c||"object"!=typeof c||!("code"in c)||"ERR_PROTO_ACCESS"!==c.code)throw c}var i=!!r&&a&&a(Object.prototype,"__proto__"),l=Object,s=l.getPrototypeOf;e.exports=i&&"function"==typeof i.get?o([i.get]):"function"==typeof s&&function(e){return s(null==e?e:l(e))}},7463:(e,t,n)=>{"use strict";var r=n(96763);function o(e,t){var n=e.length;e.push(t);e:for(;0>>1,o=e[r];if(!(0>>1;rl(s,n))cl(u,s)?(e[r]=u,e[c]=n,r=c):(e[r]=s,e[i]=n,r=i);else{if(!(cl(u,n)))break e;e[r]=u,e[c]=n,r=c}}}return t}function l(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"==typeof performance&&"function"==typeof performance.now){var s=performance;t.unstable_now=function(){return s.now()}}else{var c=Date,u=c.now();t.unstable_now=function(){return c.now()-u}}var p=[],d=[],f=1,m=null,g=3,h=!1,y=!1,b=!1,v="function"==typeof setTimeout?setTimeout:null,w="function"==typeof clearTimeout?clearTimeout:null,k="undefined"!=typeof setImmediate?setImmediate:null;function x(e){for(var t=a(d);null!==t;){if(null===t.callback)i(d);else{if(!(t.startTime<=e))break;i(d),t.sortIndex=t.expirationTime,o(p,t)}t=a(d)}}function S(e){if(b=!1,x(e),!y)if(null!==a(p))y=!0,D(E);else{var t=a(d);null!==t&&L(S,t.startTime-e)}}function E(e,n){y=!1,b&&(b=!1,w(A),A=-1),h=!0;var r=g;try{for(x(n),m=a(p);null!==m&&(!(m.expirationTime>n)||e&&!T());){var o=m.callback;if("function"==typeof o){m.callback=null,g=m.priorityLevel;var l=o(m.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?m.callback=l:m===a(p)&&i(p),x(n)}else i(p);m=a(p)}if(null!==m)var s=!0;else{var c=a(d);null!==c&&L(S,c.startTime-n),s=!1}return s}finally{m=null,g=r,h=!1}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var _,j=!1,O=null,A=-1,C=5,P=-1;function T(){return!(t.unstable_now()-Pe||125i?(e.sortIndex=r,o(d,e),null===a(p)&&e===a(d)&&(b?(w(A),A=-1):b=!0,L(S,r-i))):(e.sortIndex=l,o(p,e),y||h||(y=!0,D(E))),e},t.unstable_shouldYield=T,t.unstable_wrapCallback=function(e){var t=g;return function(){var n=g;g=t;try{return e.apply(this,arguments)}finally{g=n}}}},8505:(e,t,n)=>{var r=n(64634);e.exports=m,e.exports.parse=a,e.exports.compile=function(e,t){return s(a(e,t),t)},e.exports.tokensToFunction=s,e.exports.tokensToRegExp=f;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function a(e,t){for(var n,r=[],a=0,l=0,s="",c=t&&t.delimiter||"/";null!=(n=o.exec(e));){var p=n[0],d=n[1],f=n.index;if(s+=e.slice(l,f),l=f+p.length,d)s+=d[1];else{var m=e[l],g=n[2],h=n[3],y=n[4],b=n[5],v=n[6],w=n[7];s&&(r.push(s),s="");var k=null!=g&&null!=m&&m!==g,x="+"===v||"*"===v,S="?"===v||"*"===v,E=g||c,_=y||b,j=g||("string"==typeof r[r.length-1]?r[r.length-1]:"");r.push({name:h||a++,prefix:g||"",delimiter:E,optional:S,repeat:x,partial:k,asterisk:!!w,pattern:_?u(_):w?".*":i(E,j)})}}return l-1?"[^"+c(e)+"]+?":c(t)+"|(?:(?!"+c(t)+")[^"+c(e)+"])+?"}function l(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function s(e,t){for(var n=new Array(e.length),o=0;o{"use strict";n.d(t,{G:()=>y,a:()=>h});var r=n(96540),o=n(61934),a=n(26849),i=n(78749),l=n(53115),s=n(74848);const c=r.createContext(void 0),u="theme",p=(0,i.Wf)(u),d={light:"light",dark:"dark"},f=e=>e===d.dark?d.dark:d.light,m=e=>o.A.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),g=e=>{p.set(f(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.p)(),[o,a]=(0,r.useState)(m(e));(0,r.useEffect)((()=>{t&&p.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:o=!0}=r;t?(a(t),o&&g(t)):(a(n?window.matchMedia("(prefers-color-scheme: dark)").matches?d.dark:d.light:e),p.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(o))}),[o]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=p.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:o,setColorMode:i,get isDarkTheme(){return o===d.dark},setLightTheme(){i(d.light)},setDarkTheme(){i(d.dark)}})),[o,i])}();return(0,s.jsx)(c.Provider,{value:n,children:t})}function y(){const e=(0,r.useContext)(c);if(null==e)throw new a.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},8722:(e,t,n)=>{var r=n(96763);const o=n(6969),a=n(98380),i=new Set;function l(e){void 0===e?e=Object.keys(o.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...i,...Object.keys(Prism.languages)];a(o,e,t).load((e=>{if(!(e in o.languages))return void(l.silent||r.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(63157).resolve(t)],delete Prism.languages[e],n(63157)(t),i.add(e)}))}l.silent=!1,e.exports=l},9136:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(96540),o=n(84974);function a(){return(0,r.useContext)(o.o)}},9303:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});n(96540);var r=n(18215),o=n(50539),a=n(53115),i=n(56289),l=n(25246);const s={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var c=n(74848);function u(e){let{as:t,id:n,...u}=e;const p=(0,l.A)(),{navbar:{hideOnScroll:d}}=(0,a.p)();if("h1"===t||!n)return(0,c.jsx)(t,{...u,id:void 0});p.collectAnchor(n);const f=(0,o.T)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof u.children?u.children:n});return(0,c.jsxs)(t,{...u,className:(0,r.A)("anchor",d?s.anchorWithHideOnScrollNavbar:s.anchorWithStickyNavbar,u.className),id:n,children:[u.children,(0,c.jsx)(i.A,{className:"hash-link",to:`#${n}`,"aria-label":f,title:f,children:"\u200b"})]})}},9394:(e,t,n)=>{"use strict";var r=n(89211);e.exports=function(){return"function"==typeof Object.is?Object.is:r}},9957:(e,t,n)=>{"use strict";var r=Function.prototype.call,o=Object.prototype.hasOwnProperty,a=n(66743);e.exports=a.call(r,o)},10076:e=>{"use strict";e.exports=Function.prototype.call},10487:(e,t,n)=>{"use strict";var r=n(96897),o=n(30655),a=n(73126),i=n(12205);e.exports=function(e){var t=a(arguments),n=e.length-(arguments.length-1);return r(t,1+(n>0?n:0),!0)},o?o(e.exports,"apply",{value:i}):e.exports.apply=i},11002:e=>{"use strict";e.exports=Function.prototype.apply},11514:(e,t,n)=>{"use strict";var r=n(38403);e.exports=function(){return Object.assign?function(){if(!Object.assign)return!1;for(var e="abcdefghijklmnopqrst",t=e.split(""),n={},r=0;r{"use strict";n.d(t,{A:()=>a});var r=!0,o="Invariant failed";function a(e,t){if(!e){if(r)throw new Error(o);var n="function"==typeof t?t():t,a=n?"".concat(o,": ").concat(n):o;throw new Error(a)}}},11835:(e,t,n)=>{"use strict";n.d(t,{c:()=>o});var r=n(40797);function o(){const{siteConfig:{themeConfig:e}}=(0,r.A)();return e}},11861:(e,t,n)=>{"use strict";function r(e,t){return void 0===t&&(t=(e,t)=>e===t),e.filter(((n,r)=>e.findIndex((e=>t(e,n)))!==r))}function o(e){return Array.from(new Set(e))}n.d(t,{XI:()=>r,sb:()=>o})},12205:(e,t,n)=>{"use strict";var r=n(66743),o=n(11002),a=n(13144);e.exports=function(){return a(r,o,arguments)}},12862:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});n(96540);var r=n(56289),o=n(29030),a=n(40797),i=n(53115),l=n(39324),s=n(74848);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const a={light:(0,o.Ay)(t.src),dark:(0,o.Ay)(t.srcDark||t.src)},i=(0,s.jsx)(l.A,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,s.jsx)("div",{className:r,children:i}):i}function u(e){const{siteConfig:{title:t}}=(0,a.A)(),{navbar:{title:n,logo:l}}=(0,i.p)(),{imageClassName:u,titleClassName:p,...d}=e,f=(0,o.Ay)(l?.href||"/"),m=n?"":t,g=l?.alt??m;return(0,s.jsxs)(r.A,{to:f,...d,...l?.target&&{target:l.target},children:[l&&(0,s.jsx)(c,{logo:l,alt:g,imageClassName:u}),null!=n&&(0,s.jsx)("b",{className:p,children:n})]})}},13003:e=>{"use strict";e.exports=function(e){return e!=e}},13144:(e,t,n)=>{"use strict";var r=n(66743),o=n(11002),a=n(10076),i=n(47119);e.exports=i||r.call(a,o)},13722:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function o(e){const t={};return function e(n,o){Object.entries(n).forEach((n=>{let[a,i]=n;const l=o?`${o}.${a}`:a;r(i)?e(i,l):t[l]=i}))}(e),t}},14035:(e,t,n)=>{"use strict";var r,o=n(36556),a=n(49092)(),i=n(9957),l=n(75795);if(a){var s=o("RegExp.prototype.exec"),c={},u=function(){throw c},p={toString:u,valueOf:u};"symbol"==typeof Symbol.toPrimitive&&(p[Symbol.toPrimitive]=u),r=function(e){if(!e||"object"!=typeof e)return!1;var t=l(e,"lastIndex");if(!(t&&i(t,"value")))return!1;try{s(e,p)}catch(n){return n===c}}}else{var d=o("Object.prototype.toString");r=function(e){return!(!e||"object"!=typeof e&&"function"!=typeof e)&&"[object RegExp]"===d(e)}}e.exports=r},15066:(e,t,n)=>{"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e)){var a=e.length;for(t=0;to});const o=function(){for(var e,t,n=0,o="",a=arguments.length;n{"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),s=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),d=Symbol.for("react.lazy"),f=Symbol.iterator;var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,h={};function y(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}function b(){}function v(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=y.prototype;var w=v.prototype=new b;w.constructor=v,g(w,y.prototype),w.isPureReactComponent=!0;var k=Array.isArray,x=Object.prototype.hasOwnProperty,S={current:null},E={key:!0,ref:!0,__self:!0,__source:!0};function _(e,t,r){var o,a={},i=null,l=null;if(null!=t)for(o in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)x.call(t,o)&&!E.hasOwnProperty(o)&&(a[o]=t[o]);var s=arguments.length-2;if(1===s)a.children=r;else if(1{"use strict";n.d(t,{A:()=>a});n(96540);const r={iconExternalLink:"iconExternalLink_nPIU"};var o=n(74848);function a(e){let{width:t=13.5,height:n=13.5}=e;return(0,o.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,o.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},18215:(e,t,n)=>{"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e)){var a=e.length;for(t=0;to});const o=function(){for(var e,t,n=0,o="",a=arguments.length;n{var r={"./":8722};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=18692},19700:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,l=i.length;-1!==n.code.indexOf(o=t(r,l));)++l;return i[l]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(l){for(var s=0;s=a.length);s++){var c=l[s];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=a[o],p=n.tokenStack[u],d="string"==typeof c?c:c.content,f=t(r,u),m=d.indexOf(f);if(m>-1){++o;var g=d.substring(0,m),h=new e.Token(r,e.tokenize(p,n.grammar),"language-"+r,p),y=d.substring(m+f.length),b=[];g&&b.push.apply(b,i([g])),b.push(h),y&&b.push.apply(b,i([y])),"string"==typeof c?l.splice.apply(l,[s,1].concat(b)):c.content=b}}else c.content&&i(c.content)}return l}(n.tokens)}}}})}(Prism)},20311:e=>{"use strict";e.exports=function(e,t,n,r,o,a,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,a,i,l],u=0;(s=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},21020:(e,t,n)=>{"use strict";var r=n(96540),o=Symbol.for("react.element"),a=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,l=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,n){var r,a={},c=null,u=null;for(r in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)i.call(t,r)&&!s.hasOwnProperty(r)&&(a[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===a[r]&&(a[r]=t[r]);return{$$typeof:o,type:e,key:c,ref:u,props:a,_owner:l.current}}t.Fragment=a,t.jsx=c,t.jsxs=c},21683:(e,t,n)=>{"use strict";n.r(t)},21858:(e,t,n)=>{"use strict";n.d(t,{n:()=>l,r:()=>s});var r=n(96540),o=n(26849),a=n(74848);const i=r.createContext(null);function l(e){let{children:t,version:n}=e;return(0,a.jsx)(i.Provider,{value:n,children:t})}function s(){const e=(0,r.useContext)(i);if(null===e)throw new o.dV("DocsVersionProvider");return e}},22306:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,t:()=>c});var r=n(96540),o=n(26849),a=n(74848);const i=Symbol("EmptyContext"),l=r.createContext(i);function s(e){let{children:t,name:n,items:o}=e;const i=(0,r.useMemo)((()=>n&&o?{name:n,items:o}:null),[n,o]);return(0,a.jsx)(l.Provider,{value:i,children:t})}function c(){const e=(0,r.useContext)(l);if(e===i)throw new o.dV("DocsSidebarProvider");return e}},22551:(e,t,n)=>{"use strict";var r=n(96763),o=n(96540),a=n(69982);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n
-

If you're familiar with ReactFlow, a flow is a node-based application, a component is a node, and the connections between components are edges.

+

If you're familiar with React Flow, a flow is a node-based application, a component is a node, and the connections between components are edges.

When a flow is run, Langflow builds a Directed Acyclic Graph (DAG) graph object from the nodes (components) and edges (connections between components), with the nodes sorted to determine the order of execution. The graph build calls the individual components' def_build functions to validate and prepare the nodes. This graph is then processed in dependency order. Each node is built and executed sequentially, with results from each built node being passed to nodes that are dependent on the previous node's results.

Flows are stored on local disk at these default locations:

Search
+
Search
\ No newline at end of file diff --git a/deployment-gcp.html b/deployment-gcp.html index 9c4ebae810..6580e87253 100644 --- a/deployment-gcp.html +++ b/deployment-gcp.html @@ -16,8 +16,8 @@ - - + + @@ -25,7 +25,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 5c02dfe130..9393f76fbf 100644 --- a/deployment-hugging-face-spaces.html +++ b/deployment-hugging-face-spaces.html @@ -16,8 +16,8 @@ - - + + @@ -25,7 +25,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 cf874e2ba2..212ffd8e20 100644 --- a/deployment-kubernetes.html +++ b/deployment-kubernetes.html @@ -16,8 +16,8 @@ - - + + @@ -25,7 +25,7 @@ -

    Kubernetes

    +

    Kubernetes

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

-

By following these steps, your Langflow instance will be successfully deployed on Render.

Search
+

By following these steps, your Langflow instance will be successfully deployed on Render.

Search
\ No newline at end of file diff --git a/environment-variables.html b/environment-variables.html index 46ece7b240..9b28beffd9 100644 --- a/environment-variables.html +++ b/environment-variables.html @@ -16,8 +16,8 @@ - - + + @@ -25,7 +25,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 163ddd8111..eb8fe84f19 100644 --- a/get-started-installation.html +++ b/get-started-installation.html @@ -16,8 +16,8 @@ - - + + @@ -25,13 +25,13 @@ -

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.

Prerequisites

diff --git a/get-started-quickstart.html b/get-started-quickstart.html index 219bf1d21e..a4d51cbb88 100644 --- a/get-started-quickstart.html +++ b/get-started-quickstart.html @@ -16,8 +16,8 @@ - - + + @@ -25,7 +25,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/img/component-structured-output.png b/img/component-structured-output.png new file mode 100644 index 0000000000..859982af5a Binary files /dev/null and b/img/component-structured-output.png differ diff --git a/index.html b/index.html index 0c9a76837b..6714552e00 100644 --- a/index.html +++ b/index.html @@ -16,8 +16,8 @@ - - + + @@ -25,7 +25,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-apify.html b/integrations-apify.html index bb336dce73..c8839a43e9 100644 --- a/integrations-apify.html +++ b/integrations-apify.html @@ -16,8 +16,8 @@ - - + + @@ -25,7 +25,7 @@ -

Integrate Apify with Langflow

+

Integrate Apify with Langflow

Apify is a web scraping and data extraction platform. It provides an app store with more than three thousand ready-made cloud tools called Actors.

The Apify components allow you to run Apify Actors in your flow to accomplish tasks such as:

    @@ -74,6 +74,6 @@

How to use Apify Actors in Langflow

-

First, you need to pick an Actor that you want to use in your flow from the Apify Actor Store. Then, create the Apify Actors component and input your Apify API token and the Actor ID. You can find the Actor ID in the Apify Actor Store, for instance, the Website Content Crawler has Actor ID apify/website-content-crawler. Now you can either connect the Tool output to an AI Agent or configure the Run input JSON manually and run the component to retrieve data from the Output Data. Example Run input can be obtained from the Actor details page in the Apify Actor Store. See the JSON Example in the input schema section here.

Search
+

First, you need to pick an Actor that you want to use in your flow from the Apify Actor Store. Then, create the Apify Actors component and input your Apify API token and the Actor ID. You can find the Actor ID in the Apify Actor Store, for instance, the Website Content Crawler has Actor ID apify/website-content-crawler. Now you can either connect the Tool output to an AI Agent or configure the Run input JSON manually and run the component to retrieve data from the Output Data. Example Run input can be obtained from the Actor details page in the Apify Actor Store. See the JSON Example in the input schema section here.

Search
\ No newline at end of file diff --git a/integrations-assemblyai.html b/integrations-assemblyai.html index 12593bc3d3..e2563b2010 100644 --- a/integrations-assemblyai.html +++ b/integrations-assemblyai.html @@ -16,8 +16,8 @@ - - + + @@ -25,7 +25,7 @@ -

AssemblyAI

+

AssemblyAI

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