diff --git a/404.html b/404.html index e58c487e3c..4ac0f917ed 100644 --- a/404.html +++ b/404.html @@ -21,7 +21,7 @@ - + diff --git a/agents-overview.html b/agents-overview.html index af7518d56b..17e5be582c 100644 --- a/agents-overview.html +++ b/agents-overview.html @@ -21,7 +21,7 @@ - + diff --git a/agents-tool-calling-agent-component.html b/agents-tool-calling-agent-component.html index 87b0b5b42f..a48a45f2d4 100644 --- a/agents-tool-calling-agent-component.html +++ b/agents-tool-calling-agent-component.html @@ -21,7 +21,7 @@ - + diff --git a/api-reference-api-examples.html b/api-reference-api-examples.html index 4e9fbe5757..24b47282f8 100644 --- a/api-reference-api-examples.html +++ b/api-reference-api-examples.html @@ -21,7 +21,7 @@ - + diff --git a/api.html b/api.html index 5fe306fa81..a1c1a6e0d7 100644 --- a/api.html +++ b/api.html @@ -21,7 +21,7 @@ - + diff --git a/api/add-user.html b/api/add-user.html index dabfea5ebf..38a9631fb3 100644 --- a/api/add-user.html +++ b/api/add-user.html @@ -21,7 +21,7 @@ - + diff --git a/api/auto-login.html b/api/auto-login.html index 8b397adfcb..764acdc569 100644 --- a/api/auto-login.html +++ b/api/auto-login.html @@ -21,7 +21,7 @@ - + diff --git a/api/build-flow.html b/api/build-flow.html index 54217916b5..cfaa7359b9 100644 --- a/api/build-flow.html +++ b/api/build-flow.html @@ -21,7 +21,7 @@ - + diff --git a/api/build-public-tmp.html b/api/build-public-tmp.html index 532d5e6dd3..b05d661a55 100644 --- a/api/build-public-tmp.html +++ b/api/build-public-tmp.html @@ -21,7 +21,7 @@ - + diff --git a/api/build-vertex-stream.html b/api/build-vertex-stream.html index a41c3f6da7..be4a59f803 100644 --- a/api/build-vertex-stream.html +++ b/api/build-vertex-stream.html @@ -21,7 +21,7 @@ - + diff --git a/api/build-vertex.html b/api/build-vertex.html index 9ae83cf631..6d65bcd5e2 100644 --- a/api/build-vertex.html +++ b/api/build-vertex.html @@ -21,7 +21,7 @@ - + diff --git a/api/cancel-build.html b/api/cancel-build.html index 1a4755eb11..31e279b061 100644 --- a/api/cancel-build.html +++ b/api/cancel-build.html @@ -21,7 +21,7 @@ - + diff --git a/api/check-if-store-has-api-key.html b/api/check-if-store-has-api-key.html index 59121fa594..decee3b178 100644 --- a/api/check-if-store-has-api-key.html +++ b/api/check-if-store-has-api-key.html @@ -21,7 +21,7 @@ - + diff --git a/api/check-if-store-is-enabled.html b/api/check-if-store-is-enabled.html index 276cc795b1..a88f12c65f 100644 --- a/api/check-if-store-is-enabled.html +++ b/api/check-if-store-is-enabled.html @@ -21,7 +21,7 @@ - + diff --git a/api/create-api-key-route.html b/api/create-api-key-route.html index 2c227a3218..7cd1115223 100644 --- a/api/create-api-key-route.html +++ b/api/create-api-key-route.html @@ -21,7 +21,7 @@ - + diff --git a/api/create-flow.html b/api/create-flow.html index 1b8598a41a..99f2d91f85 100644 --- a/api/create-flow.html +++ b/api/create-flow.html @@ -21,7 +21,7 @@ - + diff --git a/api/create-flows.html b/api/create-flows.html index 1a713c75ad..f768aa9162 100644 --- a/api/create-flows.html +++ b/api/create-flows.html @@ -21,7 +21,7 @@ - + diff --git a/api/create-folder.html b/api/create-folder.html index 22b0f6d601..4c9cf7032e 100644 --- a/api/create-folder.html +++ b/api/create-folder.html @@ -21,7 +21,7 @@ - + diff --git a/api/create-upload-file.html b/api/create-upload-file.html index fafc082e5b..3071720378 100644 --- a/api/create-upload-file.html +++ b/api/create-upload-file.html @@ -21,7 +21,7 @@ - + diff --git a/api/create-variable.html b/api/create-variable.html index 7b5ed5f791..0a48707d96 100644 --- a/api/create-variable.html +++ b/api/create-variable.html @@ -21,7 +21,7 @@ - + diff --git a/api/custom-component-update.html b/api/custom-component-update.html index 717bb02c38..a7b664971f 100644 --- a/api/custom-component-update.html +++ b/api/custom-component-update.html @@ -21,7 +21,7 @@ - + diff --git a/api/custom-component.html b/api/custom-component.html index b90077c31d..2b0c89c369 100644 --- a/api/custom-component.html +++ b/api/custom-component.html @@ -21,7 +21,7 @@ - + diff --git a/api/delete-all-files-1.html b/api/delete-all-files-1.html index 49de7f86c9..3cf7cfb529 100644 --- a/api/delete-all-files-1.html +++ b/api/delete-all-files-1.html @@ -21,7 +21,7 @@ - + diff --git a/api/delete-all-files.html b/api/delete-all-files.html index e4ebeab8a3..6cf9adcb21 100644 --- a/api/delete-all-files.html +++ b/api/delete-all-files.html @@ -21,7 +21,7 @@ - + diff --git a/api/delete-api-key-route.html b/api/delete-api-key-route.html index fdd78f9422..5b08ea2c85 100644 --- a/api/delete-api-key-route.html +++ b/api/delete-api-key-route.html @@ -21,7 +21,7 @@ - + diff --git a/api/delete-file-1.html b/api/delete-file-1.html index 1d03ee582a..2016e11840 100644 --- a/api/delete-file-1.html +++ b/api/delete-file-1.html @@ -21,7 +21,7 @@ - + diff --git a/api/delete-file.html b/api/delete-file.html index a634d49ebe..d9c4fd6acc 100644 --- a/api/delete-file.html +++ b/api/delete-file.html @@ -21,7 +21,7 @@ - + diff --git a/api/delete-flow.html b/api/delete-flow.html index f934a88ad0..19362da575 100644 --- a/api/delete-flow.html +++ b/api/delete-flow.html @@ -21,7 +21,7 @@ - + diff --git a/api/delete-folder.html b/api/delete-folder.html index c0f1a250be..7e02dfaaa6 100644 --- a/api/delete-folder.html +++ b/api/delete-folder.html @@ -21,7 +21,7 @@ - + diff --git a/api/delete-messages-session.html b/api/delete-messages-session.html index 0679069021..c30b983349 100644 --- a/api/delete-messages-session.html +++ b/api/delete-messages-session.html @@ -21,7 +21,7 @@ - + diff --git a/api/delete-messages.html b/api/delete-messages.html index 5ad3bb85b7..6a4ff56a91 100644 --- a/api/delete-messages.html +++ b/api/delete-messages.html @@ -21,7 +21,7 @@ - + diff --git a/api/delete-multiple-flows.html b/api/delete-multiple-flows.html index bd9b45639d..4fc9321842 100644 --- a/api/delete-multiple-flows.html +++ b/api/delete-multiple-flows.html @@ -21,7 +21,7 @@ - + diff --git a/api/delete-user.html b/api/delete-user.html index 273cb3e260..15ae71f818 100644 --- a/api/delete-user.html +++ b/api/delete-user.html @@ -21,7 +21,7 @@ - + diff --git a/api/delete-variable.html b/api/delete-variable.html index ef6ef0590c..00a531d898 100644 --- a/api/delete-variable.html +++ b/api/delete-variable.html @@ -21,7 +21,7 @@ - + diff --git a/api/delete-vertex-builds.html b/api/delete-vertex-builds.html index 26a438ff52..667265adc5 100644 --- a/api/delete-vertex-builds.html +++ b/api/delete-vertex-builds.html @@ -21,7 +21,7 @@ - + diff --git a/api/download-component.html b/api/download-component.html index fe240e673f..e351ce6e3c 100644 --- a/api/download-component.html +++ b/api/download-component.html @@ -21,7 +21,7 @@ - + diff --git a/api/download-file-1.html b/api/download-file-1.html index 901995ed20..c78cbefad3 100644 --- a/api/download-file-1.html +++ b/api/download-file-1.html @@ -21,7 +21,7 @@ - + diff --git a/api/download-file-2.html b/api/download-file-2.html index 14201650ad..c27d2fe8ee 100644 --- a/api/download-file-2.html +++ b/api/download-file-2.html @@ -21,7 +21,7 @@ - + diff --git a/api/download-file.html b/api/download-file.html index 9798679f11..9be1fe3da9 100644 --- a/api/download-file.html +++ b/api/download-file.html @@ -21,7 +21,7 @@ - + diff --git a/api/download-image.html b/api/download-image.html index abacb7d909..b704088279 100644 --- a/api/download-image.html +++ b/api/download-image.html @@ -21,7 +21,7 @@ - + diff --git a/api/download-multiple-file.html b/api/download-multiple-file.html index fcfaf37fb9..7b7ed8ffb5 100644 --- a/api/download-multiple-file.html +++ b/api/download-multiple-file.html @@ -21,7 +21,7 @@ - + diff --git a/api/download-profile-picture.html b/api/download-profile-picture.html index c57c0d27ae..522a9e259c 100644 --- a/api/download-profile-picture.html +++ b/api/download-profile-picture.html @@ -21,7 +21,7 @@ - + diff --git a/api/edit-file-name.html b/api/edit-file-name.html index aa70b296fa..2b0b443c4a 100644 --- a/api/edit-file-name.html +++ b/api/edit-file-name.html @@ -21,7 +21,7 @@ - + diff --git a/api/experimental-run-flow.html b/api/experimental-run-flow.html index 68bf3e21b5..0f1ee5e46b 100644 --- a/api/experimental-run-flow.html +++ b/api/experimental-run-flow.html @@ -21,7 +21,7 @@ - + diff --git a/api/get-all.html b/api/get-all.html index 336a0461bb..b283630096 100644 --- a/api/get-all.html +++ b/api/get-all.html @@ -21,7 +21,7 @@ - + diff --git a/api/get-api-keys-route.html b/api/get-api-keys-route.html index 228c599a5b..fd96efe3ad 100644 --- a/api/get-api-keys-route.html +++ b/api/get-api-keys-route.html @@ -21,7 +21,7 @@ - + diff --git a/api/get-build-events.html b/api/get-build-events.html index ab3656fa46..894ad86dd7 100644 --- a/api/get-build-events.html +++ b/api/get-build-events.html @@ -21,7 +21,7 @@ - + diff --git a/api/get-components.html b/api/get-components.html index 5263f33c55..2d0a481901 100644 --- a/api/get-components.html +++ b/api/get-components.html @@ -21,7 +21,7 @@ - + diff --git a/api/get-config.html b/api/get-config.html index 1d608562f5..f10b032c49 100644 --- a/api/get-config.html +++ b/api/get-config.html @@ -21,7 +21,7 @@ - + diff --git a/api/get-elevenlabs-voice-ids.html b/api/get-elevenlabs-voice-ids.html index 7e0ff7bafa..230f415237 100644 --- a/api/get-elevenlabs-voice-ids.html +++ b/api/get-elevenlabs-voice-ids.html @@ -21,7 +21,7 @@ - + diff --git a/api/get-list-of-components-liked-by-user.html b/api/get-list-of-components-liked-by-user.html index 7ed44e79fd..17c9f4a60c 100644 --- a/api/get-list-of-components-liked-by-user.html +++ b/api/get-list-of-components-liked-by-user.html @@ -21,7 +21,7 @@ - + diff --git a/api/get-messages.html b/api/get-messages.html index 8e38fc11b2..eca152d1c7 100644 --- a/api/get-messages.html +++ b/api/get-messages.html @@ -21,7 +21,7 @@ - + diff --git a/api/get-starter-projects.html b/api/get-starter-projects.html index 1c3ab04184..560302f3cf 100644 --- a/api/get-starter-projects.html +++ b/api/get-starter-projects.html @@ -21,7 +21,7 @@ - + diff --git a/api/get-tags.html b/api/get-tags.html index f4be2494c2..7376f3976e 100644 --- a/api/get-tags.html +++ b/api/get-tags.html @@ -21,7 +21,7 @@ - + diff --git a/api/get-task-status.html b/api/get-task-status.html index 5af03efd19..6f8c1d4fe3 100644 --- a/api/get-task-status.html +++ b/api/get-task-status.html @@ -21,7 +21,7 @@ - + diff --git a/api/get-transactions.html b/api/get-transactions.html index 3a9cda246a..6c143d695c 100644 --- a/api/get-transactions.html +++ b/api/get-transactions.html @@ -21,7 +21,7 @@ - + diff --git a/api/get-version.html b/api/get-version.html index 0f737122a3..777cfeb9f2 100644 --- a/api/get-version.html +++ b/api/get-version.html @@ -21,7 +21,7 @@ - + diff --git a/api/get-vertex-builds.html b/api/get-vertex-builds.html index 8cc585a7eb..1c24288950 100644 --- a/api/get-vertex-builds.html +++ b/api/get-vertex-builds.html @@ -21,7 +21,7 @@ - + diff --git a/api/handle-messages-1.html b/api/handle-messages-1.html index bf5cc39cdf..4a316e3576 100644 --- a/api/handle-messages-1.html +++ b/api/handle-messages-1.html @@ -21,7 +21,7 @@ - + diff --git a/api/handle-messages.html b/api/handle-messages.html index 80911c8a39..1f3bf219ed 100644 --- a/api/handle-messages.html +++ b/api/handle-messages.html @@ -21,7 +21,7 @@ - + diff --git a/api/handle-sse-1.html b/api/handle-sse-1.html index bfe89ceb54..699967257f 100644 --- a/api/handle-sse-1.html +++ b/api/handle-sse-1.html @@ -21,7 +21,7 @@ - + diff --git a/api/handle-sse.html b/api/handle-sse.html index cef4e7741c..83cedbe9e7 100644 --- a/api/handle-sse.html +++ b/api/handle-sse.html @@ -21,7 +21,7 @@ - + diff --git a/api/health-check.html b/api/health-check.html index 345538b1e2..687b3a6169 100644 --- a/api/health-check.html +++ b/api/health-check.html @@ -21,7 +21,7 @@ - + diff --git a/api/health.html b/api/health.html index 107fa569ce..e610e3ee29 100644 --- a/api/health.html +++ b/api/health.html @@ -21,7 +21,7 @@ - + diff --git a/api/like-component.html b/api/like-component.html index da8392ef2e..35d9b4234d 100644 --- a/api/like-component.html +++ b/api/like-component.html @@ -21,7 +21,7 @@ - + diff --git a/api/list-files-1.html b/api/list-files-1.html index c44b58cc18..69e41b13a2 100644 --- a/api/list-files-1.html +++ b/api/list-files-1.html @@ -21,7 +21,7 @@ - + diff --git a/api/list-files-2.html b/api/list-files-2.html index c2abbc1ff8..65e478be72 100644 --- a/api/list-files-2.html +++ b/api/list-files-2.html @@ -21,7 +21,7 @@ - + diff --git a/api/list-files.html b/api/list-files.html index ee35613f59..39f3f2dee0 100644 --- a/api/list-files.html +++ b/api/list-files.html @@ -21,7 +21,7 @@ - + diff --git a/api/list-profile-pictures.html b/api/list-profile-pictures.html index b9898ab4ca..5fdbe3eb05 100644 --- a/api/list-profile-pictures.html +++ b/api/list-profile-pictures.html @@ -21,7 +21,7 @@ - + diff --git a/api/login-to-get-access-token.html b/api/login-to-get-access-token.html index 61eefa017a..d93fe53553 100644 --- a/api/login-to-get-access-token.html +++ b/api/login-to-get-access-token.html @@ -21,7 +21,7 @@ - + diff --git a/api/logout.html b/api/logout.html index 53bcbed9fc..ec8232e8aa 100644 --- a/api/logout.html +++ b/api/logout.html @@ -21,7 +21,7 @@ - + diff --git a/api/logs.html b/api/logs.html index 00442a0d3e..21ee7e51b0 100644 --- a/api/logs.html +++ b/api/logs.html @@ -21,7 +21,7 @@ - + diff --git a/api/patch-user.html b/api/patch-user.html index c61474c81c..a05cec32c8 100644 --- a/api/patch-user.html +++ b/api/patch-user.html @@ -21,7 +21,7 @@ - + diff --git a/api/post-validate-code.html b/api/post-validate-code.html index 6684dd3569..d6959c1840 100644 --- a/api/post-validate-code.html +++ b/api/post-validate-code.html @@ -21,7 +21,7 @@ - + diff --git a/api/post-validate-prompt.html b/api/post-validate-prompt.html index 8e68f52946..c582d30fd9 100644 --- a/api/post-validate-prompt.html +++ b/api/post-validate-prompt.html @@ -21,7 +21,7 @@ - + diff --git a/api/process-1.html b/api/process-1.html index ce73903b21..9e597bc89f 100644 --- a/api/process-1.html +++ b/api/process-1.html @@ -21,7 +21,7 @@ - + diff --git a/api/process.html b/api/process.html index 9e2c87a3b2..772885b000 100644 --- a/api/process.html +++ b/api/process.html @@ -21,7 +21,7 @@ - + diff --git a/api/read-all-users.html b/api/read-all-users.html index 04c7427202..4130b81440 100644 --- a/api/read-all-users.html +++ b/api/read-all-users.html @@ -21,7 +21,7 @@ - + diff --git a/api/read-basic-examples.html b/api/read-basic-examples.html index 57466aa0b8..8e55803ea8 100644 --- a/api/read-basic-examples.html +++ b/api/read-basic-examples.html @@ -21,7 +21,7 @@ - + diff --git a/api/read-current-user.html b/api/read-current-user.html index 2a488ff581..1220d88a90 100644 --- a/api/read-current-user.html +++ b/api/read-current-user.html @@ -21,7 +21,7 @@ - + diff --git a/api/read-flow.html b/api/read-flow.html index 0c8b31414a..fb07624c4e 100644 --- a/api/read-flow.html +++ b/api/read-flow.html @@ -21,7 +21,7 @@ - + diff --git a/api/read-flows.html b/api/read-flows.html index 2fcc14c506..5747a1a0ff 100644 --- a/api/read-flows.html +++ b/api/read-flows.html @@ -21,7 +21,7 @@ - + diff --git a/api/read-folder.html b/api/read-folder.html index 20e9eee80a..ebb9546ed1 100644 --- a/api/read-folder.html +++ b/api/read-folder.html @@ -21,7 +21,7 @@ - + diff --git a/api/read-folders.html b/api/read-folders.html index bfa7e9a6ad..41777ba777 100644 --- a/api/read-folders.html +++ b/api/read-folders.html @@ -21,7 +21,7 @@ - + diff --git a/api/read-public-flow.html b/api/read-public-flow.html index 3f2310fa7f..449e398a4b 100644 --- a/api/read-public-flow.html +++ b/api/read-public-flow.html @@ -21,7 +21,7 @@ - + diff --git a/api/read-variables.html b/api/read-variables.html index 9431549cc3..c7b11a4ecd 100644 --- a/api/read-variables.html +++ b/api/read-variables.html @@ -21,7 +21,7 @@ - + diff --git a/api/refresh-token.html b/api/refresh-token.html index 8ec827f27f..e72246a043 100644 --- a/api/refresh-token.html +++ b/api/refresh-token.html @@ -21,7 +21,7 @@ - + diff --git a/api/reset-password.html b/api/reset-password.html index dde980b794..a35e05b75b 100644 --- a/api/reset-password.html +++ b/api/reset-password.html @@ -21,7 +21,7 @@ - + diff --git a/api/retrieve-vertices-order.html b/api/retrieve-vertices-order.html index ff13dcbaf1..94811a28ec 100644 --- a/api/retrieve-vertices-order.html +++ b/api/retrieve-vertices-order.html @@ -21,7 +21,7 @@ - + diff --git a/api/save-store-api-key.html b/api/save-store-api-key.html index ab05b4920b..e5c74a834d 100644 --- a/api/save-store-api-key.html +++ b/api/save-store-api-key.html @@ -21,7 +21,7 @@ - + diff --git a/api/share-component.html b/api/share-component.html index abd0ae1a29..a75382222d 100644 --- a/api/share-component.html +++ b/api/share-component.html @@ -21,7 +21,7 @@ - + diff --git a/api/simplified-run-flow.html b/api/simplified-run-flow.html index 9aa7ebbfe9..b1571ccca2 100644 --- a/api/simplified-run-flow.html +++ b/api/simplified-run-flow.html @@ -21,7 +21,7 @@ - + diff --git a/api/stream-logs.html b/api/stream-logs.html index 486d79400e..741dade7cd 100644 --- a/api/stream-logs.html +++ b/api/stream-logs.html @@ -21,7 +21,7 @@ - + diff --git a/api/update-flow.html b/api/update-flow.html index e7f5484357..9ad807e28a 100644 --- a/api/update-flow.html +++ b/api/update-flow.html @@ -21,7 +21,7 @@ - + diff --git a/api/update-folder.html b/api/update-folder.html index c84c2ce605..48d0a423d9 100644 --- a/api/update-folder.html +++ b/api/update-folder.html @@ -21,7 +21,7 @@ - + diff --git a/api/update-message.html b/api/update-message.html index 4d73945d7d..02832f3745 100644 --- a/api/update-message.html +++ b/api/update-message.html @@ -21,7 +21,7 @@ - + diff --git a/api/update-session-id.html b/api/update-session-id.html index eabf5e6be5..c3452b1151 100644 --- a/api/update-session-id.html +++ b/api/update-session-id.html @@ -21,7 +21,7 @@ - + diff --git a/api/update-shared-component.html b/api/update-shared-component.html index 96317f25f2..42bca319fe 100644 --- a/api/update-shared-component.html +++ b/api/update-shared-component.html @@ -21,7 +21,7 @@ - + diff --git a/api/update-variable.html b/api/update-variable.html index 49fec0251f..bd7d3cb46f 100644 --- a/api/update-variable.html +++ b/api/update-variable.html @@ -21,7 +21,7 @@ - + diff --git a/api/upload-file-1.html b/api/upload-file-1.html index e9093af55d..df255fdd40 100644 --- a/api/upload-file-1.html +++ b/api/upload-file-1.html @@ -21,7 +21,7 @@ - + diff --git a/api/upload-file-2.html b/api/upload-file-2.html index bc7e1671db..58766e705a 100644 --- a/api/upload-file-2.html +++ b/api/upload-file-2.html @@ -21,7 +21,7 @@ - + diff --git a/api/upload-file.html b/api/upload-file.html index 4e2e1d6e01..c668d908f2 100644 --- a/api/upload-file.html +++ b/api/upload-file.html @@ -21,7 +21,7 @@ - + diff --git a/api/upload-user-file-1.html b/api/upload-user-file-1.html index 11aeeb255d..e063d90463 100644 --- a/api/upload-user-file-1.html +++ b/api/upload-user-file-1.html @@ -21,7 +21,7 @@ - + diff --git a/api/upload-user-file.html b/api/upload-user-file.html index 8daea371ba..1e5f9fb7e3 100644 --- a/api/upload-user-file.html +++ b/api/upload-user-file.html @@ -21,7 +21,7 @@ - + diff --git a/api/webhook-run-flow.html b/api/webhook-run-flow.html index b919fbbba5..2ef5ca5558 100644 --- a/api/webhook-run-flow.html +++ b/api/webhook-run-flow.html @@ -21,7 +21,7 @@ - + diff --git a/assets/images/component-astra-db-json-tool-117aff566c0df01a555264bb128b3693.png b/assets/images/component-astra-db-json-tool-117aff566c0df01a555264bb128b3693.png new file mode 100644 index 0000000000..48bdfa4c56 Binary files /dev/null and b/assets/images/component-astra-db-json-tool-117aff566c0df01a555264bb128b3693.png differ diff --git a/assets/js/2ab0d4f5.89870f99.js b/assets/js/2ab0d4f5.89870f99.js deleted file mode 100644 index 4f84adaeda..0000000000 --- a/assets/js/2ab0d4f5.89870f99.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.3.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 \\"occaecat183\\": \\"\\",\\n \\"ex5\\": \\"\\",\\n \\"commodo_f5\\": \\"\\"\\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.a83dbeb1.js b/assets/js/2ab0d4f5.a83dbeb1.js new file mode 100644 index 0000000000..3757d5ec79 --- /dev/null +++ b/assets/js/2ab0d4f5.a83dbeb1.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.3.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 \\"ut912\\": \\"\\",\\n \\"sint_4_\\": \\"\\",\\n \\"veniam_8d\\": \\"\\",\\n \\"dolore_6\\": \\"\\"\\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/8ff68e6f.463a110e.js b/assets/js/8ff68e6f.463a110e.js new file mode 100644 index 0000000000..e4a3a8f92a --- /dev/null +++ b/assets/js/8ff68e6f.463a110e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[2624],{2015:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/mcp-server-component-sse-b8266a86288c1063ee67869373396035.png"},6961:(e,t,s)=>{s.r(t),s.d(t,{CH:()=>a,assets:()=>c,chCodeConfig:()=>x,contentTitle:()=>o,default:()=>p,frontMatter:()=>h,metadata:()=>n,toc:()=>j});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),l=s(84443);const h={title:"Tools",slug:"/components-tools"},o="Tool components in Langflow",c={},a={annotations:d.hk,Code:d.Cy},x={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},j=[{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:"Define Astra DB tool parameters",id:"define-astra-db-tool-parameters",level:3},{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 server",id:"mcp-server",level:2},{value:"MCP Server-Sent Events (SSE) mode",id:"mcp-server-sent-events-sse-mode",level:3},{value:"Inputs",id:"inputs-11",level:3},{value:"Outputs",id:"outputs-11",level:3},{value:"MCP Tools (stdio)",id:"mcp-tools-stdio",level:2},{value:"MCP Tools (SSE)",id:"mcp-tools-sse",level:2},{value:"Python Code Structured Tool",id:"python-code-structured-tool",level:2},{value:"Inputs",id:"inputs-12",level:3},{value:"Outputs",id:"outputs-12",level:3},{value:"Python REPL Tool",id:"python-repl-tool",level:2},{value:"Inputs",id:"inputs-13",level:3},{value:"Outputs",id:"outputs-13",level:3},{value:"Retriever Tool",id:"retriever-tool",level:2},{value:"Inputs",id:"inputs-14",level:3},{value:"Outputs",id:"outputs-14",level:3},{value:"SearXNG Search Tool",id:"searxng-search-tool",level:2},{value:"Inputs",id:"inputs-15",level:3},{value:"Outputs",id:"outputs-15",level:3},{value:"Search API",id:"search-api",level:2},{value:"Inputs",id:"inputs-16",level:3},{value:"Outputs",id:"outputs-16",level:3},{value:"Serp Search API",id:"serp-search-api",level:2},{value:"Inputs",id:"inputs-17",level:3},{value:"Outputs",id:"outputs-17",level:3},{value:"Tavily AI Search",id:"tavily-ai-search",level:2},{value:"Inputs",id:"inputs-18",level:3},{value:"Outputs",id:"outputs-18",level:3},{value:"Wikidata",id:"wikidata",level:2},{value:"Inputs",id:"inputs-19",level:3},{value:"Outputs",id:"outputs-19",level:3},{value:"Wikipedia API",id:"wikipedia-api",level:2},{value:"Inputs",id:"inputs-20",level:3},{value:"Outputs",id:"outputs-20",level:3},{value:"Wolfram Alpha API",id:"wolfram-alpha-api",level:2},{value:"Inputs",id:"inputs-21",level:3},{value:"Outputs",id:"outputs-21",level:3},{value:"Yahoo Finance News Tool",id:"yahoo-finance-news-tool",level:2},{value:"Inputs",id:"inputs-22",level:3},{value:"Outputs",id:"outputs-22",level:3}];function u(e){const t={a:"a",admonition:"admonition",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",ul:"ul",...(0,i.R)(),...e.components};return a||m("CH",!1),a.Code||m("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","\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.jsx)(t.p,{children:"This component allows agents to query data from Astra DB collections."}),"\n",(0,r.jsxs)(t.p,{children:["To use this tool in a flow, connect it to an ",(0,r.jsx)(t.strong,{children:"Agent"})," component.\nThe flow looks like this:"]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Astra DB JSON tool connected to an Agent",src:s(68335).A+"",width:"4000",height:"2742"})}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"Tool Name"})," and ",(0,r.jsx)(t.strong,{children:"Tool Description"})," fields are required for the Agent to decide when to use the tool.\n",(0,r.jsx)(t.strong,{children:"Tool Name"})," cannot contain spaces."]}),"\n",(0,r.jsxs)(t.p,{children:["The values for ",(0,r.jsx)(t.strong,{children:"Collection Name"}),", ",(0,r.jsx)(t.strong,{children:"Astra DB Application Token"}),", and ",(0,r.jsx)(t.strong,{children:"Astra DB API Endpoint"})," are found in your Astra DB deployment. For more information, see the ",(0,r.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/databases/create-database.html",children:"DataStax documentation"}),"."]}),"\n",(0,r.jsxs)(t.p,{children:["In this example, an ",(0,r.jsx)(t.strong,{children:"OpenAI"})," embeddings component is connected to use the Astra DB tool component's ",(0,r.jsx)(t.strong,{children:"Semantic Search"})," capability.\nTo use ",(0,r.jsx)(t.strong,{children:"Semantic Search"}),", you must have an embedding model or Astra DB Vectorize enabled.\nIf you try to run the flow without an embedding model, you will get an error."]}),"\n",(0,r.jsxs)(t.p,{children:["Open the ",(0,r.jsx)(t.strong,{children:"Playground"})," and ask a question about your data.\nThe Agent uses the ",(0,r.jsx)(t.strong,{children:"Astra DB Tool"})," to return information about your collection."]}),"\n",(0,r.jsx)(t.h3,{id:"define-astra-db-tool-parameters",children:"Define Astra DB tool parameters"}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"Tool Parameters"})," configuration pane allows you to define parameters for ",(0,r.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/api-reference/document-methods/find-many.html#parameters",children:"filter conditions"})," for the component's ",(0,r.jsx)(t.strong,{children:"Find"})," command."]}),"\n",(0,r.jsxs)(t.p,{children:["These filters become available as parameters that the LLM can use when calling the tool, with a better understanding of each parameter provided by the ",(0,r.jsx)(t.strong,{children:"Description"})," field."]}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["To define a parameter for your query, in the ",(0,r.jsx)(t.strong,{children:"Tool Parameters"})," pane, click ",(0,r.jsx)(l.A,{name:"Plus","aria-label":"Add"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Complete the fields based on your data. For example, with this filter, the LLM can filter by unique ",(0,r.jsx)(t.code,{children:"customer_id"})," values."]}),"\n"]}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:["Name: ",(0,r.jsx)(t.code,{children:"customer_id"})]}),"\n",(0,r.jsx)(t.li,{children:"Attribute Name: Leave empty if the attribute matches the field name in the database."}),"\n",(0,r.jsxs)(t.li,{children:["Description: ",(0,r.jsx)(t.code,{children:'"The unique identifier of the customer to filter by"'}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Is Metadata: ",(0,r.jsx)(t.code,{children:"False"})," unless the value stored in the metadata field."]}),"\n",(0,r.jsxs)(t.li,{children:["Is Mandatory: ",(0,r.jsx)(t.code,{children:"True"})," to require this filter."]}),"\n",(0,r.jsxs)(t.li,{children:["Is Timestamp: ",(0,r.jsx)(t.code,{children:"False"})," since the value is an ID, not a timestamp."]}),"\n",(0,r.jsxs)(t.li,{children:["Operator: ",(0,r.jsx)(t.code,{children:"$eq"})," to look for an exact match."]}),"\n"]}),"\n",(0,r.jsxs)(t.p,{children:["If you want to apply filters regardless of the LLM's input, use the ",(0,r.jsx)(t.strong,{children:"Static Filters"})," option, which is available in the component's ",(0,r.jsx)(t.strong,{children:"Controls"})," pane."]}),"\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:"Parameter"}),(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:"The name of the parameter that is exposed to the LLM. It can be the same as the underlying field name or a more descriptive label. The LLM uses this name, along with the description, to infer what value to provide during execution."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Attribute Name"}),(0,r.jsxs)(t.td,{children:["When the parameter name shown to the LLM differs from the actual field or property in the database, use this setting to map the user-facing name to the correct attribute. For example, to apply a range filter to the timestamp field, define two separate parameters, such as ",(0,r.jsx)(t.code,{children:"start_date"})," and ",(0,r.jsx)(t.code,{children:"end_date"}),", that both reference the same timestamp attribute."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Description"}),(0,r.jsxs)(t.td,{children:["Provides instructions to the LLM on how the parameter should be used. Clear and specific guidance helps the LLM provide valid input. For example, if a field such as ",(0,r.jsx)(t.code,{children:"specialty"})," is stored in lowercase, the description should indicate that the input must be lowercase."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Is Metadata"}),(0,r.jsxs)(t.td,{children:["When loading data using LangChain or Langflow, additional attributes may be stored under a metadata object. If the target attribute is stored this way, enable this option. It adjusts the query by generating a filter in the format: ",(0,r.jsx)(t.code,{children:'{"metadata.": ""}'})]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Is Timestamp"}),(0,r.jsx)(t.td,{children:"For date or time-based filters, enable this option to automatically convert values to the timestamp format that the Astrapy client expects. This ensures compatibility with the underlying API without requiring manual formatting."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Operator"}),(0,r.jsxs)(t.td,{children:["Defines the filtering logic applied to the attribute. You can use any valid ",(0,r.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/api-reference/filter-operator-collections.html",children:"Data API filter operator"}),". For example, to filter a time range on the timestamp attribute, use two parameters: one with the ",(0,r.jsx)(t.code,{children:"$gt"}),' operator for "greater than", and another with the ',(0,r.jsx)(t.code,{children:"$lt"}),' operator for "less than".']})]})]})]}),"\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.jsxs)(t.td,{children:["The attributes to return, separated by commas. The default is ",(0,r.jsx)(t.code,{children:"*"}),"."]})]}),(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.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"Data"})," output is used when directly querying Astra DB, while the ",(0,r.jsx)(t.strong,{children:"Tool"})," output is used when integrating with agents."]}),"\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. For more information, see ",(0,r.jsx)(t.a,{href:"https://www.icosacomputing.com/",children:"Icosa Computing"}),"."]}),"\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.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is in ",(0,r.jsx)(t.strong,{children:"Legacy"}),", which means it is no longer in active development as of Langflow version 1.3."]})}),"\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-server",children:"MCP server"}),"\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 and exposes the MCP server's tools as tools."]}),"\n",(0,r.jsxs)(t.p,{children:["In addition to being an MCP client that can leverage MCP servers, Langflow is also an MCP server that exposes flows as tools through the ",(0,r.jsx)(t.code,{children:"/api/v1/mcp/sse"})," API endpoint. For more information, see ",(0,r.jsx)(t.a,{href:"/integrations-mcp",children:"MCP integrations"}),"."]}),"\n",(0,r.jsx)(t.p,{children:"To use the MCP server component with an agent component, follow these steps:"}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsx)(t.li,{children:"Add the MCP server component to your workflow."}),"\n",(0,r.jsxs)(t.li,{children:["In the MCP server component, in the ",(0,r.jsx)(t.strong,{children:"MCP Command"})," field, enter the command to start your MCP server. For example, to start 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)(a.Code,{codeConfig:x,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.p,{children:[(0,r.jsx)(t.code,{children:"uvx"})," is included with ",(0,r.jsx)(t.code,{children:"uv"})," in the Langflow package.\nTo use ",(0,r.jsx)(t.code,{children:"npx"})," server commands, you must first install an LTS release of ",(0,r.jsx)(t.a,{href:"https://docs.npmjs.com/downloading-and-installing-node-js-and-npm",children:"Node.js"}),".\nFor an example of starting ",(0,r.jsx)(t.code,{children:"npx"})," MCP servers, see ",(0,r.jsx)(t.a,{href:"/mcp-component-astra",children:"Connect an Astra DB MCP server to Langflow"}),"."]}),"\n",(0,r.jsxs)(t.ol,{start:"3",children:["\n",(0,r.jsxs)(t.li,{children:["Click ",(0,r.jsx)(l.A,{name:"RefreshCw","aria-label":"Refresh"})," to get the server's list of ",(0,r.jsx)(t.strong,{children:"Tools"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Tool"})," field, select the server tool you want the component to use.\nThe available fields change based on the selected tool.\nFor information on the parameters, see the MCP server's documentation."]}),"\n",(0,r.jsxs)(t.li,{children:["In the MCP server component, enable ",(0,r.jsx)(t.strong,{children:"Tool mode"}),".\nConnect the MCP server component's ",(0,r.jsx)(t.strong,{children:"Toolset"})," port to an ",(0,r.jsx)(t.strong,{children:"Agent"})," component's ",(0,r.jsx)(t.strong,{children:"Tools"})," port."]}),"\n"]}),"\n",(0,r.jsxs)(t.p,{children:["The flow looks similar to this:\n",(0,r.jsx)(t.img,{alt:"MCP server component",src:s(78567).A+"",width:"2546",height:"1474"})]}),"\n",(0,r.jsxs)(t.ol,{start:"6",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 its tools are being used in Langflow."]}),"\n"]}),"\n",(0,r.jsxs)(t.p,{children:["For more information, see ",(0,r.jsx)(t.a,{href:"/integrations-mcp",children:"MCP integrations"}),"."]}),"\n",(0,r.jsx)(t.h3,{id:"mcp-server-sent-events-sse-mode",children:"MCP Server-Sent Events (SSE) mode"}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"MCP Server"})," component, select ",(0,r.jsx)(t.strong,{children:"SSE"}),".\nA default address appears in the ",(0,r.jsx)(t.strong,{children:"MCP SSE URL"})," field."]}),"\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"MCP SSE URL"})," field, modify the default address to point at the SSE endpoint of the Langflow server you're currently running.\nThe default value is ",(0,r.jsx)(t.code,{children:"http://localhost:7860/api/v1/mcp/sse"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"MCP Server"})," component, click ",(0,r.jsx)(l.A,{name:"RefreshCw","aria-label":"Refresh"})," to retrieve the server's list of ",(0,r.jsx)(t.strong,{children:"Tools"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Click the ",(0,r.jsx)(t.strong,{children:"Tools"})," field.\nAll of your flows are listed as tools."]}),"\n",(0,r.jsxs)(t.li,{children:["Enable ",(0,r.jsx)(t.strong,{children:"Tool Mode"}),", and then connect the ",(0,r.jsx)(t.strong,{children:"MCP Server"})," component to an agent component's tool port.\nThe flow looks like this:\n",(0,r.jsx)(t.img,{alt:"MCP server component",src:s(2015).A+"",width:"1195",height:"714"})]}),"\n",(0,r.jsxs)(t.li,{children:["Open the ",(0,r.jsx)(t.strong,{children:"Playground"})," and chat with your tool.\nThe agent chooses the correct tool based on your query."]}),"\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-stdio",children:"MCP Tools (stdio)"}),"\n",(0,r.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is deprecated as of Langflow version 1.3.\nInstead, use the ",(0,r.jsx)(t.a,{href:"/components-tools#mcp-server",children:"MCP server component"})]})}),"\n",(0,r.jsx)(t.h2,{id:"mcp-tools-sse",children:"MCP Tools (SSE)"}),"\n",(0,r.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is deprecated as of Langflow version 1.3.\nInstead, use the ",(0,r.jsx)(t.a,{href:"/components-tools#mcp-server",children:"MCP server component"})]})}),"\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-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.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-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:"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.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is in ",(0,r.jsx)(t.strong,{children:"Legacy"}),", which means it is no longer in active development as of Langflow version 1.3."]})}),"\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-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:"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-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:"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-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:"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-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:"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-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:"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-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:"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.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is in ",(0,r.jsx)(t.strong,{children:"Legacy"}),", which means it is no longer in active development as of Langflow version 1.3."]})}),"\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-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:"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-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:"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-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:"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-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:"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-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:"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-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:"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.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is in ",(0,r.jsx)(t.strong,{children:"Legacy"}),", which means it is no longer in active development as of Langflow version 1.3."]})}),"\n",(0,r.jsx)(t.p,{children:"This component performs a search using the Wikidata API."}),"\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.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-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 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.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is in ",(0,r.jsx)(t.strong,{children:"Legacy"}),", which means it is no longer in active development as of Langflow version 1.3."]})}),"\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-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:"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-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:"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-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:"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-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 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-22",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-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.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 p(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}function m(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"},68335:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/component-astra-db-json-tool-117aff566c0df01a555264bb128b3693.png"},78567:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/mcp-server-component-1335e50a6b27980cadb99acc22273562.png"},84443:(e,t,s)=>{s.d(t,{A:()=>i});s(96540);var n=s(64058),r=s(74848);function i(e){let{name:t,...s}=e;const i=n[t];return i?(0,r.jsx)(i,{...s}):null}}}]); \ No newline at end of file diff --git a/assets/js/8ff68e6f.be6ae30b.js b/assets/js/8ff68e6f.be6ae30b.js deleted file mode 100644 index 779b64fda4..0000000000 --- a/assets/js/8ff68e6f.be6ae30b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[2624],{2015:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/mcp-server-component-sse-b8266a86288c1063ee67869373396035.png"},6961:(e,t,s)=>{s.r(t),s.d(t,{CH:()=>a,assets:()=>o,chCodeConfig:()=>x,contentTitle:()=>c,default:()=>p,frontMatter:()=>h,metadata:()=>n,toc:()=>j});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),l=s(84443);const h={title:"Tools",slug:"/components-tools"},c="Tool components in Langflow",o={},a={annotations:d.hk,Code:d.Cy},x={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},j=[{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 server",id:"mcp-server",level:2},{value:"MCP Server-Sent Events (SSE) mode",id:"mcp-server-sent-events-sse-mode",level:3},{value:"Inputs",id:"inputs-11",level:3},{value:"Outputs",id:"outputs-11",level:3},{value:"MCP Tools (stdio)",id:"mcp-tools-stdio",level:2},{value:"MCP Tools (SSE)",id:"mcp-tools-sse",level:2},{value:"Python Code Structured Tool",id:"python-code-structured-tool",level:2},{value:"Inputs",id:"inputs-12",level:3},{value:"Outputs",id:"outputs-12",level:3},{value:"Python REPL Tool",id:"python-repl-tool",level:2},{value:"Inputs",id:"inputs-13",level:3},{value:"Outputs",id:"outputs-13",level:3},{value:"Retriever Tool",id:"retriever-tool",level:2},{value:"Inputs",id:"inputs-14",level:3},{value:"Outputs",id:"outputs-14",level:3},{value:"SearXNG Search Tool",id:"searxng-search-tool",level:2},{value:"Inputs",id:"inputs-15",level:3},{value:"Outputs",id:"outputs-15",level:3},{value:"Search API",id:"search-api",level:2},{value:"Inputs",id:"inputs-16",level:3},{value:"Outputs",id:"outputs-16",level:3},{value:"Serp Search API",id:"serp-search-api",level:2},{value:"Inputs",id:"inputs-17",level:3},{value:"Outputs",id:"outputs-17",level:3},{value:"Tavily AI Search",id:"tavily-ai-search",level:2},{value:"Inputs",id:"inputs-18",level:3},{value:"Outputs",id:"outputs-18",level:3},{value:"Wikidata",id:"wikidata",level:2},{value:"Inputs",id:"inputs-19",level:3},{value:"Outputs",id:"outputs-19",level:3},{value:"Wikipedia API",id:"wikipedia-api",level:2},{value:"Inputs",id:"inputs-20",level:3},{value:"Outputs",id:"outputs-20",level:3},{value:"Wolfram Alpha API",id:"wolfram-alpha-api",level:2},{value:"Inputs",id:"inputs-21",level:3},{value:"Outputs",id:"outputs-21",level:3},{value:"Yahoo Finance News Tool",id:"yahoo-finance-news-tool",level:2},{value:"Inputs",id:"inputs-22",level:3},{value:"Outputs",id:"outputs-22",level:3}];function u(e){const t={a:"a",admonition:"admonition",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 a||m("CH",!1),a.Code||m("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","\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.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is in ",(0,r.jsx)(t.strong,{children:"Legacy"}),", which means it is no longer in active development as of Langflow version 1.3."]})}),"\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-server",children:"MCP server"}),"\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 and exposes the MCP server's tools as tools."]}),"\n",(0,r.jsxs)(t.p,{children:["In addition to being an MCP client that can leverage MCP servers, Langflow is also an MCP server that exposes flows as tools through the ",(0,r.jsx)(t.code,{children:"/api/v1/mcp/sse"})," API endpoint. For more information, see ",(0,r.jsx)(t.a,{href:"/integrations-mcp",children:"MCP integrations"}),"."]}),"\n",(0,r.jsx)(t.p,{children:"To use the MCP server component with an agent component, follow these steps:"}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsx)(t.li,{children:"Add the MCP server component to your workflow."}),"\n",(0,r.jsxs)(t.li,{children:["In the MCP server component, in the ",(0,r.jsx)(t.strong,{children:"MCP Command"})," field, enter the command to start your MCP server. For example, to start 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)(a.Code,{codeConfig:x,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.p,{children:[(0,r.jsx)(t.code,{children:"uvx"})," is included with ",(0,r.jsx)(t.code,{children:"uv"})," in the Langflow package.\nTo use ",(0,r.jsx)(t.code,{children:"npx"})," server commands, you must first install an LTS release of ",(0,r.jsx)(t.a,{href:"https://docs.npmjs.com/downloading-and-installing-node-js-and-npm",children:"Node.js"}),".\nFor an example of starting ",(0,r.jsx)(t.code,{children:"npx"})," MCP servers, see ",(0,r.jsx)(t.a,{href:"/mcp-component-astra",children:"Connect an Astra DB MCP server to Langflow"}),"."]}),"\n",(0,r.jsxs)(t.ol,{start:"3",children:["\n",(0,r.jsxs)(t.li,{children:["Click ",(0,r.jsx)(l.A,{name:"RefreshCw","aria-label":"Refresh"})," to get the server's list of ",(0,r.jsx)(t.strong,{children:"Tools"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Tool"})," field, select the server tool you want the component to use.\nThe available fields change based on the selected tool.\nFor information on the parameters, see the MCP server's documentation."]}),"\n",(0,r.jsxs)(t.li,{children:["In the MCP server component, enable ",(0,r.jsx)(t.strong,{children:"Tool mode"}),".\nConnect the MCP server component's ",(0,r.jsx)(t.strong,{children:"Toolset"})," port to an ",(0,r.jsx)(t.strong,{children:"Agent"})," component's ",(0,r.jsx)(t.strong,{children:"Tools"})," port."]}),"\n"]}),"\n",(0,r.jsxs)(t.p,{children:["The flow looks similar to this:\n",(0,r.jsx)(t.img,{alt:"MCP server component",src:s(78567).A+"",width:"2546",height:"1474"})]}),"\n",(0,r.jsxs)(t.ol,{start:"6",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 its tools are being used in Langflow."]}),"\n"]}),"\n",(0,r.jsxs)(t.p,{children:["For more information, see ",(0,r.jsx)(t.a,{href:"/integrations-mcp",children:"MCP integrations"}),"."]}),"\n",(0,r.jsx)(t.h3,{id:"mcp-server-sent-events-sse-mode",children:"MCP Server-Sent Events (SSE) mode"}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"MCP Server"})," component, select ",(0,r.jsx)(t.strong,{children:"SSE"}),".\nA default address appears in the ",(0,r.jsx)(t.strong,{children:"MCP SSE URL"})," field."]}),"\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"MCP SSE URL"})," field, modify the default address to point at the SSE endpoint of the Langflow server you're currently running.\nThe default value is ",(0,r.jsx)(t.code,{children:"http://localhost:7860/api/v1/mcp/sse"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"MCP Server"})," component, click ",(0,r.jsx)(l.A,{name:"RefreshCw","aria-label":"Refresh"})," to retrieve the server's list of ",(0,r.jsx)(t.strong,{children:"Tools"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Click the ",(0,r.jsx)(t.strong,{children:"Tools"})," field.\nAll of your flows are listed as tools."]}),"\n",(0,r.jsxs)(t.li,{children:["Enable ",(0,r.jsx)(t.strong,{children:"Tool Mode"}),", and then connect the ",(0,r.jsx)(t.strong,{children:"MCP Server"})," component to an agent component's tool port.\nThe flow looks like this:\n",(0,r.jsx)(t.img,{alt:"MCP server component",src:s(2015).A+"",width:"1195",height:"714"})]}),"\n",(0,r.jsxs)(t.li,{children:["Open the ",(0,r.jsx)(t.strong,{children:"Playground"})," and chat with your tool.\nThe agent chooses the correct tool based on your query."]}),"\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-stdio",children:"MCP Tools (stdio)"}),"\n",(0,r.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is deprecated as of Langflow version 1.3.\nInstead, use the ",(0,r.jsx)(t.a,{href:"/components-tools#mcp-server",children:"MCP server component"})]})}),"\n",(0,r.jsx)(t.h2,{id:"mcp-tools-sse",children:"MCP Tools (SSE)"}),"\n",(0,r.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is deprecated as of Langflow version 1.3.\nInstead, use the ",(0,r.jsx)(t.a,{href:"/components-tools#mcp-server",children:"MCP server component"})]})}),"\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-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.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-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:"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.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is in ",(0,r.jsx)(t.strong,{children:"Legacy"}),", which means it is no longer in active development as of Langflow version 1.3."]})}),"\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-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:"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-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:"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-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:"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-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:"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-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:"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-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:"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.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is in ",(0,r.jsx)(t.strong,{children:"Legacy"}),", which means it is no longer in active development as of Langflow version 1.3."]})}),"\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-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:"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-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:"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-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:"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-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:"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-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:"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-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:"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.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is in ",(0,r.jsx)(t.strong,{children:"Legacy"}),", which means it is no longer in active development as of Langflow version 1.3."]})}),"\n",(0,r.jsx)(t.p,{children:"This component performs a search using the Wikidata API."}),"\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.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-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 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.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is in ",(0,r.jsx)(t.strong,{children:"Legacy"}),", which means it is no longer in active development as of Langflow version 1.3."]})}),"\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-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:"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-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:"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-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:"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-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 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-22",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-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.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 p(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}function m(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"},78567:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/mcp-server-component-1335e50a6b27980cadb99acc22273562.png"},84443:(e,t,s)=>{s.d(t,{A:()=>i});s(96540);var n=s(64058),r=s(74848);function i(e){let{name:t,...s}=e;const i=n[t];return i?(0,r.jsx)(i,{...s}):null}}}]); \ No newline at end of file diff --git a/assets/js/c39b795e.b8b8ca64.js b/assets/js/c39b795e.ead0f1d0.js similarity index 80% rename from assets/js/c39b795e.b8b8ca64.js rename to assets/js/c39b795e.ead0f1d0.js index 34330d86b1..5e5aed63ca 100644 --- a/assets/js/c39b795e.b8b8ca64.js +++ b/assets/js/c39b795e.ead0f1d0.js @@ -1 +1 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[7338],{31154:(e,t,n)=>{n.r(t),n.d(t,{CH:()=>a,assets:()=>h,chCodeConfig:()=>u,contentTitle:()=>c,default:()=>p,frontMatter:()=>l,metadata:()=>s,toc:()=>x});const s=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=n(74848),d=n(28453),i=n(24754),o=n(84443);const l={title:"Helpers",slug:"/components-helpers"},c="Helper components in Langflow",h={},a={annotations:i.hk,Code:i.Cy},u={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},x=[{value:"Use a helper component in a flow",id:"use-a-helper-component-in-a-flow",level:2},{value:"Batch Run",id:"batch-run",level:2},{value:"Inputs",id:"inputs",level:3},{value:"Outputs",id:"outputs",level:3},{value:"Current date",id:"current-date",level:2},{value:"Inputs",id:"inputs-1",level:3},{value:"Outputs",id:"outputs-1",level:3},{value:"ID Generator",id:"id-generator",level:2},{value:"Inputs",id:"inputs-2",level:3},{value:"Outputs",id:"outputs-2",level:3},{value:"Message history",id:"message-history",level:2},{value:"Inputs",id:"inputs-3",level:3},{value:"Outputs",id:"outputs-3",level:3},{value:"Message store",id:"message-store",level:2},{value:"Inputs",id:"inputs-4",level:3},{value:"Outputs",id:"outputs-4",level:3},{value:"Structured output",id:"structured-output",level:2},{value:"Inputs",id:"inputs-5",level:3},{value:"Outputs",id:"outputs-5",level:3},{value:"Legacy components",id:"legacy-components",level:2},{value:"Create List",id:"create-list",level:3},{value:"Inputs",id:"inputs-6",level:4},{value:"Outputs",id:"outputs-6",level:4},{value:"Output Parser",id:"output-parser",level:3},{value:"Inputs",id:"inputs-7",level:4},{value:"Outputs",id:"outputs-7",level:4}];function j(e){const t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,d.R)(),...e.components};return a||m("CH",!1),a.Code||m("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","\n",(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:n(72654).A+"",width:"3178",height:"1228"})}),"\n",(0,r.jsx)(t.h2,{id:"batch-run",children:"Batch Run"}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"Batch Run"})," component runs a language model over ",(0,r.jsx)(t.strong,{children:"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 an LLM response."]}),"\n",(0,r.jsx)(t.p,{children:"The response contains the following columns:"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"text_input"}),": The original text from the input DataFrame."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"model_response"}),": The model's response for each input."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"batch_index"}),": The processing order, with a ",(0,r.jsx)(t.code,{children:"0"}),"-based index."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"metadata"})," (optional): Additional information about the processing."]}),"\n"]}),"\n",(0,r.jsxs)(t.p,{children:["These columns, when connected to a ",(0,r.jsx)(t.strong,{children:"Parser"})," component, can be used as variables within curly braces."]}),"\n",(0,r.jsxs)(t.p,{children:["To use the Batch Run component with a ",(0,r.jsx)(t.strong,{children:"Parser"})," component, do the following:"]}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["Connect a ",(0,r.jsx)(t.strong,{children:"Model"})," component to the ",(0,r.jsx)(t.strong,{children:"Batch Run"})," component's ",(0,r.jsx)(t.strong,{children:"Language model"})," port."]}),"\n",(0,r.jsxs)(t.li,{children:["Connect a component that outputs DataFrame, like ",(0,r.jsx)(t.strong,{children:"File"})," component, to the ",(0,r.jsx)(t.strong,{children:"Batch Run"})," component's ",(0,r.jsx)(t.strong,{children:"DataFrame"})," input."]}),"\n",(0,r.jsxs)(t.li,{children:["Connect the ",(0,r.jsx)(t.strong,{children:"Batch Run"})," component's ",(0,r.jsx)(t.strong,{children:"Batch Results"})," output to a ",(0,r.jsx)(t.strong,{children:"Parser"})," component's ",(0,r.jsx)(t.strong,{children:"DataFrame"})," input.\nThe flow looks like this:"]}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"A batch run component connected to OpenAI and a Parser",src:n(88103).A+"",width:"1776",height:"1370"})}),"\n",(0,r.jsxs)(t.ol,{start:"4",children:["\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Column Name"})," field of the ",(0,r.jsx)(t.strong,{children:"Batch Run"})," component, enter a column name based on the data you're loading from the ",(0,r.jsx)(t.strong,{children:"File"})," loader. For example, to process a column of ",(0,r.jsx)(t.code,{children:"name"}),", enter ",(0,r.jsx)(t.code,{children:"name"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Optionally, in the ",(0,r.jsx)(t.strong,{children:"System Message"})," field of the ",(0,r.jsx)(t.strong,{children:"Batch Run"})," component, enter a ",(0,r.jsx)(t.strong,{children:"System Message"})," to instruct the connected LLM on how to process your file. For example, ",(0,r.jsx)(t.code,{children:"Create a business card for each name."})]}),"\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Template"})," field of the ",(0,r.jsx)(t.strong,{children:"Parser"})," component, enter a template for using the ",(0,r.jsx)(t.strong,{children:"Batch Run"})," component's new DataFrame columns.\nTo use all three columns from the ",(0,r.jsx)(t.strong,{children:"Batch Run"})," component, include them like this:"]}),"\n"]}),"\n",(0,r.jsx)(a.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"record_number: {batch_index}, name: {text_input}, summary: {model_response}",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(t.ol,{start:"7",children:["\n",(0,r.jsxs)(t.li,{children:["To run the flow, in the ",(0,r.jsx)(t.strong,{children:"Parser"})," component, click ",(0,r.jsx)(o.A,{name:"Play","aria-label":"Play icon"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["To view your created DataFrame, in the ",(0,r.jsx)(t.strong,{children:"Parser"})," component, click ",(0,r.jsx)(o.A,{name:"TextSearch","aria-label":"Inspect icon"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Optionally, connect a ",(0,r.jsx)(t.strong,{children:"Chat Output"})," component, and open the ",(0,r.jsx)(t.strong,{children:"Playground"})," to see the output."]}),"\n"]}),"\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.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. Required."})]}),(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.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 is treated as text messages, as specified by 'column_name'. Required."})]}),(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:"MessageTextInput"}),(0,r.jsx)(t.td,{children:"The name of the DataFrame column to treat as text messages. Default='text'. Required."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"enable_metadata"}),(0,r.jsx)(t.td,{children:"Enable Metadata"}),(0,r.jsx)(t.td,{children:"BoolInput"}),(0,r.jsx)(t.td,{children:"If True, add metadata to the output DataFrame."})]})]})]}),"\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 columns: 'text_input', 'model_response', 'batch_index', and optional 'metadata' containing processing information."})]})})]}),"\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-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:"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-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:"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-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:"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-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:"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 chat messages from Langflow tables or external memory."}),"\n",(0,r.jsxs)(t.p,{children:["In this example, the ",(0,r.jsx)(t.strong,{children:"Message Store"})," component stores the complete chat history in a local Langflow table, which the ",(0,r.jsx)(t.strong,{children:"Message History"})," component retrieves as context for the LLM to answer each question."]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Message store and history components",src:n(77111).A+"",width:"2778",height:"1166"})}),"\n",(0,r.jsxs)(t.p,{children:["For more information on configuring memory in Langflow, see ",(0,r.jsx)(t.a,{href:"/memory",children:"Memory"}),"."]}),"\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.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-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.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 in Langflow tables or external memory."}),"\n",(0,r.jsxs)(t.p,{children:["In this example, the ",(0,r.jsx)(t.strong,{children:"Message Store"})," component stores the complete chat history in a local Langflow table, which the ",(0,r.jsx)(t.strong,{children:"Message History"})," component retrieves as context for the LLM to answer each question."]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Message store and history components",src:n(77111).A+"",width:"2778",height:"1166"})}),"\n",(0,r.jsxs)(t.p,{children:["For more information on configuring memory in Langflow, see ",(0,r.jsx)(t.a,{href:"/memory",children:"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:"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-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.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:n(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-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:"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-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.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."]})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"legacy-components",children:"Legacy components"}),"\n",(0,r.jsx)(t.p,{children:"Legacy components are no longer in active development but are backward compatible."}),"\n",(0,r.jsx)(t.h3,{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.h4,{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:"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.h4,{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:"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.h3,{id:"output-parser",children:"Output Parser"}),"\n",(0,r.jsxs)(t.p,{children:["This component transforms the output of a language model into a specified format. It supports CSV format parsing, which converts LLM responses into comma-separated lists using Langchain's ",(0,r.jsx)(t.code,{children:"CommaSeparatedListOutputParser"}),"."]}),"\n",(0,r.jsx)(t.admonition,{type:"note",children:(0,r.jsx)(t.p,{children:"This component only provides formatting instructions and parsing functionality. It does not include a prompt. You'll need to connect it to a separate Prompt component to create the actual prompt template for the LLM to use."})}),"\n",(0,r.jsxs)(t.p,{children:["Both the ",(0,r.jsx)(t.strong,{children:"Output Parser"})," and ",(0,r.jsx)(t.strong,{children:"Structured Output"})," components format LLM responses, but they have different use cases.\nThe ",(0,r.jsx)(t.strong,{children:"Output Parser"})," is simpler and focused on converting responses into comma-separated lists. Use this when you just need a list of items, for example ",(0,r.jsx)(t.code,{children:'["item1", "item2", "item3"]'}),".\nThe ",(0,r.jsx)(t.strong,{children:"Structured Output"})," is more complex and flexible, and allows you to define custom schemas with multiple fields of different types. Use this when you need to extract structured data with specific fields and types."]}),"\n",(0,r.jsx)(t.p,{children:"To use this component:"}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["Create a Prompt component and connect the Output Parser's ",(0,r.jsx)(t.code,{children:"format_instructions"})," output to it. This ensures the LLM knows how to format its response."]}),"\n",(0,r.jsxs)(t.li,{children:["Write your actual prompt text in the Prompt component, including the ",(0,r.jsx)(t.code,{children:"{format_instructions}"})," variable.\nFor example, in your Prompt component, the template might look like:"]}),"\n"]}),"\n",(0,r.jsx)(a.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{format_instructions}",props:{}}]},{tokens:[{content:"Please list three fruits.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(t.ol,{start:"3",children:["\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Connect the ",(0,r.jsx)(t.code,{children:"output_parser"})," output to your LLM model."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["The output parser converts this into a Python list: ",(0,r.jsx)(t.code,{children:'["apple", "banana", "orange"]'}),"."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(t.h4,{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.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"parser_type"}),(0,r.jsx)(t.td,{children:"Parser"}),(0,r.jsx)(t.td,{children:'Select the parser type. Currently supports "CSV".'})]})})]}),"\n",(0,r.jsx)(t.h4,{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.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"format_instructions"}),(0,r.jsx)(t.td,{children:"Format Instructions"}),(0,r.jsx)(t.td,{children:"Pass to a prompt template to include formatting instructions for LLM responses."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"output_parser"}),(0,r.jsx)(t.td,{children:"Output Parser"}),(0,r.jsx)(t.td,{children:"The constructed output parser that can be used to parse LLM responses."})]})]})]})]})}function p(e={}){const{wrapper:t}={...(0,d.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(j,{...e})}):j(e)}function m(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},72654:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/astra_db_chat_memory_rounded-9746ca2bb69d3b07ac0a071f4b9471b3.png"},77111:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/component-message-history-message-store-be0396aefa69496e8bc21452d240e04d.png"},82798:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/component-structured-output-7bb5a996464cb83d4c94a893419bb176.png"},84443:(e,t,n)=>{n.d(t,{A:()=>d});n(96540);var s=n(64058),r=n(74848);function d(e){let{name:t,...n}=e;const d=s[t];return d?(0,r.jsx)(d,{...n}):null}},88103:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/component-batch-run-0ad3fa6f082eb01504dae7df3cc4daad.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[7338],{31154:(e,t,n)=>{n.r(t),n.d(t,{CH:()=>a,assets:()=>h,chCodeConfig:()=>u,contentTitle:()=>c,default:()=>p,frontMatter:()=>l,metadata:()=>s,toc:()=>x});const s=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=n(74848),d=n(28453),i=n(24754),o=n(84443);const l={title:"Helpers",slug:"/components-helpers"},c="Helper components in Langflow",h={},a={annotations:i.hk,Code:i.Cy},u={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},x=[{value:"Use a helper component in a flow",id:"use-a-helper-component-in-a-flow",level:2},{value:"Batch Run",id:"batch-run",level:2},{value:"Inputs",id:"inputs",level:3},{value:"Outputs",id:"outputs",level:3},{value:"Current date",id:"current-date",level:2},{value:"Inputs",id:"inputs-1",level:3},{value:"Outputs",id:"outputs-1",level:3},{value:"ID Generator",id:"id-generator",level:2},{value:"Inputs",id:"inputs-2",level:3},{value:"Outputs",id:"outputs-2",level:3},{value:"Message history",id:"message-history",level:2},{value:"Inputs",id:"inputs-3",level:3},{value:"Outputs",id:"outputs-3",level:3},{value:"Message store",id:"message-store",level:2},{value:"Inputs",id:"inputs-4",level:3},{value:"Outputs",id:"outputs-4",level:3},{value:"Structured output",id:"structured-output",level:2},{value:"Inputs",id:"inputs-5",level:3},{value:"Outputs",id:"outputs-5",level:3},{value:"Legacy components",id:"legacy-components",level:2},{value:"Create List",id:"create-list",level:3},{value:"Inputs",id:"inputs-6",level:4},{value:"Outputs",id:"outputs-6",level:4},{value:"Output Parser",id:"output-parser",level:3},{value:"Inputs",id:"inputs-7",level:4},{value:"Outputs",id:"outputs-7",level:4}];function j(e){const t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,d.R)(),...e.components};return a||m("CH",!1),a.Code||m("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","\n",(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:n(72654).A+"",width:"3178",height:"1228"})}),"\n",(0,r.jsx)(t.h2,{id:"batch-run",children:"Batch Run"}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"Batch Run"})," component runs a language model over ",(0,r.jsx)(t.strong,{children:"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 an LLM response."]}),"\n",(0,r.jsx)(t.p,{children:"The response contains the following columns:"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"text_input"}),": The original text from the input DataFrame."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"model_response"}),": The model's response for each input."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"batch_index"}),": The processing order, with a ",(0,r.jsx)(t.code,{children:"0"}),"-based index."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"metadata"})," (optional): Additional information about the processing."]}),"\n"]}),"\n",(0,r.jsxs)(t.p,{children:["These columns, when connected to a ",(0,r.jsx)(t.strong,{children:"Parser"})," component, can be used as variables within curly braces."]}),"\n",(0,r.jsxs)(t.p,{children:["To use the Batch Run component with a ",(0,r.jsx)(t.strong,{children:"Parser"})," component, do the following:"]}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["Connect a ",(0,r.jsx)(t.strong,{children:"Model"})," component to the ",(0,r.jsx)(t.strong,{children:"Batch Run"})," component's ",(0,r.jsx)(t.strong,{children:"Language model"})," port."]}),"\n",(0,r.jsxs)(t.li,{children:["Connect a component that outputs DataFrame, like ",(0,r.jsx)(t.strong,{children:"File"})," component, to the ",(0,r.jsx)(t.strong,{children:"Batch Run"})," component's ",(0,r.jsx)(t.strong,{children:"DataFrame"})," input."]}),"\n",(0,r.jsxs)(t.li,{children:["Connect the ",(0,r.jsx)(t.strong,{children:"Batch Run"})," component's ",(0,r.jsx)(t.strong,{children:"Batch Results"})," output to a ",(0,r.jsx)(t.strong,{children:"Parser"})," component's ",(0,r.jsx)(t.strong,{children:"DataFrame"})," input.\nThe flow looks like this:"]}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"A batch run component connected to OpenAI and a Parser",src:n(88103).A+"",width:"1776",height:"1370"})}),"\n",(0,r.jsxs)(t.ol,{start:"4",children:["\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Column Name"})," field of the ",(0,r.jsx)(t.strong,{children:"Batch Run"})," component, enter a column name based on the data you're loading from the ",(0,r.jsx)(t.strong,{children:"File"})," loader. For example, to process a column of ",(0,r.jsx)(t.code,{children:"name"}),", enter ",(0,r.jsx)(t.code,{children:"name"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Optionally, in the ",(0,r.jsx)(t.strong,{children:"System Message"})," field of the ",(0,r.jsx)(t.strong,{children:"Batch Run"})," component, enter a ",(0,r.jsx)(t.strong,{children:"System Message"})," to instruct the connected LLM on how to process your file. For example, ",(0,r.jsx)(t.code,{children:"Create a business card for each name."})]}),"\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Template"})," field of the ",(0,r.jsx)(t.strong,{children:"Parser"})," component, enter a template for using the ",(0,r.jsx)(t.strong,{children:"Batch Run"})," component's new DataFrame columns.\nTo use all three columns from the ",(0,r.jsx)(t.strong,{children:"Batch Run"})," component, include them like this:"]}),"\n"]}),"\n",(0,r.jsx)(a.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"record_number: {batch_index}, name: {text_input}, summary: {model_response}",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(t.ol,{start:"7",children:["\n",(0,r.jsxs)(t.li,{children:["To run the flow, in the ",(0,r.jsx)(t.strong,{children:"Parser"})," component, click ",(0,r.jsx)(o.A,{name:"Play","aria-label":"Play icon"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["To view your created DataFrame, in the ",(0,r.jsx)(t.strong,{children:"Parser"})," component, click ",(0,r.jsx)(o.A,{name:"TextSearch","aria-label":"Inspect icon"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Optionally, connect a ",(0,r.jsx)(t.strong,{children:"Chat Output"})," component, and open the ",(0,r.jsx)(t.strong,{children:"Playground"})," to see the output."]}),"\n"]}),"\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.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. Required."})]}),(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.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 is treated as text messages, as specified by 'column_name'. Required."})]}),(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:"MessageTextInput"}),(0,r.jsx)(t.td,{children:"The name of the DataFrame column to treat as text messages. Default='text'. Required."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"enable_metadata"}),(0,r.jsx)(t.td,{children:"Enable Metadata"}),(0,r.jsx)(t.td,{children:"BoolInput"}),(0,r.jsx)(t.td,{children:"If True, add metadata to the output DataFrame."})]})]})]}),"\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 columns: 'text_input', 'model_response', 'batch_index', and optional 'metadata' containing processing information."})]})})]}),"\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-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:"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-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:"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-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:"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-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:"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 chat messages from Langflow tables or external memory."}),"\n",(0,r.jsxs)(t.p,{children:["In this example, the ",(0,r.jsx)(t.strong,{children:"Message Store"})," component stores the complete chat history in a local Langflow table, which the ",(0,r.jsx)(t.strong,{children:"Message History"})," component retrieves as context for the LLM to answer each question."]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Message store and history components",src:n(77111).A+"",width:"2778",height:"1166"})}),"\n",(0,r.jsxs)(t.p,{children:["For more information on configuring memory in Langflow, see ",(0,r.jsx)(t.a,{href:"/memory",children:"Memory"}),"."]}),"\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.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-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.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 in Langflow tables or external memory."}),"\n",(0,r.jsxs)(t.p,{children:["In this example, the ",(0,r.jsx)(t.strong,{children:"Message Store"})," component stores the complete chat history in a local Langflow table, which the ",(0,r.jsx)(t.strong,{children:"Message History"})," component retrieves as context for the LLM to answer each question."]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Message store and history components",src:n(77111).A+"",width:"2778",height:"1166"})}),"\n",(0,r.jsxs)(t.p,{children:["For more information on configuring memory in Langflow, see ",(0,r.jsx)(t.a,{href:"/memory",children:"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:"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-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.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:n(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-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:"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-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.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."]})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"legacy-components",children:"Legacy components"}),"\n",(0,r.jsx)(t.p,{children:"Legacy components are available for use but are no longer supported."}),"\n",(0,r.jsx)(t.h3,{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.h4,{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:"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.h4,{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:"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.h3,{id:"output-parser",children:"Output Parser"}),"\n",(0,r.jsxs)(t.p,{children:["This component transforms the output of a language model into a specified format. It supports CSV format parsing, which converts LLM responses into comma-separated lists using Langchain's ",(0,r.jsx)(t.code,{children:"CommaSeparatedListOutputParser"}),"."]}),"\n",(0,r.jsx)(t.admonition,{type:"note",children:(0,r.jsx)(t.p,{children:"This component only provides formatting instructions and parsing functionality. It does not include a prompt. You'll need to connect it to a separate Prompt component to create the actual prompt template for the LLM to use."})}),"\n",(0,r.jsxs)(t.p,{children:["Both the ",(0,r.jsx)(t.strong,{children:"Output Parser"})," and ",(0,r.jsx)(t.strong,{children:"Structured Output"})," components format LLM responses, but they have different use cases.\nThe ",(0,r.jsx)(t.strong,{children:"Output Parser"})," is simpler and focused on converting responses into comma-separated lists. Use this when you just need a list of items, for example ",(0,r.jsx)(t.code,{children:'["item1", "item2", "item3"]'}),".\nThe ",(0,r.jsx)(t.strong,{children:"Structured Output"})," is more complex and flexible, and allows you to define custom schemas with multiple fields of different types. Use this when you need to extract structured data with specific fields and types."]}),"\n",(0,r.jsx)(t.p,{children:"To use this component:"}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["Create a Prompt component and connect the Output Parser's ",(0,r.jsx)(t.code,{children:"format_instructions"})," output to it. This ensures the LLM knows how to format its response."]}),"\n",(0,r.jsxs)(t.li,{children:["Write your actual prompt text in the Prompt component, including the ",(0,r.jsx)(t.code,{children:"{format_instructions}"})," variable.\nFor example, in your Prompt component, the template might look like:"]}),"\n"]}),"\n",(0,r.jsx)(a.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{format_instructions}",props:{}}]},{tokens:[{content:"Please list three fruits.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(t.ol,{start:"3",children:["\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Connect the ",(0,r.jsx)(t.code,{children:"output_parser"})," output to your LLM model."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["The output parser converts this into a Python list: ",(0,r.jsx)(t.code,{children:'["apple", "banana", "orange"]'}),"."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(t.h4,{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.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"parser_type"}),(0,r.jsx)(t.td,{children:"Parser"}),(0,r.jsx)(t.td,{children:'Select the parser type. Currently supports "CSV".'})]})})]}),"\n",(0,r.jsx)(t.h4,{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.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"format_instructions"}),(0,r.jsx)(t.td,{children:"Format Instructions"}),(0,r.jsx)(t.td,{children:"Pass to a prompt template to include formatting instructions for LLM responses."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"output_parser"}),(0,r.jsx)(t.td,{children:"Output Parser"}),(0,r.jsx)(t.td,{children:"The constructed output parser that can be used to parse LLM responses."})]})]})]})]})}function p(e={}){const{wrapper:t}={...(0,d.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(j,{...e})}):j(e)}function m(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},72654:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/astra_db_chat_memory_rounded-9746ca2bb69d3b07ac0a071f4b9471b3.png"},77111:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/component-message-history-message-store-be0396aefa69496e8bc21452d240e04d.png"},82798:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/component-structured-output-7bb5a996464cb83d4c94a893419bb176.png"},84443:(e,t,n)=>{n.d(t,{A:()=>d});n(96540);var s=n(64058),r=n(74848);function d(e){let{name:t,...n}=e;const d=s[t];return d?(0,r.jsx)(d,{...n}):null}},88103:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/component-batch-run-0ad3fa6f082eb01504dae7df3cc4daad.png"}}]); \ No newline at end of file diff --git a/assets/js/e6c6a4d2.051a5811.js b/assets/js/e6c6a4d2.50cbe440.js similarity index 55% rename from assets/js/e6c6a4d2.051a5811.js rename to assets/js/e6c6a4d2.50cbe440.js index ecd290b891..254b96daee 100644 --- a/assets/js/e6c6a4d2.051a5811.js +++ b/assets/js/e6c6a4d2.50cbe440.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.3.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 \\"eu_4e\\": \\"\\"\\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.3.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 \\"deserunt_a3\\": \\"\\",\\n \\"officiab\\": \\"\\",\\n \\"ad_19c\\": \\"\\",\\n \\"in_f\\": \\"\\",\\n \\"officia_e0e\\": \\"\\"\\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/runtime~main.389c3261.js b/assets/js/runtime~main.0cf34111.js similarity index 80% rename from assets/js/runtime~main.389c3261.js rename to assets/js/runtime~main.0cf34111.js index f16251fb68..6973306e0d 100644 --- a/assets/js/runtime~main.389c3261.js +++ b/assets/js/runtime~main.0cf34111.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,c,f,b,d={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var c=t[e]={id:e,loaded:!1,exports:{}};return d[e].call(c.exports,c,c.exports,r),c.loaded=!0,c.exports}r.m=d,r.c=t,e=[],r.O=(a,c,f,b)=>{if(!c){var d=1/0;for(i=0;i=b)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,b0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[c,f,b]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var d={};a=a||[null,c({}),c([]),c(c)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=c(t))Object.getOwnPropertyNames(t).forEach((a=>d[a]=()=>e[a]));return d.default=()=>e,r.d(b,d),b},r.d=(e,a)=>{for(var c in a)r.o(a,c)&&!r.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,c)=>(r.f[c](e,a),a)),[])),r.u=e=>"assets/js/"+({51:"b7251463",145:"0be1d5fe",191:"c643a6d5",230:"bc63ae25",265:"d3ca7a96",321:"6e1a9721",417:"93e16042",444:"14f42f9e",730:"86b18dd0",762:"4af57a32",768:"6d684b63",787:"672a0eba",800:"a4c0ff01",868:"dc7b1ef3",944:"d3600190",957:"c141421f",964:"05d835b4",982:"021496c4",1022:"8a61012d",1035:"24d32e91",1067:"4b04f5bc",1079:"f5818e36",1185:"c2de64b8",1227:"647965d5",1394:"8054effa",1488:"ac3cc3f5",1500:"1e9025f7",1556:"264ffc80",1563:"3ef76b56",1567:"22dd74f7",1625:"92852ade",1690:"41a97a99",1841:"de94873f",1845:"2ab0d4f5",1956:"fe6f9601",2008:"7ad92a12",2073:"7b7db446",2097:"338a6f8e",2138:"1a4e3797",2273:"e756fa26",2288:"faf7ef88",2551:"394022bb",2624:"8ff68e6f",2657:"a3ab51d1",2777:"b3ba68b4",2818:"a9b73094",3040:"2148ae42",3110:"6a2beaac",3247:"bd7ab245",3327:"6aa941bb",3347:"b5257597",3391:"f66238ae",3576:"64045095",3694:"c2b1730c",3740:"f113d167",3758:"a963b3cb",3832:"c3d82421",3859:"7679ca6e",3917:"c8dad5f1",3964:"829ff4d2",3968:"0e5205b8",4028:"c2ebd62a",4046:"9ac856ad",4133:"5cf11f26",4526:"8311683c",4615:"6801371f",4633:"c563aec0",4645:"fef056e9",4778:"e189eece",4784:"438e4337",4806:"fba42286",4841:"8298c1cb",4891:"ca67d85f",4930:"d2ad385b",4931:"a9b4f8aa",4954:"a71efd4a",4973:"2d2c4fcb",5107:"10156854",5109:"3542ed72",5138:"309383dc",5179:"41e3c105",5195:"b1ab2a41",5281:"a0511a5b",5284:"64ca91f1",5304:"7dbff1af",5339:"9447891f",5395:"98058046",5425:"ee32130c",5467:"40d13080",5474:"d175aa8b",5475:"18f3809a",5513:"20d49d07",5514:"02955c09",5562:"20e9af62",5572:"873ebc27",5628:"a83bc7c0",5634:"9822a706",5647:"885eb549",5673:"73af8c33",5716:"946d1cee",5718:"5ccf4833",5742:"aba21aa0",5772:"4e7126f8",5865:"e1766139",5866:"3b577cbb",5883:"61cfab8e",5894:"f178e9b3",5979:"a3a1efc2",6003:"4d983c8e",6008:"445668ec",6053:"dfc50084",6066:"3f19c00a",6080:"4d15791b",6147:"ab17fe15",6201:"9ab37888",6214:"b1220dbd",6281:"c96ce3ed",6332:"873508e7",6350:"188ee668",6419:"96eb0e67",6445:"9fb9a766",6473:"4c5e977b",6511:"320c2db0",6550:"05fbee1a",6559:"6f13807a",6682:"5a6d6120",6890:"8b85e1d0",6920:"c817e236",6934:"d745f4e6",6949:"b36bb719",7088:"91282a5c",7098:"a7bd4aaa",7108:"688feaef",7118:"4ce9199e",7142:"d0c1f670",7159:"aecfdd3d",7165:"547df4a1",7211:"cacdc615",7338:"c39b795e",7339:"7a774ddf",7408:"3ae94ad4",7453:"fdefa9a8",7462:"921b5fc1",7472:"744aaf8b",7507:"be76515e",7713:"3a82b27e",7894:"0f44198a",8031:"25bf2d67",8054:"85112c90",8064:"274fd934",8085:"cc44357e",8102:"019dbd1f",8184:"222029a9",8188:"ecd67556",8196:"75a9e1e0",8208:"216e3ed7",8245:"5e834a3c",8298:"153f2b62",8304:"73d1a090",8356:"c6a5eaec",8374:"261f8123",8401:"17896441",8504:"e6c6a4d2",8598:"44dfcf75",8661:"8f774222",8679:"3705a9c0",8921:"45476a69",8927:"ae68aa8b",8929:"172b3cfb",8953:"adef6868",8977:"e5eb12ce",9036:"850d3674",9048:"a94703ab",9099:"b1bc5ffe",9126:"169603ea",9141:"19136925",9306:"667d0790",9371:"991799c5",9431:"cd8dccb5",9453:"913561e8",9455:"54175a6c",9476:"57c9a2b8",9479:"4e038a6a",9483:"7823fa72",9555:"dedd5914",9619:"29b8e27a",9642:"eae80ce0",9647:"5e95c892",9681:"5ff9f4db",9705:"ee3b5967",9751:"25255263",9789:"537e1953",9836:"b3c57e4b",9905:"43df3697"}[e]||e)+"."+{51:"41498688",145:"9d54f496",191:"2bae48f1",230:"84fd9c8d",265:"b8b17601",321:"3ffaf0d0",417:"d44a3301",444:"14c35ee4",730:"e24ec551",756:"240f2e9c",762:"f26eeca8",768:"9f6e007c",787:"9a1de1a3",800:"62f90b59",868:"43e6daba",900:"f83a9a5d",944:"ad8345f5",957:"da9e1d2b",964:"0af714e4",982:"ff691944",1022:"e9c465bb",1035:"c2ed48ac",1067:"1fc10d8a",1079:"812abec2",1185:"becf3f8a",1227:"efa89a5e",1394:"c6bf3115",1488:"0fd73816",1500:"ce3c2155",1556:"3b4cb9c7",1563:"892a275e",1567:"dc682ff7",1625:"14cdddbe",1690:"70f2fcf5",1809:"2ba71c72",1841:"2b011ec8",1845:"89870f99",1956:"df0c249e",2008:"7ff881a6",2073:"0a119e11",2097:"e2eb4320",2138:"02023697",2273:"8c679b2a",2288:"c860cf3b",2551:"2affcfca",2624:"be6ae30b",2657:"e301f410",2777:"e5097595",2818:"a12a157b",3040:"d5e98483",3042:"f1fb0b14",3110:"0cb7cba6",3247:"60a3cf4e",3327:"ea2cd923",3347:"cad1b409",3391:"bd741176",3576:"85569c4d",3694:"b3375515",3740:"dcdb4594",3758:"72774151",3832:"caaff358",3859:"5206be4c",3917:"5b041d0c",3964:"33002324",3968:"6d49ed88",3997:"ff54fe17",4028:"6050659f",4046:"f7eca8e9",4058:"44d6af12",4133:"56fe7f12",4526:"46dbc5ed",4615:"82ac6ca0",4633:"2670172c",4645:"738e26df",4778:"677c7100",4784:"6f0477c6",4806:"0f85ccb8",4841:"96f5aab2",4891:"028b84a6",4930:"dfda092c",4931:"1f0853a9",4954:"3ee764ef",4973:"76d07199",5107:"834b40b5",5109:"534de25b",5138:"82fa1659",5179:"3a01e125",5195:"bebcd954",5281:"274e41a2",5284:"5ba358fc",5304:"11ff4120",5339:"f2d6d66a",5395:"155b5cc5",5425:"e3d3bacd",5467:"ea36d716",5474:"7bfcedc5",5475:"d430c771",5513:"9ee47fd7",5514:"4b31d3e9",5562:"10eed1f2",5572:"f7be1bf9",5628:"42006513",5634:"f0694192",5647:"1223eeb9",5673:"9e6c75bf",5716:"a6a99e6e",5718:"31276840",5742:"60b1d5b2",5772:"39c29abd",5865:"f19aeb98",5866:"24fce326",5883:"be0b7a4b",5894:"1eb32a42",5979:"bc33f247",6003:"1b762c05",6008:"5253986f",6053:"282a111f",6066:"076e5cc7",6080:"4c16e2f6",6147:"0bd0c5ae",6201:"01e4e67e",6214:"36f07cd2",6281:"0f993e93",6332:"82b6fb32",6350:"e3ef1aad",6419:"a4ac69bf",6445:"4782f40a",6473:"b5e32ff9",6511:"0ce0f4b4",6550:"5ba8d59c",6559:"175e0ba0",6682:"b23e427b",6890:"af012556",6920:"32ebf47d",6934:"b1764cb8",6949:"81ddd898",7088:"1f49a1ed",7098:"d9bb61a0",7108:"33a95549",7118:"67e70c99",7142:"1ab1d124",7159:"c7233aca",7165:"628c4fdd",7211:"2931db6c",7338:"b8b8ca64",7339:"341b74a4",7408:"ff99b619",7453:"94ce1e19",7462:"eb44547e",7472:"0ff40a39",7507:"b5ebd895",7713:"7e880e1f",7894:"6aa722d7",8031:"d39ee16a",8054:"b01ef0b9",8064:"8479c14a",8085:"42d21f57",8102:"f87dbf62",8158:"20de8b80",8184:"05ecb008",8188:"219f4971",8196:"44d52b3d",8208:"c52abbdf",8245:"d723ee5e",8298:"6d11f562",8304:"818899b3",8356:"ff51d102",8374:"349c447e",8401:"bf953603",8504:"051a5811",8598:"70cf61ed",8661:"d1261411",8679:"0cffe9bc",8913:"47209f3b",8921:"9f5ccac6",8927:"9d9ff467",8929:"99703724",8953:"f5324ebd",8977:"637025ee",9036:"d0d09670",9048:"810f8ad8",9099:"d785ef9f",9126:"7fa8d7d2",9141:"d3838c09",9306:"8ecb1a62",9371:"91236628",9431:"a391eb1d",9453:"087d9888",9455:"d3aec949",9476:"e9c48620",9479:"1dbfc60c",9483:"ea776824",9555:"ca8bb7aa",9619:"9f160532",9642:"167c6e45",9647:"e6d9c2b6",9681:"1f0feb15",9705:"871cbdcd",9729:"2f32331e",9751:"397cc7c0",9789:"02bccaec",9836:"69fcbaa3",9905:"83748fd4"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},b="langflow-docs:",r.l=(e,a,c,d)=>{if(f[e])f[e].push(a);else{var t,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var b=f[e];if(delete f[e],t.parentNode&&t.parentNode.removeChild(t),b&&b.forEach((e=>e(c))),a)return a(c)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=u.bind(null,t.onerror),t.onload=u.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.p="/",r.gca=function(e){return e={10156854:"5107",17896441:"8401",19136925:"9141",25255263:"9751",64045095:"3576",98058046:"5395",b7251463:"51","0be1d5fe":"145",c643a6d5:"191",bc63ae25:"230",d3ca7a96:"265","6e1a9721":"321","93e16042":"417","14f42f9e":"444","86b18dd0":"730","4af57a32":"762","6d684b63":"768","672a0eba":"787",a4c0ff01:"800",dc7b1ef3:"868",d3600190:"944",c141421f:"957","05d835b4":"964","021496c4":"982","8a61012d":"1022","24d32e91":"1035","4b04f5bc":"1067",f5818e36:"1079",c2de64b8:"1185","647965d5":"1227","8054effa":"1394",ac3cc3f5:"1488","1e9025f7":"1500","264ffc80":"1556","3ef76b56":"1563","22dd74f7":"1567","92852ade":"1625","41a97a99":"1690",de94873f:"1841","2ab0d4f5":"1845",fe6f9601:"1956","7ad92a12":"2008","7b7db446":"2073","338a6f8e":"2097","1a4e3797":"2138",e756fa26:"2273",faf7ef88:"2288","394022bb":"2551","8ff68e6f":"2624",a3ab51d1:"2657",b3ba68b4:"2777",a9b73094:"2818","2148ae42":"3040","6a2beaac":"3110",bd7ab245:"3247","6aa941bb":"3327",b5257597:"3347",f66238ae:"3391",c2b1730c:"3694",f113d167:"3740",a963b3cb:"3758",c3d82421:"3832","7679ca6e":"3859",c8dad5f1:"3917","829ff4d2":"3964","0e5205b8":"3968",c2ebd62a:"4028","9ac856ad":"4046","5cf11f26":"4133","8311683c":"4526","6801371f":"4615",c563aec0:"4633",fef056e9:"4645",e189eece:"4778","438e4337":"4784",fba42286:"4806","8298c1cb":"4841",ca67d85f:"4891",d2ad385b:"4930",a9b4f8aa:"4931",a71efd4a:"4954","2d2c4fcb":"4973","3542ed72":"5109","309383dc":"5138","41e3c105":"5179",b1ab2a41:"5195",a0511a5b:"5281","64ca91f1":"5284","7dbff1af":"5304","9447891f":"5339",ee32130c:"5425","40d13080":"5467",d175aa8b:"5474","18f3809a":"5475","20d49d07":"5513","02955c09":"5514","20e9af62":"5562","873ebc27":"5572",a83bc7c0:"5628","9822a706":"5634","885eb549":"5647","73af8c33":"5673","946d1cee":"5716","5ccf4833":"5718",aba21aa0:"5742","4e7126f8":"5772",e1766139:"5865","3b577cbb":"5866","61cfab8e":"5883",f178e9b3:"5894",a3a1efc2:"5979","4d983c8e":"6003","445668ec":"6008",dfc50084:"6053","3f19c00a":"6066","4d15791b":"6080",ab17fe15:"6147","9ab37888":"6201",b1220dbd:"6214",c96ce3ed:"6281","873508e7":"6332","188ee668":"6350","96eb0e67":"6419","9fb9a766":"6445","4c5e977b":"6473","320c2db0":"6511","05fbee1a":"6550","6f13807a":"6559","5a6d6120":"6682","8b85e1d0":"6890",c817e236:"6920",d745f4e6:"6934",b36bb719:"6949","91282a5c":"7088",a7bd4aaa:"7098","688feaef":"7108","4ce9199e":"7118",d0c1f670:"7142",aecfdd3d:"7159","547df4a1":"7165",cacdc615:"7211",c39b795e:"7338","7a774ddf":"7339","3ae94ad4":"7408",fdefa9a8:"7453","921b5fc1":"7462","744aaf8b":"7472",be76515e:"7507","3a82b27e":"7713","0f44198a":"7894","25bf2d67":"8031","85112c90":"8054","274fd934":"8064",cc44357e:"8085","019dbd1f":"8102","222029a9":"8184",ecd67556:"8188","75a9e1e0":"8196","216e3ed7":"8208","5e834a3c":"8245","153f2b62":"8298","73d1a090":"8304",c6a5eaec:"8356","261f8123":"8374",e6c6a4d2:"8504","44dfcf75":"8598","8f774222":"8661","3705a9c0":"8679","45476a69":"8921",ae68aa8b:"8927","172b3cfb":"8929",adef6868:"8953",e5eb12ce:"8977","850d3674":"9036",a94703ab:"9048",b1bc5ffe:"9099","169603ea":"9126","667d0790":"9306","991799c5":"9371",cd8dccb5:"9431","913561e8":"9453","54175a6c":"9455","57c9a2b8":"9476","4e038a6a":"9479","7823fa72":"9483",dedd5914:"9555","29b8e27a":"9619",eae80ce0:"9642","5e95c892":"9647","5ff9f4db":"9681",ee3b5967:"9705","537e1953":"9789",b3c57e4b:"9836","43df3697":"9905"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(a,c)=>{var f=r.o(e,a)?e[a]:void 0;if(0!==f)if(f)c.push(f[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var b=new Promise(((c,b)=>f=e[a]=[c,b]));c.push(f[2]=b);var d=r.p+r.u(a),t=new Error;r.l(d,(c=>{if(r.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var b=c&&("load"===c.type?"missing":c.type),d=c&&c.target&&c.target.src;t.message="Loading chunk "+a+" failed.\n("+b+": "+d+")",t.name="ChunkLoadError",t.type=b,t.request=d,f[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,c)=>{var f,b,d=c[0],t=c[1],o=c[2],n=0;if(d.some((a=>0!==e[a]))){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(a&&a(c);n{"use strict";var e,a,f,c,b,d={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var f=t[e]={id:e,loaded:!1,exports:{}};return d[e].call(f.exports,f,f.exports,r),f.loaded=!0,f.exports}r.m=d,r.c=t,e=[],r.O=(a,f,c,b)=>{if(!f){var d=1/0;for(i=0;i=b)&&Object.keys(r.O).every((e=>r.O[e](f[o])))?f.splice(o--,1):(t=!1,b0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[f,c,b]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,c){if(1&c&&(e=this(e)),8&c)return e;if("object"==typeof e&&e){if(4&c&&e.__esModule)return e;if(16&c&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var d={};a=a||[null,f({}),f([]),f(f)];for(var t=2&c&&e;"object"==typeof t&&!~a.indexOf(t);t=f(t))Object.getOwnPropertyNames(t).forEach((a=>d[a]=()=>e[a]));return d.default=()=>e,r.d(b,d),b},r.d=(e,a)=>{for(var f in a)r.o(a,f)&&!r.o(e,f)&&Object.defineProperty(e,f,{enumerable:!0,get:a[f]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,f)=>(r.f[f](e,a),a)),[])),r.u=e=>"assets/js/"+({51:"b7251463",145:"0be1d5fe",191:"c643a6d5",230:"bc63ae25",265:"d3ca7a96",321:"6e1a9721",417:"93e16042",444:"14f42f9e",730:"86b18dd0",762:"4af57a32",768:"6d684b63",787:"672a0eba",800:"a4c0ff01",868:"dc7b1ef3",944:"d3600190",957:"c141421f",964:"05d835b4",982:"021496c4",1022:"8a61012d",1035:"24d32e91",1067:"4b04f5bc",1079:"f5818e36",1185:"c2de64b8",1227:"647965d5",1394:"8054effa",1488:"ac3cc3f5",1500:"1e9025f7",1556:"264ffc80",1563:"3ef76b56",1567:"22dd74f7",1625:"92852ade",1690:"41a97a99",1841:"de94873f",1845:"2ab0d4f5",1956:"fe6f9601",2008:"7ad92a12",2073:"7b7db446",2097:"338a6f8e",2138:"1a4e3797",2273:"e756fa26",2288:"faf7ef88",2551:"394022bb",2624:"8ff68e6f",2657:"a3ab51d1",2777:"b3ba68b4",2818:"a9b73094",3040:"2148ae42",3110:"6a2beaac",3247:"bd7ab245",3327:"6aa941bb",3347:"b5257597",3391:"f66238ae",3576:"64045095",3694:"c2b1730c",3740:"f113d167",3758:"a963b3cb",3832:"c3d82421",3859:"7679ca6e",3917:"c8dad5f1",3964:"829ff4d2",3968:"0e5205b8",4028:"c2ebd62a",4046:"9ac856ad",4133:"5cf11f26",4526:"8311683c",4615:"6801371f",4633:"c563aec0",4645:"fef056e9",4778:"e189eece",4784:"438e4337",4806:"fba42286",4841:"8298c1cb",4891:"ca67d85f",4930:"d2ad385b",4931:"a9b4f8aa",4954:"a71efd4a",4973:"2d2c4fcb",5107:"10156854",5109:"3542ed72",5138:"309383dc",5179:"41e3c105",5195:"b1ab2a41",5281:"a0511a5b",5284:"64ca91f1",5304:"7dbff1af",5339:"9447891f",5395:"98058046",5425:"ee32130c",5467:"40d13080",5474:"d175aa8b",5475:"18f3809a",5513:"20d49d07",5514:"02955c09",5562:"20e9af62",5572:"873ebc27",5628:"a83bc7c0",5634:"9822a706",5647:"885eb549",5673:"73af8c33",5716:"946d1cee",5718:"5ccf4833",5742:"aba21aa0",5772:"4e7126f8",5865:"e1766139",5866:"3b577cbb",5883:"61cfab8e",5894:"f178e9b3",5979:"a3a1efc2",6003:"4d983c8e",6008:"445668ec",6053:"dfc50084",6066:"3f19c00a",6080:"4d15791b",6147:"ab17fe15",6201:"9ab37888",6214:"b1220dbd",6281:"c96ce3ed",6332:"873508e7",6350:"188ee668",6419:"96eb0e67",6445:"9fb9a766",6473:"4c5e977b",6511:"320c2db0",6550:"05fbee1a",6559:"6f13807a",6682:"5a6d6120",6890:"8b85e1d0",6920:"c817e236",6934:"d745f4e6",6949:"b36bb719",7088:"91282a5c",7098:"a7bd4aaa",7108:"688feaef",7118:"4ce9199e",7142:"d0c1f670",7159:"aecfdd3d",7165:"547df4a1",7211:"cacdc615",7338:"c39b795e",7339:"7a774ddf",7408:"3ae94ad4",7453:"fdefa9a8",7462:"921b5fc1",7472:"744aaf8b",7507:"be76515e",7713:"3a82b27e",7894:"0f44198a",8031:"25bf2d67",8054:"85112c90",8064:"274fd934",8085:"cc44357e",8102:"019dbd1f",8184:"222029a9",8188:"ecd67556",8196:"75a9e1e0",8208:"216e3ed7",8245:"5e834a3c",8298:"153f2b62",8304:"73d1a090",8356:"c6a5eaec",8374:"261f8123",8401:"17896441",8504:"e6c6a4d2",8598:"44dfcf75",8661:"8f774222",8679:"3705a9c0",8921:"45476a69",8927:"ae68aa8b",8929:"172b3cfb",8953:"adef6868",8977:"e5eb12ce",9036:"850d3674",9048:"a94703ab",9099:"b1bc5ffe",9126:"169603ea",9141:"19136925",9306:"667d0790",9371:"991799c5",9431:"cd8dccb5",9453:"913561e8",9455:"54175a6c",9476:"57c9a2b8",9479:"4e038a6a",9483:"7823fa72",9555:"dedd5914",9619:"29b8e27a",9642:"eae80ce0",9647:"5e95c892",9681:"5ff9f4db",9705:"ee3b5967",9751:"25255263",9789:"537e1953",9836:"b3c57e4b",9905:"43df3697"}[e]||e)+"."+{51:"41498688",145:"9d54f496",191:"2bae48f1",230:"84fd9c8d",265:"b8b17601",321:"3ffaf0d0",417:"d44a3301",444:"14c35ee4",730:"e24ec551",756:"240f2e9c",762:"f26eeca8",768:"9f6e007c",787:"9a1de1a3",800:"62f90b59",868:"43e6daba",900:"f83a9a5d",944:"ad8345f5",957:"da9e1d2b",964:"0af714e4",982:"ff691944",1022:"e9c465bb",1035:"c2ed48ac",1067:"1fc10d8a",1079:"812abec2",1185:"becf3f8a",1227:"efa89a5e",1394:"c6bf3115",1488:"0fd73816",1500:"ce3c2155",1556:"3b4cb9c7",1563:"892a275e",1567:"dc682ff7",1625:"14cdddbe",1690:"70f2fcf5",1809:"2ba71c72",1841:"2b011ec8",1845:"a83dbeb1",1956:"df0c249e",2008:"7ff881a6",2073:"0a119e11",2097:"e2eb4320",2138:"02023697",2273:"8c679b2a",2288:"c860cf3b",2551:"2affcfca",2624:"463a110e",2657:"e301f410",2777:"e5097595",2818:"a12a157b",3040:"d5e98483",3042:"f1fb0b14",3110:"0cb7cba6",3247:"60a3cf4e",3327:"ea2cd923",3347:"cad1b409",3391:"bd741176",3576:"85569c4d",3694:"b3375515",3740:"dcdb4594",3758:"72774151",3832:"caaff358",3859:"5206be4c",3917:"5b041d0c",3964:"33002324",3968:"6d49ed88",3997:"ff54fe17",4028:"6050659f",4046:"f7eca8e9",4058:"44d6af12",4133:"56fe7f12",4526:"46dbc5ed",4615:"82ac6ca0",4633:"2670172c",4645:"738e26df",4778:"677c7100",4784:"6f0477c6",4806:"0f85ccb8",4841:"96f5aab2",4891:"028b84a6",4930:"dfda092c",4931:"1f0853a9",4954:"3ee764ef",4973:"76d07199",5107:"834b40b5",5109:"534de25b",5138:"82fa1659",5179:"3a01e125",5195:"bebcd954",5281:"274e41a2",5284:"5ba358fc",5304:"11ff4120",5339:"f2d6d66a",5395:"155b5cc5",5425:"e3d3bacd",5467:"ea36d716",5474:"7bfcedc5",5475:"d430c771",5513:"9ee47fd7",5514:"4b31d3e9",5562:"10eed1f2",5572:"f7be1bf9",5628:"42006513",5634:"f0694192",5647:"1223eeb9",5673:"9e6c75bf",5716:"a6a99e6e",5718:"31276840",5742:"60b1d5b2",5772:"39c29abd",5865:"f19aeb98",5866:"24fce326",5883:"be0b7a4b",5894:"1eb32a42",5979:"bc33f247",6003:"1b762c05",6008:"5253986f",6053:"282a111f",6066:"076e5cc7",6080:"4c16e2f6",6147:"0bd0c5ae",6201:"01e4e67e",6214:"36f07cd2",6281:"0f993e93",6332:"82b6fb32",6350:"e3ef1aad",6419:"a4ac69bf",6445:"4782f40a",6473:"b5e32ff9",6511:"0ce0f4b4",6550:"5ba8d59c",6559:"175e0ba0",6682:"b23e427b",6890:"af012556",6920:"32ebf47d",6934:"b1764cb8",6949:"81ddd898",7088:"1f49a1ed",7098:"d9bb61a0",7108:"33a95549",7118:"67e70c99",7142:"1ab1d124",7159:"c7233aca",7165:"628c4fdd",7211:"2931db6c",7338:"ead0f1d0",7339:"341b74a4",7408:"ff99b619",7453:"94ce1e19",7462:"eb44547e",7472:"0ff40a39",7507:"b5ebd895",7713:"7e880e1f",7894:"6aa722d7",8031:"d39ee16a",8054:"b01ef0b9",8064:"8479c14a",8085:"42d21f57",8102:"f87dbf62",8158:"20de8b80",8184:"05ecb008",8188:"219f4971",8196:"44d52b3d",8208:"c52abbdf",8245:"d723ee5e",8298:"6d11f562",8304:"818899b3",8356:"ff51d102",8374:"349c447e",8401:"bf953603",8504:"50cbe440",8598:"70cf61ed",8661:"d1261411",8679:"0cffe9bc",8913:"47209f3b",8921:"9f5ccac6",8927:"9d9ff467",8929:"99703724",8953:"f5324ebd",8977:"637025ee",9036:"d0d09670",9048:"810f8ad8",9099:"d785ef9f",9126:"7fa8d7d2",9141:"d3838c09",9306:"8ecb1a62",9371:"91236628",9431:"a391eb1d",9453:"087d9888",9455:"d3aec949",9476:"e9c48620",9479:"1dbfc60c",9483:"ea776824",9555:"ca8bb7aa",9619:"9f160532",9642:"167c6e45",9647:"e6d9c2b6",9681:"1f0feb15",9705:"871cbdcd",9729:"2f32331e",9751:"397cc7c0",9789:"02bccaec",9836:"69fcbaa3",9905:"83748fd4"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),c={},b="langflow-docs:",r.l=(e,a,f,d)=>{if(c[e])c[e].push(a);else{var t,o;if(void 0!==f)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var b=c[e];if(delete c[e],t.parentNode&&t.parentNode.removeChild(t),b&&b.forEach((e=>e(f))),a)return a(f)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=u.bind(null,t.onerror),t.onload=u.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.p="/",r.gca=function(e){return e={10156854:"5107",17896441:"8401",19136925:"9141",25255263:"9751",64045095:"3576",98058046:"5395",b7251463:"51","0be1d5fe":"145",c643a6d5:"191",bc63ae25:"230",d3ca7a96:"265","6e1a9721":"321","93e16042":"417","14f42f9e":"444","86b18dd0":"730","4af57a32":"762","6d684b63":"768","672a0eba":"787",a4c0ff01:"800",dc7b1ef3:"868",d3600190:"944",c141421f:"957","05d835b4":"964","021496c4":"982","8a61012d":"1022","24d32e91":"1035","4b04f5bc":"1067",f5818e36:"1079",c2de64b8:"1185","647965d5":"1227","8054effa":"1394",ac3cc3f5:"1488","1e9025f7":"1500","264ffc80":"1556","3ef76b56":"1563","22dd74f7":"1567","92852ade":"1625","41a97a99":"1690",de94873f:"1841","2ab0d4f5":"1845",fe6f9601:"1956","7ad92a12":"2008","7b7db446":"2073","338a6f8e":"2097","1a4e3797":"2138",e756fa26:"2273",faf7ef88:"2288","394022bb":"2551","8ff68e6f":"2624",a3ab51d1:"2657",b3ba68b4:"2777",a9b73094:"2818","2148ae42":"3040","6a2beaac":"3110",bd7ab245:"3247","6aa941bb":"3327",b5257597:"3347",f66238ae:"3391",c2b1730c:"3694",f113d167:"3740",a963b3cb:"3758",c3d82421:"3832","7679ca6e":"3859",c8dad5f1:"3917","829ff4d2":"3964","0e5205b8":"3968",c2ebd62a:"4028","9ac856ad":"4046","5cf11f26":"4133","8311683c":"4526","6801371f":"4615",c563aec0:"4633",fef056e9:"4645",e189eece:"4778","438e4337":"4784",fba42286:"4806","8298c1cb":"4841",ca67d85f:"4891",d2ad385b:"4930",a9b4f8aa:"4931",a71efd4a:"4954","2d2c4fcb":"4973","3542ed72":"5109","309383dc":"5138","41e3c105":"5179",b1ab2a41:"5195",a0511a5b:"5281","64ca91f1":"5284","7dbff1af":"5304","9447891f":"5339",ee32130c:"5425","40d13080":"5467",d175aa8b:"5474","18f3809a":"5475","20d49d07":"5513","02955c09":"5514","20e9af62":"5562","873ebc27":"5572",a83bc7c0:"5628","9822a706":"5634","885eb549":"5647","73af8c33":"5673","946d1cee":"5716","5ccf4833":"5718",aba21aa0:"5742","4e7126f8":"5772",e1766139:"5865","3b577cbb":"5866","61cfab8e":"5883",f178e9b3:"5894",a3a1efc2:"5979","4d983c8e":"6003","445668ec":"6008",dfc50084:"6053","3f19c00a":"6066","4d15791b":"6080",ab17fe15:"6147","9ab37888":"6201",b1220dbd:"6214",c96ce3ed:"6281","873508e7":"6332","188ee668":"6350","96eb0e67":"6419","9fb9a766":"6445","4c5e977b":"6473","320c2db0":"6511","05fbee1a":"6550","6f13807a":"6559","5a6d6120":"6682","8b85e1d0":"6890",c817e236:"6920",d745f4e6:"6934",b36bb719:"6949","91282a5c":"7088",a7bd4aaa:"7098","688feaef":"7108","4ce9199e":"7118",d0c1f670:"7142",aecfdd3d:"7159","547df4a1":"7165",cacdc615:"7211",c39b795e:"7338","7a774ddf":"7339","3ae94ad4":"7408",fdefa9a8:"7453","921b5fc1":"7462","744aaf8b":"7472",be76515e:"7507","3a82b27e":"7713","0f44198a":"7894","25bf2d67":"8031","85112c90":"8054","274fd934":"8064",cc44357e:"8085","019dbd1f":"8102","222029a9":"8184",ecd67556:"8188","75a9e1e0":"8196","216e3ed7":"8208","5e834a3c":"8245","153f2b62":"8298","73d1a090":"8304",c6a5eaec:"8356","261f8123":"8374",e6c6a4d2:"8504","44dfcf75":"8598","8f774222":"8661","3705a9c0":"8679","45476a69":"8921",ae68aa8b:"8927","172b3cfb":"8929",adef6868:"8953",e5eb12ce:"8977","850d3674":"9036",a94703ab:"9048",b1bc5ffe:"9099","169603ea":"9126","667d0790":"9306","991799c5":"9371",cd8dccb5:"9431","913561e8":"9453","54175a6c":"9455","57c9a2b8":"9476","4e038a6a":"9479","7823fa72":"9483",dedd5914:"9555","29b8e27a":"9619",eae80ce0:"9642","5e95c892":"9647","5ff9f4db":"9681",ee3b5967:"9705","537e1953":"9789",b3c57e4b:"9836","43df3697":"9905"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(a,f)=>{var c=r.o(e,a)?e[a]:void 0;if(0!==c)if(c)f.push(c[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var b=new Promise(((f,b)=>c=e[a]=[f,b]));f.push(c[2]=b);var d=r.p+r.u(a),t=new Error;r.l(d,(f=>{if(r.o(e,a)&&(0!==(c=e[a])&&(e[a]=void 0),c)){var b=f&&("load"===f.type?"missing":f.type),d=f&&f.target&&f.target.src;t.message="Loading chunk "+a+" failed.\n("+b+": "+d+")",t.name="ChunkLoadError",t.type=b,t.request=d,c[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,f)=>{var c,b,d=f[0],t=f[1],o=f[2],n=0;if(d.some((a=>0!==e[a]))){for(c in t)r.o(t,c)&&(r.m[c]=t[c]);if(o)var i=o(r)}for(a&&a(f);n - + diff --git a/components-agents.html b/components-agents.html index ddbe4ee19e..b58587bca5 100644 --- a/components-agents.html +++ b/components-agents.html @@ -21,7 +21,7 @@ - + diff --git a/components-bundle-components.html b/components-bundle-components.html index a864049cc8..c0f52f1d79 100644 --- a/components-bundle-components.html +++ b/components-bundle-components.html @@ -21,7 +21,7 @@ - + diff --git a/components-custom-components.html b/components-custom-components.html index 0c8fd84787..037597c470 100644 --- a/components-custom-components.html +++ b/components-custom-components.html @@ -21,7 +21,7 @@ - + diff --git a/components-data.html b/components-data.html index 2debeb0e50..e814c059c5 100644 --- a/components-data.html +++ b/components-data.html @@ -21,7 +21,7 @@ - + diff --git a/components-embedding-models.html b/components-embedding-models.html index 534d6410aa..e08b77c2cf 100644 --- a/components-embedding-models.html +++ b/components-embedding-models.html @@ -21,7 +21,7 @@ - + diff --git a/components-helpers.html b/components-helpers.html index 8e5d1ddcf4..e2e352f903 100644 --- a/components-helpers.html +++ b/components-helpers.html @@ -21,7 +21,7 @@ - + @@ -127,7 +127,7 @@ The Output Schema parameter defines the structure and data types fo

Outputs​

NameDisplay NameInfo
structured_outputStructured OutputThe structured output is a Data object based on the defined schema.
structured_output_dataframeDataFrameThe structured output converted to a DataFrame format.

Legacy components​

-

Legacy components are no longer in active development but are backward compatible.

+

Legacy components are available for use but are no longer supported.

Create List​

This component dynamically creates a record with a specified number of fields.

Inputs​

diff --git a/components-io.html b/components-io.html index 0fe7529713..698b32a5d7 100644 --- a/components-io.html +++ b/components-io.html @@ -21,7 +21,7 @@ - + diff --git a/components-loaders.html b/components-loaders.html index c9bb131e04..e2e72e0961 100644 --- a/components-loaders.html +++ b/components-loaders.html @@ -21,7 +21,7 @@ - + diff --git a/components-logic.html b/components-logic.html index 4c21ba9709..b642945bdf 100644 --- a/components-logic.html +++ b/components-logic.html @@ -21,7 +21,7 @@ - + diff --git a/components-memories.html b/components-memories.html index a25c654232..55269f407c 100644 --- a/components-memories.html +++ b/components-memories.html @@ -21,7 +21,7 @@ - + diff --git a/components-models.html b/components-models.html index 5602c67dd2..a6cbf88844 100644 --- a/components-models.html +++ b/components-models.html @@ -21,7 +21,7 @@ - + diff --git a/components-processing.html b/components-processing.html index 9f8a963531..480188dfa7 100644 --- a/components-processing.html +++ b/components-processing.html @@ -21,7 +21,7 @@ - + diff --git a/components-prompts.html b/components-prompts.html index 8967054d82..26d08e4406 100644 --- a/components-prompts.html +++ b/components-prompts.html @@ -21,7 +21,7 @@ - + diff --git a/components-tools.html b/components-tools.html index 58e52ef4de..58855701e8 100644 --- a/components-tools.html +++ b/components-tools.html @@ -21,7 +21,7 @@ - + @@ -54,12 +54,41 @@ For an example, see Outputs​
NameDisplay NameInfo
papersPapersList of retrieved arXiv papers
-

Astra DB Tool​

-

The Astra DB Tool allows agents to connect to and query data from Astra DB collections.

+

Astra DB tool​

+

This component allows agents to query data from Astra DB collections.

+

To use this tool in a flow, connect it to an Agent component. +The flow looks like this:

+

Astra DB JSON tool connected to an Agent

+

The Tool Name and Tool Description fields are required for the Agent to decide when to use the tool. +Tool Name cannot contain spaces.

+

The values for Collection Name, Astra DB Application Token, and Astra DB API Endpoint are found in your Astra DB deployment. For more information, see the DataStax documentation.

+

In this example, an OpenAI embeddings component is connected to use the Astra DB tool component's Semantic Search capability. +To use Semantic Search, you must have an embedding model or Astra DB Vectorize enabled. +If you try to run the flow without an embedding model, you will get an error.

+

Open the Playground and ask a question about your data. +The Agent uses the Astra DB Tool to return information about your collection.

+

Define Astra DB tool parameters​

+

The Tool Parameters configuration pane allows you to define parameters for filter conditions for the component's Find command.

+

These filters become available as parameters that the LLM can use when calling the tool, with a better understanding of each parameter provided by the Description field.

+
    +
  1. To define a parameter for your query, in the Tool Parameters pane, click .
  2. +
  3. Complete the fields based on your data. For example, with this filter, the LLM can filter by unique customer_id values.
  4. +
+
    +
  • Name: customer_id
  • +
  • Attribute Name: Leave empty if the attribute matches the field name in the database.
  • +
  • Description: "The unique identifier of the customer to filter by".
  • +
  • Is Metadata: False unless the value stored in the metadata field.
  • +
  • Is Mandatory: True to require this filter.
  • +
  • Is Timestamp: False since the value is an ID, not a timestamp.
  • +
  • Operator: $eq to look for an exact match.
  • +
+

If you want to apply filters regardless of the LLM's input, use the Static Filters option, which is available in the component's Controls pane.

+
ParameterDescription
NameThe name of the parameter that is exposed to the LLM. It can be the same as the underlying field name or a more descriptive label. The LLM uses this name, along with the description, to infer what value to provide during execution.
Attribute NameWhen the parameter name shown to the LLM differs from the actual field or property in the database, use this setting to map the user-facing name to the correct attribute. For example, to apply a range filter to the timestamp field, define two separate parameters, such as start_date and end_date, that both reference the same timestamp attribute.
DescriptionProvides instructions to the LLM on how the parameter should be used. Clear and specific guidance helps the LLM provide valid input. For example, if a field such as specialty is stored in lowercase, the description should indicate that the input must be lowercase.
Is MetadataWhen loading data using LangChain or Langflow, additional attributes may be stored under a metadata object. If the target attribute is stored this way, enable this option. It adjusts the query by generating a filter in the format: {"metadata.<attribute_name>": "<value>"}
Is TimestampFor date or time-based filters, enable this option to automatically convert values to the timestamp format that the Astrapy client expects. This ensures compatibility with the underlying API without requiring manual formatting.
OperatorDefines the filtering logic applied to the attribute. You can use any valid Data API filter operator. For example, to filter a time range on the timestamp attribute, use two parameters: one with the $gt operator for "greater than", and another with the $lt operator for "less than".

Inputs​

-
NameTypeDescription
Tool NameStringThe name used to reference the tool in the agent's prompt.
Tool DescriptionStringA brief description of the tool. This helps the model decide when to use it.
Collection NameStringThe name of the Astra DB collection to query.
TokenSecretStringThe authentication token for accessing Astra DB.
API EndpointStringThe Astra DB API endpoint.
Projection FieldsStringThe attributes to return, separated by commas. Default: "*".
Tool ParametersDictParameters the model needs to fill to execute the tool. For required parameters, use an exclamation mark (for example, !customer_id).
Static FiltersDictAttribute-value pairs used to filter query results.
LimitStringThe number of documents to return.
+
NameTypeDescription
Tool NameStringThe name used to reference the tool in the agent's prompt.
Tool DescriptionStringA brief description of the tool. This helps the model decide when to use it.
Collection NameStringThe name of the Astra DB collection to query.
TokenSecretStringThe authentication token for accessing Astra DB.
API EndpointStringThe Astra DB API endpoint.
Projection FieldsStringThe attributes to return, separated by commas. The default is *.
Tool ParametersDictParameters the model needs to fill to execute the tool. For required parameters, use an exclamation mark, for example !customer_id.
Static FiltersDictAttribute-value pairs used to filter query results.
LimitStringThe number of documents to return.

Outputs​

-

The Data output is primarily used when directly querying Astra DB, while the Tool output is used when integrating with LangChain agents or chains.

+

The Data output is used when directly querying Astra DB, while the Tool output is used when integrating with agents.

NameTypeDescription
DataList[Data]A list of Data objects containing the query results from Astra DB. Each Data object contains the document fields specified by the projection attributes. Limited by the number_of_results parameter.
ToolStructuredToolA LangChain StructuredTool object that can be used in agent workflows. Contains the tool name, description, argument schema based on tool parameters, and the query function.

Astra DB CQL Tool​

The Astra DB CQL Tool allows agents to query data from CQL tables in Astra DB.

@@ -82,7 +111,7 @@ For an example, see Combinatorial Reasoner​ -

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: https://forms.gle/oWNv2NKjBNaqqvCx6

+

This component runs Icosa's Combinatorial Reasoning (CR) pipeline on an input to create an optimized prompt with embedded reasons. For more information, see Icosa Computing.

Inputs​

NameDisplay NameDescription
promptPromptInput to run CR on
openai_api_keyOpenAI API KeyOpenAI API key for authentication
usernameUsernameUsername for Icosa API authentication
passwordPasswordPassword for Icosa API authentication
model_nameModel NameOpenAI LLM to use for reason generation

Outputs​

@@ -242,7 +271,7 @@ Instead, use the MCP server component

Inputs​

This component does not have any input parameters.

Outputs​

-
NameTypeDescription
toolToolYahoo Finance News tool for use in LangChain