diff --git a/404.html b/404.html index 4eea122b2c..90633615b9 100644 --- a/404.html +++ b/404.html @@ -10,7 +10,7 @@ - + diff --git a/Concepts/concepts-flows.html b/Concepts/concepts-flows.html index 2925eece97..a9b5d1e958 100644 --- a/Concepts/concepts-flows.html +++ b/Concepts/concepts-flows.html @@ -10,7 +10,7 @@ - + diff --git a/Deployment/deployment-docker.html b/Deployment/deployment-docker.html index 377bb2f7ca..6ea1923941 100644 --- a/Deployment/deployment-docker.html +++ b/Deployment/deployment-docker.html @@ -10,7 +10,7 @@ - + diff --git a/agents-overview.html b/agents-overview.html index 0309eb1b66..98cf351192 100644 --- a/agents-overview.html +++ b/agents-overview.html @@ -10,7 +10,7 @@ - + diff --git a/agents-tool-calling-agent-component.html b/agents-tool-calling-agent-component.html index acd57ce374..e7d9149c6b 100644 --- a/agents-tool-calling-agent-component.html +++ b/agents-tool-calling-agent-component.html @@ -10,7 +10,7 @@ - + @@ -108,14 +108,15 @@ Your response will be similar to the following, and will include your custom com

For example, the components as tools example above adds tool_mode=True to the MessageTextInput input so the custom component can be used as a tool.


_10
inputs = [
_10
MessageTextInput(
_10
name="input_text",
_10
display_name="Input Text",
_10
info="Enter text to analyze",
_10
value="Hello, World!",
_10
tool_mode=True,
_10
),
_10
]

-

Add flows as tools

-

An agent can use flows that are saved in your workspace as tools with the Flow as Tool component.

+

Use the Run Flow component as a tool

+

An agent can use flows that are saved in your workspace as tools with the Run flow component.

    -
  1. To add a Flow as Tool component, click and drag a Flow as Tool component to your workspace.
  2. +
  3. To add a Run flow component, click and drag a Run flow component to your workspace.
  4. Select the flow you want the agent to use as a tool.
  5. +
  6. Enable Tool Mode in the component.
  7. Connect the tool output to the agent's tools input.
  8. Ask the agent, What tools are you using to answer my questions? -Your Flow as Tool flow should be visible in the response.
  9. -

Hi, how can I help you?

+Your flow should be visible in the response. +

Hi, how can I help you?

\ No newline at end of file diff --git a/api-reference-api-examples.html b/api-reference-api-examples.html index 832dd0eb32..0a7b249f13 100644 --- a/api-reference-api-examples.html +++ b/api-reference-api-examples.html @@ -10,7 +10,7 @@ - + diff --git a/api.html b/api.html index 0a04056cc6..f15e86b05b 100644 --- a/api.html +++ b/api.html @@ -10,7 +10,7 @@ - + diff --git a/api/add-user.html b/api/add-user.html index f82b13659c..bbf0f8c838 100644 --- a/api/add-user.html +++ b/api/add-user.html @@ -10,7 +10,7 @@ - + diff --git a/api/auto-login.html b/api/auto-login.html index bd2fab8cb4..e71e3d43a4 100644 --- a/api/auto-login.html +++ b/api/auto-login.html @@ -10,7 +10,7 @@ - + diff --git a/api/build-flow.html b/api/build-flow.html index 5791b3c1f3..b696109c90 100644 --- a/api/build-flow.html +++ b/api/build-flow.html @@ -10,7 +10,7 @@ - + diff --git a/api/build-vertex-stream.html b/api/build-vertex-stream.html index e9d4b3c8d0..d9eac1acae 100644 --- a/api/build-vertex-stream.html +++ b/api/build-vertex-stream.html @@ -10,7 +10,7 @@ - + diff --git a/api/build-vertex.html b/api/build-vertex.html index bae5a1b07e..73a7055df7 100644 --- a/api/build-vertex.html +++ b/api/build-vertex.html @@ -10,7 +10,7 @@ - + diff --git a/api/check-if-store-has-api-key.html b/api/check-if-store-has-api-key.html index 445c256b07..aa602ac7f8 100644 --- a/api/check-if-store-has-api-key.html +++ b/api/check-if-store-has-api-key.html @@ -10,7 +10,7 @@ - + diff --git a/api/check-if-store-is-enabled.html b/api/check-if-store-is-enabled.html index 7e2f8a353a..e78f4518c9 100644 --- a/api/check-if-store-is-enabled.html +++ b/api/check-if-store-is-enabled.html @@ -10,7 +10,7 @@ - + diff --git a/api/create-api-key-route.html b/api/create-api-key-route.html index 311b036b8c..9150974762 100644 --- a/api/create-api-key-route.html +++ b/api/create-api-key-route.html @@ -10,7 +10,7 @@ - + diff --git a/api/create-flow.html b/api/create-flow.html index 0cfb13dc27..2bf834641f 100644 --- a/api/create-flow.html +++ b/api/create-flow.html @@ -10,7 +10,7 @@ - + diff --git a/api/create-flows.html b/api/create-flows.html index bbd0d0e097..f966f4132e 100644 --- a/api/create-flows.html +++ b/api/create-flows.html @@ -10,7 +10,7 @@ - + diff --git a/api/create-folder.html b/api/create-folder.html index 09382142db..d19e6a2f9f 100644 --- a/api/create-folder.html +++ b/api/create-folder.html @@ -10,7 +10,7 @@ - + diff --git a/api/create-upload-file.html b/api/create-upload-file.html index 62c612ff84..ba60fa359d 100644 --- a/api/create-upload-file.html +++ b/api/create-upload-file.html @@ -10,7 +10,7 @@ - + diff --git a/api/create-variable.html b/api/create-variable.html index 19938ac722..0222c1c9f7 100644 --- a/api/create-variable.html +++ b/api/create-variable.html @@ -10,7 +10,7 @@ - + diff --git a/api/custom-component-update.html b/api/custom-component-update.html index 4b766b4303..4f1dbb68bb 100644 --- a/api/custom-component-update.html +++ b/api/custom-component-update.html @@ -10,7 +10,7 @@ - + diff --git a/api/custom-component.html b/api/custom-component.html index a734453ac1..7b937cfd1e 100644 --- a/api/custom-component.html +++ b/api/custom-component.html @@ -10,7 +10,7 @@ - + diff --git a/api/delete-api-key-route.html b/api/delete-api-key-route.html index ba017e4b37..7e7f0e7c38 100644 --- a/api/delete-api-key-route.html +++ b/api/delete-api-key-route.html @@ -10,7 +10,7 @@ - + diff --git a/api/delete-file.html b/api/delete-file.html index 8d848139d1..a6427f2af5 100644 --- a/api/delete-file.html +++ b/api/delete-file.html @@ -10,7 +10,7 @@ - + diff --git a/api/delete-flow.html b/api/delete-flow.html index b6f1e4950c..1b19d2321b 100644 --- a/api/delete-flow.html +++ b/api/delete-flow.html @@ -10,7 +10,7 @@ - + diff --git a/api/delete-folder.html b/api/delete-folder.html index 0fdabde3c0..8903c93077 100644 --- a/api/delete-folder.html +++ b/api/delete-folder.html @@ -10,7 +10,7 @@ - + diff --git a/api/delete-messages-session.html b/api/delete-messages-session.html index c0996875c4..edb7016d9b 100644 --- a/api/delete-messages-session.html +++ b/api/delete-messages-session.html @@ -10,7 +10,7 @@ - + diff --git a/api/delete-messages.html b/api/delete-messages.html index 0a76d9c5bd..1c22b59780 100644 --- a/api/delete-messages.html +++ b/api/delete-messages.html @@ -10,7 +10,7 @@ - + diff --git a/api/delete-multiple-flows.html b/api/delete-multiple-flows.html index 06f9c47268..449333af0c 100644 --- a/api/delete-multiple-flows.html +++ b/api/delete-multiple-flows.html @@ -10,7 +10,7 @@ - + diff --git a/api/delete-user.html b/api/delete-user.html index 24dc0b30b2..151e87ba3e 100644 --- a/api/delete-user.html +++ b/api/delete-user.html @@ -10,7 +10,7 @@ - + diff --git a/api/delete-variable.html b/api/delete-variable.html index 2264994adc..17ad73a780 100644 --- a/api/delete-variable.html +++ b/api/delete-variable.html @@ -10,7 +10,7 @@ - + diff --git a/api/delete-vertex-builds.html b/api/delete-vertex-builds.html index d067236280..c481c9c96c 100644 --- a/api/delete-vertex-builds.html +++ b/api/delete-vertex-builds.html @@ -10,7 +10,7 @@ - + diff --git a/api/download-component.html b/api/download-component.html index 1aa83e60c6..b3ea2f41ea 100644 --- a/api/download-component.html +++ b/api/download-component.html @@ -10,7 +10,7 @@ - + diff --git a/api/download-file-1.html b/api/download-file-1.html index 15f6ad6332..d54dea46ce 100644 --- a/api/download-file-1.html +++ b/api/download-file-1.html @@ -10,7 +10,7 @@ - + diff --git a/api/download-file.html b/api/download-file.html index ae0255c92e..17c271d49f 100644 --- a/api/download-file.html +++ b/api/download-file.html @@ -10,7 +10,7 @@ - + diff --git a/api/download-image.html b/api/download-image.html index 5e771cd0c7..bce0d4ef01 100644 --- a/api/download-image.html +++ b/api/download-image.html @@ -10,7 +10,7 @@ - + diff --git a/api/download-multiple-file.html b/api/download-multiple-file.html index 43ede9b275..7fe769e03f 100644 --- a/api/download-multiple-file.html +++ b/api/download-multiple-file.html @@ -10,7 +10,7 @@ - + diff --git a/api/download-profile-picture.html b/api/download-profile-picture.html index 2b6c716c69..5a5a88a9eb 100644 --- a/api/download-profile-picture.html +++ b/api/download-profile-picture.html @@ -10,7 +10,7 @@ - + diff --git a/api/experimental-run-flow.html b/api/experimental-run-flow.html index 14fcc573f8..c5fdc08934 100644 --- a/api/experimental-run-flow.html +++ b/api/experimental-run-flow.html @@ -10,7 +10,7 @@ - + diff --git a/api/get-all.html b/api/get-all.html index f0a3692e0c..8240bd69eb 100644 --- a/api/get-all.html +++ b/api/get-all.html @@ -10,7 +10,7 @@ - + diff --git a/api/get-api-keys-route.html b/api/get-api-keys-route.html index e8ebb91c45..dbbd7ee684 100644 --- a/api/get-api-keys-route.html +++ b/api/get-api-keys-route.html @@ -10,7 +10,7 @@ - + diff --git a/api/get-components.html b/api/get-components.html index 28fc819c33..e2a56ce675 100644 --- a/api/get-components.html +++ b/api/get-components.html @@ -10,7 +10,7 @@ - + diff --git a/api/get-config.html b/api/get-config.html index af6405dace..b3f71b179a 100644 --- a/api/get-config.html +++ b/api/get-config.html @@ -10,7 +10,7 @@ - + diff --git a/api/get-list-of-components-liked-by-user.html b/api/get-list-of-components-liked-by-user.html index 773e904d5a..e4567857f1 100644 --- a/api/get-list-of-components-liked-by-user.html +++ b/api/get-list-of-components-liked-by-user.html @@ -10,7 +10,7 @@ - + diff --git a/api/get-messages.html b/api/get-messages.html index 79eec9b592..5e5b1747fe 100644 --- a/api/get-messages.html +++ b/api/get-messages.html @@ -10,7 +10,7 @@ - + diff --git a/api/get-starter-projects.html b/api/get-starter-projects.html index d6a3ea06b8..ff0557ab7c 100644 --- a/api/get-starter-projects.html +++ b/api/get-starter-projects.html @@ -10,7 +10,7 @@ - + diff --git a/api/get-tags.html b/api/get-tags.html index 1b043b9e29..527d7d791b 100644 --- a/api/get-tags.html +++ b/api/get-tags.html @@ -10,7 +10,7 @@ - + diff --git a/api/get-task-status.html b/api/get-task-status.html index de24e76407..c3646bc42d 100644 --- a/api/get-task-status.html +++ b/api/get-task-status.html @@ -10,7 +10,7 @@ - + diff --git a/api/get-transactions.html b/api/get-transactions.html index e6a99e083c..63b46328ec 100644 --- a/api/get-transactions.html +++ b/api/get-transactions.html @@ -10,7 +10,7 @@ - + diff --git a/api/get-version.html b/api/get-version.html index 8dd46c8041..17d24a51c5 100644 --- a/api/get-version.html +++ b/api/get-version.html @@ -10,7 +10,7 @@ - + diff --git a/api/get-vertex-builds.html b/api/get-vertex-builds.html index 721743b9c5..075b1215fd 100644 --- a/api/get-vertex-builds.html +++ b/api/get-vertex-builds.html @@ -10,7 +10,7 @@ - + diff --git a/api/handle-messages.html b/api/handle-messages.html index 315184896e..4aff4c346a 100644 --- a/api/handle-messages.html +++ b/api/handle-messages.html @@ -10,7 +10,7 @@ - + diff --git a/api/handle-sse.html b/api/handle-sse.html index 1a2ae10285..961e32e9e4 100644 --- a/api/handle-sse.html +++ b/api/handle-sse.html @@ -10,7 +10,7 @@ - + diff --git a/api/health-check.html b/api/health-check.html index 84d89a4cc9..a8f45f1bec 100644 --- a/api/health-check.html +++ b/api/health-check.html @@ -10,7 +10,7 @@ - + diff --git a/api/health.html b/api/health.html index a845ea1595..0cc5c7ba26 100644 --- a/api/health.html +++ b/api/health.html @@ -10,7 +10,7 @@ - + diff --git a/api/like-component.html b/api/like-component.html index e00bf66410..18ac3c0eef 100644 --- a/api/like-component.html +++ b/api/like-component.html @@ -10,7 +10,7 @@ - + diff --git a/api/list-files.html b/api/list-files.html index c399d48e01..3b97404550 100644 --- a/api/list-files.html +++ b/api/list-files.html @@ -10,7 +10,7 @@ - + diff --git a/api/list-profile-pictures.html b/api/list-profile-pictures.html index e744e89210..45631f1abe 100644 --- a/api/list-profile-pictures.html +++ b/api/list-profile-pictures.html @@ -10,7 +10,7 @@ - + diff --git a/api/login-to-get-access-token.html b/api/login-to-get-access-token.html index 25560484d8..b2dc4e71b9 100644 --- a/api/login-to-get-access-token.html +++ b/api/login-to-get-access-token.html @@ -10,7 +10,7 @@ - + diff --git a/api/logout.html b/api/logout.html index a6d436266b..6ddb3f3e7e 100644 --- a/api/logout.html +++ b/api/logout.html @@ -10,7 +10,7 @@ - + diff --git a/api/logs.html b/api/logs.html index 1506973d42..fc1085174a 100644 --- a/api/logs.html +++ b/api/logs.html @@ -10,7 +10,7 @@ - + diff --git a/api/patch-user.html b/api/patch-user.html index ae5796e71b..540685620d 100644 --- a/api/patch-user.html +++ b/api/patch-user.html @@ -10,7 +10,7 @@ - + diff --git a/api/post-validate-code.html b/api/post-validate-code.html index 1c9d59e2b4..4fd5c96ef6 100644 --- a/api/post-validate-code.html +++ b/api/post-validate-code.html @@ -10,7 +10,7 @@ - + diff --git a/api/post-validate-prompt.html b/api/post-validate-prompt.html index b4ec4162d4..4dbe283606 100644 --- a/api/post-validate-prompt.html +++ b/api/post-validate-prompt.html @@ -10,7 +10,7 @@ - + diff --git a/api/process-1.html b/api/process-1.html index e49592b442..c12a0fd32f 100644 --- a/api/process-1.html +++ b/api/process-1.html @@ -10,7 +10,7 @@ - + diff --git a/api/process.html b/api/process.html index 2c973d56f6..c748ad8e1f 100644 --- a/api/process.html +++ b/api/process.html @@ -10,7 +10,7 @@ - + diff --git a/api/read-all-users.html b/api/read-all-users.html index 890b88290e..784ffe305b 100644 --- a/api/read-all-users.html +++ b/api/read-all-users.html @@ -10,7 +10,7 @@ - + diff --git a/api/read-basic-examples.html b/api/read-basic-examples.html index 32a092bfe5..71950489f1 100644 --- a/api/read-basic-examples.html +++ b/api/read-basic-examples.html @@ -10,7 +10,7 @@ - + diff --git a/api/read-current-user.html b/api/read-current-user.html index 5cac75904b..723886f7e7 100644 --- a/api/read-current-user.html +++ b/api/read-current-user.html @@ -10,7 +10,7 @@ - + diff --git a/api/read-flow.html b/api/read-flow.html index 6ac6fb1dcd..20b7ea4118 100644 --- a/api/read-flow.html +++ b/api/read-flow.html @@ -10,7 +10,7 @@ - + diff --git a/api/read-flows.html b/api/read-flows.html index 40de75acac..4f48a82015 100644 --- a/api/read-flows.html +++ b/api/read-flows.html @@ -10,7 +10,7 @@ - + diff --git a/api/read-folder.html b/api/read-folder.html index c7c94b9843..9e88a0062e 100644 --- a/api/read-folder.html +++ b/api/read-folder.html @@ -10,7 +10,7 @@ - + diff --git a/api/read-folders.html b/api/read-folders.html index 3fb2aa7446..2caff4b191 100644 --- a/api/read-folders.html +++ b/api/read-folders.html @@ -10,7 +10,7 @@ - + diff --git a/api/read-variables.html b/api/read-variables.html index c9f41a2ea2..3323575df7 100644 --- a/api/read-variables.html +++ b/api/read-variables.html @@ -10,7 +10,7 @@ - + diff --git a/api/refresh-token.html b/api/refresh-token.html index ba60395b8b..ccab13e8e4 100644 --- a/api/refresh-token.html +++ b/api/refresh-token.html @@ -10,7 +10,7 @@ - + diff --git a/api/reset-password.html b/api/reset-password.html index 9fb73a75f6..58e05596be 100644 --- a/api/reset-password.html +++ b/api/reset-password.html @@ -10,7 +10,7 @@ - + diff --git a/api/retrieve-vertices-order.html b/api/retrieve-vertices-order.html index 152c4fc683..ea6c27ea64 100644 --- a/api/retrieve-vertices-order.html +++ b/api/retrieve-vertices-order.html @@ -10,7 +10,7 @@ - + diff --git a/api/save-store-api-key.html b/api/save-store-api-key.html index 8405c55854..065b1516bd 100644 --- a/api/save-store-api-key.html +++ b/api/save-store-api-key.html @@ -10,7 +10,7 @@ - + diff --git a/api/share-component.html b/api/share-component.html index 47693d2c57..8a24ac49ab 100644 --- a/api/share-component.html +++ b/api/share-component.html @@ -10,7 +10,7 @@ - + diff --git a/api/simplified-run-flow.html b/api/simplified-run-flow.html index f11b781a02..333ab97056 100644 --- a/api/simplified-run-flow.html +++ b/api/simplified-run-flow.html @@ -10,7 +10,7 @@ - + diff --git a/api/stream-logs.html b/api/stream-logs.html index b6a1f219c7..c313783c2a 100644 --- a/api/stream-logs.html +++ b/api/stream-logs.html @@ -10,7 +10,7 @@ - + diff --git a/api/update-flow.html b/api/update-flow.html index 6e7d2ea61d..7e9c25e8b8 100644 --- a/api/update-flow.html +++ b/api/update-flow.html @@ -10,7 +10,7 @@ - + diff --git a/api/update-folder.html b/api/update-folder.html index 8e71812118..3fe349c826 100644 --- a/api/update-folder.html +++ b/api/update-folder.html @@ -10,7 +10,7 @@ - + diff --git a/api/update-message.html b/api/update-message.html index 095804d90c..878b4b8807 100644 --- a/api/update-message.html +++ b/api/update-message.html @@ -10,7 +10,7 @@ - + diff --git a/api/update-session-id.html b/api/update-session-id.html index c97c90d6b8..03f8014d58 100644 --- a/api/update-session-id.html +++ b/api/update-session-id.html @@ -10,7 +10,7 @@ - + diff --git a/api/update-shared-component.html b/api/update-shared-component.html index 3c43adfc10..1d1257632a 100644 --- a/api/update-shared-component.html +++ b/api/update-shared-component.html @@ -10,7 +10,7 @@ - + diff --git a/api/update-variable.html b/api/update-variable.html index 38a1e67d6c..797dd27673 100644 --- a/api/update-variable.html +++ b/api/update-variable.html @@ -10,7 +10,7 @@ - + diff --git a/api/upload-file-1.html b/api/upload-file-1.html index 58813cbfac..6d06e9f1d7 100644 --- a/api/upload-file-1.html +++ b/api/upload-file-1.html @@ -10,7 +10,7 @@ - + diff --git a/api/upload-file-2.html b/api/upload-file-2.html index bf0fd6e2b3..87094d554b 100644 --- a/api/upload-file-2.html +++ b/api/upload-file-2.html @@ -10,7 +10,7 @@ - + diff --git a/api/upload-file.html b/api/upload-file.html index 20ce1451ac..5282d67b6a 100644 --- a/api/upload-file.html +++ b/api/upload-file.html @@ -10,7 +10,7 @@ - + diff --git a/api/webhook-run-flow.html b/api/webhook-run-flow.html index 7ad5d85efe..b71d69933d 100644 --- a/api/webhook-run-flow.html +++ b/api/webhook-run-flow.html @@ -10,7 +10,7 @@ - + diff --git a/assets/js/2ab0d4f5.1dec73f1.js b/assets/js/2ab0d4f5.1dec73f1.js deleted file mode 100644 index 19fdc2fd56..0000000000 --- a/assets/js/2ab0d4f5.1dec73f1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1845],{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"}],"title":"User Id","nullable":true}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"properties":{"input_value":{"anyOf":[{"type":"string"}],"title":"Input Value","description":"The input value","nullable":true},"input_type":{"anyOf":[{"type":"string","enum":["chat","text","any"]}],"title":"Input Type","description":"The input type","default":"chat","nullable":true},"output_type":{"anyOf":[{"type":"string","enum":["chat","text","any","debug"]}],"title":"Output Type","description":"The output type","default":"chat","nullable":true},"output_component":{"anyOf":[{"type":"string"}],"title":"Output Component","description":"If there are multiple output components, you can specify the component to get the output from.","default":"","nullable":true},"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.","example":{"Component Name":{"parameter_name":"value"},"component_id":{"parameter_name":"value"},"parameter_name":"value"}}],"description":"The tweaks","nullable":true},"session_id":{"anyOf":[{"type":"string"}],"title":"Session Id","description":"The session id","nullable":true}},"type":"object","title":"SimplifiedAPIRequest"}],"title":"Input Request","nullable":true}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}},"method":"post","path":"/api/v1/run/{flow_id_or_name}","securitySchemes":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"api/v1/login"}}},"API key query":{"type":"apiKey","in":"query","name":"x-api-key"},"API key header":{"type":"apiKey","in":"header","name":"x-api-key"}},"info":{"title":"Langflow","version":"1.1.1"},"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 \\"amet68b\\": \\"\\",\\n \\"nisia2\\": \\"\\"\\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)}},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)}}}]); \ No newline at end of file diff --git a/assets/js/2ab0d4f5.81744766.js b/assets/js/2ab0d4f5.81744766.js new file mode 100644 index 0000000000..bcf4f3a362 --- /dev/null +++ b/assets/js/2ab0d4f5.81744766.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1845],{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"}],"title":"User Id","nullable":true}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"properties":{"input_value":{"anyOf":[{"type":"string"}],"title":"Input Value","description":"The input value","nullable":true},"input_type":{"anyOf":[{"type":"string","enum":["chat","text","any"]}],"title":"Input Type","description":"The input type","default":"chat","nullable":true},"output_type":{"anyOf":[{"type":"string","enum":["chat","text","any","debug"]}],"title":"Output Type","description":"The output type","default":"chat","nullable":true},"output_component":{"anyOf":[{"type":"string"}],"title":"Output Component","description":"If there are multiple output components, you can specify the component to get the output from.","default":"","nullable":true},"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.","example":{"Component Name":{"parameter_name":"value"},"component_id":{"parameter_name":"value"},"parameter_name":"value"}}],"description":"The tweaks","nullable":true},"session_id":{"anyOf":[{"type":"string"}],"title":"Session Id","description":"The session id","nullable":true}},"type":"object","title":"SimplifiedAPIRequest"}],"title":"Input Request","nullable":true}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}},"method":"post","path":"/api/v1/run/{flow_id_or_name}","securitySchemes":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"api/v1/login"}}},"API key query":{"type":"apiKey","in":"query","name":"x-api-key"},"API key header":{"type":"apiKey","in":"header","name":"x-api-key"}},"info":{"title":"Langflow","version":"1.1.1"},"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 \\"sunt8_\\": \\"\\",\\n \\"commodof4\\": \\"\\",\\n \\"ullamcofc6\\": \\"\\"\\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)}},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)}}}]); \ No newline at end of file diff --git a/assets/js/4600db1a.1ec9a5b3.js b/assets/js/4600db1a.c6fccf29.js similarity index 89% rename from assets/js/4600db1a.1ec9a5b3.js rename to assets/js/4600db1a.c6fccf29.js index 32e0499d59..9112c18e68 100644 --- a/assets/js/4600db1a.1ec9a5b3.js +++ b/assets/js/4600db1a.c6fccf29.js @@ -1 +1 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[9465],{72338:(e,t,o)=>{o.r(t),o.d(t,{CH:()=>l,assets:()=>d,chCodeConfig:()=>m,contentTitle:()=>h,default:()=>g,frontMatter:()=>a,metadata:()=>n,toc:()=>u});const n=JSON.parse('{"id":"Tutorials/tutorials-memory-chatbot","title":"Memory chatbot","description":"This flow extends the\xa0basic prompting flow\xa0with a Chat memory component that stores up to 100 previous chat messages and uses them to provide context for the current conversation.","source":"@site/docs/Tutorials/tutorials-memory-chatbot.md","sourceDirName":"Tutorials","slug":"/tutorials-memory-chatbot","permalink":"/tutorials-memory-chatbot","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Memory chatbot","slug":"/tutorials-memory-chatbot"},"sidebar":"docs","previous":{"title":"Document QA","permalink":"/tutorials-document-qa"},"next":{"title":"Math agent","permalink":"/tutorials-math-agent"}}');var s=o(74848),r=o(28453),i=o(24754),c=o(84443);const a={title:"Memory chatbot",slug:"/tutorials-memory-chatbot"},h=void 0,d={},l={annotations:i.hk,Code:i.Cy},m={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},u=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Create the memory chatbot flow",id:"create-the-memory-chatbot-flow",level:2},{value:"Run the memory chatbot flow",id:"run-the-memory-chatbot-flow",level:2},{value:"Use Session ID with the memory chatbot flow",id:"use-session-id-with-the-memory-chatbot-flow",level:2}];function p(e){const t={a:"a",code:"code",h2:"h2",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return l||x("CH",!1),l.Code||x("CH.Code",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,s.jsxs)(t.p,{children:["This flow extends the\xa0",(0,s.jsx)(t.a,{href:"/starter-projects-basic-prompting",children:"basic prompting flow"}),"\xa0with a ",(0,s.jsx)(t.strong,{children:"Chat memory"})," component that stores up to 100 previous chat messages and uses them to provide context for the current conversation."]}),"\n",(0,s.jsx)(t.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"/get-started-installation",children:"Langflow installed and running"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://platform.openai.com/",children:"OpenAI API key created"})}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"create-the-memory-chatbot-flow",children:"Create the memory chatbot flow"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["From the Langflow dashboard, click\xa0",(0,s.jsx)(t.strong,{children:"New Flow"}),"."]}),"\n",(0,s.jsxs)(t.li,{children:["Select\xa0",(0,s.jsx)(t.strong,{children:"Memory Chatbot"}),"."]}),"\n",(0,s.jsxs)(t.li,{children:["The\xa0",(0,s.jsx)(t.strong,{children:"Memory Chatbot"}),"\xa0flow is created."]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{src:o(97829).A+"",width:"2662",height:"1372"})}),"\n",(0,s.jsxs)(t.p,{children:["This flow adds a\xa0",(0,s.jsx)(t.strong,{children:"Chat Memory"}),"\xa0component to the Basic Prompting flow.\nThis component retrieves previous messages and sends them to the\xa0",(0,s.jsx)(t.strong,{children:"Prompt"}),"\xa0component to fill a part of the\xa0",(0,s.jsx)(t.strong,{children:"Template"}),"\xa0with context."]}),"\n",(0,s.jsxs)(t.p,{children:["To examine the template, click the ",(0,s.jsx)(t.strong,{children:"Template"})," field in the ",(0,s.jsx)(t.strong,{children:"Prompt"})," component.\nThe ",(0,s.jsx)(t.strong,{children:"Prompt"})," tells the ",(0,s.jsx)(t.strong,{children:"OpenAI model"})," component how to respond to input."]}),"\n",(0,s.jsx)(l.Code,{codeConfig:m,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"You are a helpful assistant that answers questions.",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"Use markdown to format your answer, properly embedding images and urls.",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"History:",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"{memory}",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"{memory}"})," code in the prompt creates a new input port in the component called ",(0,s.jsx)(t.strong,{children:"memory"}),".\nThe ",(0,s.jsx)(t.strong,{children:"Chat Memory"})," component is connected to this port to store chat messages from the ",(0,s.jsx)(t.strong,{children:"Playground"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["This gives the\xa0",(0,s.jsx)(t.strong,{children:"OpenAI"}),"\xa0component a memory of previous chat messages."]}),"\n",(0,s.jsx)(t.h2,{id:"run-the-memory-chatbot-flow",children:"Run the memory chatbot flow"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["Open the ",(0,s.jsx)(t.strong,{children:"Playground"}),"."]}),"\n",(0,s.jsx)(t.li,{children:"Type multiple questions. For example, try entering this conversation:"}),"\n"]}),"\n",(0,s.jsx)(l.Code,{codeConfig:m,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"Hi, my name is Luca.",props:{}}]},{tokens:[{content:"Please tell me about PostgreSQL.",props:{}}]},{tokens:[{content:"What is my name?",props:{}}]},{tokens:[{content:"What is the second subject I asked you about?",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(t.p,{children:"The chatbot remembers your name and previous questions."}),"\n",(0,s.jsxs)(t.ol,{start:"3",children:["\n",(0,s.jsxs)(t.li,{children:["To view the ",(0,s.jsx)(t.strong,{children:"Message Logs"})," pane, click\xa0",(0,s.jsx)(c.A,{name:"Ellipsis","aria-label":"Horizontal ellipsis"}),", and then click ",(0,s.jsx)(t.strong,{children:"Message Logs"}),".\nThe ",(0,s.jsx)(t.strong,{children:"Message Logs"})," pane displays all previous messages, with each conversation sorted by ",(0,s.jsx)(t.code,{children:"session_id"}),"."]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{src:o(85629).A+"",width:"3250",height:"1778"})}),"\n",(0,s.jsx)(t.h2,{id:"use-session-id-with-the-memory-chatbot-flow",children:"Use Session ID with the memory chatbot flow"}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.code,{children:"session_id"}),"\xa0is a unique identifier in Langflow that stores conversation sessions between the AI and a user. A\xa0",(0,s.jsx)(t.code,{children:"session_id"}),"\xa0is created when a conversation is initiated, and then associated with all subsequent messages during that session."]}),"\n",(0,s.jsxs)(t.p,{children:["In the\xa0",(0,s.jsx)(t.strong,{children:"Memory Chatbot"}),"\xa0flow you created, the\xa0",(0,s.jsx)(t.strong,{children:"Chat Memory"}),"\xa0component references past interactions by\xa0",(0,s.jsx)(t.strong,{children:"Session ID"}),". You can demonstrate this by modifying the\xa0",(0,s.jsx)(t.strong,{children:"Session ID"}),"\xa0value to switch between conversation histories."]}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["In the\xa0",(0,s.jsx)(t.strong,{children:"Session ID"}),"\xa0field of the\xa0",(0,s.jsx)(t.strong,{children:"Chat Memory"}),"\xa0and\xa0",(0,s.jsx)(t.strong,{children:"Chat Input"}),"\xa0components, add a\xa0",(0,s.jsx)(t.strong,{children:"Session ID"}),"\xa0value like\xa0",(0,s.jsx)(t.code,{children:"MySessionID"}),"."]}),"\n",(0,s.jsxs)(t.li,{children:["Now, once you send a new message the\xa0",(0,s.jsx)(t.strong,{children:"Playground"}),", you should have a new memory created on the\xa0",(0,s.jsx)(t.strong,{children:"Memories"}),"\xa0tab."]}),"\n",(0,s.jsx)(t.li,{children:"Notice how your conversation is being stored in different memory sessions."}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["Learn more about chat memories in the ",(0,s.jsx)(t.a,{href:"/components-memories",children:"Memory"})," section."]})]})}function g(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}function x(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},84443:(e,t,o)=>{o.d(t,{A:()=>r});o(96540);var n=o(64058),s=o(74848);function r(e){let{name:t,...o}=e;const r=n[t];return r?(0,s.jsx)(r,{...o}):null}},85629:(e,t,o)=>{o.d(t,{A:()=>n});const n=o.p+"assets/images/messages-logs-aec5213dc668ee51c2a40eab2ba0718c.png"},97829:(e,t,o)=>{o.d(t,{A:()=>n});const n=o.p+"assets/images/starter-flow-memory-chatbot-af37fecb79d125009712e4c1128bc461.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[9465],{72338:(e,t,o)=>{o.r(t),o.d(t,{CH:()=>l,assets:()=>d,chCodeConfig:()=>m,contentTitle:()=>h,default:()=>g,frontMatter:()=>a,metadata:()=>n,toc:()=>u});const n=JSON.parse('{"id":"Tutorials/tutorials-memory-chatbot","title":"Memory chatbot","description":"This flow extends the\xa0basic prompting flow\xa0with a Chat memory component that stores up to 100 previous chat messages and uses them to provide context for the current conversation.","source":"@site/docs/Tutorials/tutorials-memory-chatbot.md","sourceDirName":"Tutorials","slug":"/tutorials-memory-chatbot","permalink":"/tutorials-memory-chatbot","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Memory chatbot","slug":"/tutorials-memory-chatbot"},"sidebar":"docs","previous":{"title":"Document QA","permalink":"/tutorials-document-qa"},"next":{"title":"Math agent","permalink":"/tutorials-math-agent"}}');var s=o(74848),r=o(28453),i=o(24754),c=o(84443);const a={title:"Memory chatbot",slug:"/tutorials-memory-chatbot"},h=void 0,d={},l={annotations:i.hk,Code:i.Cy},m={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},u=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Create the memory chatbot flow",id:"create-the-memory-chatbot-flow",level:2},{value:"Run the memory chatbot flow",id:"run-the-memory-chatbot-flow",level:2},{value:"Use Session ID with the memory chatbot flow",id:"use-session-id-with-the-memory-chatbot-flow",level:2}];function p(e){const t={a:"a",code:"code",h2:"h2",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return l||x("CH",!1),l.Code||x("CH.Code",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,s.jsxs)(t.p,{children:["This flow extends the\xa0",(0,s.jsx)(t.a,{href:"/starter-projects-basic-prompting",children:"basic prompting flow"}),"\xa0with a ",(0,s.jsx)(t.strong,{children:"Chat memory"})," component that stores up to 100 previous chat messages and uses them to provide context for the current conversation."]}),"\n",(0,s.jsx)(t.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"/get-started-installation",children:"Langflow installed and running"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://platform.openai.com/",children:"OpenAI API key created"})}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"create-the-memory-chatbot-flow",children:"Create the memory chatbot flow"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["From the Langflow dashboard, click\xa0",(0,s.jsx)(t.strong,{children:"New Flow"}),"."]}),"\n",(0,s.jsxs)(t.li,{children:["Select\xa0",(0,s.jsx)(t.strong,{children:"Memory Chatbot"}),"."]}),"\n",(0,s.jsxs)(t.li,{children:["The\xa0",(0,s.jsx)(t.strong,{children:"Memory Chatbot"}),"\xa0flow is created."]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{src:o(97829).A+"",width:"2662",height:"1372"})}),"\n",(0,s.jsxs)(t.p,{children:["This flow adds a\xa0",(0,s.jsx)(t.strong,{children:"Chat Memory"}),"\xa0component to the Basic Prompting flow.\nThis component retrieves previous messages and sends them to the\xa0",(0,s.jsx)(t.strong,{children:"Prompt"}),"\xa0component to fill a part of the\xa0",(0,s.jsx)(t.strong,{children:"Template"}),"\xa0with context."]}),"\n",(0,s.jsxs)(t.p,{children:["To examine the template, click the ",(0,s.jsx)(t.strong,{children:"Template"})," field in the ",(0,s.jsx)(t.strong,{children:"Prompt"})," component.\nThe ",(0,s.jsx)(t.strong,{children:"Prompt"})," tells the ",(0,s.jsx)(t.strong,{children:"OpenAI model"})," component how to respond to input."]}),"\n",(0,s.jsx)(l.Code,{codeConfig:m,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"You are a helpful assistant that answers questions.",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"Use markdown to format your answer, properly embedding images and urls.",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"History:",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"{memory}",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"{memory}"})," code in the prompt creates a new input port in the component called ",(0,s.jsx)(t.strong,{children:"memory"}),".\nThe ",(0,s.jsx)(t.strong,{children:"Chat Memory"})," component is connected to this port to store chat messages from the ",(0,s.jsx)(t.strong,{children:"Playground"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["This gives the\xa0",(0,s.jsx)(t.strong,{children:"OpenAI"}),"\xa0component a memory of previous chat messages."]}),"\n",(0,s.jsx)(t.h2,{id:"run-the-memory-chatbot-flow",children:"Run the memory chatbot flow"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["Open the ",(0,s.jsx)(t.strong,{children:"Playground"}),"."]}),"\n",(0,s.jsx)(t.li,{children:"Type multiple questions. For example, try entering this conversation:"}),"\n"]}),"\n",(0,s.jsx)(l.Code,{codeConfig:m,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"Hi, my name is Luca.",props:{}}]},{tokens:[{content:"Please tell me about PostgreSQL.",props:{}}]},{tokens:[{content:"What is my name?",props:{}}]},{tokens:[{content:"What is the second subject I asked you about?",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(t.p,{children:"The chatbot remembers your name and previous questions."}),"\n",(0,s.jsxs)(t.ol,{start:"3",children:["\n",(0,s.jsxs)(t.li,{children:["To view the ",(0,s.jsx)(t.strong,{children:"Message Logs"})," pane, click\xa0",(0,s.jsx)(c.A,{name:"Ellipsis","aria-label":"Horizontal ellipsis"}),", and then click ",(0,s.jsx)(t.strong,{children:"Message Logs"}),".\nThe ",(0,s.jsx)(t.strong,{children:"Message Logs"})," pane displays all previous messages, with each conversation sorted by ",(0,s.jsx)(t.code,{children:"session_id"}),"."]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{src:o(85629).A+"",width:"3250",height:"1778"})}),"\n",(0,s.jsx)(t.h2,{id:"use-session-id-with-the-memory-chatbot-flow",children:"Use Session ID with the memory chatbot flow"}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.code,{children:"session_id"}),"\xa0is a unique identifier in Langflow that stores conversation sessions between the AI and a user. A\xa0",(0,s.jsx)(t.code,{children:"session_id"}),"\xa0is created when a conversation is initiated, and then associated with all subsequent messages during that session."]}),"\n",(0,s.jsxs)(t.p,{children:["In the\xa0",(0,s.jsx)(t.strong,{children:"Memory Chatbot"}),"\xa0flow you created, the\xa0",(0,s.jsx)(t.strong,{children:"Chat Memory"}),"\xa0component references past interactions by\xa0",(0,s.jsx)(t.strong,{children:"Session ID"}),". You can demonstrate this by modifying the\xa0",(0,s.jsx)(t.strong,{children:"Session ID"}),"\xa0value to switch between conversation histories."]}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["In the\xa0",(0,s.jsx)(t.strong,{children:"Session ID"}),"\xa0field of the\xa0",(0,s.jsx)(t.strong,{children:"Chat Memory"}),"\xa0and\xa0",(0,s.jsx)(t.strong,{children:"Chat Input"}),"\xa0components, add a\xa0",(0,s.jsx)(t.strong,{children:"Session ID"}),"\xa0value like\xa0",(0,s.jsx)(t.code,{children:"MySessionID"}),"."]}),"\n",(0,s.jsxs)(t.li,{children:["Now, once you send a new message the\xa0",(0,s.jsx)(t.strong,{children:"Playground"}),", you should have a new memory created in the ",(0,s.jsx)(t.strong,{children:"Message Logs"}),"\xa0pane."]}),"\n",(0,s.jsx)(t.li,{children:"Notice how your conversation is being stored in different memory sessions."}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["Learn more about chat memories in the ",(0,s.jsx)(t.a,{href:"/components-memories",children:"Memory"})," section."]})]})}function g(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}function x(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},84443:(e,t,o)=>{o.d(t,{A:()=>r});o(96540);var n=o(64058),s=o(74848);function r(e){let{name:t,...o}=e;const r=n[t];return r?(0,s.jsx)(r,{...o}):null}},85629:(e,t,o)=>{o.d(t,{A:()=>n});const n=o.p+"assets/images/messages-logs-aec5213dc668ee51c2a40eab2ba0718c.png"},97829:(e,t,o)=>{o.d(t,{A:()=>n});const n=o.p+"assets/images/starter-flow-memory-chatbot-af37fecb79d125009712e4c1128bc461.png"}}]); \ No newline at end of file diff --git a/assets/js/6aa941bb.3140d0c4.js b/assets/js/6aa941bb.3140d0c4.js new file mode 100644 index 0000000000..bb62a808ca --- /dev/null +++ b/assets/js/6aa941bb.3140d0c4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[3327],{19054:(e,t,n)=>{n.r(t),n.d(t,{CH:()=>h,assets:()=>c,chCodeConfig:()=>a,contentTitle:()=>l,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>x});const s=JSON.parse('{"id":"Components/components-logic","title":"Logic","description":"Logic components provide functionalities for routing, conditional processing, and flow management.","source":"@site/docs/Components/components-logic.md","sourceDirName":"Components","slug":"/components-logic","permalink":"/components-logic","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Logic","slug":"/components-logic"},"sidebar":"docs","previous":{"title":"Loaders","permalink":"/components-loaders"},"next":{"title":"Memories","permalink":"/components-memories"}}');var i=n(74848),o=n(28453),d=n(24754);const r={title:"Logic",slug:"/components-logic"},l="Logic components in Langflow",c={},h={annotations:d.hk,Code:d.Cy},a={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},x=[{value:"Use a logic component in a flow",id:"use-a-logic-component-in-a-flow",level:2},{value:"Conditional router (If-Else component)",id:"conditional-router-if-else-component",level:2},{value:"Inputs",id:"inputs",level:3},{value:"Outputs",id:"outputs",level:3},{value:"Data conditional router",id:"data-conditional-router",level:2},{value:"Inputs",id:"inputs-1",level:3},{value:"Outputs",id:"outputs-1",level:3},{value:"Flow as tool",id:"flow-as-tool",level:2},{value:"Inputs",id:"inputs-2",level:3},{value:"Outputs",id:"outputs-2",level:3},{value:"Listen",id:"listen",level:2},{value:"Inputs",id:"inputs-3",level:3},{value:"Outputs",id:"outputs-3",level:3},{value:"Loop",id:"loop",level:2},{value:"Inputs",id:"inputs-4",level:3},{value:"Outputs",id:"outputs-4",level:3},{value:"Notify",id:"notify",level:2},{value:"Inputs",id:"inputs-5",level:3},{value:"Outputs",id:"outputs-5",level:3},{value:"Pass message",id:"pass-message",level:2},{value:"Inputs",id:"inputs-6",level:3},{value:"Outputs",id:"outputs-6",level:3},{value:"Run flow",id:"run-flow",level:2},{value:"Inputs",id:"inputs-7",level:3},{value:"Outputs",id:"outputs-7",level:3},{value:"Sub flow",id:"sub-flow",level:2},{value:"Inputs",id:"inputs-8",level:3},{value:"Outputs",id:"outputs-8",level:3}];function j(e){const t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,o.R)(),...e.components};return h||p("CH",!1),h.Code||p("CH.Code",!0),(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n",(0,i.jsx)(t.header,{children:(0,i.jsx)(t.h1,{id:"logic-components-in-langflow",children:"Logic components in Langflow"})}),"\n",(0,i.jsx)(t.p,{children:"Logic components provide functionalities for routing, conditional processing, and flow management."}),"\n",(0,i.jsx)(t.h2,{id:"use-a-logic-component-in-a-flow",children:"Use a logic component in a flow"}),"\n",(0,i.jsxs)(t.p,{children:['This flow creates a summarizing "for each" loop with the ',(0,i.jsx)(t.a,{href:"/components-logic#loop",children:"Loop"})," component."]}),"\n",(0,i.jsxs)(t.p,{children:["The component iterates over a list of ",(0,i.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," objects until it's completed, and then the ",(0,i.jsx)(t.strong,{children:"Done"})," loop aggregates the results."]}),"\n",(0,i.jsxs)(t.p,{children:["The ",(0,i.jsx)(t.strong,{children:"File"})," component loads text files from your local machine, and then the ",(0,i.jsx)(t.strong,{children:"Parse Data"})," component parses them into a list of structured ",(0,i.jsx)(t.code,{children:"Data"})," objects.\nThe ",(0,i.jsx)(t.strong,{children:"Loop"})," component passes each ",(0,i.jsx)(t.code,{children:"Data"})," object to a ",(0,i.jsx)(t.strong,{children:"Prompt"})," to be summarized."]}),"\n",(0,i.jsxs)(t.p,{children:["When the ",(0,i.jsx)(t.strong,{children:"Loop"})," component runs out of ",(0,i.jsx)(t.code,{children:"Data"}),", the ",(0,i.jsx)(t.strong,{children:"Done"})," loop activates, which counts the number of pages and summarizes their tone with another ",(0,i.jsx)(t.strong,{children:"Prompt"}),".\nThis is represented in Langflow by connecting the Parse Data component's ",(0,i.jsx)(t.strong,{children:"Data List"})," output to the Loop component's ",(0,i.jsx)(t.code,{children:"Data"})," loop input."]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Sample Flow looping summarizer",src:n(19709).A+"",width:"2676",height:"1512"})}),"\n",(0,i.jsx)(t.p,{children:"The output will look similar to this:"}),"\n",(0,i.jsx)(h.Code,{codeConfig:a,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"Document Summary",props:{}}]},{tokens:[{content:"Total Pages Processed",props:{}}]},{tokens:[{content:"Total Pages: 2",props:{}}]},{tokens:[{content:"Overall Tone of Document",props:{}}]},{tokens:[{content:"Tone: Informative and Instructional",props:{}}]},{tokens:[{content:"The documentation outlines microservices architecture patterns and best practices.",props:{}}]},{tokens:[{content:"It emphasizes service isolation and inter-service communication protocols.",props:{}}]},{tokens:[{content:"The use of asynchronous messaging patterns is recommended for system scalability.",props:{}}]},{tokens:[{content:"It includes code examples of REST and gRPC implementations to demonstrate integration approaches.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,i.jsx)(t.h2,{id:"conditional-router-if-else-component",children:"Conditional router (If-Else component)"}),"\n",(0,i.jsx)(t.p,{children:"This component routes an input message to a corresponding output based on text comparison."}),"\n",(0,i.jsx)(t.p,{children:"The ConditionalRouterComponent routes messages based on text comparison. It evaluates a condition by comparing two text inputs using a specified operator and routes the message accordingly."}),"\n",(0,i.jsx)(t.h3,{id:"inputs",children:"Inputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"input_text"}),(0,i.jsx)(t.td,{children:"String"}),(0,i.jsx)(t.td,{children:"The primary text input for the operation."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"match_text"}),(0,i.jsx)(t.td,{children:"String"}),(0,i.jsx)(t.td,{children:"The text input to compare against."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"operator"}),(0,i.jsx)(t.td,{children:"Dropdown"}),(0,i.jsx)(t.td,{children:"The operator to apply for comparing the texts."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"case_sensitive"}),(0,i.jsx)(t.td,{children:"Boolean"}),(0,i.jsx)(t.td,{children:"If true, the comparison will be case sensitive."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"message"}),(0,i.jsx)(t.td,{children:"Message"}),(0,i.jsx)(t.td,{children:"The message to pass through either route."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"max_iterations"}),(0,i.jsx)(t.td,{children:"Integer"}),(0,i.jsx)(t.td,{children:"The maximum number of iterations for the conditional router."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"default_route"}),(0,i.jsx)(t.td,{children:"Dropdown"}),(0,i.jsx)(t.td,{children:"The default route to take when max iterations are reached."})]})]})]}),"\n",(0,i.jsx)(t.h3,{id:"outputs",children:"Outputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"true_result"}),(0,i.jsx)(t.td,{children:"Message"}),(0,i.jsx)(t.td,{children:"The output when the condition is true."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"false_result"}),(0,i.jsx)(t.td,{children:"Message"}),(0,i.jsx)(t.td,{children:"The output when the condition is false."})]})]})]}),"\n",(0,i.jsx)(t.h2,{id:"data-conditional-router",children:"Data conditional router"}),"\n",(0,i.jsxs)(t.p,{children:["This component routes ",(0,i.jsx)(t.code,{children:"Data"})," objects based on a condition applied to a specified key, including boolean validation."]}),"\n",(0,i.jsx)(t.p,{children:"This component is particularly useful in workflows that require conditional routing of complex data structures, enabling dynamic decision-making based on data content."}),"\n",(0,i.jsx)(t.h3,{id:"inputs-1",children:"Inputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"data_input"}),(0,i.jsx)(t.td,{children:"Data"}),(0,i.jsx)(t.td,{children:"The data object or list of data objects to process."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"key_name"}),(0,i.jsx)(t.td,{children:"String"}),(0,i.jsx)(t.td,{children:"The name of the key in the data object to check."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"operator"}),(0,i.jsx)(t.td,{children:"Dropdown"}),(0,i.jsx)(t.td,{children:"The operator to apply for comparing the values."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"compare_value"}),(0,i.jsx)(t.td,{children:"String"}),(0,i.jsx)(t.td,{children:"The value to compare against (not used for boolean validator)."})]})]})]}),"\n",(0,i.jsx)(t.h3,{id:"outputs-1",children:"Outputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"true_output"}),(0,i.jsx)(t.td,{children:"Data/List"}),(0,i.jsx)(t.td,{children:"Output when the condition is met."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"false_output"}),(0,i.jsx)(t.td,{children:"Data/List"}),(0,i.jsx)(t.td,{children:"Output when the condition is not met."})]})]})]}),"\n",(0,i.jsx)(t.h2,{id:"flow-as-tool",children:"Flow as tool"}),"\n",(0,i.jsx)(t.admonition,{type:"important",children:(0,i.jsxs)(t.p,{children:["This component is deprecated as of Langflow version 1.1.2.\nInstead, use the ",(0,i.jsx)(t.a,{href:"/components-logic#run-flow",children:"Run flow component"})]})}),"\n",(0,i.jsx)(t.p,{children:"This component constructs a tool from a function that runs a loaded flow."}),"\n",(0,i.jsx)(t.h3,{id:"inputs-2",children:"Inputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"flow_name"}),(0,i.jsx)(t.td,{children:"Dropdown"}),(0,i.jsx)(t.td,{children:"The name of the flow to run."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"tool_name"}),(0,i.jsx)(t.td,{children:"String"}),(0,i.jsx)(t.td,{children:"The name of the tool."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"tool_description"}),(0,i.jsx)(t.td,{children:"String"}),(0,i.jsx)(t.td,{children:"The description of the tool."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"return_direct"}),(0,i.jsx)(t.td,{children:"Boolean"}),(0,i.jsx)(t.td,{children:"If true, returns the result directly from the tool."})]})]})]}),"\n",(0,i.jsx)(t.h3,{id:"outputs-2",children:"Outputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"api_build_tool"}),(0,i.jsx)(t.td,{children:"Tool"}),(0,i.jsx)(t.td,{children:"The constructed tool from the flow."})]})})]}),"\n",(0,i.jsx)(t.h2,{id:"listen",children:"Listen"}),"\n",(0,i.jsx)(t.p,{children:"This component listens for a notification and retrieves its associated state."}),"\n",(0,i.jsx)(t.h3,{id:"inputs-3",children:"Inputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"name"}),(0,i.jsx)(t.td,{children:"String"}),(0,i.jsx)(t.td,{children:"The name of the notification to listen for."})]})})]}),"\n",(0,i.jsx)(t.h3,{id:"outputs-3",children:"Outputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"output"}),(0,i.jsx)(t.td,{children:"Data"}),(0,i.jsx)(t.td,{children:"The state associated with the notification."})]})})]}),"\n",(0,i.jsx)(t.h2,{id:"loop",children:"Loop"}),"\n",(0,i.jsxs)(t.p,{children:["This component iterates over a list of ",(0,i.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," objects, outputting one item at a time and aggregating results from loop inputs."]}),"\n",(0,i.jsx)(t.h3,{id:"inputs-4",children:"Inputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"data"}),(0,i.jsx)(t.td,{children:"Data/List"}),(0,i.jsx)(t.td,{children:"The initial list of Data objects to iterate over."})]})})]}),"\n",(0,i.jsx)(t.h3,{id:"outputs-4",children:"Outputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"item"}),(0,i.jsx)(t.td,{children:"Data"}),(0,i.jsx)(t.td,{children:"Outputs one item at a time from the data list."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"done"}),(0,i.jsx)(t.td,{children:"Data"}),(0,i.jsx)(t.td,{children:"Triggered when iteration complete, returns aggregated results."})]})]})]}),"\n",(0,i.jsx)(t.h2,{id:"notify",children:"Notify"}),"\n",(0,i.jsx)(t.p,{children:"This component generates a notification for the Listen component to use."}),"\n",(0,i.jsx)(t.h3,{id:"inputs-5",children:"Inputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"name"}),(0,i.jsx)(t.td,{children:"String"}),(0,i.jsx)(t.td,{children:"The name of the notification."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"data"}),(0,i.jsx)(t.td,{children:"Data"}),(0,i.jsx)(t.td,{children:"The data to store in the notification."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"append"}),(0,i.jsx)(t.td,{children:"Boolean"}),(0,i.jsx)(t.td,{children:"If true, the record will be appended to the existing notification."})]})]})]}),"\n",(0,i.jsx)(t.h3,{id:"outputs-5",children:"Outputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"output"}),(0,i.jsx)(t.td,{children:"Data"}),(0,i.jsx)(t.td,{children:"The data stored in the notification."})]})})]}),"\n",(0,i.jsx)(t.h2,{id:"pass-message",children:"Pass message"}),"\n",(0,i.jsx)(t.p,{children:"This component forwards the input message, unchanged."}),"\n",(0,i.jsx)(t.h3,{id:"inputs-6",children:"Inputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Display Name"}),(0,i.jsx)(t.th,{children:"Info"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"input_message"}),(0,i.jsx)(t.td,{children:"Input Message"}),(0,i.jsx)(t.td,{children:"The message to be passed forward."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"ignored_message"}),(0,i.jsx)(t.td,{children:"Ignored Message"}),(0,i.jsx)(t.td,{children:"A second message to be ignored. Used as a workaround for continuity."})]})]})]}),"\n",(0,i.jsx)(t.h3,{id:"outputs-6",children:"Outputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Display Name"}),(0,i.jsx)(t.th,{children:"Info"})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"output_message"}),(0,i.jsx)(t.td,{children:"Output Message"}),(0,i.jsx)(t.td,{children:"The forwarded input message."})]})})]}),"\n",(0,i.jsx)(t.h2,{id:"run-flow",children:"Run flow"}),"\n",(0,i.jsx)(t.p,{children:"This component allows you to run a specified flow with given inputs and tweaks."}),"\n",(0,i.jsx)(t.p,{children:"The RunFlowComponent executes a specified flow within a larger workflow. It provides the ability to run a flow with custom inputs and apply tweaks to modify its behavior."}),"\n",(0,i.jsx)(t.h3,{id:"inputs-7",children:"Inputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"input_value"}),(0,i.jsx)(t.td,{children:"String"}),(0,i.jsx)(t.td,{children:"The input value for the flow to process."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"flow_name"}),(0,i.jsx)(t.td,{children:"Dropdown"}),(0,i.jsx)(t.td,{children:"The name of the flow to run."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"tweaks"}),(0,i.jsx)(t.td,{children:"Nested Dict"}),(0,i.jsx)(t.td,{children:"Tweaks to apply to the flow."})]})]})]}),"\n",(0,i.jsx)(t.h3,{id:"outputs-7",children:"Outputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"run_outputs"}),(0,i.jsx)(t.td,{children:"List[Data]"}),(0,i.jsx)(t.td,{children:"The results generated from running the flow."})]})})]}),"\n",(0,i.jsx)(t.h2,{id:"sub-flow",children:"Sub flow"}),"\n",(0,i.jsx)(t.admonition,{type:"important",children:(0,i.jsxs)(t.p,{children:["This component is deprecated as of Langflow version 1.1.2.\nInstead, use the ",(0,i.jsx)(t.a,{href:"/components-logic#run-flow",children:"Run flow component"})]})}),"\n",(0,i.jsxs)(t.p,{children:["This ",(0,i.jsx)(t.code,{children:"SubFlowComponent"})," generates a component from a flow with all of its inputs and outputs."]}),"\n",(0,i.jsx)(t.p,{children:"This component can integrate entire flows as components within a larger workflow. It dynamically generates inputs based on the selected flow and executes the flow with provided parameters."}),"\n",(0,i.jsx)(t.h3,{id:"inputs-8",children:"Inputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"flow_name"}),(0,i.jsx)(t.td,{children:"Dropdown"}),(0,i.jsx)(t.td,{children:"The name of the flow to run."})]})})]}),"\n",(0,i.jsx)(t.h3,{id:"outputs-8",children:"Outputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"flow_outputs"}),(0,i.jsx)(t.td,{children:"List[Data]"}),(0,i.jsx)(t.td,{children:"The outputs generated from the flow."})]})})]})]})}function u(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(j,{...e})}):j(e)}function p(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},19709:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/loop-text-summarizer-bd1d7be6d26bb47765931e3ab9f98dfa.png"}}]); \ No newline at end of file diff --git a/assets/js/6aa941bb.bc984c84.js b/assets/js/6aa941bb.bc984c84.js deleted file mode 100644 index 324d93aa62..0000000000 --- a/assets/js/6aa941bb.bc984c84.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[3327],{19054:(e,t,n)=>{n.r(t),n.d(t,{CH:()=>h,assets:()=>c,chCodeConfig:()=>a,contentTitle:()=>l,default:()=>j,frontMatter:()=>d,metadata:()=>s,toc:()=>x});const s=JSON.parse('{"id":"Components/components-logic","title":"Logic","description":"Logic components provide functionalities for routing, conditional processing, and flow management.","source":"@site/docs/Components/components-logic.md","sourceDirName":"Components","slug":"/components-logic","permalink":"/components-logic","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Logic","slug":"/components-logic"},"sidebar":"docs","previous":{"title":"Loaders","permalink":"/components-loaders"},"next":{"title":"Memories","permalink":"/components-memories"}}');var i=n(74848),o=n(28453),r=n(24754);const d={title:"Logic",slug:"/components-logic"},l="Logic components in Langflow",c={},h={annotations:r.hk,Code:r.Cy},a={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},x=[{value:"Use a logic component in a flow",id:"use-a-logic-component-in-a-flow",level:2},{value:"Conditional router",id:"conditional-router",level:2},{value:"Inputs",id:"inputs",level:3},{value:"Outputs",id:"outputs",level:3},{value:"Data conditional router",id:"data-conditional-router",level:2},{value:"Inputs",id:"inputs-1",level:3},{value:"Outputs",id:"outputs-1",level:3},{value:"Flow as Tool",id:"flow-as-tool",level:2},{value:"Inputs",id:"inputs-2",level:3},{value:"Outputs",id:"outputs-2",level:3},{value:"Listen",id:"listen",level:2},{value:"Inputs",id:"inputs-3",level:3},{value:"Outputs",id:"outputs-3",level:3},{value:"Loop",id:"loop",level:2},{value:"Inputs",id:"inputs-4",level:3},{value:"Outputs",id:"outputs-4",level:3},{value:"Notify",id:"notify",level:2},{value:"Inputs",id:"inputs-5",level:3},{value:"Outputs",id:"outputs-5",level:3},{value:"Run flow",id:"run-flow",level:2},{value:"Inputs",id:"inputs-6",level:3},{value:"Outputs",id:"outputs-6",level:3},{value:"Sub Flow",id:"sub-flow",level:2},{value:"Inputs",id:"inputs-7",level:3},{value:"Outputs",id:"outputs-7",level:3}];function u(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,o.R)(),...e.components};return h||p("CH",!1),h.Code||p("CH.Code",!0),(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n",(0,i.jsx)(t.header,{children:(0,i.jsx)(t.h1,{id:"logic-components-in-langflow",children:"Logic components in Langflow"})}),"\n",(0,i.jsx)(t.p,{children:"Logic components provide functionalities for routing, conditional processing, and flow management."}),"\n",(0,i.jsx)(t.h2,{id:"use-a-logic-component-in-a-flow",children:"Use a logic component in a flow"}),"\n",(0,i.jsxs)(t.p,{children:['This flow creates a summarizing "for each" loop with the ',(0,i.jsx)(t.a,{href:"/components-logic#loop",children:"Loop"})," component."]}),"\n",(0,i.jsxs)(t.p,{children:["The component iterates over a list of ",(0,i.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," objects until it's completed, and then the ",(0,i.jsx)(t.strong,{children:"Done"})," loop aggregates the results."]}),"\n",(0,i.jsxs)(t.p,{children:["The ",(0,i.jsx)(t.strong,{children:"File"})," component loads text files from your local machine, and then the ",(0,i.jsx)(t.strong,{children:"Parse Data"})," component parses them into a list of structured ",(0,i.jsx)(t.code,{children:"Data"})," objects.\nThe ",(0,i.jsx)(t.strong,{children:"Loop"})," component passes each ",(0,i.jsx)(t.code,{children:"Data"})," object to a ",(0,i.jsx)(t.strong,{children:"Prompt"})," to be summarized."]}),"\n",(0,i.jsxs)(t.p,{children:["When the ",(0,i.jsx)(t.strong,{children:"Loop"})," component runs out of ",(0,i.jsx)(t.code,{children:"Data"}),", the ",(0,i.jsx)(t.strong,{children:"Done"})," loop activates, which counts the number of pages and summarizes their tone with another ",(0,i.jsx)(t.strong,{children:"Prompt"}),".\nThis is represented in Langflow by connecting the Parse Data component's ",(0,i.jsx)(t.strong,{children:"Data List"})," output to the Loop component's ",(0,i.jsx)(t.code,{children:"Data"})," loop input."]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Sample Flow looping summarizer",src:n(19709).A+"",width:"2676",height:"1512"})}),"\n",(0,i.jsx)(t.p,{children:"The output will look similar to this:"}),"\n",(0,i.jsx)(h.Code,{codeConfig:a,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"Document Summary",props:{}}]},{tokens:[{content:"Total Pages Processed",props:{}}]},{tokens:[{content:"Total Pages: 2",props:{}}]},{tokens:[{content:"Overall Tone of Document",props:{}}]},{tokens:[{content:"Tone: Informative and Instructional",props:{}}]},{tokens:[{content:"The documentation outlines microservices architecture patterns and best practices.",props:{}}]},{tokens:[{content:"It emphasizes service isolation and inter-service communication protocols.",props:{}}]},{tokens:[{content:"The use of asynchronous messaging patterns is recommended for system scalability.",props:{}}]},{tokens:[{content:"It includes code examples of REST and gRPC implementations to demonstrate integration approaches.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,i.jsx)(t.h2,{id:"conditional-router",children:"Conditional router"}),"\n",(0,i.jsx)(t.p,{children:"This component routes an input message to a corresponding output based on text comparison."}),"\n",(0,i.jsx)(t.p,{children:"The ConditionalRouterComponent routes messages based on text comparison. It evaluates a condition by comparing two text inputs using a specified operator and routes the message accordingly."}),"\n",(0,i.jsx)(t.h3,{id:"inputs",children:"Inputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"input_text"}),(0,i.jsx)(t.td,{children:"String"}),(0,i.jsx)(t.td,{children:"The primary text input for the operation."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"match_text"}),(0,i.jsx)(t.td,{children:"String"}),(0,i.jsx)(t.td,{children:"The text input to compare against."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"operator"}),(0,i.jsx)(t.td,{children:"Dropdown"}),(0,i.jsx)(t.td,{children:"The operator to apply for comparing the texts."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"case_sensitive"}),(0,i.jsx)(t.td,{children:"Boolean"}),(0,i.jsx)(t.td,{children:"If true, the comparison will be case sensitive."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"message"}),(0,i.jsx)(t.td,{children:"Message"}),(0,i.jsx)(t.td,{children:"The message to pass through either route."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"max_iterations"}),(0,i.jsx)(t.td,{children:"Integer"}),(0,i.jsx)(t.td,{children:"The maximum number of iterations for the conditional router."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"default_route"}),(0,i.jsx)(t.td,{children:"Dropdown"}),(0,i.jsx)(t.td,{children:"The default route to take when max iterations are reached."})]})]})]}),"\n",(0,i.jsx)(t.h3,{id:"outputs",children:"Outputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"true_result"}),(0,i.jsx)(t.td,{children:"Message"}),(0,i.jsx)(t.td,{children:"The output when the condition is true."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"false_result"}),(0,i.jsx)(t.td,{children:"Message"}),(0,i.jsx)(t.td,{children:"The output when the condition is false."})]})]})]}),"\n",(0,i.jsx)(t.h2,{id:"data-conditional-router",children:"Data conditional router"}),"\n",(0,i.jsxs)(t.p,{children:["This component routes ",(0,i.jsx)(t.code,{children:"Data"})," objects based on a condition applied to a specified key, including boolean validation."]}),"\n",(0,i.jsx)(t.p,{children:"This component is particularly useful in workflows that require conditional routing of complex data structures, enabling dynamic decision-making based on data content."}),"\n",(0,i.jsx)(t.h3,{id:"inputs-1",children:"Inputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"data_input"}),(0,i.jsx)(t.td,{children:"Data"}),(0,i.jsx)(t.td,{children:"The data object or list of data objects to process."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"key_name"}),(0,i.jsx)(t.td,{children:"String"}),(0,i.jsx)(t.td,{children:"The name of the key in the data object to check."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"operator"}),(0,i.jsx)(t.td,{children:"Dropdown"}),(0,i.jsx)(t.td,{children:"The operator to apply for comparing the values."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"compare_value"}),(0,i.jsx)(t.td,{children:"String"}),(0,i.jsx)(t.td,{children:"The value to compare against (not used for boolean validator)."})]})]})]}),"\n",(0,i.jsx)(t.h3,{id:"outputs-1",children:"Outputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"true_output"}),(0,i.jsx)(t.td,{children:"Data/List"}),(0,i.jsx)(t.td,{children:"Output when the condition is met."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"false_output"}),(0,i.jsx)(t.td,{children:"Data/List"}),(0,i.jsx)(t.td,{children:"Output when the condition is not met."})]})]})]}),"\n",(0,i.jsx)(t.h2,{id:"flow-as-tool",children:"Flow as Tool"}),"\n",(0,i.jsx)(t.p,{children:"This component constructs a tool from a function that runs a loaded flow."}),"\n",(0,i.jsx)(t.h3,{id:"inputs-2",children:"Inputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"flow_name"}),(0,i.jsx)(t.td,{children:"Dropdown"}),(0,i.jsx)(t.td,{children:"The name of the flow to run."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"tool_name"}),(0,i.jsx)(t.td,{children:"String"}),(0,i.jsx)(t.td,{children:"The name of the tool."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"tool_description"}),(0,i.jsx)(t.td,{children:"String"}),(0,i.jsx)(t.td,{children:"The description of the tool."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"return_direct"}),(0,i.jsx)(t.td,{children:"Boolean"}),(0,i.jsx)(t.td,{children:"If true, returns the result directly from the tool."})]})]})]}),"\n",(0,i.jsx)(t.h3,{id:"outputs-2",children:"Outputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"api_build_tool"}),(0,i.jsx)(t.td,{children:"Tool"}),(0,i.jsx)(t.td,{children:"The constructed tool from the flow."})]})})]}),"\n",(0,i.jsx)(t.h2,{id:"listen",children:"Listen"}),"\n",(0,i.jsx)(t.p,{children:"This component listens for a notification and retrieves its associated state."}),"\n",(0,i.jsx)(t.h3,{id:"inputs-3",children:"Inputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"name"}),(0,i.jsx)(t.td,{children:"String"}),(0,i.jsx)(t.td,{children:"The name of the notification to listen for."})]})})]}),"\n",(0,i.jsx)(t.h3,{id:"outputs-3",children:"Outputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"output"}),(0,i.jsx)(t.td,{children:"Data"}),(0,i.jsx)(t.td,{children:"The state associated with the notification."})]})})]}),"\n",(0,i.jsx)(t.h2,{id:"loop",children:"Loop"}),"\n",(0,i.jsxs)(t.p,{children:["This component iterates over a list of ",(0,i.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," objects, outputting one item at a time and aggregating results from loop inputs."]}),"\n",(0,i.jsx)(t.h3,{id:"inputs-4",children:"Inputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"data"}),(0,i.jsx)(t.td,{children:"Data/List"}),(0,i.jsx)(t.td,{children:"The initial list of Data objects to iterate over."})]})})]}),"\n",(0,i.jsx)(t.h3,{id:"outputs-4",children:"Outputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"item"}),(0,i.jsx)(t.td,{children:"Data"}),(0,i.jsx)(t.td,{children:"Outputs one item at a time from the data list."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"done"}),(0,i.jsx)(t.td,{children:"Data"}),(0,i.jsx)(t.td,{children:"Triggered when iteration complete, returns aggregated results."})]})]})]}),"\n",(0,i.jsx)(t.h2,{id:"notify",children:"Notify"}),"\n",(0,i.jsx)(t.p,{children:"This component generates a notification for the Listen component to use."}),"\n",(0,i.jsx)(t.h3,{id:"inputs-5",children:"Inputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"name"}),(0,i.jsx)(t.td,{children:"String"}),(0,i.jsx)(t.td,{children:"The name of the notification."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"data"}),(0,i.jsx)(t.td,{children:"Data"}),(0,i.jsx)(t.td,{children:"The data to store in the notification."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"append"}),(0,i.jsx)(t.td,{children:"Boolean"}),(0,i.jsx)(t.td,{children:"If true, the record will be appended to the existing notification."})]})]})]}),"\n",(0,i.jsx)(t.h3,{id:"outputs-5",children:"Outputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"output"}),(0,i.jsx)(t.td,{children:"Data"}),(0,i.jsx)(t.td,{children:"The data stored in the notification."})]})})]}),"\n",(0,i.jsx)(t.h2,{id:"run-flow",children:"Run flow"}),"\n",(0,i.jsx)(t.p,{children:"This component allows you to run a specified flow with given inputs and tweaks."}),"\n",(0,i.jsx)(t.p,{children:"The RunFlowComponent executes a specified flow within a larger workflow. It provides the ability to run a flow with custom inputs and apply tweaks to modify its behavior."}),"\n",(0,i.jsx)(t.h3,{id:"inputs-6",children:"Inputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"input_value"}),(0,i.jsx)(t.td,{children:"String"}),(0,i.jsx)(t.td,{children:"The input value for the flow to process."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"flow_name"}),(0,i.jsx)(t.td,{children:"Dropdown"}),(0,i.jsx)(t.td,{children:"The name of the flow to run."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"tweaks"}),(0,i.jsx)(t.td,{children:"Nested Dict"}),(0,i.jsx)(t.td,{children:"Tweaks to apply to the flow."})]})]})]}),"\n",(0,i.jsx)(t.h3,{id:"outputs-6",children:"Outputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"run_outputs"}),(0,i.jsx)(t.td,{children:"List[Data]"}),(0,i.jsx)(t.td,{children:"The results generated from running the flow."})]})})]}),"\n",(0,i.jsx)(t.h2,{id:"sub-flow",children:"Sub Flow"}),"\n",(0,i.jsxs)(t.p,{children:["This ",(0,i.jsx)(t.code,{children:"SubFlowComponent"})," generates a component from a flow with all of its inputs and outputs."]}),"\n",(0,i.jsx)(t.p,{children:"This component can integrate entire flows as components within a larger workflow. It dynamically generates inputs based on the selected flow and executes the flow with provided parameters."}),"\n",(0,i.jsx)(t.h3,{id:"inputs-7",children:"Inputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"flow_name"}),(0,i.jsx)(t.td,{children:"Dropdown"}),(0,i.jsx)(t.td,{children:"The name of the flow to run."})]})})]}),"\n",(0,i.jsx)(t.h3,{id:"outputs-7",children:"Outputs"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Name"}),(0,i.jsx)(t.th,{children:"Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"flow_outputs"}),(0,i.jsx)(t.td,{children:"List[Data]"}),(0,i.jsx)(t.td,{children:"The outputs generated from the flow."})]})})]})]})}function j(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(u,{...e})}):u(e)}function p(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},19709:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/loop-text-summarizer-bd1d7be6d26bb47765931e3ab9f98dfa.png"}}]); \ No newline at end of file diff --git a/assets/js/6e1a9721.161e4b94.js b/assets/js/6e1a9721.161e4b94.js new file mode 100644 index 0000000000..d922bebe57 --- /dev/null +++ b/assets/js/6e1a9721.161e4b94.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[321],{59748:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>a,contentTitle:()=>l,default:()=>x,frontMatter:()=>r,metadata:()=>n,toc:()=>h});const n=JSON.parse('{"id":"Components/components-processing","title":"Processing","description":"Processing components process and transform data within a flow.","source":"@site/docs/Components/components-processing.md","sourceDirName":"Components","slug":"/components-processing","permalink":"/components-processing","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Processing","slug":"/components-processing"},"sidebar":"docs","previous":{"title":"Models","permalink":"/components-models"},"next":{"title":"Prompts","permalink":"/components-prompts"}}');var d=s(74848),i=s(28453);const r={title:"Processing",slug:"/components-processing"},l="Processing components in Langflow",a={},h=[{value:"Use a processing component in a flow",id:"use-a-processing-component-in-a-flow",level:2},{value:"Alter Metadata",id:"alter-metadata",level:2},{value:"Inputs",id:"inputs",level:3},{value:"Outputs",id:"outputs",level:3},{value:"Combine Text",id:"combine-text",level:2},{value:"Inputs",id:"inputs-1",level:3},{value:"DataFrame operations",id:"dataframe-operations",level:2},{value:"Inputs",id:"inputs-2",level:3},{value:"Outputs",id:"outputs-1",level:3},{value:"Filter Data",id:"filter-data",level:2},{value:"Inputs",id:"inputs-3",level:3},{value:"Outputs",id:"outputs-2",level:3},{value:"Parse JSON",id:"parse-json",level:2},{value:"Inputs",id:"inputs-4",level:3},{value:"Outputs",id:"outputs-3",level:3},{value:"Merge Data component",id:"merge-data-component",level:2},{value:"Inputs",id:"inputs-5",level:3},{value:"Outputs",id:"outputs-4",level:3},{value:"Parse Data",id:"parse-data",level:2},{value:"Inputs",id:"inputs-6",level:3},{value:"Outputs",id:"outputs-5",level:3},{value:"Split Text",id:"split-text",level:2},{value:"Inputs",id:"inputs-7",level:3},{value:"LLM Router",id:"llm-router",level:2},{value:"Inputs",id:"inputs-8",level:3},{value:"Outputs",id:"outputs-6",level:3},{value:"Merge Data (Data Combiner)",id:"merge-data-data-combiner",level:2},{value:"Inputs",id:"inputs-9",level:3},{value:"Outputs",id:"outputs-7",level:3},{value:"Message to Data",id:"message-to-data",level:2},{value:"Inputs",id:"inputs-10",level:3},{value:"Outputs",id:"outputs-8",level:3},{value:"Parse Data (Data to Message)",id:"parse-data-data-to-message",level:2},{value:"Inputs",id:"inputs-11",level:3},{value:"Outputs",id:"outputs-9",level:3},{value:"Parse DataFrame",id:"parse-dataframe",level:2},{value:"Inputs",id:"inputs-12",level:3},{value:"Outputs",id:"outputs-10",level:3},{value:"Parse JSON Data",id:"parse-json-data",level:2},{value:"Inputs",id:"inputs-13",level:3},{value:"Outputs",id:"outputs-11",level:3},{value:"Select Data",id:"select-data",level:2},{value:"Inputs",id:"inputs-14",level:3},{value:"Outputs",id:"outputs-12",level:3},{value:"Split Text",id:"split-text-1",level:2},{value:"Inputs",id:"inputs-15",level:3},{value:"Outputs",id:"outputs-13",level:3},{value:"Update Data",id:"update-data",level:2},{value:"Inputs",id:"inputs-16",level:3},{value:"Outputs",id:"outputs-14",level:3}];function c(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(t.header,{children:(0,d.jsx)(t.h1,{id:"processing-components-in-langflow",children:"Processing components in Langflow"})}),"\n",(0,d.jsx)(t.p,{children:"Processing components process and transform data within a flow."}),"\n",(0,d.jsx)(t.h2,{id:"use-a-processing-component-in-a-flow",children:"Use a processing component in a flow"}),"\n",(0,d.jsxs)(t.p,{children:["The ",(0,d.jsx)(t.strong,{children:"Split Text"})," processing component in this flow splits the incoming ",(0,d.jsx)(t.a,{href:"/concepts-objects",children:"Data"})," into chunks to be embedded into the vector store component."]}),"\n",(0,d.jsx)(t.p,{children:"The component offers control over chunk size, overlap, and separator, which affect context and granularity in vector store retrieval results."}),"\n",(0,d.jsx)(t.p,{children:(0,d.jsx)(t.img,{src:s(7685).A+"",width:"1804",height:"1546"})}),"\n",(0,d.jsx)(t.h2,{id:"alter-metadata",children:"Alter Metadata"}),"\n",(0,d.jsxs)(t.p,{children:["This component modifies metadata of input objects. It can add new metadata, update existing metadata, and remove specified metadata fields. The component works with both ",(0,d.jsx)(t.a,{href:"/concepts-objects",children:"Message"})," and ",(0,d.jsx)(t.a,{href:"/concepts-objects",children:"Data"})," objects, and can also create a new Data object from user-provided text."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"input_value"}),(0,d.jsx)(t.td,{children:"Input"}),(0,d.jsx)(t.td,{children:"Objects to which Metadata should be added"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"text_in"}),(0,d.jsx)(t.td,{children:"User Text"}),(0,d.jsx)(t.td,{children:"Text input; value will be in 'text' attribute of Data object. Empty text entries are ignored."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"metadata"}),(0,d.jsx)(t.td,{children:"Metadata"}),(0,d.jsx)(t.td,{children:"Metadata to add to each object"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"remove_fields"}),(0,d.jsx)(t.td,{children:"Fields to Remove"}),(0,d.jsx)(t.td,{children:"Metadata Fields to Remove"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"List of Input objects, each with added Metadata"})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"combine-text",children:"Combine Text"}),"\n",(0,d.jsx)(t.p,{children:"This component concatenates two text sources into a single text chunk using a specified delimiter."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-1",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"first_text"}),(0,d.jsx)(t.td,{children:"First Text"}),(0,d.jsx)(t.td,{children:"The first text input to concatenate."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"second_text"}),(0,d.jsx)(t.td,{children:"Second Text"}),(0,d.jsx)(t.td,{children:"The second text input to concatenate."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"delimiter"}),(0,d.jsx)(t.td,{children:"Delimiter"}),(0,d.jsx)(t.td,{children:"A string used to separate the two text inputs. Defaults to a space."})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"dataframe-operations",children:"DataFrame operations"}),"\n",(0,d.jsxs)(t.p,{children:["This component performs the following operations on Pandas ",(0,d.jsx)(t.a,{href:"https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html",children:"DataFrame"}),":"]}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Operation"}),(0,d.jsx)(t.th,{children:"Description"}),(0,d.jsx)(t.th,{children:"Required Inputs"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"Add Column"}),(0,d.jsx)(t.td,{children:"Adds a new column with a constant value"}),(0,d.jsx)(t.td,{children:"new_column_name, new_column_value"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"Drop Column"}),(0,d.jsx)(t.td,{children:"Removes a specified column"}),(0,d.jsx)(t.td,{children:"column_name"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"Filter"}),(0,d.jsx)(t.td,{children:"Filters rows based on column value"}),(0,d.jsx)(t.td,{children:"column_name, filter_value"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"Head"}),(0,d.jsx)(t.td,{children:"Returns first n rows"}),(0,d.jsx)(t.td,{children:"num_rows"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"Rename Column"}),(0,d.jsx)(t.td,{children:"Renames an existing column"}),(0,d.jsx)(t.td,{children:"column_name, new_column_name"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"Replace Value"}),(0,d.jsx)(t.td,{children:"Replaces values in a column"}),(0,d.jsx)(t.td,{children:"column_name, replace_value, replacement_value"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"Select Columns"}),(0,d.jsx)(t.td,{children:"Selects specific columns"}),(0,d.jsx)(t.td,{children:"columns_to_select"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"Sort"}),(0,d.jsx)(t.td,{children:"Sorts DataFrame by column"}),(0,d.jsx)(t.td,{children:"column_name, ascending"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"Tail"}),(0,d.jsx)(t.td,{children:"Returns last n rows"}),(0,d.jsx)(t.td,{children:"num_rows"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-2",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"df"}),(0,d.jsx)(t.td,{children:"DataFrame"}),(0,d.jsx)(t.td,{children:"The input DataFrame to operate on."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"operation"}),(0,d.jsx)(t.td,{children:"Operation"}),(0,d.jsx)(t.td,{children:"Select the DataFrame operation to perform. Options: Add Column, Drop Column, Filter, Head, Rename Column, Replace Value, Select Columns, Sort, Tail"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"column_name"}),(0,d.jsx)(t.td,{children:"Column Name"}),(0,d.jsx)(t.td,{children:"The column name to use for the operation."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"filter_value"}),(0,d.jsx)(t.td,{children:"Filter Value"}),(0,d.jsx)(t.td,{children:"The value to filter rows by."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ascending"}),(0,d.jsx)(t.td,{children:"Sort Ascending"}),(0,d.jsx)(t.td,{children:"Whether to sort in ascending order."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"new_column_name"}),(0,d.jsx)(t.td,{children:"New Column Name"}),(0,d.jsx)(t.td,{children:"The new column name when renaming or adding a column."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"new_column_value"}),(0,d.jsx)(t.td,{children:"New Column Value"}),(0,d.jsx)(t.td,{children:"The value to populate the new column with."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"columns_to_select"}),(0,d.jsx)(t.td,{children:"Columns to Select"}),(0,d.jsx)(t.td,{children:"List of column names to select."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"num_rows"}),(0,d.jsx)(t.td,{children:"Number of Rows"}),(0,d.jsx)(t.td,{children:"Number of rows to return (for head/tail). Default: 5"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"replace_value"}),(0,d.jsx)(t.td,{children:"Value to Replace"}),(0,d.jsx)(t.td,{children:"The value to replace in the column."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"replacement_value"}),(0,d.jsx)(t.td,{children:"Replacement Value"}),(0,d.jsx)(t.td,{children:"The value to replace with."})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-1",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"output"}),(0,d.jsx)(t.td,{children:"DataFrame"}),(0,d.jsx)(t.td,{children:"The resulting DataFrame after the operation."})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"filter-data",children:"Filter Data"}),"\n",(0,d.jsx)(t.p,{children:"This component filters a Data object based on a list of keys."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-3",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Data object to filter."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"filter_criteria"}),(0,d.jsx)(t.td,{children:"Filter Criteria"}),(0,d.jsx)(t.td,{children:"List of keys to filter by."})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-2",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"filtered_data"}),(0,d.jsx)(t.td,{children:"Filtered Data"}),(0,d.jsx)(t.td,{children:"A new Data object containing only the key-value pairs that match the filter criteria."})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"parse-json",children:"Parse JSON"}),"\n",(0,d.jsx)(t.p,{children:"This component converts and extracts JSON fields using JQ queries."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-4",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"input_value"}),(0,d.jsx)(t.td,{children:"Input"}),(0,d.jsx)(t.td,{children:"Data object to filter. Can be a message or data object."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"query"}),(0,d.jsx)(t.td,{children:"JQ Query"}),(0,d.jsx)(t.td,{children:"JQ Query to filter the data. The input is always a JSON list."})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-3",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"filtered_data"}),(0,d.jsx)(t.td,{children:"Filtered Data"}),(0,d.jsx)(t.td,{children:"Filtered data as a list of data objects."})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"merge-data-component",children:"Merge Data component"}),"\n",(0,d.jsx)(t.p,{children:"This component combines multiple data sources into a single unified Data object."}),"\n",(0,d.jsx)(t.p,{children:"The component iterates through the input list of data objects, merging them into a single data object. If the input list is empty, it returns an empty data object. If there's only one input data object, it returns that object unchanged. The merging process uses the addition operator to combine data objects."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-5",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"A list of data objects to be merged"})]})})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-4",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"merged_data"}),(0,d.jsx)(t.td,{children:"Merged Data"}),(0,d.jsx)(t.td,{children:"A single data object containing the combined information from all input data objects"})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"parse-data",children:"Parse Data"}),"\n",(0,d.jsx)(t.p,{children:"The ParseData component converts data objects into plain text using a specified template.\nThis component transforms structured data into human-readable text formats, allowing for customizable output through the use of templates."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-6",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"The data to convert to text."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"template"}),(0,d.jsx)(t.td,{children:"Template"}),(0,d.jsxs)(t.td,{children:["The template to use for formatting the data. It can contain the keys ",(0,d.jsx)(t.code,{children:"{text}"}),", ",(0,d.jsx)(t.code,{children:"{data}"})," or any other key in the data."]})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"sep"}),(0,d.jsx)(t.td,{children:"Separator"}),(0,d.jsx)(t.td,{children:"The separator to use between multiple data items."})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-5",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"text"}),(0,d.jsx)(t.td,{children:"Text"}),(0,d.jsx)(t.td,{children:"The resulting formatted text string as a message object."})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"split-text",children:"Split Text"}),"\n",(0,d.jsx)(t.p,{children:"This component splits text into chunks of a specified length."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-7",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"texts"}),(0,d.jsx)(t.td,{children:"Texts"}),(0,d.jsx)(t.td,{children:"Texts to split."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"separators"}),(0,d.jsx)(t.td,{children:"Separators"}),(0,d.jsx)(t.td,{children:"Characters to split on. Defaults to a space."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"max_chunk_size"}),(0,d.jsx)(t.td,{children:"Max Chunk Size"}),(0,d.jsx)(t.td,{children:"The maximum length, in characters, of each chunk."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"chunk_overlap"}),(0,d.jsx)(t.td,{children:"Chunk Overlap"}),(0,d.jsx)(t.td,{children:"The amount of character overlap between chunks."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"recursive"}),(0,d.jsx)(t.td,{children:"Recursive"}),(0,d.jsx)(t.td,{children:"Whether to split recursively."})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"llm-router",children:"LLM Router"}),"\n",(0,d.jsx)(t.p,{children:"This component routes requests to the most appropriate LLM based on OpenRouter model specifications."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-8",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"models"}),(0,d.jsx)(t.td,{children:"Language Models"}),(0,d.jsx)(t.td,{children:"List of LLMs to route between"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"input_value"}),(0,d.jsx)(t.td,{children:"Input"}),(0,d.jsx)(t.td,{children:"The input message to be routed"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"judge_llm"}),(0,d.jsx)(t.td,{children:"Judge LLM"}),(0,d.jsx)(t.td,{children:"LLM that will evaluate and select the most appropriate model"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"optimization"}),(0,d.jsx)(t.td,{children:"Optimization"}),(0,d.jsx)(t.td,{children:"Optimization preference (quality/speed/cost/balanced)"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-6",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"output"}),(0,d.jsx)(t.td,{children:"Output"}),(0,d.jsx)(t.td,{children:"The response from the selected model"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"selected_model"}),(0,d.jsx)(t.td,{children:"Selected Model"}),(0,d.jsx)(t.td,{children:"Name of the chosen model"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"merge-data-data-combiner",children:"Merge Data (Data Combiner)"}),"\n",(0,d.jsx)(t.p,{children:"This component combines data using different operations."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-9",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data_inputs"}),(0,d.jsx)(t.td,{children:"Data Inputs"}),(0,d.jsx)(t.td,{children:"Data to combine (minimum 2 inputs required)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"operation"}),(0,d.jsx)(t.td,{children:"Operation Type"}),(0,d.jsx)(t.td,{children:"Operation to perform (Concatenate/Append/Merge/Join)"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-7",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"combined_data"}),(0,d.jsx)(t.td,{children:"DataFrame"}),(0,d.jsx)(t.td,{children:"The combined data result"})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"message-to-data",children:"Message to Data"}),"\n",(0,d.jsx)(t.p,{children:"This component converts Message objects to Data objects."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-10",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"message"}),(0,d.jsx)(t.td,{children:"Message"}),(0,d.jsx)(t.td,{children:"The Message object to convert to a Data object"})]})})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-8",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"The converted Data object"})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"parse-data-data-to-message",children:"Parse Data (Data to Message)"}),"\n",(0,d.jsx)(t.p,{children:"This component converts Data objects into Messages using templated formatting."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-11",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"The data to convert to text (can be list)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"template"}),(0,d.jsx)(t.td,{children:"Template"}),(0,d.jsxs)(t.td,{children:["Template for formatting (",(0,d.jsx)(t.code,{children:"{text}"}),", ",(0,d.jsx)(t.code,{children:"{data"}),", or any key in Data)"]})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"sep"}),(0,d.jsx)(t.td,{children:"Separator"}),(0,d.jsx)(t.td,{children:"Separator between multiple data items"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-9",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"text"}),(0,d.jsx)(t.td,{children:"Message"}),(0,d.jsx)(t.td,{children:"Data as a single Message"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data_list"}),(0,d.jsx)(t.td,{children:"Data List"}),(0,d.jsx)(t.td,{children:"Data as list of new Data objects"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"parse-dataframe",children:"Parse DataFrame"}),"\n",(0,d.jsx)(t.p,{children:"This component converts DataFrames into plain text using templates."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-12",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"df"}),(0,d.jsx)(t.td,{children:"DataFrame"}),(0,d.jsx)(t.td,{children:"The DataFrame to convert to text rows"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"template"}),(0,d.jsx)(t.td,{children:"Template"}),(0,d.jsxs)(t.td,{children:["Template for formatting (use ",(0,d.jsx)(t.code,{children:"{column_name}"})," placeholders)"]})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"sep"}),(0,d.jsx)(t.td,{children:"Separator"}),(0,d.jsx)(t.td,{children:"String to join rows in output"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-10",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"text"}),(0,d.jsx)(t.td,{children:"Text"}),(0,d.jsx)(t.td,{children:"All rows combined into single text"})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"parse-json-data",children:"Parse JSON Data"}),"\n",(0,d.jsx)(t.p,{children:"This component converts and extracts JSON fields using JQ queries."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-13",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"input_value"}),(0,d.jsx)(t.td,{children:"Input"}),(0,d.jsx)(t.td,{children:"Data object to filter (Message or Data)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"query"}),(0,d.jsx)(t.td,{children:"JQ Query"}),(0,d.jsx)(t.td,{children:"JQ Query to filter the data"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-11",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"filtered_data"}),(0,d.jsx)(t.td,{children:"Filtered Data"}),(0,d.jsx)(t.td,{children:"Filtered data as list of Data objects"})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"select-data",children:"Select Data"}),"\n",(0,d.jsx)(t.p,{children:"This component selects a single data item from a list."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-14",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data_list"}),(0,d.jsx)(t.td,{children:"Data List"}),(0,d.jsx)(t.td,{children:"List of data to select from"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data_index"}),(0,d.jsx)(t.td,{children:"Data Index"}),(0,d.jsx)(t.td,{children:"Index of the data to select"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-12",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"selected_data"}),(0,d.jsx)(t.td,{children:"Selected Data"}),(0,d.jsx)(t.td,{children:"The selected Data object"})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"split-text-1",children:"Split Text"}),"\n",(0,d.jsx)(t.p,{children:"This component splits text into chunks based on specified criteria."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-15",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data_inputs"}),(0,d.jsx)(t.td,{children:"Data Inputs"}),(0,d.jsx)(t.td,{children:"The data to split"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"chunk_overlap"}),(0,d.jsx)(t.td,{children:"Chunk Overlap"}),(0,d.jsx)(t.td,{children:"Number of characters to overlap between chunks"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"chunk_size"}),(0,d.jsx)(t.td,{children:"Chunk Size"}),(0,d.jsx)(t.td,{children:"Maximum number of characters in each chunk"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"separator"}),(0,d.jsx)(t.td,{children:"Separator"}),(0,d.jsx)(t.td,{children:"Character to split on (defaults to newline)"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-13",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"chunks"}),(0,d.jsx)(t.td,{children:"Chunks"}),(0,d.jsx)(t.td,{children:"List of split text chunks as Data objects"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"dataframe"}),(0,d.jsx)(t.td,{children:"DataFrame"}),(0,d.jsx)(t.td,{children:"The chunks as a DataFrame"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"update-data",children:"Update Data"}),"\n",(0,d.jsx)(t.p,{children:"This component dynamically updates or appends data with specified fields."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-16",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"old_data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"The records to update"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_fields"}),(0,d.jsx)(t.td,{children:"Number of Fields"}),(0,d.jsx)(t.td,{children:"Number of fields to add (max 15)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"text_key"}),(0,d.jsx)(t.td,{children:"Text Key"}),(0,d.jsx)(t.td,{children:"Key for text content"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"text_key_validator"}),(0,d.jsx)(t.td,{children:"Text Key Validator"}),(0,d.jsx)(t.td,{children:"Validates text key presence"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-14",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Updated Data objects"})]})})]})]})}function x(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,d.jsx)(t,{...e,children:(0,d.jsx)(c,{...e})}):c(e)}},7685:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/vector-store-document-ingestion-fce32e9be440846a2545397e3a18b7bf.png"},28453:(e,t,s)=>{s.d(t,{R:()=>r,x:()=>l});var n=s(96540);const d={},i=n.createContext(d);function r(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:r(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6e1a9721.2a404cb4.js b/assets/js/6e1a9721.2a404cb4.js deleted file mode 100644 index 18d0c52f95..0000000000 --- a/assets/js/6e1a9721.2a404cb4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[321],{59748:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>o,frontMatter:()=>d,metadata:()=>s,toc:()=>a});const s=JSON.parse('{"id":"Components/components-processing","title":"Processing","description":"Processing components process and transform data within a flow.","source":"@site/docs/Components/components-processing.md","sourceDirName":"Components","slug":"/components-processing","permalink":"/components-processing","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Processing","slug":"/components-processing"},"sidebar":"docs","previous":{"title":"Models","permalink":"/components-models"},"next":{"title":"Prompts","permalink":"/components-prompts"}}');var r=n(74848),i=n(28453);const d={title:"Processing",slug:"/components-processing"},l="Processing components in Langflow",c={},a=[{value:"Use a processing component in a flow",id:"use-a-processing-component-in-a-flow",level:2},{value:"Combine Text",id:"combine-text",level:2},{value:"Inputs",id:"inputs",level:3},{value:"DataFrame operations",id:"dataframe-operations",level:2},{value:"Inputs",id:"inputs-1",level:3},{value:"Outputs",id:"outputs",level:3},{value:"Filter Data",id:"filter-data",level:2},{value:"Inputs",id:"inputs-2",level:3},{value:"Outputs",id:"outputs-1",level:3},{value:"Parse JSON",id:"parse-json",level:2},{value:"Inputs",id:"inputs-3",level:3},{value:"Outputs",id:"outputs-2",level:3},{value:"Merge Data component",id:"merge-data-component",level:2},{value:"Inputs",id:"inputs-4",level:3},{value:"Outputs",id:"outputs-3",level:3},{value:"Parse Data",id:"parse-data",level:2},{value:"Inputs",id:"inputs-5",level:3},{value:"Outputs",id:"outputs-4",level:3},{value:"Split Text",id:"split-text",level:2},{value:"Inputs",id:"inputs-6",level:3}];function h(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"processing-components-in-langflow",children:"Processing components in Langflow"})}),"\n",(0,r.jsx)(t.p,{children:"Processing components process and transform data within a flow."}),"\n",(0,r.jsx)(t.h2,{id:"use-a-processing-component-in-a-flow",children:"Use a processing component in a flow"}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"Split Text"})," processing component in this flow splits the incoming ",(0,r.jsx)(t.a,{href:"/concepts-objects",children:"data"})," into chunks to be embedded into the vector store component."]}),"\n",(0,r.jsx)(t.p,{children:"The component offers control over chunk size, overlap, and separator, which affect context and granularity in vector store retrieval results."}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{src:n(7685).A+"",width:"1804",height:"1546"})}),"\n",(0,r.jsx)(t.h2,{id:"combine-text",children:"Combine Text"}),"\n",(0,r.jsx)(t.p,{children:"This component concatenates two text sources into a single text chunk using a specified delimiter."}),"\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:"first_text"}),(0,r.jsx)(t.td,{children:"First Text"}),(0,r.jsx)(t.td,{children:"The first text input to concatenate."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"second_text"}),(0,r.jsx)(t.td,{children:"Second Text"}),(0,r.jsx)(t.td,{children:"The second text input to concatenate."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"delimiter"}),(0,r.jsx)(t.td,{children:"Delimiter"}),(0,r.jsx)(t.td,{children:"A string used to separate the two text inputs. Defaults to a space."})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"dataframe-operations",children:"DataFrame operations"}),"\n",(0,r.jsxs)(t.p,{children:["This component performs the following operations on Pandas ",(0,r.jsx)(t.a,{href:"https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html",children:"DataFrame"}),":"]}),"\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:"Operation"}),(0,r.jsx)(t.th,{children:"Description"}),(0,r.jsx)(t.th,{children:"Required Inputs"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Add Column"}),(0,r.jsx)(t.td,{children:"Adds a new column with a constant value"}),(0,r.jsx)(t.td,{children:"new_column_name, new_column_value"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Drop Column"}),(0,r.jsx)(t.td,{children:"Removes a specified column"}),(0,r.jsx)(t.td,{children:"column_name"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Filter"}),(0,r.jsx)(t.td,{children:"Filters rows based on column value"}),(0,r.jsx)(t.td,{children:"column_name, filter_value"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Head"}),(0,r.jsx)(t.td,{children:"Returns first n rows"}),(0,r.jsx)(t.td,{children:"num_rows"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Rename Column"}),(0,r.jsx)(t.td,{children:"Renames an existing column"}),(0,r.jsx)(t.td,{children:"column_name, new_column_name"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Replace Value"}),(0,r.jsx)(t.td,{children:"Replaces values in a column"}),(0,r.jsx)(t.td,{children:"column_name, replace_value, replacement_value"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Select Columns"}),(0,r.jsx)(t.td,{children:"Selects specific columns"}),(0,r.jsx)(t.td,{children:"columns_to_select"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Sort"}),(0,r.jsx)(t.td,{children:"Sorts DataFrame by column"}),(0,r.jsx)(t.td,{children:"column_name, ascending"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Tail"}),(0,r.jsx)(t.td,{children:"Returns last n rows"}),(0,r.jsx)(t.td,{children:"num_rows"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"inputs-1",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"df"}),(0,r.jsx)(t.td,{children:"DataFrame"}),(0,r.jsx)(t.td,{children:"The input DataFrame to operate on."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"operation"}),(0,r.jsx)(t.td,{children:"Operation"}),(0,r.jsx)(t.td,{children:"Select the DataFrame operation to perform. Options: Add Column, Drop Column, Filter, Head, Rename Column, Replace Value, Select Columns, Sort, Tail"})]}),(0,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:"The column name to use for the operation."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"filter_value"}),(0,r.jsx)(t.td,{children:"Filter Value"}),(0,r.jsx)(t.td,{children:"The value to filter rows by."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"ascending"}),(0,r.jsx)(t.td,{children:"Sort Ascending"}),(0,r.jsx)(t.td,{children:"Whether to sort in ascending order."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"new_column_name"}),(0,r.jsx)(t.td,{children:"New Column Name"}),(0,r.jsx)(t.td,{children:"The new column name when renaming or adding a column."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"new_column_value"}),(0,r.jsx)(t.td,{children:"New Column Value"}),(0,r.jsx)(t.td,{children:"The value to populate the new column with."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"columns_to_select"}),(0,r.jsx)(t.td,{children:"Columns to Select"}),(0,r.jsx)(t.td,{children:"List of column names to select."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"num_rows"}),(0,r.jsx)(t.td,{children:"Number of Rows"}),(0,r.jsx)(t.td,{children:"Number of rows to return (for head/tail). Default: 5"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"replace_value"}),(0,r.jsx)(t.td,{children:"Value to Replace"}),(0,r.jsx)(t.td,{children:"The value to replace in the column."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"replacement_value"}),(0,r.jsx)(t.td,{children:"Replacement Value"}),(0,r.jsx)(t.td,{children:"The value to replace with."})]})]})]}),"\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:"output"}),(0,r.jsx)(t.td,{children:"DataFrame"}),(0,r.jsx)(t.td,{children:"The resulting DataFrame after the operation."})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"filter-data",children:"Filter Data"}),"\n",(0,r.jsx)(t.p,{children:"This component filters a Data object based on a list of keys."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-2",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"data"}),(0,r.jsx)(t.td,{children:"Data"}),(0,r.jsx)(t.td,{children:"Data object to filter."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"filter_criteria"}),(0,r.jsx)(t.td,{children:"Filter Criteria"}),(0,r.jsx)(t.td,{children:"List of keys to filter by."})]})]})]}),"\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:"filtered_data"}),(0,r.jsx)(t.td,{children:"Filtered Data"}),(0,r.jsx)(t.td,{children:"A new Data object containing only the key-value pairs that match the filter criteria."})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"parse-json",children:"Parse JSON"}),"\n",(0,r.jsx)(t.p,{children:"This component converts and extracts JSON fields using JQ queries."}),"\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:"input_value"}),(0,r.jsx)(t.td,{children:"Input"}),(0,r.jsx)(t.td,{children:"Data object to filter. Can be a message or data object."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"query"}),(0,r.jsx)(t.td,{children:"JQ Query"}),(0,r.jsx)(t.td,{children:"JQ Query to filter the data. The input is always a JSON list."})]})]})]}),"\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:"filtered_data"}),(0,r.jsx)(t.td,{children:"Filtered Data"}),(0,r.jsx)(t.td,{children:"Filtered data as a list of data objects."})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"merge-data-component",children:"Merge Data component"}),"\n",(0,r.jsx)(t.p,{children:"This component combines multiple data sources into a single unified Data object."}),"\n",(0,r.jsx)(t.p,{children:"The component iterates through the input list of data objects, merging them into a single data object. If the input list is empty, it returns an empty data object. If there's only one input data object, it returns that object unchanged. The merging process uses the addition operator to combine data objects."}),"\n",(0,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.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"data"}),(0,r.jsx)(t.td,{children:"Data"}),(0,r.jsx)(t.td,{children:"A list of data objects to be merged"})]})})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-3",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"merged_data"}),(0,r.jsx)(t.td,{children:"Merged Data"}),(0,r.jsx)(t.td,{children:"A single data object containing the combined information from all input data objects"})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"parse-data",children:"Parse Data"}),"\n",(0,r.jsx)(t.p,{children:"The ParseData component converts data objects into plain text using a specified template.\nThis component transforms structured data into human-readable text formats, allowing for customizable output through the use of templates."}),"\n",(0,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:"data"}),(0,r.jsx)(t.td,{children:"Data"}),(0,r.jsx)(t.td,{children:"The data to convert to text."})]}),(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:"{data}"})," or any other key in the data."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"sep"}),(0,r.jsx)(t.td,{children:"Separator"}),(0,r.jsx)(t.td,{children:"The separator to use between multiple data items."})]})]})]}),"\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:"text"}),(0,r.jsx)(t.td,{children:"Text"}),(0,r.jsx)(t.td,{children:"The resulting formatted text string as a message object."})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"split-text",children:"Split Text"}),"\n",(0,r.jsx)(t.p,{children:"This component splits text into chunks of a specified length."}),"\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:"texts"}),(0,r.jsx)(t.td,{children:"Texts"}),(0,r.jsx)(t.td,{children:"Texts to split."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"separators"}),(0,r.jsx)(t.td,{children:"Separators"}),(0,r.jsx)(t.td,{children:"Characters to split on. Defaults to a space."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"max_chunk_size"}),(0,r.jsx)(t.td,{children:"Max Chunk Size"}),(0,r.jsx)(t.td,{children:"The maximum length, in characters, of each chunk."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"chunk_overlap"}),(0,r.jsx)(t.td,{children:"Chunk Overlap"}),(0,r.jsx)(t.td,{children:"The amount of character overlap between chunks."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"recursive"}),(0,r.jsx)(t.td,{children:"Recursive"}),(0,r.jsx)(t.td,{children:"Whether to split recursively."})]})]})]})]})}function o(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},7685:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/vector-store-document-ingestion-fce32e9be440846a2545397e3a18b7bf.png"},28453:(e,t,n)=>{n.d(t,{R:()=>d,x:()=>l});var s=n(96540);const r={},i=s.createContext(r);function d(e){const t=s.useContext(i);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(r):e.components||r:d(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8054effa.b917c700.js b/assets/js/8054effa.b917c700.js new file mode 100644 index 0000000000..74e9c786ee --- /dev/null +++ b/assets/js/8054effa.b917c700.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1394],{30208:(o,t,e)=>{e.r(t),e.d(t,{CH:()=>i,assets:()=>a,chCodeConfig:()=>d,contentTitle:()=>p,default:()=>u,frontMatter:()=>c,metadata:()=>n,toc:()=>h});const n=JSON.parse('{"id":"Agents/agent-tool-calling-agent-component","title":"Create a problem-solving agent","description":"Developing agents in Langchain is complex.","source":"@site/docs/Agents/agent-tool-calling-agent-component.md","sourceDirName":"Agents","slug":"/agents-tool-calling-agent-component","permalink":"/agents-tool-calling-agent-component","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Create a problem-solving agent","slug":"/agents-tool-calling-agent-component"},"sidebar":"docs","previous":{"title":"Agents overview","permalink":"/agents-overview"},"next":{"title":"API keys","permalink":"/configuration-api-keys"}}');var s=e(74848),l=e(28453),r=e(24754);const c={title:"Create a problem-solving agent",slug:"/agents-tool-calling-agent-component"},p=void 0,a={},i={annotations:r.hk,Code:r.Cy},d={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},h=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Create a problem-solving agent with AgentComponent",id:"create-a-problem-solving-agent-with-agentcomponent",level:2},{value:"Solve problems with the agent",id:"solve-problems-with-the-agent",level:2},{value:"Use an agent as a tool",id:"use-an-agent-as-a-tool",level:2},{value:"Add custom components as tools",id:"components-as-tools",level:2},{value:"Make any component a tool",id:"make-any-component-a-tool",level:2},{value:"Use the Run Flow component as a tool",id:"use-the-run-flow-component-as-a-tool",level:2}];function g(o){const t={a:"a",code:"code",h2:"h2",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,l.R)(),...o.components};return i||y("CH",!1),i.Code||y("CH.Code",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n",(0,s.jsxs)(t.p,{children:["Developing ",(0,s.jsx)(t.strong,{children:"agents"})," in Langchain is complex."]}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"AgentComponent"})," is a component for easily creating an AI agent capable of analyzing tasks using tools you provide."]}),"\n",(0,s.jsxs)(t.p,{children:["The component contains all of the elements you'll need for creating an agent. Instead of managing LLM models and providers, pick your model and enter your API key. Instead of connecting a ",(0,s.jsx)(t.strong,{children:"Prompt"})," component, enter instructions in the component's ",(0,s.jsx)(t.strong,{children:"Agent Instruction"})," fields."]}),"\n",(0,s.jsx)("img",{src:"/img/tool-calling-agent-component.png",alt:"Prompt component",style:{display:"block",margin:"auto",width:300}}),"\n",(0,s.jsxs)(t.p,{children:["Learn how to build a flow starting with the ",(0,s.jsx)(t.strong,{children:"Tool calling agent"})," component, and see how it can help you solve problems."]}),"\n",(0,s.jsx)(t.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://platform.openai.com/",children:"An OpenAI API key"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://www.searchapi.io/",children:"A Search API key"})}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"create-a-problem-solving-agent-with-agentcomponent",children:"Create a problem-solving agent with AgentComponent"}),"\n",(0,s.jsxs)(t.p,{children:["Create a problem-solving agent in Langflow, starting with the ",(0,s.jsx)(t.strong,{children:"Tool calling agent"}),"."]}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["Click ",(0,s.jsx)(t.strong,{children:"New Flow"}),", and then click ",(0,s.jsx)(t.strong,{children:"Blank Flow"}),"."]}),"\n",(0,s.jsxs)(t.li,{children:["Click and drag an ",(0,s.jsx)(t.strong,{children:"Agent"})," component to your workspace.\nThe default settings are acceptable for now, so this guide assumes you're using ",(0,s.jsx)(t.strong,{children:"Open AI"})," for the LLM."]}),"\n",(0,s.jsxs)(t.li,{children:["Add your ",(0,s.jsx)(t.strong,{children:"Open AI API Key"})," to the ",(0,s.jsx)(t.strong,{children:"Agent"})," component."]}),"\n",(0,s.jsxs)(t.li,{children:["Add ",(0,s.jsx)(t.strong,{children:"Chat input"})," and ",(0,s.jsx)(t.strong,{children:"Chat output"})," components to your flow, and connect them to the tool calling agent."]}),"\n"]}),"\n",(0,s.jsx)("img",{src:"/img/tool-calling-agent-add-chat.png",alt:"Chat with agent component",style:{display:"block",margin:"auto",width:600}}),"\n",(0,s.jsxs)(t.p,{children:["This basic flow enables you to chat with the agent with the ",(0,s.jsx)(t.strong,{children:"Playground"})," after you've connected some ",(0,s.jsx)(t.strong,{children:"Tools"}),"."]}),"\n",(0,s.jsxs)(t.ol,{start:"5",children:["\n",(0,s.jsxs)(t.li,{children:["Connect the ",(0,s.jsx)(t.strong,{children:"Search API"})," tool component to your agent."]}),"\n",(0,s.jsxs)(t.li,{children:["Add your ",(0,s.jsx)(t.strong,{children:"Search API key"})," to the component.\nYour agent can now query the Search API for information."]}),"\n",(0,s.jsxs)(t.li,{children:["Connect a ",(0,s.jsx)(t.strong,{children:"Calculator"})," tool for solving basic math problems."]}),"\n",(0,s.jsxs)(t.li,{children:["Connect an ",(0,s.jsx)(t.strong,{children:"API Request"})," component to the agent.\nThis component is not in the ",(0,s.jsx)(t.strong,{children:"Tools"})," category, but the agent can still use it as a tool by enabling ",(0,s.jsx)(t.strong,{children:"Tool Mode"}),".\n",(0,s.jsx)(t.strong,{children:"Tool Mode"})," makes a component into a tool by adding a ",(0,s.jsx)(t.strong,{children:"Toolset"})," port that can be connected to an agent's ",(0,s.jsx)(t.strong,{children:"Tools"})," port.\nTo enable ",(0,s.jsx)(t.strong,{children:"Tool Mode"})," on the component, click ",(0,s.jsx)(t.strong,{children:"Tool Mode"}),".\nThe component's fields change dynamically based on the mode it's in."]}),"\n"]}),"\n",(0,s.jsx)("img",{src:"/img/tool-calling-agent-add-tools.png",alt:"Chat with agent component",style:{display:"block",margin:"auto",width:600}}),"\n",(0,s.jsx)(t.h2,{id:"solve-problems-with-the-agent",children:"Solve problems with the agent"}),"\n",(0,s.jsx)(t.p,{children:"Your agent now has tools for performing a web search, doing basic math, and performing API requests. You can solve many problems with just these capabilities."}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Your tabletop game group cancelled, and you're stuck at home.\nPoint ",(0,s.jsx)(t.strong,{children:"API Request"})," to an online rules document, tell your agent ",(0,s.jsx)(t.code,{children:"You are a fun game organizer who uses the tools at your disposal"}),", and play a game."]}),"\n",(0,s.jsxs)(t.li,{children:["You need to learn a new software language quickly.\nPoint ",(0,s.jsx)(t.strong,{children:"API Request"})," to some docs, tell your agent ",(0,s.jsx)(t.code,{children:"You are a knowledgeable software developer who uses the tools at your disposal"}),", and start learning."]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["See what problems you can solve with this flow. As your problem becomes more specialized, add a tool. For example, the ",(0,s.jsx)(t.a,{href:"/starter-projects-simple-agent",children:"simple agent starter project"})," adds a Python REPL component to solve math problems that are too challenging for the calculator."]}),"\n",(0,s.jsx)(t.h2,{id:"use-an-agent-as-a-tool",children:"Use an agent as a tool"}),"\n",(0,s.jsxs)(t.p,{children:["The agent component itself also supports ",(0,s.jsx)(t.strong,{children:"Tool Mode"})," for creating multi-agent flows."]}),"\n",(0,s.jsx)(t.p,{children:"Add an agent to your problem-solving flow that uses a different OpenAI model for more specialized problem solving."}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["Click and drag an ",(0,s.jsx)(t.strong,{children:"Agent"})," component to your workspace."]}),"\n",(0,s.jsxs)(t.li,{children:["Add your ",(0,s.jsx)(t.strong,{children:"Open AI API Key"})," to the ",(0,s.jsx)(t.strong,{children:"Agent"})," component."]}),"\n",(0,s.jsxs)(t.li,{children:["In the ",(0,s.jsx)(t.strong,{children:"Model Name"})," field, select ",(0,s.jsx)(t.code,{children:"gpt-4o"}),"."]}),"\n",(0,s.jsxs)(t.li,{children:["Click ",(0,s.jsx)(t.strong,{children:"Tool Mode"})," to use this new agent as a tool."]}),"\n",(0,s.jsxs)(t.li,{children:["Connect the new agent's ",(0,s.jsx)(t.strong,{children:"Toolset"})," port to the previously created agent's ",(0,s.jsx)(t.strong,{children:"Tools"})," port."]}),"\n",(0,s.jsxs)(t.li,{children:["Connect ",(0,s.jsx)(t.strong,{children:"Search API"})," and ",(0,s.jsx)(t.strong,{children:"API Request"})," to the new agent.\nThe new agent will use ",(0,s.jsx)(t.code,{children:"gpt-4o"})," for the larger tasks of scraping and searching information that requires large context windows.\nThe problem-solving agent will now use this agent as a tool, with its unique LLM and toolset."]}),"\n"]}),"\n",(0,s.jsx)("img",{src:"/img/tool-calling-agent-as-tool.png",alt:"Chat with agent component",style:{display:"block",margin:"auto",width:600}}),"\n",(0,s.jsx)(t.h2,{id:"components-as-tools",children:"Add custom components as tools"}),"\n",(0,s.jsx)(t.p,{children:"An agent can use custom components as tools."}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["To add a custom component to the problem-solving agent flow, click ",(0,s.jsx)(t.strong,{children:"New Custom Component"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Add custom Python code to the custom component.\nHere's an example text analyzer for sentiment analysis."}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(i.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Component",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.io ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" MessageTextInput, Output",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Data",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" re",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"TextAnalyzerComponent",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"Component",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Text Analyzer"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Analyzes and transforms input text."',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" documentation: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"http://docs.langflow.org/components/custom"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" icon ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"chart-bar"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"TextAnalyzerComponent"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" inputs ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" MessageTextInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"input_text"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Input Text"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Enter text to analyze"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" value",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Hello, World!"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" tool_mode",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"True",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" outputs ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" Output(",props:{style:{color:"#C9D1D9"}}},{content:"display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Analysis Result"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"output"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"method",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"analyze_text"',props:{style:{color:"#A5D6FF"}}},{content:"),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"analyze_text",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> Data:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" text ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".input_text",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" # Perform text analysis",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" word_count ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"len",props:{style:{color:"#79C0FF"}}},{content:"(text.split())",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" char_count ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"len",props:{style:{color:"#79C0FF"}}},{content:"(text)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" sentence_count ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"len",props:{style:{color:"#79C0FF"}}},{content:"(re.findall(",props:{style:{color:"#C9D1D9"}}},{content:"r",props:{style:{color:"#FF7B72"}}},{content:"'",props:{style:{color:"#A5D6FF"}}},{content:"\\w",props:{style:{color:"#79C0FF"}}},{content:"+",props:{style:{color:"#FF7B72"}}},{content:"[.!?]",props:{style:{color:"#79C0FF"}}},{content:"'",props:{style:{color:"#A5D6FF"}}},{content:", text))",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" # Transform text",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" reversed_text ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" text[::",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"1",props:{style:{color:"#79C0FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" uppercase_text ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" text.upper()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" analysis_result ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "original_text"',props:{style:{color:"#A5D6FF"}}},{content:": text,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "word_count"',props:{style:{color:"#A5D6FF"}}},{content:": word_count,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "character_count"',props:{style:{color:"#A5D6FF"}}},{content:": char_count,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sentence_count"',props:{style:{color:"#A5D6FF"}}},{content:": sentence_count,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "reversed_text"',props:{style:{color:"#A5D6FF"}}},{content:": reversed_text,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "uppercase_text"',props:{style:{color:"#A5D6FF"}}},{content:": uppercase_text",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" Data(",props:{style:{color:"#C9D1D9"}}},{content:"value",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"analysis_result)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".status ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" data",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" data",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,s.jsxs)(t.ol,{start:"3",children:["\n",(0,s.jsxs)(t.li,{children:["To enable the custom component as a tool, click ",(0,s.jsx)(t.strong,{children:"Tool Mode"}),"."]}),"\n",(0,s.jsx)(t.li,{children:"Connect the tool output to the agent's tools input."}),"\n",(0,s.jsxs)(t.li,{children:["Ask the agent, ",(0,s.jsx)(t.code,{children:"What tools are you using to answer my questions?"}),"\nYour response will be similar to the following, and will include your custom component."]}),"\n"]}),"\n",(0,s.jsx)(i.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"I have access to several tools that assist me in answering your questions, including:",props:{}}]},{tokens:[{content:"Search API: This allows me to search for recent information or results on the web.",props:{}}]},{tokens:[{content:"HTTP Requests: I can make HTTP requests to various URLs to retrieve data or interact with APIs.",props:{}}]},{tokens:[{content:"Calculator: I can evaluate basic arithmetic expressions.",props:{}}]},{tokens:[{content:"Text Analyzer: I can analyze and transform input text.",props:{}}]},{tokens:[{content:"Current Date and Time: I can retrieve the current date and time in various time zones.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(t.h2,{id:"make-any-component-a-tool",children:"Make any component a tool"}),"\n",(0,s.jsxs)(t.p,{children:["If the component you want to use as a tool doesn't have a ",(0,s.jsx)(t.strong,{children:"Tool Mode"})," button, add ",(0,s.jsx)(t.code,{children:"tool_mode=True"})," to one of the component's inputs, and connect the new ",(0,s.jsx)(t.strong,{children:"Toolset"})," output to the agent's ",(0,s.jsx)(t.strong,{children:"Tools"})," input."]}),"\n",(0,s.jsxs)(t.p,{children:["Langflow supports ",(0,s.jsx)(t.strong,{children:"Tool Mode"})," for the following data types:"]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.code,{children:"DataInput"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.code,{children:"DataFrameInput"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.code,{children:"PromptInput"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.code,{children:"MessageTextInput"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.code,{children:"MultilineInput"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.code,{children:"DropdownInput"})}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["For example, the ",(0,s.jsx)(t.a,{href:"#components-as-tools",children:"components as tools"})," example above adds ",(0,s.jsx)(t.code,{children:"tool_mode=True"})," to the ",(0,s.jsx)(t.code,{children:"MessageTextInput"})," input so the custom component can be used as a tool."]}),"\n",(0,s.jsx)(i.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"inputs ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" MessageTextInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"input_text"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Input Text"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Enter text to analyze"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" value",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Hello, World!"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" tool_mode",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"True",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"]",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,s.jsx)(t.h2,{id:"use-the-run-flow-component-as-a-tool",children:"Use the Run Flow component as a tool"}),"\n",(0,s.jsxs)(t.p,{children:["An agent can use flows that are saved in your workspace as tools with the ",(0,s.jsx)(t.a,{href:"/components-logic#run-flow",children:"Run flow"})," component."]}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["To add a ",(0,s.jsx)(t.strong,{children:"Run flow"})," component, click and drag a ",(0,s.jsx)(t.strong,{children:"Run flow"})," component to your workspace."]}),"\n",(0,s.jsx)(t.li,{children:"Select the flow you want the agent to use as a tool."}),"\n",(0,s.jsxs)(t.li,{children:["Enable ",(0,s.jsx)(t.strong,{children:"Tool Mode"})," in the component."]}),"\n",(0,s.jsx)(t.li,{children:"Connect the tool output to the agent's tools input."}),"\n",(0,s.jsxs)(t.li,{children:["Ask the agent, ",(0,s.jsx)(t.code,{children:"What tools are you using to answer my questions?"}),"\nYour flow should be visible in the response."]}),"\n"]})]})}function u(o={}){const{wrapper:t}={...(0,l.R)(),...o.components};return t?(0,s.jsx)(t,{...o,children:(0,s.jsx)(g,{...o})}):g(o)}function y(o,t){throw new Error("Expected "+(t?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]); \ No newline at end of file diff --git a/assets/js/8054effa.d7eb1c7c.js b/assets/js/8054effa.d7eb1c7c.js deleted file mode 100644 index 01e815f7d4..0000000000 --- a/assets/js/8054effa.d7eb1c7c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1394],{30208:(o,t,e)=>{e.r(t),e.d(t,{CH:()=>i,assets:()=>a,chCodeConfig:()=>d,contentTitle:()=>p,default:()=>y,frontMatter:()=>c,metadata:()=>n,toc:()=>h});const n=JSON.parse('{"id":"Agents/agent-tool-calling-agent-component","title":"Create a problem-solving agent","description":"Developing agents in Langchain is complex.","source":"@site/docs/Agents/agent-tool-calling-agent-component.md","sourceDirName":"Agents","slug":"/agents-tool-calling-agent-component","permalink":"/agents-tool-calling-agent-component","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Create a problem-solving agent","slug":"/agents-tool-calling-agent-component"},"sidebar":"docs","previous":{"title":"Agents overview","permalink":"/agents-overview"},"next":{"title":"API keys","permalink":"/configuration-api-keys"}}');var s=e(74848),l=e(28453),r=e(24754);const c={title:"Create a problem-solving agent",slug:"/agents-tool-calling-agent-component"},p=void 0,a={},i={annotations:r.hk,Code:r.Cy},d={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},h=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Create a problem-solving agent with AgentComponent",id:"create-a-problem-solving-agent-with-agentcomponent",level:2},{value:"Solve problems with the agent",id:"solve-problems-with-the-agent",level:2},{value:"Use an agent as a tool",id:"use-an-agent-as-a-tool",level:2},{value:"Add custom components as tools",id:"components-as-tools",level:2},{value:"Make any component a tool",id:"make-any-component-a-tool",level:2},{value:"Add flows as tools",id:"add-flows-as-tools",level:2}];function g(o){const t={a:"a",code:"code",h2:"h2",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,l.R)(),...o.components};return i||u("CH",!1),i.Code||u("CH.Code",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n",(0,s.jsxs)(t.p,{children:["Developing ",(0,s.jsx)(t.strong,{children:"agents"})," in Langchain is complex."]}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"AgentComponent"})," is a component for easily creating an AI agent capable of analyzing tasks using tools you provide."]}),"\n",(0,s.jsxs)(t.p,{children:["The component contains all of the elements you'll need for creating an agent. Instead of managing LLM models and providers, pick your model and enter your API key. Instead of connecting a ",(0,s.jsx)(t.strong,{children:"Prompt"})," component, enter instructions in the component's ",(0,s.jsx)(t.strong,{children:"Agent Instruction"})," fields."]}),"\n",(0,s.jsx)("img",{src:"/img/tool-calling-agent-component.png",alt:"Prompt component",style:{display:"block",margin:"auto",width:300}}),"\n",(0,s.jsxs)(t.p,{children:["Learn how to build a flow starting with the ",(0,s.jsx)(t.strong,{children:"Tool calling agent"})," component, and see how it can help you solve problems."]}),"\n",(0,s.jsx)(t.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://platform.openai.com/",children:"An OpenAI API key"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://www.searchapi.io/",children:"A Search API key"})}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"create-a-problem-solving-agent-with-agentcomponent",children:"Create a problem-solving agent with AgentComponent"}),"\n",(0,s.jsxs)(t.p,{children:["Create a problem-solving agent in Langflow, starting with the ",(0,s.jsx)(t.strong,{children:"Tool calling agent"}),"."]}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["Click ",(0,s.jsx)(t.strong,{children:"New Flow"}),", and then click ",(0,s.jsx)(t.strong,{children:"Blank Flow"}),"."]}),"\n",(0,s.jsxs)(t.li,{children:["Click and drag an ",(0,s.jsx)(t.strong,{children:"Agent"})," component to your workspace.\nThe default settings are acceptable for now, so this guide assumes you're using ",(0,s.jsx)(t.strong,{children:"Open AI"})," for the LLM."]}),"\n",(0,s.jsxs)(t.li,{children:["Add your ",(0,s.jsx)(t.strong,{children:"Open AI API Key"})," to the ",(0,s.jsx)(t.strong,{children:"Agent"})," component."]}),"\n",(0,s.jsxs)(t.li,{children:["Add ",(0,s.jsx)(t.strong,{children:"Chat input"})," and ",(0,s.jsx)(t.strong,{children:"Chat output"})," components to your flow, and connect them to the tool calling agent."]}),"\n"]}),"\n",(0,s.jsx)("img",{src:"/img/tool-calling-agent-add-chat.png",alt:"Chat with agent component",style:{display:"block",margin:"auto",width:600}}),"\n",(0,s.jsxs)(t.p,{children:["This basic flow enables you to chat with the agent with the ",(0,s.jsx)(t.strong,{children:"Playground"})," after you've connected some ",(0,s.jsx)(t.strong,{children:"Tools"}),"."]}),"\n",(0,s.jsxs)(t.ol,{start:"5",children:["\n",(0,s.jsxs)(t.li,{children:["Connect the ",(0,s.jsx)(t.strong,{children:"Search API"})," tool component to your agent."]}),"\n",(0,s.jsxs)(t.li,{children:["Add your ",(0,s.jsx)(t.strong,{children:"Search API key"})," to the component.\nYour agent can now query the Search API for information."]}),"\n",(0,s.jsxs)(t.li,{children:["Connect a ",(0,s.jsx)(t.strong,{children:"Calculator"})," tool for solving basic math problems."]}),"\n",(0,s.jsxs)(t.li,{children:["Connect an ",(0,s.jsx)(t.strong,{children:"API Request"})," component to the agent.\nThis component is not in the ",(0,s.jsx)(t.strong,{children:"Tools"})," category, but the agent can still use it as a tool by enabling ",(0,s.jsx)(t.strong,{children:"Tool Mode"}),".\n",(0,s.jsx)(t.strong,{children:"Tool Mode"})," makes a component into a tool by adding a ",(0,s.jsx)(t.strong,{children:"Toolset"})," port that can be connected to an agent's ",(0,s.jsx)(t.strong,{children:"Tools"})," port.\nTo enable ",(0,s.jsx)(t.strong,{children:"Tool Mode"})," on the component, click ",(0,s.jsx)(t.strong,{children:"Tool Mode"}),".\nThe component's fields change dynamically based on the mode it's in."]}),"\n"]}),"\n",(0,s.jsx)("img",{src:"/img/tool-calling-agent-add-tools.png",alt:"Chat with agent component",style:{display:"block",margin:"auto",width:600}}),"\n",(0,s.jsx)(t.h2,{id:"solve-problems-with-the-agent",children:"Solve problems with the agent"}),"\n",(0,s.jsx)(t.p,{children:"Your agent now has tools for performing a web search, doing basic math, and performing API requests. You can solve many problems with just these capabilities."}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Your tabletop game group cancelled, and you're stuck at home.\nPoint ",(0,s.jsx)(t.strong,{children:"API Request"})," to an online rules document, tell your agent ",(0,s.jsx)(t.code,{children:"You are a fun game organizer who uses the tools at your disposal"}),", and play a game."]}),"\n",(0,s.jsxs)(t.li,{children:["You need to learn a new software language quickly.\nPoint ",(0,s.jsx)(t.strong,{children:"API Request"})," to some docs, tell your agent ",(0,s.jsx)(t.code,{children:"You are a knowledgeable software developer who uses the tools at your disposal"}),", and start learning."]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["See what problems you can solve with this flow. As your problem becomes more specialized, add a tool. For example, the ",(0,s.jsx)(t.a,{href:"/starter-projects-simple-agent",children:"simple agent starter project"})," adds a Python REPL component to solve math problems that are too challenging for the calculator."]}),"\n",(0,s.jsx)(t.h2,{id:"use-an-agent-as-a-tool",children:"Use an agent as a tool"}),"\n",(0,s.jsxs)(t.p,{children:["The agent component itself also supports ",(0,s.jsx)(t.strong,{children:"Tool Mode"})," for creating multi-agent flows."]}),"\n",(0,s.jsx)(t.p,{children:"Add an agent to your problem-solving flow that uses a different OpenAI model for more specialized problem solving."}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["Click and drag an ",(0,s.jsx)(t.strong,{children:"Agent"})," component to your workspace."]}),"\n",(0,s.jsxs)(t.li,{children:["Add your ",(0,s.jsx)(t.strong,{children:"Open AI API Key"})," to the ",(0,s.jsx)(t.strong,{children:"Agent"})," component."]}),"\n",(0,s.jsxs)(t.li,{children:["In the ",(0,s.jsx)(t.strong,{children:"Model Name"})," field, select ",(0,s.jsx)(t.code,{children:"gpt-4o"}),"."]}),"\n",(0,s.jsxs)(t.li,{children:["Click ",(0,s.jsx)(t.strong,{children:"Tool Mode"})," to use this new agent as a tool."]}),"\n",(0,s.jsxs)(t.li,{children:["Connect the new agent's ",(0,s.jsx)(t.strong,{children:"Toolset"})," port to the previously created agent's ",(0,s.jsx)(t.strong,{children:"Tools"})," port."]}),"\n",(0,s.jsxs)(t.li,{children:["Connect ",(0,s.jsx)(t.strong,{children:"Search API"})," and ",(0,s.jsx)(t.strong,{children:"API Request"})," to the new agent.\nThe new agent will use ",(0,s.jsx)(t.code,{children:"gpt-4o"})," for the larger tasks of scraping and searching information that requires large context windows.\nThe problem-solving agent will now use this agent as a tool, with its unique LLM and toolset."]}),"\n"]}),"\n",(0,s.jsx)("img",{src:"/img/tool-calling-agent-as-tool.png",alt:"Chat with agent component",style:{display:"block",margin:"auto",width:600}}),"\n",(0,s.jsx)(t.h2,{id:"components-as-tools",children:"Add custom components as tools"}),"\n",(0,s.jsx)(t.p,{children:"An agent can use custom components as tools."}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["To add a custom component to the problem-solving agent flow, click ",(0,s.jsx)(t.strong,{children:"New Custom Component"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Add custom Python code to the custom component.\nHere's an example text analyzer for sentiment analysis."}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(i.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Component",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.io ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" MessageTextInput, Output",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Data",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" re",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"TextAnalyzerComponent",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"Component",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Text Analyzer"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Analyzes and transforms input text."',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" documentation: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"http://docs.langflow.org/components/custom"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" icon ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"chart-bar"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"TextAnalyzerComponent"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" inputs ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" MessageTextInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"input_text"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Input Text"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Enter text to analyze"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" value",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Hello, World!"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" tool_mode",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"True",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" outputs ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" Output(",props:{style:{color:"#C9D1D9"}}},{content:"display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Analysis Result"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"output"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"method",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"analyze_text"',props:{style:{color:"#A5D6FF"}}},{content:"),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"analyze_text",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> Data:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" text ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".input_text",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" # Perform text analysis",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" word_count ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"len",props:{style:{color:"#79C0FF"}}},{content:"(text.split())",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" char_count ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"len",props:{style:{color:"#79C0FF"}}},{content:"(text)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" sentence_count ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"len",props:{style:{color:"#79C0FF"}}},{content:"(re.findall(",props:{style:{color:"#C9D1D9"}}},{content:"r",props:{style:{color:"#FF7B72"}}},{content:"'",props:{style:{color:"#A5D6FF"}}},{content:"\\w",props:{style:{color:"#79C0FF"}}},{content:"+",props:{style:{color:"#FF7B72"}}},{content:"[.!?]",props:{style:{color:"#79C0FF"}}},{content:"'",props:{style:{color:"#A5D6FF"}}},{content:", text))",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" # Transform text",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" reversed_text ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" text[::",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"1",props:{style:{color:"#79C0FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" uppercase_text ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" text.upper()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" analysis_result ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "original_text"',props:{style:{color:"#A5D6FF"}}},{content:": text,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "word_count"',props:{style:{color:"#A5D6FF"}}},{content:": word_count,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "character_count"',props:{style:{color:"#A5D6FF"}}},{content:": char_count,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sentence_count"',props:{style:{color:"#A5D6FF"}}},{content:": sentence_count,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "reversed_text"',props:{style:{color:"#A5D6FF"}}},{content:": reversed_text,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "uppercase_text"',props:{style:{color:"#A5D6FF"}}},{content:": uppercase_text",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" Data(",props:{style:{color:"#C9D1D9"}}},{content:"value",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"analysis_result)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".status ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" data",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" data",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,s.jsxs)(t.ol,{start:"3",children:["\n",(0,s.jsxs)(t.li,{children:["To enable the custom component as a tool, click ",(0,s.jsx)(t.strong,{children:"Tool Mode"}),"."]}),"\n",(0,s.jsx)(t.li,{children:"Connect the tool output to the agent's tools input."}),"\n",(0,s.jsxs)(t.li,{children:["Ask the agent, ",(0,s.jsx)(t.code,{children:"What tools are you using to answer my questions?"}),"\nYour response will be similar to the following, and will include your custom component."]}),"\n"]}),"\n",(0,s.jsx)(i.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"I have access to several tools that assist me in answering your questions, including:",props:{}}]},{tokens:[{content:"Search API: This allows me to search for recent information or results on the web.",props:{}}]},{tokens:[{content:"HTTP Requests: I can make HTTP requests to various URLs to retrieve data or interact with APIs.",props:{}}]},{tokens:[{content:"Calculator: I can evaluate basic arithmetic expressions.",props:{}}]},{tokens:[{content:"Text Analyzer: I can analyze and transform input text.",props:{}}]},{tokens:[{content:"Current Date and Time: I can retrieve the current date and time in various time zones.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(t.h2,{id:"make-any-component-a-tool",children:"Make any component a tool"}),"\n",(0,s.jsxs)(t.p,{children:["If the component you want to use as a tool doesn't have a ",(0,s.jsx)(t.strong,{children:"Tool Mode"})," button, add ",(0,s.jsx)(t.code,{children:"tool_mode=True"})," to one of the component's inputs, and connect the new ",(0,s.jsx)(t.strong,{children:"Toolset"})," output to the agent's ",(0,s.jsx)(t.strong,{children:"Tools"})," input."]}),"\n",(0,s.jsxs)(t.p,{children:["Langflow supports ",(0,s.jsx)(t.strong,{children:"Tool Mode"})," for the following data types:"]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.code,{children:"DataInput"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.code,{children:"DataFrameInput"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.code,{children:"PromptInput"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.code,{children:"MessageTextInput"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.code,{children:"MultilineInput"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.code,{children:"DropdownInput"})}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["For example, the ",(0,s.jsx)(t.a,{href:"#components-as-tools",children:"components as tools"})," example above adds ",(0,s.jsx)(t.code,{children:"tool_mode=True"})," to the ",(0,s.jsx)(t.code,{children:"MessageTextInput"})," input so the custom component can be used as a tool."]}),"\n",(0,s.jsx)(i.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"inputs ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" MessageTextInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"input_text"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Input Text"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Enter text to analyze"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" value",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Hello, World!"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" tool_mode",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"True",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"]",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,s.jsx)(t.h2,{id:"add-flows-as-tools",children:"Add flows as tools"}),"\n",(0,s.jsxs)(t.p,{children:["An agent can use flows that are saved in your workspace as tools with the ",(0,s.jsx)(t.a,{href:"/components-logic#flow-as-tool",children:"Flow as Tool"})," component."]}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["To add a ",(0,s.jsx)(t.strong,{children:"Flow as Tool"})," component, click and drag a ",(0,s.jsx)(t.strong,{children:"Flow as Tool"})," component to your workspace."]}),"\n",(0,s.jsx)(t.li,{children:"Select the flow you want the agent to use as a tool."}),"\n",(0,s.jsx)(t.li,{children:"Connect the tool output to the agent's tools input."}),"\n",(0,s.jsxs)(t.li,{children:["Ask the agent, ",(0,s.jsx)(t.code,{children:"What tools are you using to answer my questions?"}),"\nYour ",(0,s.jsx)(t.strong,{children:"Flow as Tool"})," flow should be visible in the response."]}),"\n"]})]})}function y(o={}){const{wrapper:t}={...(0,l.R)(),...o.components};return t?(0,s.jsx)(t,{...o,children:(0,s.jsx)(g,{...o})}):g(o)}function u(o,t){throw new Error("Expected "+(t?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]); \ No newline at end of file diff --git a/assets/js/8f774222.a51c4119.js b/assets/js/8f774222.a51c4119.js new file mode 100644 index 0000000000..7b8f6f21ee --- /dev/null +++ b/assets/js/8f774222.a51c4119.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[8661],{12378:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>h,contentTitle:()=>c,default:()=>l,frontMatter:()=>d,metadata:()=>n,toc:()=>a});const n=JSON.parse('{"id":"Components/components-memories","title":"Memories","description":"Memory components store and retrieve chat messages by session_id.","source":"@site/docs/Components/components-memories.md","sourceDirName":"Components","slug":"/components-memories","permalink":"/components-memories","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Memories","slug":"/components-memories"},"sidebar":"docs","previous":{"title":"Logic","permalink":"/components-logic"},"next":{"title":"Models","permalink":"/components-models"}}');var r=t(74848),i=t(28453);const d={title:"Memories",slug:"/components-memories"},c="Memory components in Langflow",h={},a=[{value:"Use a memory component in a flow",id:"use-a-memory-component-in-a-flow",level:2},{value:"AstraDBChatMemory Component",id:"astradbchatmemory-component",level:2},{value:"Inputs",id:"inputs",level:3},{value:"Outputs",id:"outputs",level:3},{value:"CassandraChatMemory Component",id:"cassandrachatmemory-component",level:2},{value:"Inputs",id:"inputs-1",level:3},{value:"Outputs",id:"outputs-1",level:3},{value:"Mem0 Chat Memory",id:"mem0-chat-memory",level:2},{value:"Inputs",id:"inputs-2",level:3},{value:"Outputs",id:"outputs-2",level:3},{value:"Redis Chat Memory",id:"redis-chat-memory",level:2},{value:"Inputs",id:"inputs-3",level:3},{value:"Outputs",id:"outputs-3",level:3},{value:"ZepChatMemory Component",id:"zepchatmemory-component",level:2},{value:"Inputs",id:"inputs-4",level:3},{value:"Outputs",id:"outputs-4",level:3}];function o(e){const s={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.header,{children:(0,r.jsx)(s.h1,{id:"memory-components-in-langflow",children:"Memory components in Langflow"})}),"\n",(0,r.jsxs)(s.p,{children:["Memory components store and retrieve chat messages by ",(0,r.jsx)(s.code,{children:"session_id"}),"."]}),"\n",(0,r.jsx)(s.p,{children:"They are distinct from vector store components, because they are built specifically for storing and retrieving chat messages from external databases."}),"\n",(0,r.jsxs)(s.p,{children:["Memory components provide access to their respective external databases ",(0,r.jsx)(s.strong,{children:"as memory"}),". This allows Large Language Models (LLMs) or ",(0,r.jsx)(s.a,{href:"/components-agents",children:"agents"})," to access external memory for persistence and context retention."]}),"\n",(0,r.jsx)(s.h2,{id:"use-a-memory-component-in-a-flow",children:"Use a memory component in a flow"}),"\n",(0,r.jsxs)(s.p,{children:["This example flow stores and retrieves chat history from an ",(0,r.jsx)(s.strong,{children:"Astra DB Chat Memory"})," component with ",(0,r.jsx)(s.strong,{children:"Store Message"})," and ",(0,r.jsx)(s.strong,{children:"Chat Memory"})," components."]}),"\n",(0,r.jsxs)(s.p,{children:["The ",(0,r.jsx)(s.strong,{children:"Store Message"})," helper component stores chat memories as ",(0,r.jsx)(s.a,{href:"/concepts-objects",children:"Data"})," objects, and the ",(0,r.jsx)(s.strong,{children:"Message History"})," helper component retrieves chat messages as ",(0,r.jsx)(s.a,{href:"/concepts-objects",children:"Data"})," objects or strings."]}),"\n",(0,r.jsx)(s.p,{children:(0,r.jsx)(s.img,{alt:"Sample Flow storing Chat Memory in AstraDB",src:t(72654).A+"",width:"3178",height:"1228"})}),"\n",(0,r.jsx)(s.h2,{id:"astradbchatmemory-component",children:"AstraDBChatMemory Component"}),"\n",(0,r.jsxs)(s.p,{children:["This component creates an ",(0,r.jsx)(s.code,{children:"AstraDBChatMessageHistory"})," instance, which stores and retrieves chat messages using Astra DB, a cloud-native database service."]}),"\n",(0,r.jsx)(s.h3,{id:"inputs",children:"Inputs"}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"Name"}),(0,r.jsx)(s.th,{children:"Type"}),(0,r.jsx)(s.th,{children:"Description"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"collection_name"}),(0,r.jsx)(s.td,{children:"String"}),(0,r.jsx)(s.td,{children:"Name of the Astra DB collection for storing messages. Required."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"token"}),(0,r.jsx)(s.td,{children:"SecretString"}),(0,r.jsx)(s.td,{children:"Authentication token for Astra DB access. Required."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"api_endpoint"}),(0,r.jsx)(s.td,{children:"SecretString"}),(0,r.jsx)(s.td,{children:"API endpoint URL for the Astra DB service. Required."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"namespace"}),(0,r.jsx)(s.td,{children:"String"}),(0,r.jsx)(s.td,{children:"Optional namespace within Astra DB for the collection."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"session_id"}),(0,r.jsx)(s.td,{children:"MessageText"}),(0,r.jsx)(s.td,{children:"Chat session ID. Uses current session ID if not provided."})]})]})]}),"\n",(0,r.jsx)(s.h3,{id:"outputs",children:"Outputs"}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"Name"}),(0,r.jsx)(s.th,{children:"Type"}),(0,r.jsx)(s.th,{children:"Description"})]})}),(0,r.jsx)(s.tbody,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"message_history"}),(0,r.jsx)(s.td,{children:"BaseChatMessageHistory"}),(0,r.jsx)(s.td,{children:"An instance of AstraDBChatMessageHistory for the session."})]})})]}),"\n",(0,r.jsx)(s.h2,{id:"cassandrachatmemory-component",children:"CassandraChatMemory Component"}),"\n",(0,r.jsxs)(s.p,{children:["This component creates a ",(0,r.jsx)(s.code,{children:"CassandraChatMessageHistory"})," instance, enabling storage and retrieval of chat messages using Apache Cassandra or DataStax Astra DB."]}),"\n",(0,r.jsx)(s.h3,{id:"inputs-1",children:"Inputs"}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"Name"}),(0,r.jsx)(s.th,{children:"Type"}),(0,r.jsx)(s.th,{children:"Description"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"database_ref"}),(0,r.jsx)(s.td,{children:"MessageText"}),(0,r.jsx)(s.td,{children:"Contact points for Cassandra or Astra DB database ID. Required."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"username"}),(0,r.jsx)(s.td,{children:"MessageText"}),(0,r.jsx)(s.td,{children:"Username for Cassandra (leave empty for Astra DB)."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"token"}),(0,r.jsx)(s.td,{children:"SecretString"}),(0,r.jsx)(s.td,{children:"Password for Cassandra or token for Astra DB. Required."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"keyspace"}),(0,r.jsx)(s.td,{children:"MessageText"}),(0,r.jsx)(s.td,{children:"Keyspace in Cassandra or namespace in Astra DB. Required."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"table_name"}),(0,r.jsx)(s.td,{children:"MessageText"}),(0,r.jsx)(s.td,{children:"Name of the table or collection for storing messages. Required."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"session_id"}),(0,r.jsx)(s.td,{children:"MessageText"}),(0,r.jsx)(s.td,{children:"Unique identifier for the chat session. Optional."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"cluster_kwargs"}),(0,r.jsx)(s.td,{children:"Dictionary"}),(0,r.jsx)(s.td,{children:"Additional keyword arguments for Cassandra cluster configuration. Optional."})]})]})]}),"\n",(0,r.jsx)(s.h3,{id:"outputs-1",children:"Outputs"}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"Name"}),(0,r.jsx)(s.th,{children:"Type"}),(0,r.jsx)(s.th,{children:"Description"})]})}),(0,r.jsx)(s.tbody,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"message_history"}),(0,r.jsx)(s.td,{children:"BaseChatMessageHistory"}),(0,r.jsx)(s.td,{children:"An instance of CassandraChatMessageHistory for the session."})]})})]}),"\n",(0,r.jsx)(s.h2,{id:"mem0-chat-memory",children:"Mem0 Chat Memory"}),"\n",(0,r.jsx)(s.p,{children:"The Mem0 Chat Memory component retrieves and stores chat messages using Mem0 memory storage."}),"\n",(0,r.jsx)(s.h3,{id:"inputs-2",children:"Inputs"}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"Name"}),(0,r.jsx)(s.th,{children:"Display Name"}),(0,r.jsx)(s.th,{children:"Info"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"mem0_config"}),(0,r.jsx)(s.td,{children:"Mem0 Configuration"}),(0,r.jsx)(s.td,{children:"Configuration dictionary for initializing Mem0 memory instance."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"ingest_message"}),(0,r.jsx)(s.td,{children:"Message to Ingest"}),(0,r.jsx)(s.td,{children:"The message content to be ingested into Mem0 memory."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"existing_memory"}),(0,r.jsx)(s.td,{children:"Existing Memory Instance"}),(0,r.jsx)(s.td,{children:"Optional existing Mem0 memory instance."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"user_id"}),(0,r.jsx)(s.td,{children:"User ID"}),(0,r.jsx)(s.td,{children:"Identifier for the user associated with the messages."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"search_query"}),(0,r.jsx)(s.td,{children:"Search Query"}),(0,r.jsx)(s.td,{children:"Input text for searching related memories in Mem0."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"mem0_api_key"}),(0,r.jsx)(s.td,{children:"Mem0 API Key"}),(0,r.jsx)(s.td,{children:"API key for Mem0 platform (leave empty to use the local version)."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"metadata"}),(0,r.jsx)(s.td,{children:"Metadata"}),(0,r.jsx)(s.td,{children:"Additional metadata to associate with the ingested message."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"openai_api_key"}),(0,r.jsx)(s.td,{children:"OpenAI API Key"}),(0,r.jsx)(s.td,{children:"API key for OpenAI. This item is required if you use OpenAI embeddings without a provided configuration."})]})]})]}),"\n",(0,r.jsx)(s.h3,{id:"outputs-2",children:"Outputs"}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"Name"}),(0,r.jsx)(s.th,{children:"Display Name"}),(0,r.jsx)(s.th,{children:"Info"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"memory"}),(0,r.jsx)(s.td,{children:"Mem0 Memory"}),(0,r.jsx)(s.td,{children:"The resulting Mem0 Memory object after ingesting data."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"search_results"}),(0,r.jsx)(s.td,{children:"Search Results"}),(0,r.jsx)(s.td,{children:"The search results from querying Mem0 memory."})]})]})]}),"\n",(0,r.jsx)(s.h2,{id:"redis-chat-memory",children:"Redis Chat Memory"}),"\n",(0,r.jsx)(s.p,{children:"This component retrieves and stores chat messages from Redis."}),"\n",(0,r.jsx)(s.h3,{id:"inputs-3",children:"Inputs"}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"Name"}),(0,r.jsx)(s.th,{children:"Display Name"}),(0,r.jsx)(s.th,{children:"Info"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"host"}),(0,r.jsx)(s.td,{children:"hostname"}),(0,r.jsx)(s.td,{children:"IP address or hostname."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"port"}),(0,r.jsx)(s.td,{children:"port"}),(0,r.jsx)(s.td,{children:"Redis Port Number."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"database"}),(0,r.jsx)(s.td,{children:"database"}),(0,r.jsx)(s.td,{children:"Redis database."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"username"}),(0,r.jsx)(s.td,{children:"Username"}),(0,r.jsx)(s.td,{children:"The Redis user name."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"password"}),(0,r.jsx)(s.td,{children:"Password"}),(0,r.jsx)(s.td,{children:"The password for username."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"key_prefix"}),(0,r.jsx)(s.td,{children:"Key prefix"}),(0,r.jsx)(s.td,{children:"Key prefix."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"session_id"}),(0,r.jsx)(s.td,{children:"Session ID"}),(0,r.jsx)(s.td,{children:"Session ID for the message."})]})]})]}),"\n",(0,r.jsx)(s.h3,{id:"outputs-3",children:"Outputs"}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"Name"}),(0,r.jsx)(s.th,{children:"Display Name"}),(0,r.jsx)(s.th,{children:"Info"})]})}),(0,r.jsx)(s.tbody,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"memory"}),(0,r.jsx)(s.td,{children:"Memory"}),(0,r.jsx)(s.td,{children:"The Redis chat message history object"})]})})]}),"\n",(0,r.jsx)(s.h2,{id:"zepchatmemory-component",children:"ZepChatMemory Component"}),"\n",(0,r.jsxs)(s.p,{children:["This component creates a ",(0,r.jsx)(s.code,{children:"ZepChatMessageHistory"})," instance, enabling storage and retrieval of chat messages using Zep, a memory server for Large Language Models (LLMs)."]}),"\n",(0,r.jsx)(s.h3,{id:"inputs-4",children:"Inputs"}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"Name"}),(0,r.jsx)(s.th,{children:"Type"}),(0,r.jsx)(s.th,{children:"Description"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"url"}),(0,r.jsx)(s.td,{children:"MessageText"}),(0,r.jsx)(s.td,{children:"URL of the Zep instance. Required."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"api_key"}),(0,r.jsx)(s.td,{children:"SecretString"}),(0,r.jsx)(s.td,{children:"API Key for authentication with the Zep instance."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"api_base_path"}),(0,r.jsx)(s.td,{children:"Dropdown"}),(0,r.jsx)(s.td,{children:'API version to use. Options: "api/v1" or "api/v2".'})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"session_id"}),(0,r.jsx)(s.td,{children:"MessageText"}),(0,r.jsx)(s.td,{children:"Unique identifier for the chat session. Optional."})]})]})]}),"\n",(0,r.jsx)(s.h3,{id:"outputs-4",children:"Outputs"}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"Name"}),(0,r.jsx)(s.th,{children:"Type"}),(0,r.jsx)(s.th,{children:"Description"})]})}),(0,r.jsx)(s.tbody,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"message_history"}),(0,r.jsx)(s.td,{children:"BaseChatMessageHistory"}),(0,r.jsx)(s.td,{children:"An instance of ZepChatMessageHistory for the session."})]})})]})]})}function l(e={}){const{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(o,{...e})}):o(e)}},72654:(e,s,t)=>{t.d(s,{A:()=>n});const n=t.p+"assets/images/astra_db_chat_memory_rounded-9746ca2bb69d3b07ac0a071f4b9471b3.png"},28453:(e,s,t)=>{t.d(s,{R:()=>d,x:()=>c});var n=t(96540);const r={},i=n.createContext(r);function d(e){const s=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),n.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8f774222.c53c72f1.js b/assets/js/8f774222.c53c72f1.js deleted file mode 100644 index fccfada85b..0000000000 --- a/assets/js/8f774222.c53c72f1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[8661],{12378:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>a,contentTitle:()=>d,default:()=>l,frontMatter:()=>o,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"Components/components-memories","title":"Memories","description":"Memory components store and retrieve chat messages by session_id.","source":"@site/docs/Components/components-memories.md","sourceDirName":"Components","slug":"/components-memories","permalink":"/components-memories","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Memories","slug":"/components-memories"},"sidebar":"docs","previous":{"title":"Logic","permalink":"/components-logic"},"next":{"title":"Models","permalink":"/components-models"}}');var r=t(74848),i=t(28453);const o={title:"Memories",slug:"/components-memories"},d="Memory components in Langflow",a={},c=[{value:"Use a memory component in a flow",id:"use-a-memory-component-in-a-flow",level:2},{value:"AstraDBChatMemory Component",id:"astradbchatmemory-component",level:2},{value:"Inputs",id:"inputs",level:3},{value:"Outputs",id:"outputs",level:3},{value:"CassandraChatMemory Component",id:"cassandrachatmemory-component",level:2},{value:"Inputs",id:"inputs-1",level:3},{value:"Outputs",id:"outputs-1",level:3},{value:"ZepChatMemory Component",id:"zepchatmemory-component",level:2},{value:"Inputs",id:"inputs-2",level:3},{value:"Outputs",id:"outputs-2",level:3}];function h(e){const s={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.header,{children:(0,r.jsx)(s.h1,{id:"memory-components-in-langflow",children:"Memory components in Langflow"})}),"\n",(0,r.jsxs)(s.p,{children:["Memory components store and retrieve chat messages by ",(0,r.jsx)(s.code,{children:"session_id"}),"."]}),"\n",(0,r.jsx)(s.p,{children:"They are distinct from vector store components, because they are built specifically for storing and retrieving chat messages from external databases."}),"\n",(0,r.jsxs)(s.p,{children:["Memory components provide access to their respective external databases ",(0,r.jsx)(s.strong,{children:"as memory"}),". This allows Large Language Models (LLMs) or ",(0,r.jsx)(s.a,{href:"/components-agents",children:"agents"})," to access external memory for persistence and context retention."]}),"\n",(0,r.jsx)(s.h2,{id:"use-a-memory-component-in-a-flow",children:"Use a memory component in a flow"}),"\n",(0,r.jsxs)(s.p,{children:["This example flow stores and retrieves chat history from an ",(0,r.jsx)(s.strong,{children:"Astra DB Chat Memory"})," component with ",(0,r.jsx)(s.strong,{children:"Store Message"})," and ",(0,r.jsx)(s.strong,{children:"Chat Memory"})," components."]}),"\n",(0,r.jsxs)(s.p,{children:["The ",(0,r.jsx)(s.strong,{children:"Store Message"})," helper component stores chat memories as ",(0,r.jsx)(s.a,{href:"/concepts-objects",children:"Data"})," objects, and the ",(0,r.jsx)(s.strong,{children:"Message History"})," helper component retrieves chat messages as ",(0,r.jsx)(s.a,{href:"/concepts-objects",children:"Data"})," objects or strings."]}),"\n",(0,r.jsx)(s.p,{children:(0,r.jsx)(s.img,{alt:"Sample Flow storing Chat Memory in AstraDB",src:t(72654).A+"",width:"3178",height:"1228"})}),"\n",(0,r.jsx)(s.h2,{id:"astradbchatmemory-component",children:"AstraDBChatMemory Component"}),"\n",(0,r.jsxs)(s.p,{children:["This component creates an ",(0,r.jsx)(s.code,{children:"AstraDBChatMessageHistory"})," instance, which stores and retrieves chat messages using Astra DB, a cloud-native database service."]}),"\n",(0,r.jsx)(s.h3,{id:"inputs",children:"Inputs"}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"Name"}),(0,r.jsx)(s.th,{children:"Type"}),(0,r.jsx)(s.th,{children:"Description"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"collection_name"}),(0,r.jsx)(s.td,{children:"String"}),(0,r.jsx)(s.td,{children:"Name of the Astra DB collection for storing messages. Required."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"token"}),(0,r.jsx)(s.td,{children:"SecretString"}),(0,r.jsx)(s.td,{children:"Authentication token for Astra DB access. Required."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"api_endpoint"}),(0,r.jsx)(s.td,{children:"SecretString"}),(0,r.jsx)(s.td,{children:"API endpoint URL for the Astra DB service. Required."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"namespace"}),(0,r.jsx)(s.td,{children:"String"}),(0,r.jsx)(s.td,{children:"Optional namespace within Astra DB for the collection."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"session_id"}),(0,r.jsx)(s.td,{children:"MessageText"}),(0,r.jsx)(s.td,{children:"Chat session ID. Uses current session ID if not provided."})]})]})]}),"\n",(0,r.jsx)(s.h3,{id:"outputs",children:"Outputs"}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"Name"}),(0,r.jsx)(s.th,{children:"Type"}),(0,r.jsx)(s.th,{children:"Description"})]})}),(0,r.jsx)(s.tbody,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"message_history"}),(0,r.jsx)(s.td,{children:"BaseChatMessageHistory"}),(0,r.jsx)(s.td,{children:"An instance of AstraDBChatMessageHistory for the session."})]})})]}),"\n",(0,r.jsx)(s.h2,{id:"cassandrachatmemory-component",children:"CassandraChatMemory Component"}),"\n",(0,r.jsxs)(s.p,{children:["This component creates a ",(0,r.jsx)(s.code,{children:"CassandraChatMessageHistory"})," instance, enabling storage and retrieval of chat messages using Apache Cassandra or DataStax Astra DB."]}),"\n",(0,r.jsx)(s.h3,{id:"inputs-1",children:"Inputs"}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"Name"}),(0,r.jsx)(s.th,{children:"Type"}),(0,r.jsx)(s.th,{children:"Description"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"database_ref"}),(0,r.jsx)(s.td,{children:"MessageText"}),(0,r.jsx)(s.td,{children:"Contact points for Cassandra or Astra DB database ID. Required."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"username"}),(0,r.jsx)(s.td,{children:"MessageText"}),(0,r.jsx)(s.td,{children:"Username for Cassandra (leave empty for Astra DB)."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"token"}),(0,r.jsx)(s.td,{children:"SecretString"}),(0,r.jsx)(s.td,{children:"Password for Cassandra or token for Astra DB. Required."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"keyspace"}),(0,r.jsx)(s.td,{children:"MessageText"}),(0,r.jsx)(s.td,{children:"Keyspace in Cassandra or namespace in Astra DB. Required."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"table_name"}),(0,r.jsx)(s.td,{children:"MessageText"}),(0,r.jsx)(s.td,{children:"Name of the table or collection for storing messages. Required."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"session_id"}),(0,r.jsx)(s.td,{children:"MessageText"}),(0,r.jsx)(s.td,{children:"Unique identifier for the chat session. Optional."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"cluster_kwargs"}),(0,r.jsx)(s.td,{children:"Dictionary"}),(0,r.jsx)(s.td,{children:"Additional keyword arguments for Cassandra cluster configuration. Optional."})]})]})]}),"\n",(0,r.jsx)(s.h3,{id:"outputs-1",children:"Outputs"}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"Name"}),(0,r.jsx)(s.th,{children:"Type"}),(0,r.jsx)(s.th,{children:"Description"})]})}),(0,r.jsx)(s.tbody,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"message_history"}),(0,r.jsx)(s.td,{children:"BaseChatMessageHistory"}),(0,r.jsx)(s.td,{children:"An instance of CassandraChatMessageHistory for the session."})]})})]}),"\n",(0,r.jsx)(s.h2,{id:"zepchatmemory-component",children:"ZepChatMemory Component"}),"\n",(0,r.jsxs)(s.p,{children:["This component creates a ",(0,r.jsx)(s.code,{children:"ZepChatMessageHistory"})," instance, enabling storage and retrieval of chat messages using Zep, a memory server for Large Language Models (LLMs)."]}),"\n",(0,r.jsx)(s.h3,{id:"inputs-2",children:"Inputs"}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"Name"}),(0,r.jsx)(s.th,{children:"Type"}),(0,r.jsx)(s.th,{children:"Description"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"url"}),(0,r.jsx)(s.td,{children:"MessageText"}),(0,r.jsx)(s.td,{children:"URL of the Zep instance. Required."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"api_key"}),(0,r.jsx)(s.td,{children:"SecretString"}),(0,r.jsx)(s.td,{children:"API Key for authentication with the Zep instance."})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"api_base_path"}),(0,r.jsx)(s.td,{children:"Dropdown"}),(0,r.jsx)(s.td,{children:'API version to use. Options: "api/v1" or "api/v2".'})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"session_id"}),(0,r.jsx)(s.td,{children:"MessageText"}),(0,r.jsx)(s.td,{children:"Unique identifier for the chat session. Optional."})]})]})]}),"\n",(0,r.jsx)(s.h3,{id:"outputs-2",children:"Outputs"}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"Name"}),(0,r.jsx)(s.th,{children:"Type"}),(0,r.jsx)(s.th,{children:"Description"})]})}),(0,r.jsx)(s.tbody,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:"message_history"}),(0,r.jsx)(s.td,{children:"BaseChatMessageHistory"}),(0,r.jsx)(s.td,{children:"An instance of ZepChatMessageHistory for the session."})]})})]})]})}function l(e={}){const{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},72654:(e,s,t)=>{t.d(s,{A:()=>n});const n=t.p+"assets/images/astra_db_chat_memory_rounded-9746ca2bb69d3b07ac0a071f4b9471b3.png"},28453:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>d});var n=t(96540);const r={},i=n.createContext(r);function o(e){const s=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function d(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),n.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8ff68e6f.94ae8daa.js b/assets/js/8ff68e6f.94ae8daa.js new file mode 100644 index 0000000000..cda5b36684 --- /dev/null +++ b/assets/js/8ff68e6f.94ae8daa.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[2624],{6961:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>h,contentTitle:()=>l,default:()=>a,frontMatter:()=>d,metadata:()=>n,toc:()=>c});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);const d={title:"Tools",slug:"/components-tools"},l="Tool components in Langflow",h={},c=[{value:"Use a tool in a flow",id:"use-a-tool-in-a-flow",level:2},{value:"arXiv",id:"arxiv",level:2},{value:"Inputs",id:"inputs",level:3},{value:"Outputs",id:"outputs",level:3},{value:"Astra DB Tool",id:"astra-db-tool",level:2},{value:"Inputs",id:"inputs-1",level:3},{value:"Outputs",id:"outputs-1",level:3},{value:"Astra DB CQL Tool",id:"astra-db-cql-tool",level:2},{value:"Inputs",id:"inputs-2",level:3},{value:"Outputs",id:"outputs-2",level:3},{value:"Bing Search API",id:"bing-search-api",level:2},{value:"Inputs",id:"inputs-3",level:3},{value:"Outputs",id:"outputs-3",level:3},{value:"Calculator Tool",id:"calculator-tool",level:2},{value:"Inputs",id:"inputs-4",level:3},{value:"Outputs",id:"outputs-4",level:3},{value:"Combinatorial Reasoner",id:"combinatorial-reasoner",level:2},{value:"Inputs",id:"inputs-5",level:3},{value:"Outputs",id:"outputs-5",level:3},{value:"DuckDuckGo search",id:"duckduckgo-search",level:2},{value:"Inputs",id:"inputs-6",level:3},{value:"Outputs",id:"outputs-6",level:3},{value:"Exa Search",id:"exa-search",level:2},{value:"Inputs",id:"inputs-7",level:3},{value:"Outputs",id:"outputs-7",level:3},{value:"Glean Search API",id:"glean-search-api",level:2},{value:"Inputs",id:"inputs-8",level:3},{value:"Outputs",id:"outputs-8",level:3},{value:"Google Search API",id:"google-search-api",level:2},{value:"Inputs",id:"inputs-9",level:3},{value:"Outputs",id:"outputs-9",level:3},{value:"Google Serper API",id:"google-serper-api",level:2},{value:"Inputs",id:"inputs-10",level:3},{value:"Outputs",id:"outputs-10",level:3},{value:"MCP Tools (stdio)",id:"mcp-tools-stdio",level:2},{value:"Inputs",id:"inputs-11",level:3},{value:"Outputs",id:"outputs-11",level:3},{value:"MCP Tools (SSE)",id:"mcp-tools-sse",level:2},{value:"Inputs",id:"inputs-12",level:3},{value:"Outputs",id:"outputs-12",level:3},{value:"Python Code Structured Tool",id:"python-code-structured-tool",level:2},{value:"Inputs",id:"inputs-13",level:3},{value:"Outputs",id:"outputs-13",level:3},{value:"Python REPL Tool",id:"python-repl-tool",level:2},{value:"Inputs",id:"inputs-14",level:3},{value:"Outputs",id:"outputs-14",level:3},{value:"Retriever Tool",id:"retriever-tool",level:2},{value:"Inputs",id:"inputs-15",level:3},{value:"Outputs",id:"outputs-15",level:3},{value:"SearXNG Search Tool",id:"searxng-search-tool",level:2},{value:"Inputs",id:"inputs-16",level:3},{value:"Outputs",id:"outputs-16",level:3},{value:"Search API",id:"search-api",level:2},{value:"Inputs",id:"inputs-17",level:3},{value:"Outputs",id:"outputs-17",level:3},{value:"Serp Search API",id:"serp-search-api",level:2},{value:"Inputs",id:"inputs-18",level:3},{value:"Outputs",id:"outputs-18",level:3},{value:"Tavily AI Search",id:"tavily-ai-search",level:2},{value:"Inputs",id:"inputs-19",level:3},{value:"Outputs",id:"outputs-19",level:3},{value:"Wikidata",id:"wikidata",level:2},{value:"Inputs",id:"inputs-20",level:3},{value:"Outputs",id:"outputs-20",level:3},{value:"Wikipedia API",id:"wikipedia-api",level:2},{value:"Inputs",id:"inputs-21",level:3},{value:"Outputs",id:"outputs-21",level:3},{value:"Wolfram Alpha API",id:"wolfram-alpha-api",level:2},{value:"Inputs",id:"inputs-22",level:3},{value:"Outputs",id:"outputs-22",level:3},{value:"Yahoo Finance News Tool",id:"yahoo-finance-news-tool",level:2},{value:"Inputs",id:"inputs-23",level:3},{value:"Outputs",id:"outputs-23",level:3}];function o(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"tool-components-in-langflow",children:"Tool components in Langflow"})}),"\n",(0,r.jsxs)(t.p,{children:["Tools are typically connected to agent components at the ",(0,r.jsx)(t.strong,{children:"Tools"})," port. Agents use LLMs as a reasoning engine to decide which of the connected tool components to use to solve a problem."]}),"\n",(0,r.jsxs)(t.p,{children:["Tools in agentic functions are, essentially, functions that the agent can call to perform tasks or access external resources.\nA function is wrapped as a ",(0,r.jsx)(t.code,{children:"Tool"})," object, with a common interface the agent understands.\nAgents become aware of tools through tool registration, where the agent is provided a list of available tools, typically at agent initialization. The ",(0,r.jsx)(t.code,{children:"Tool"})," object's description tells the agent what the tool can do."]}),"\n",(0,r.jsx)(t.p,{children:"The agent then uses a connected LLM to reason through the problem to decide which tool is best for the job."}),"\n",(0,r.jsx)(t.h2,{id:"use-a-tool-in-a-flow",children:"Use a tool in a flow"}),"\n",(0,r.jsxs)(t.p,{children:["Tools are typically connected to agent components at the ",(0,r.jsx)(t.strong,{children:"Tools"})," port."]}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.a,{href:"/starter-projects-simple-agent",children:"simple agent starter project"})," uses URL and Calculator tools connected to an ",(0,r.jsx)(t.a,{href:"/components-agents#agent-component",children:"agent component"})," to answer a user's questions. The OpenAI LLM acts as a brain for the agent to decide which tool to use."]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Simple agent starter flow",src:s(19680).A+"",width:"1732",height:"1748"})}),"\n",(0,r.jsxs)(t.p,{children:["To make a component into a tool that an agent can use, enable ",(0,r.jsx)(t.strong,{children:"Tool mode"})," in the component. Enabling ",(0,r.jsx)(t.strong,{children:"Tool mode"})," modifies a component input to accept calls from an agent.\nIf the component you want to connect to an agent doesn't have a ",(0,r.jsx)(t.strong,{children:"Tool mode"})," option, you can modify the component's inputs to become a tool.\nFor an example, see ",(0,r.jsx)(t.a,{href:"/agents-tool-calling-agent-component#make-any-component-a-tool",children:"Make any component a tool"}),"."]}),"\n",(0,r.jsx)(t.h2,{id:"arxiv",children:"arXiv"}),"\n",(0,r.jsxs)(t.p,{children:["This component searches and retrieves papers from ",(0,r.jsx)(t.a,{href:"https://arXiv.org",children:"arXiv.org"}),"."]}),"\n",(0,r.jsx)(t.h3,{id:"inputs",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"search_query"}),(0,r.jsx)(t.td,{children:"Search Query"}),(0,r.jsxs)(t.td,{children:["The search query for arXiv papers (for example, ",(0,r.jsx)(t.code,{children:"quantum computing"}),")"]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"search_type"}),(0,r.jsx)(t.td,{children:"Search Field"}),(0,r.jsx)(t.td,{children:"The field to search in"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"max_results"}),(0,r.jsx)(t.td,{children:"Max Results"}),(0,r.jsx)(t.td,{children:"Maximum number of results to return"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"papers"}),(0,r.jsx)(t.td,{children:"Papers"}),(0,r.jsx)(t.td,{children:"List of retrieved arXiv papers"})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"astra-db-tool",children:"Astra DB Tool"}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.code,{children:"Astra DB Tool"})," allows agents to connect to and query data from Astra DB collections."]}),"\n",(0,r.jsx)(t.h3,{id:"inputs-1",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Tool Name"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The name used to reference the tool in the agent's prompt."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Tool Description"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"A brief description of the tool. This helps the model decide when to use it."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Collection Name"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The name of the Astra DB collection to query."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Token"}),(0,r.jsx)(t.td,{children:"SecretString"}),(0,r.jsx)(t.td,{children:"The authentication token for accessing Astra DB."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"API Endpoint"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The Astra DB API endpoint."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Projection Fields"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:'The attributes to return, separated by commas. Default: "*".'})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Tool Parameters"}),(0,r.jsx)(t.td,{children:"Dict"}),(0,r.jsxs)(t.td,{children:["Parameters the model needs to fill to execute the tool. For required parameters, use an exclamation mark (for example, ",(0,r.jsx)(t.code,{children:"!customer_id"}),")."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Static Filters"}),(0,r.jsx)(t.td,{children:"Dict"}),(0,r.jsx)(t.td,{children:"Attribute-value pairs used to filter query results."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Limit"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The number of documents to return."})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-1",children:"Outputs"}),"\n",(0,r.jsx)(t.p,{children:"The Data output is primarily used when directly querying Astra DB, while the Tool output is used when integrating with LangChain agents or chains."}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Data"}),(0,r.jsxs)(t.td,{children:["List[",(0,r.jsx)(t.code,{children:"Data"}),"]"]}),(0,r.jsxs)(t.td,{children:["A list of ",(0,r.jsx)(t.a,{href:"/concepts-objects",children:"Data"})," objects containing the query results from Astra DB. Each ",(0,r.jsx)(t.code,{children:"Data"})," object contains the document fields specified by the projection attributes. Limited by the ",(0,r.jsx)(t.code,{children:"number_of_results"})," parameter."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"StructuredTool"}),(0,r.jsxs)(t.td,{children:["A LangChain ",(0,r.jsx)(t.code,{children:"StructuredTool"})," object that can be used in agent workflows. Contains the tool name, description, argument schema based on tool parameters, and the query function."]})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"astra-db-cql-tool",children:"Astra DB CQL Tool"}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.code,{children:"Astra DB CQL Tool"})," allows agents to query data from CQL tables in Astra DB."]}),"\n",(0,r.jsxs)(t.p,{children:["The main difference between this tool and the ",(0,r.jsx)(t.strong,{children:"Astra DB Tool"})," is that this tool is specifically designed for CQL tables and requires partition keys for querying, while also supporting clustering keys for more specific queries."]}),"\n",(0,r.jsx)(t.h3,{id:"inputs-2",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Tool Name"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The name used to reference the tool in the agent's prompt."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Tool Description"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"A brief description of the tool to guide the model in using it."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Keyspace"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The name of the keyspace."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Table Name"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The name of the Astra DB CQL table to query."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Token"}),(0,r.jsx)(t.td,{children:"SecretString"}),(0,r.jsx)(t.td,{children:"The authentication token for Astra DB."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"API Endpoint"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The Astra DB API endpoint."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Projection Fields"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:'The attributes to return, separated by commas. Default: "*".'})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Partition Keys"}),(0,r.jsx)(t.td,{children:"Dict"}),(0,r.jsx)(t.td,{children:"Required parameters that the model must fill to query the tool."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Clustering Keys"}),(0,r.jsx)(t.td,{children:"Dict"}),(0,r.jsxs)(t.td,{children:["Optional parameters the model can fill to refine the query. Required parameters should be marked with an exclamation mark (for example, ",(0,r.jsx)(t.code,{children:"!customer_id"}),")."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Static Filters"}),(0,r.jsx)(t.td,{children:"Dict"}),(0,r.jsx)(t.td,{children:"Attribute-value pairs used to filter query results."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Limit"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The number of records to return."})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-2",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Data"}),(0,r.jsx)(t.td,{children:"List[Data]"}),(0,r.jsxs)(t.td,{children:["A list of ",(0,r.jsx)(t.a,{href:"/concepts-objects",children:"Data"})," objects containing the query results from the Astra DB CQL table. Each Data object contains the document fields specified by the projection fields. Limited by the ",(0,r.jsx)(t.code,{children:"number_of_results"})," parameter."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"StructuredTool"}),(0,r.jsx)(t.td,{children:"A LangChain StructuredTool object that can be used in agent workflows. Contains the tool name, description, argument schema based on partition and clustering keys, and the query function."})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"bing-search-api",children:"Bing Search API"}),"\n",(0,r.jsx)(t.p,{children:"This component allows you to call the Bing Search API."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-3",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"bing_subscription_key"}),(0,r.jsx)(t.td,{children:"SecretString"}),(0,r.jsx)(t.td,{children:"Bing API subscription key"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_value"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Search query input"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"bing_search_url"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Custom Bing Search URL (optional)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"k"}),(0,r.jsx)(t.td,{children:"Integer"}),(0,r.jsx)(t.td,{children:"Number of search results to return"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-3",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"results"}),(0,r.jsx)(t.td,{children:"List[Data]"}),(0,r.jsx)(t.td,{children:"List of search results"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Bing Search tool for use in LangChain"})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"calculator-tool",children:"Calculator Tool"}),"\n",(0,r.jsx)(t.p,{children:"This component creates a tool for performing basic arithmetic operations on a given expression."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-4",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"expression"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsxs)(t.td,{children:["The arithmetic expression to evaluate (for example, ",(0,r.jsx)(t.code,{children:"4*4*(33/22)+12-20"}),")."]})]})})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-4",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"result"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Calculator tool for use in LangChain"})]})})]}),"\n",(0,r.jsx)(t.p,{children:"This component allows you to evaluate basic arithmetic expressions. It supports addition, subtraction, multiplication, division, and exponentiation. The tool uses a secure evaluation method that prevents the execution of arbitrary Python code."}),"\n",(0,r.jsx)(t.h2,{id:"combinatorial-reasoner",children:"Combinatorial Reasoner"}),"\n",(0,r.jsxs)(t.p,{children:["This component runs Icosa's Combinatorial Reasoning (CR) pipeline on an input to create an optimized prompt with embedded reasons. Sign up for access here: ",(0,r.jsx)(t.a,{href:"https://forms.gle/oWNv2NKjBNaqqvCx6",children:"https://forms.gle/oWNv2NKjBNaqqvCx6"})]}),"\n",(0,r.jsx)(t.h3,{id:"inputs-5",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"prompt"}),(0,r.jsx)(t.td,{children:"Prompt"}),(0,r.jsx)(t.td,{children:"Input to run CR on"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"openai_api_key"}),(0,r.jsx)(t.td,{children:"OpenAI API Key"}),(0,r.jsx)(t.td,{children:"OpenAI API key for authentication"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"username"}),(0,r.jsx)(t.td,{children:"Username"}),(0,r.jsx)(t.td,{children:"Username for Icosa API authentication"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"password"}),(0,r.jsx)(t.td,{children:"Password"}),(0,r.jsx)(t.td,{children:"Password for Icosa API authentication"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"model_name"}),(0,r.jsx)(t.td,{children:"Model Name"}),(0,r.jsx)(t.td,{children:"OpenAI LLM to use for reason generation"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-5",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"optimized_prompt"}),(0,r.jsx)(t.td,{children:"Optimized Prompt"}),(0,r.jsx)(t.td,{children:"A message object containing the optimized prompt"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"reasons"}),(0,r.jsx)(t.td,{children:"Selected Reasons"}),(0,r.jsx)(t.td,{children:"A list of the selected reasons that are embedded in the optimized prompt"})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"duckduckgo-search",children:"DuckDuckGo search"}),"\n",(0,r.jsxs)(t.p,{children:["This component performs web searches using the ",(0,r.jsx)(t.a,{href:"https://www.duckduckgo.com",children:"DuckDuckGo"})," search engine with result-limiting capabilities."]}),"\n",(0,r.jsx)(t.h3,{id:"inputs-6",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_value"}),(0,r.jsx)(t.td,{children:"Search Query"}),(0,r.jsx)(t.td,{children:"The search query to be used for the DuckDuckGo search"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"max_results"}),(0,r.jsx)(t.td,{children:"Max Results"}),(0,r.jsx)(t.td,{children:"Maximum number of results to return"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"max_snippet_length"}),(0,r.jsx)(t.td,{children:"Max Snippet Length"}),(0,r.jsx)(t.td,{children:"Maximum length of each result snippet"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-6",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"data"}),(0,r.jsx)(t.td,{children:"Data"}),(0,r.jsx)(t.td,{children:"List of search results as Data objects"})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"exa-search",children:"Exa Search"}),"\n",(0,r.jsxs)(t.p,{children:["This component provides an [",(0,r.jsx)(t.a,{href:"https://exa.ai/%5D(Exa",children:"https://exa.ai/](Exa"})," Search) toolkit for search and content retrieval."]}),"\n",(0,r.jsx)(t.h3,{id:"inputs-7",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"metaphor_api_key"}),(0,r.jsx)(t.td,{children:"Exa Search API Key"}),(0,r.jsx)(t.td,{children:"API key for Exa Search (entered as a password)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"use_autoprompt"}),(0,r.jsx)(t.td,{children:"Use Autoprompt"}),(0,r.jsx)(t.td,{children:"Whether to use autoprompt feature (default: true)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"search_num_results"}),(0,r.jsx)(t.td,{children:"Search Number of Results"}),(0,r.jsx)(t.td,{children:"Number of results to return for search (default: 5)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"similar_num_results"}),(0,r.jsx)(t.td,{children:"Similar Number of Results"}),(0,r.jsx)(t.td,{children:"Number of similar results to return (default: 5)"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-7",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tools"}),(0,r.jsx)(t.td,{children:"Tools"}),(0,r.jsx)(t.td,{children:"List of search tools provided by the toolkit"})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"glean-search-api",children:"Glean Search API"}),"\n",(0,r.jsx)(t.p,{children:"This component allows you to call the Glean Search API."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-8",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"glean_api_url"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"URL of the Glean API"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"glean_access_token"}),(0,r.jsx)(t.td,{children:"SecretString"}),(0,r.jsx)(t.td,{children:"Access token for Glean API authentication"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"query"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Search query input"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"page_size"}),(0,r.jsx)(t.td,{children:"Integer"}),(0,r.jsx)(t.td,{children:"Number of results per page (default: 10)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"request_options"}),(0,r.jsx)(t.td,{children:"Dict"}),(0,r.jsx)(t.td,{children:"Additional options for the API request (optional)"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-8",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"results"}),(0,r.jsx)(t.td,{children:"List[Data]"}),(0,r.jsx)(t.td,{children:"List of search results"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Glean Search tool for use in LangChain"})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"google-search-api",children:"Google Search API"}),"\n",(0,r.jsx)(t.p,{children:"This component allows you to call the Google Search API."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-9",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"google_api_key"}),(0,r.jsx)(t.td,{children:"SecretString"}),(0,r.jsx)(t.td,{children:"Google API key for authentication"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"google_cse_id"}),(0,r.jsx)(t.td,{children:"SecretString"}),(0,r.jsx)(t.td,{children:"Google Custom Search Engine ID"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_value"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Search query input"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"k"}),(0,r.jsx)(t.td,{children:"Integer"}),(0,r.jsx)(t.td,{children:"Number of search results to return"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-9",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"results"}),(0,r.jsx)(t.td,{children:"List[Data]"}),(0,r.jsx)(t.td,{children:"List of search results"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Google Search tool for use in LangChain"})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"google-serper-api",children:"Google Serper API"}),"\n",(0,r.jsx)(t.p,{children:"This component allows you to call the Serper.dev Google Search API."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-10",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"serper_api_key"}),(0,r.jsx)(t.td,{children:"SecretString"}),(0,r.jsx)(t.td,{children:"API key for Serper.dev authentication"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_value"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Search query input"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"k"}),(0,r.jsx)(t.td,{children:"Integer"}),(0,r.jsx)(t.td,{children:"Number of search results to return"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-10",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"results"}),(0,r.jsx)(t.td,{children:"List[Data]"}),(0,r.jsx)(t.td,{children:"List of search results"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Google Serper search tool for use in LangChain"})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"mcp-tools-stdio",children:"MCP Tools (stdio)"}),"\n",(0,r.jsxs)(t.p,{children:["This component connects to a ",(0,r.jsx)(t.a,{href:"https://modelcontextprotocol.io/introduction",children:"Model Context Protocol (MCP)"})," server over ",(0,r.jsx)(t.code,{children:"stdio"})," and exposes its tools as Langflow tools to be used by an Agent component."]}),"\n",(0,r.jsx)(t.h3,{id:"inputs-11",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"command"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsxs)(t.td,{children:["MCP command (default: ",(0,r.jsx)(t.code,{children:"uvx mcp-sse-shim@latest"}),")"]})]})})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-11",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tools"}),(0,r.jsx)(t.td,{children:"List[Tool]"}),(0,r.jsx)(t.td,{children:"List of tools exposed by the MCP server"})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"mcp-tools-sse",children:"MCP Tools (SSE)"}),"\n",(0,r.jsxs)(t.p,{children:["This component connects to a ",(0,r.jsx)(t.a,{href:"https://modelcontextprotocol.io/introduction",children:"Model Context Protocol (MCP)"})," server over ",(0,r.jsx)(t.a,{href:"https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events",children:"SSE (Server-Sent Events)"})," and exposes its tools as Langflow tools to be used by an Agent component."]}),"\n",(0,r.jsx)(t.h3,{id:"inputs-12",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"url"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsxs)(t.td,{children:["SSE URL (default: ",(0,r.jsx)(t.code,{children:"http://localhost:7860/api/v1/mcp/sse"}),")"]})]})})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-12",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tools"}),(0,r.jsx)(t.td,{children:"List[Tool]"}),(0,r.jsx)(t.td,{children:"List of tools exposed by the MCP server"})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"python-code-structured-tool",children:"Python Code Structured Tool"}),"\n",(0,r.jsx)(t.p,{children:"This component creates a structured tool from Python code using a dataclass."}),"\n",(0,r.jsx)(t.p,{children:"The component dynamically updates its configuration based on the provided Python code, allowing for custom function arguments and descriptions."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-13",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool_code"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Python code for the tool's dataclass"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool_name"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Name of the tool"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool_description"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Description of the tool"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"return_direct"}),(0,r.jsx)(t.td,{children:"Boolean"}),(0,r.jsx)(t.td,{children:"Whether to return the function output directly"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool_function"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Selected function for the tool"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"global_variables"}),(0,r.jsx)(t.td,{children:"Dict"}),(0,r.jsx)(t.td,{children:"Global variables or data for the tool"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-13",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"result_tool"}),(0,r.jsx)(t.td,{children:"Tool \u2502 Structured tool created from the Python code"}),(0,r.jsx)(t.td,{})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"python-repl-tool",children:"Python REPL Tool"}),"\n",(0,r.jsx)(t.p,{children:"This component creates a Python REPL (Read-Eval-Print Loop) tool for executing Python code."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-14",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"name"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:'The name of the tool (default: "python_repl")'})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"description"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"A description of the tool's functionality"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"global_imports"}),(0,r.jsx)(t.td,{children:"List[String]"}),(0,r.jsx)(t.td,{children:'List of modules to import globally (default: ["math"])'})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-14",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Python REPL tool for use in LangChain"})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"retriever-tool",children:"Retriever Tool"}),"\n",(0,r.jsx)(t.p,{children:"This component creates a tool for interacting with a retriever in LangChain."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-15",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"retriever"}),(0,r.jsx)(t.td,{children:"BaseRetriever"}),(0,r.jsx)(t.td,{children:"The retriever to interact with"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"name"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The name of the tool"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"description"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"A description of the tool's functionality"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-15",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Retriever tool for use in LangChain"})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"searxng-search-tool",children:"SearXNG Search Tool"}),"\n",(0,r.jsx)(t.p,{children:"This component creates a tool for searching using SearXNG, a metasearch engine."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-16",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"url"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The URL of the SearXNG instance"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"max_results"}),(0,r.jsx)(t.td,{children:"Integer"}),(0,r.jsx)(t.td,{children:"Maximum number of results to return"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"categories"}),(0,r.jsx)(t.td,{children:"List[String]"}),(0,r.jsx)(t.td,{children:"Categories to search in"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"language"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Language for the search results"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-16",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"result_tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"SearXNG search tool for use in LangChain"})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"search-api",children:"Search API"}),"\n",(0,r.jsxs)(t.p,{children:["This component calls the ",(0,r.jsx)(t.code,{children:"searchapi.io"})," API. It can be used to search the web for information."]}),"\n",(0,r.jsxs)(t.p,{children:["For more information, see the ",(0,r.jsx)(t.a,{href:"https://www.searchapi.io/docs/google",children:"SearchAPI documentation"}),"."]}),"\n",(0,r.jsx)(t.h3,{id:"inputs-17",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"engine"}),(0,r.jsx)(t.td,{children:"Engine"}),(0,r.jsx)(t.td,{children:'The search engine to use (default: "google")'})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"api_key"}),(0,r.jsx)(t.td,{children:"SearchAPI API Key"}),(0,r.jsx)(t.td,{children:"The API key for authenticating with SearchAPI"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_value"}),(0,r.jsx)(t.td,{children:"Input"}),(0,r.jsx)(t.td,{children:"The search query or input for the API call"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"search_params"}),(0,r.jsx)(t.td,{children:"Search parameters"}),(0,r.jsx)(t.td,{children:"Additional parameters for customizing the search"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-17",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"data"}),(0,r.jsx)(t.td,{children:"Search Results"}),(0,r.jsx)(t.td,{children:"List of Data objects containing search results"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Search API Tool"}),(0,r.jsx)(t.td,{children:"A Tool object for use in LangChain workflows"})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"serp-search-api",children:"Serp Search API"}),"\n",(0,r.jsx)(t.p,{children:"This component creates a tool for searching using the Serp API."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-18",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"serpapi_api_key"}),(0,r.jsx)(t.td,{children:"SecretString"}),(0,r.jsx)(t.td,{children:"API key for Serp API authentication"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_value"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Search query input"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"search_params"}),(0,r.jsx)(t.td,{children:"Dict"}),(0,r.jsx)(t.td,{children:"Additional search parameters (optional)"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-18",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"results"}),(0,r.jsx)(t.td,{children:"List[Data]"}),(0,r.jsx)(t.td,{children:"List of search results"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Serp API search tool for use in LangChain"})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"tavily-ai-search",children:"Tavily AI Search"}),"\n",(0,r.jsx)(t.p,{children:"This component performs searches using the Tavily AI search engine, which is optimized for LLMs and RAG applications."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-19",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"api_key"}),(0,r.jsx)(t.td,{children:"Tavily API Key"}),(0,r.jsx)(t.td,{children:"Your Tavily API Key."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"query"}),(0,r.jsx)(t.td,{children:"Search Query"}),(0,r.jsx)(t.td,{children:"The search query you want to execute with Tavily."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"search_depth"}),(0,r.jsx)(t.td,{children:"Search Depth"}),(0,r.jsx)(t.td,{children:"The depth of the search."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"topic"}),(0,r.jsx)(t.td,{children:"Search Topic"}),(0,r.jsx)(t.td,{children:"The category of the search."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"max_results"}),(0,r.jsx)(t.td,{children:"Max Results"}),(0,r.jsx)(t.td,{children:"The maximum number of search results to return."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"include_images"}),(0,r.jsx)(t.td,{children:"Include Images"}),(0,r.jsx)(t.td,{children:"Include a list of query-related images in the response."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"include_answer"}),(0,r.jsx)(t.td,{children:"Include Answer"}),(0,r.jsx)(t.td,{children:"Include a short answer to original query."})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-19",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"data"}),(0,r.jsx)(t.td,{children:"Data"}),(0,r.jsx)(t.td,{children:"The search results as a list of Data objects."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"text"}),(0,r.jsx)(t.td,{children:"Text"}),(0,r.jsx)(t.td,{children:"The search results formatted as a text string."})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"wikidata",children:"Wikidata"}),"\n",(0,r.jsx)(t.p,{children:"This component performs a search using the Wikidata API."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-20",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"query"}),(0,r.jsx)(t.td,{children:"Query"}),(0,r.jsx)(t.td,{children:"The text query for similarity search on Wikidata."})]})})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-20",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"data"}),(0,r.jsx)(t.td,{children:"Data"}),(0,r.jsx)(t.td,{children:"The search results from Wikidata API as a list of Data objects."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"text"}),(0,r.jsx)(t.td,{children:"Message"}),(0,r.jsx)(t.td,{children:"The search results formatted as a text message."})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"wikipedia-api",children:"Wikipedia API"}),"\n",(0,r.jsx)(t.p,{children:"This component creates a tool for searching and retrieving information from Wikipedia."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-21",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_value"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Search query input"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"lang"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:'Language code for Wikipedia (default: "en")'})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"k"}),(0,r.jsx)(t.td,{children:"Integer"}),(0,r.jsx)(t.td,{children:"Number of results to return"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"load_all_available_meta"}),(0,r.jsx)(t.td,{children:"Boolean"}),(0,r.jsx)(t.td,{children:"Whether to load all available metadata (advanced)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"doc_content_chars_max"}),(0,r.jsx)(t.td,{children:"Integer"}),(0,r.jsx)(t.td,{children:"Maximum number of characters for document content (advanced)"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-21",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"results"}),(0,r.jsx)(t.td,{children:"List[Data]"}),(0,r.jsx)(t.td,{children:"List of Wikipedia search results"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Wikipedia search tool for use in LangChain"})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"wolfram-alpha-api",children:"Wolfram Alpha API"}),"\n",(0,r.jsx)(t.p,{children:"This component creates a tool for querying the Wolfram Alpha API."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-22",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_value"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"Query input for Wolfram Alpha"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"app_id"}),(0,r.jsx)(t.td,{children:"SecretString"}),(0,r.jsx)(t.td,{children:"Wolfram Alpha API App ID"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-22",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"results"}),(0,r.jsx)(t.td,{children:"List[Data]"}),(0,r.jsx)(t.td,{children:"List containing the Wolfram Alpha API response"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Wolfram Alpha API tool for use in LangChain"})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"yahoo-finance-news-tool",children:"Yahoo Finance News Tool"}),"\n",(0,r.jsx)(t.p,{children:"This component creates a tool for retrieving news from Yahoo Finance."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-23",children:"Inputs"}),"\n",(0,r.jsx)(t.p,{children:"This component does not have any input parameters."}),"\n",(0,r.jsx)(t.h3,{id:"outputs-23",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Yahoo Finance News tool for use in LangChain"})]})})]})]})}function a(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(o,{...e})}):o(e)}},19680:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/starter-flow-simple-agent-71d0dec218a5da8e3110c51716f1c91e.png"},28453:(e,t,s)=>{s.d(t,{R:()=>d,x:()=>l});var n=s(96540);const r={},i=n.createContext(r);function d(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8ff68e6f.9aa620c1.js b/assets/js/8ff68e6f.9aa620c1.js deleted file mode 100644 index 3ad861b2e0..0000000000 --- a/assets/js/8ff68e6f.9aa620c1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[2624],{6961:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>h,contentTitle:()=>l,default:()=>a,frontMatter:()=>d,metadata:()=>n,toc:()=>c});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);const d={title:"Tools",slug:"/components-tools"},l="Tool components in Langflow",h={},c=[{value:"Use a tool in a flow",id:"use-a-tool-in-a-flow",level:2},{value:"Astra DB Tool",id:"astra-db-tool",level:2},{value:"Inputs",id:"inputs",level:3},{value:"Outputs",id:"outputs",level:3},{value:"Astra DB CQL Tool",id:"astra-db-cql-tool",level:2},{value:"Inputs",id:"inputs-1",level:3},{value:"Outputs",id:"outputs-1",level:3},{value:"Bing Search API",id:"bing-search-api",level:2},{value:"Inputs",id:"inputs-2",level:3},{value:"Outputs",id:"outputs-2",level:3},{value:"Calculator Tool",id:"calculator-tool",level:2},{value:"Inputs",id:"inputs-3",level:3},{value:"Outputs",id:"outputs-3",level:3},{value:"Combinatorial Reasoner",id:"combinatorial-reasoner",level:2},{value:"Inputs",id:"inputs-4",level:3},{value:"Outputs",id:"outputs-4",level:3},{value:"Glean Search API",id:"glean-search-api",level:2},{value:"Inputs",id:"inputs-5",level:3},{value:"Outputs",id:"outputs-5",level:3},{value:"Google Search API",id:"google-search-api",level:2},{value:"Inputs",id:"inputs-6",level:3},{value:"Outputs",id:"outputs-6",level:3},{value:"Google Serper API",id:"google-serper-api",level:2},{value:"Inputs",id:"inputs-7",level:3},{value:"Outputs",id:"outputs-7",level:3},{value:"MCP Tools (stdio)",id:"mcp-tools-stdio",level:2},{value:"Inputs",id:"inputs-8",level:3},{value:"Outputs",id:"outputs-8",level:3},{value:"MCP Tools (SSE)",id:"mcp-tools-sse",level:2},{value:"Inputs",id:"inputs-9",level:3},{value:"Outputs",id:"outputs-9",level:3},{value:"Python Code Structured Tool",id:"python-code-structured-tool",level:2},{value:"Inputs",id:"inputs-10",level:3},{value:"Outputs",id:"outputs-10",level:3},{value:"Python REPL Tool",id:"python-repl-tool",level:2},{value:"Inputs",id:"inputs-11",level:3},{value:"Outputs",id:"outputs-11",level:3},{value:"Retriever Tool",id:"retriever-tool",level:2},{value:"Inputs",id:"inputs-12",level:3},{value:"Outputs",id:"outputs-12",level:3},{value:"SearXNG Search Tool",id:"searxng-search-tool",level:2},{value:"Inputs",id:"inputs-13",level:3},{value:"Outputs",id:"outputs-13",level:3},{value:"Search API",id:"search-api",level:2},{value:"Inputs",id:"inputs-14",level:3},{value:"Outputs",id:"outputs-14",level:3},{value:"Serp Search API",id:"serp-search-api",level:2},{value:"Inputs",id:"inputs-15",level:3},{value:"Outputs",id:"outputs-15",level:3},{value:"Wikipedia API",id:"wikipedia-api",level:2},{value:"Inputs",id:"inputs-16",level:3},{value:"Outputs",id:"outputs-16",level:3},{value:"Wolfram Alpha API",id:"wolfram-alpha-api",level:2},{value:"Inputs",id:"inputs-17",level:3},{value:"Outputs",id:"outputs-17",level:3},{value:"Yahoo Finance News Tool",id:"yahoo-finance-news-tool",level:2},{value:"Inputs",id:"inputs-18",level:3},{value:"Outputs",id:"outputs-18",level:3}];function o(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(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:"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",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",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-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 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-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:"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-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:"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-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:"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-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.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 (e.g., ",(0,r.jsx)(t.code,{children:"4*4*(33/22)+12-20"}),")."]})]})})]}),"\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.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-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:"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-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:"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:"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-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:"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-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:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"results"}),(0,r.jsx)(t.td,{children:"List[Data]"}),(0,r.jsx)(t.td,{children:"List of search results"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Glean Search tool for use in LangChain"})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"google-search-api",children:"Google Search API"}),"\n",(0,r.jsx)(t.p,{children:"This component allows you to call the Google Search API."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-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:"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-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:"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-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:"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-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:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"results"}),(0,r.jsx)(t.td,{children:"List[Data]"}),(0,r.jsx)(t.td,{children:"List of search results"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"Google Serper search tool for use in LangChain"})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"mcp-tools-stdio",children:"MCP Tools (stdio)"}),"\n",(0,r.jsxs)(t.p,{children:["This component connects to a ",(0,r.jsx)(t.a,{href:"https://modelcontextprotocol.io/introduction",children:"Model Context Protocol (MCP)"})," server over ",(0,r.jsx)(t.code,{children:"stdio"})," and exposes its tools as Langflow tools to be used by an Agent component."]}),"\n",(0,r.jsx)(t.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.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-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.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tools"}),(0,r.jsx)(t.td,{children:"List[Tool]"}),(0,r.jsx)(t.td,{children:"List of tools exposed by the MCP server"})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"mcp-tools-sse",children:"MCP Tools (SSE)"}),"\n",(0,r.jsxs)(t.p,{children:["This component connects to a ",(0,r.jsx)(t.a,{href:"https://modelcontextprotocol.io/introduction",children:"Model Context Protocol (MCP)"})," server over ",(0,r.jsx)(t.a,{href:"https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events",children:"SSE (Server-Sent Events)"})," and exposes its tools as Langflow tools to be used by an Agent component."]}),"\n",(0,r.jsx)(t.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.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"url"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsxs)(t.td,{children:["SSE URL (default: ",(0,r.jsx)(t.code,{children:"http://localhost:7860/api/v1/mcp/sse"}),")"]})]})})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-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.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"tools"}),(0,r.jsx)(t.td,{children:"List[Tool]"}),(0,r.jsx)(t.td,{children:"List of tools exposed by the MCP server"})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"python-code-structured-tool",children:"Python Code Structured Tool"}),"\n",(0,r.jsx)(t.p,{children:"This component creates a structured tool from Python code using a dataclass."}),"\n",(0,r.jsx)(t.p,{children:"The component dynamically updates its configuration based on the provided Python code, allowing for custom function arguments and descriptions."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-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:"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-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.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"result_tool"}),(0,r.jsx)(t.td,{children:"Tool \u2502 Structured tool created from the Python code"}),(0,r.jsx)(t.td,{})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"python-repl-tool",children:"Python REPL Tool"}),"\n",(0,r.jsx)(t.p,{children:"This component creates a Python REPL (Read-Eval-Print Loop) tool for executing Python code."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-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.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-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:"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-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:"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-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:"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-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:"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-13",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"result_tool"}),(0,r.jsx)(t.td,{children:"Tool"}),(0,r.jsx)(t.td,{children:"SearXNG search tool for use in LangChain"})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"search-api",children:"Search API"}),"\n",(0,r.jsxs)(t.p,{children:["This component calls the ",(0,r.jsx)(t.code,{children:"searchapi.io"})," API. It can be used to search the web for information."]}),"\n",(0,r.jsxs)(t.p,{children:["For more information, see the ",(0,r.jsx)(t.a,{href:"https://www.searchapi.io/docs/google",children:"SearchAPI documentation"}),"."]}),"\n",(0,r.jsx)(t.h3,{id:"inputs-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:"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-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:"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-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:"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-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.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:"wikipedia-api",children:"Wikipedia API"}),"\n",(0,r.jsx)(t.p,{children:"This component creates a tool for searching and retrieving information from Wikipedia."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-16",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"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-16",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.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-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:"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-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 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-18",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-18",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.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 a(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(o,{...e})}):o(e)}},19680:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/starter-flow-simple-agent-71d0dec218a5da8e3110c51716f1c91e.png"},28453:(e,t,s)=>{s.d(t,{R:()=>d,x:()=>l});var n=s(96540);const r={},i=n.createContext(r);function d(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/921b5fc1.529c2dd9.js b/assets/js/921b5fc1.529c2dd9.js new file mode 100644 index 0000000000..a06c8fdad6 --- /dev/null +++ b/assets/js/921b5fc1.529c2dd9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[7462],{56088:(e,d,s)=>{s.r(d),s.d(d,{assets:()=>h,contentTitle:()=>l,default:()=>a,frontMatter:()=>r,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"Components/components-embedding-models","title":"Embeddings","description":"Embeddings models convert text into numerical vectors. These embeddings capture semantic meaning of the input text, and allow LLMs to understand context.","source":"@site/docs/Components/components-embedding-models.md","sourceDirName":"Components","slug":"/components-embedding-models","permalink":"/components-embedding-models","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Embeddings","slug":"/components-embedding-models"},"sidebar":"docs","previous":{"title":"Data","permalink":"/components-data"},"next":{"title":"Helpers","permalink":"/components-helpers"}}');var t=s(74848),i=s(28453);const r={title:"Embeddings",slug:"/components-embedding-models"},l="Embeddings models in Langflow",h={},c=[{value:"Use an embeddings model component in a flow",id:"use-an-embeddings-model-component-in-a-flow",level:2},{value:"AI/ML",id:"aiml",level:2},{value:"Inputs",id:"inputs",level:3},{value:"Outputs",id:"outputs",level:3},{value:"Amazon Bedrock Embeddings",id:"amazon-bedrock-embeddings",level:2},{value:"Inputs",id:"inputs-1",level:3},{value:"Outputs",id:"outputs-1",level:3},{value:"Astra DB vectorize",id:"astra-db-vectorize",level:2},{value:"Inputs",id:"inputs-2",level:3},{value:"Outputs",id:"outputs-2",level:3},{value:"Azure OpenAI Embeddings",id:"azure-openai-embeddings",level:2},{value:"Inputs",id:"inputs-3",level:3},{value:"Outputs",id:"outputs-3",level:3},{value:"Cloudflare Workers AI Embeddings",id:"cloudflare-workers-ai-embeddings",level:2},{value:"Inputs",id:"inputs-4",level:3},{value:"Outputs",id:"outputs-4",level:3},{value:"Cohere Embeddings",id:"cohere-embeddings",level:2},{value:"Inputs",id:"inputs-5",level:3},{value:"Outputs",id:"outputs-5",level:3},{value:"Embedding similarity",id:"embedding-similarity",level:2},{value:"Inputs",id:"inputs-6",level:3},{value:"Outputs",id:"outputs-6",level:3},{value:"Google generative AI embeddings",id:"google-generative-ai-embeddings",level:2},{value:"Inputs",id:"inputs-7",level:3},{value:"Outputs",id:"outputs-7",level:3},{value:"Hugging Face Embeddings",id:"hugging-face-embeddings",level:2},{value:"Inputs",id:"inputs-8",level:3},{value:"Outputs",id:"outputs-8",level:3},{value:"Hugging Face embeddings Inference API",id:"hugging-face-embeddings-inference-api",level:2},{value:"Inputs",id:"inputs-9",level:3},{value:"Outputs",id:"outputs-9",level:3},{value:"LM Studio Embeddings",id:"lm-studio-embeddings",level:2},{value:"Inputs",id:"inputs-10",level:3},{value:"Outputs",id:"outputs-10",level:3},{value:"MistralAI",id:"mistralai",level:2},{value:"Inputs",id:"inputs-11",level:3},{value:"Outputs",id:"outputs-11",level:3},{value:"NVIDIA",id:"nvidia",level:2},{value:"Inputs",id:"inputs-12",level:3},{value:"Outputs",id:"outputs-12",level:3},{value:"Ollama Embeddings",id:"ollama-embeddings",level:2},{value:"Inputs",id:"inputs-13",level:3},{value:"Outputs",id:"outputs-13",level:3},{value:"OpenAI Embeddings",id:"openai-embeddings",level:2},{value:"Inputs",id:"inputs-14",level:3},{value:"Outputs",id:"outputs-14",level:3},{value:"Text embedder",id:"text-embedder",level:2},{value:"Inputs",id:"inputs-15",level:3},{value:"Outputs",id:"outputs-15",level:3},{value:"VertexAI Embeddings",id:"vertexai-embeddings",level:2},{value:"Inputs",id:"inputs-16",level:3},{value:"Outputs",id:"outputs-16",level:3}];function o(e){const d={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(d.header,{children:(0,t.jsx)(d.h1,{id:"embeddings-models-in-langflow",children:"Embeddings models in Langflow"})}),"\n",(0,t.jsx)(d.p,{children:"Embeddings models convert text into numerical vectors. These embeddings capture semantic meaning of the input text, and allow LLMs to understand context."}),"\n",(0,t.jsx)(d.p,{children:"Refer to your specific component's documentation for more information on parameters."}),"\n",(0,t.jsx)(d.h2,{id:"use-an-embeddings-model-component-in-a-flow",children:"Use an embeddings model component in a flow"}),"\n",(0,t.jsxs)(d.p,{children:["In this example of a document ingestion pipeline, the ",(0,t.jsx)(d.strong,{children:"OpenAI"})," embeddings model is connected to a vector database. The component converts the text chunks into vectors and stores them in the vector database. The vectorized data can be used to inform AI workloads like chatbots, similarity searches, and agents."]}),"\n",(0,t.jsx)(d.p,{children:"This embeddings component uses an OpenAI API key for authentication. Refer to your specific embeddings component's documentation for more information on authentication."}),"\n",(0,t.jsx)(d.p,{children:(0,t.jsx)(d.img,{alt:"URL component in a data ingestion pipeline",src:s(80352).A+"",width:"2586",height:"1550"})}),"\n",(0,t.jsx)(d.h2,{id:"aiml",children:"AI/ML"}),"\n",(0,t.jsxs)(d.p,{children:["This component generates embeddings using the ",(0,t.jsx)(d.a,{href:"https://docs.aimlapi.com/api-overview/embeddings",children:"AI/ML API"}),"."]}),"\n",(0,t.jsx)(d.h3,{id:"inputs",children:"Inputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"model_name"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsx)(d.td,{children:"The name of the AI/ML embedding model to use"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"aiml_api_key"}),(0,t.jsx)(d.td,{children:"SecretString"}),(0,t.jsx)(d.td,{children:"API key for authenticating with the AI/ML service"})]})]})]}),"\n",(0,t.jsx)(d.h3,{id:"outputs",children:"Outputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsx)(d.tbody,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"embeddings"}),(0,t.jsx)(d.td,{children:"Embeddings"}),(0,t.jsx)(d.td,{children:"An instance of AIMLEmbeddingsImpl for generating embeddings"})]})})]}),"\n",(0,t.jsx)(d.h2,{id:"amazon-bedrock-embeddings",children:"Amazon Bedrock Embeddings"}),"\n",(0,t.jsxs)(d.p,{children:["This component is used to load embedding models from ",(0,t.jsx)(d.a,{href:"https://aws.amazon.com/bedrock/",children:"Amazon Bedrock"}),"."]}),"\n",(0,t.jsx)(d.h3,{id:"inputs-1",children:"Inputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"credentials_profile_name"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsx)(d.td,{children:"Name of the AWS credentials profile in ~/.aws/credentials or ~/.aws/config, which has access keys or role information"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"model_id"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsxs)(d.td,{children:["ID of the model to call, e.g., ",(0,t.jsx)(d.code,{children:"amazon.titan-embed-text-v1"}),". This is equivalent to the ",(0,t.jsx)(d.code,{children:"modelId"})," property in the ",(0,t.jsx)(d.code,{children:"list-foundation-models"})," API"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"endpoint_url"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsx)(d.td,{children:"URL to set a specific service endpoint other than the default AWS endpoint"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"region_name"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsxs)(d.td,{children:["AWS region to use, e.g., ",(0,t.jsx)(d.code,{children:"us-west-2"}),". Falls back to ",(0,t.jsx)(d.code,{children:"AWS_DEFAULT_REGION"})," environment variable or region specified in ~/.aws/config if not provided"]})]})]})]}),"\n",(0,t.jsx)(d.h3,{id:"outputs-1",children:"Outputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsx)(d.tbody,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"embeddings"}),(0,t.jsx)(d.td,{children:"Embeddings"}),(0,t.jsx)(d.td,{children:"An instance for generating embeddings using Amazon Bedrock"})]})})]}),"\n",(0,t.jsx)(d.h2,{id:"astra-db-vectorize",children:"Astra DB vectorize"}),"\n",(0,t.jsx)(d.admonition,{type:"important",children:(0,t.jsxs)(d.p,{children:["This component is deprecated as of Langflow version 1.1.2.\nInstead, use the ",(0,t.jsx)(d.a,{href:"/components-vector-stores#astra-db-vector-store",children:"Astra DB vector store component"})]})}),"\n",(0,t.jsxs)(d.p,{children:["Connect this component to the ",(0,t.jsx)(d.strong,{children:"Embeddings"})," port of the ",(0,t.jsx)(d.a,{href:"/components-vector-stores#astra-db-vector-store",children:"Astra DB vector store component"})," to generate embeddings."]}),"\n",(0,t.jsxs)(d.p,{children:["This component requires that your Astra DB database has a collection that uses a vectorize embedding provider integration.\nFor more information and instructions, see ",(0,t.jsx)(d.a,{href:"https://docs.datastax.com/en/astra-db-serverless/databases/embedding-generation.html",children:"Embedding Generation"}),"."]}),"\n",(0,t.jsx)(d.h3,{id:"inputs-2",children:"Inputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Display Name"}),(0,t.jsx)(d.th,{children:"Info"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"provider"}),(0,t.jsx)(d.td,{children:"Embedding Provider"}),(0,t.jsx)(d.td,{children:"The embedding provider to use"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"model_name"}),(0,t.jsx)(d.td,{children:"Model Name"}),(0,t.jsx)(d.td,{children:"The embedding model to use"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"authentication"}),(0,t.jsx)(d.td,{children:"Authentication"}),(0,t.jsxs)(d.td,{children:["The name of the API key in Astra that stores your ",(0,t.jsx)(d.a,{href:"https://docs.datastax.com/en/astra-db-serverless/databases/embedding-generation.html#embedding-provider-authentication",children:"vectorize embedding provider credentials"}),". (Not required if using an ",(0,t.jsx)(d.a,{href:"https://docs.datastax.com/en/astra-db-serverless/databases/embedding-generation.html#supported-embedding-providers",children:"Astra-hosted embedding provider"}),".)"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"provider_api_key"}),(0,t.jsx)(d.td,{children:"Provider API Key"}),(0,t.jsxs)(d.td,{children:["As an alternative to ",(0,t.jsx)(d.code,{children:"authentication"}),", directly provide your embedding provider credentials."]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"model_parameters"}),(0,t.jsx)(d.td,{children:"Model Parameters"}),(0,t.jsx)(d.td,{children:"Additional model parameters"})]})]})]}),"\n",(0,t.jsx)(d.h3,{id:"outputs-2",children:"Outputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsx)(d.tbody,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"embeddings"}),(0,t.jsx)(d.td,{children:"Embeddings"}),(0,t.jsx)(d.td,{children:"An instance for generating embeddings using Astra vectorize"})]})})]}),"\n",(0,t.jsx)(d.h2,{id:"azure-openai-embeddings",children:"Azure OpenAI Embeddings"}),"\n",(0,t.jsx)(d.p,{children:"This component generates embeddings using Azure OpenAI models."}),"\n",(0,t.jsx)(d.h3,{id:"inputs-3",children:"Inputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Model"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsxs)(d.td,{children:["Name of the model to use (default: ",(0,t.jsx)(d.code,{children:"text-embedding-3-small"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Azure Endpoint"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsxs)(d.td,{children:["Your Azure endpoint, including the resource. Example: ",(0,t.jsx)(d.code,{children:"https://example-resource.azure.openai.com/"})]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Deployment Name"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsx)(d.td,{children:"The name of the deployment"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"API Version"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsx)(d.td,{children:"The API version to use, options include various dates"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"API Key"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsx)(d.td,{children:"The API key to access the Azure OpenAI service"})]})]})]}),"\n",(0,t.jsx)(d.h3,{id:"outputs-3",children:"Outputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsx)(d.tbody,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"embeddings"}),(0,t.jsx)(d.td,{children:"Embeddings"}),(0,t.jsx)(d.td,{children:"An instance for generating embeddings using Azure OpenAI"})]})})]}),"\n",(0,t.jsx)(d.h2,{id:"cloudflare-workers-ai-embeddings",children:"Cloudflare Workers AI Embeddings"}),"\n",(0,t.jsxs)(d.p,{children:["This component generates embeddings using ",(0,t.jsx)(d.a,{href:"https://developers.cloudflare.com/workers-ai/",children:"Cloudflare Workers AI models"}),"."]}),"\n",(0,t.jsx)(d.h3,{id:"inputs-4",children:"Inputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Display Name"}),(0,t.jsx)(d.th,{children:"Info"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"account_id"}),(0,t.jsx)(d.td,{children:"Cloudflare account ID"}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.a,{href:"https://developers.cloudflare.com/fundamentals/setup/find-account-and-zone-ids/#find-account-id-workers-and-pages",children:"Find your Cloudflare account ID"})})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"api_token"}),(0,t.jsx)(d.td,{children:"Cloudflare API token"}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.a,{href:"https://developers.cloudflare.com/fundamentals/api/get-started/create-token/",children:"Create an API token"})})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"model_name"}),(0,t.jsx)(d.td,{children:"Model Name"}),(0,t.jsx)(d.td,{children:(0,t.jsx)(d.a,{href:"https://developers.cloudflare.com/workers-ai/models/#text-embeddings",children:"List of supported models"})})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"strip_new_lines"}),(0,t.jsx)(d.td,{children:"Strip New Lines"}),(0,t.jsx)(d.td,{children:"Whether to strip new lines from the input text"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"batch_size"}),(0,t.jsx)(d.td,{children:"Batch Size"}),(0,t.jsx)(d.td,{children:"Number of texts to embed in each batch"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"api_base_url"}),(0,t.jsx)(d.td,{children:"Cloudflare API base URL"}),(0,t.jsx)(d.td,{children:"Base URL for the Cloudflare API"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"headers"}),(0,t.jsx)(d.td,{children:"Headers"}),(0,t.jsx)(d.td,{children:"Additional request headers"})]})]})]}),"\n",(0,t.jsx)(d.h3,{id:"outputs-4",children:"Outputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Display Name"}),(0,t.jsx)(d.th,{children:"Info"})]})}),(0,t.jsx)(d.tbody,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"embeddings"}),(0,t.jsx)(d.td,{children:"Embeddings"}),(0,t.jsx)(d.td,{children:"An instance for generating embeddings using Cloudflare Workers"})]})})]}),"\n",(0,t.jsx)(d.h2,{id:"cohere-embeddings",children:"Cohere Embeddings"}),"\n",(0,t.jsxs)(d.p,{children:["This component is used to load embedding models from ",(0,t.jsx)(d.a,{href:"https://cohere.com/",children:"Cohere"}),"."]}),"\n",(0,t.jsx)(d.h3,{id:"inputs-5",children:"Inputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"cohere_api_key"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsx)(d.td,{children:"API key required to authenticate with the Cohere service"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"model"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsxs)(d.td,{children:["Language model used for embedding text documents and performing queries (default: ",(0,t.jsx)(d.code,{children:"embed-english-v2.0"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"truncate"}),(0,t.jsx)(d.td,{children:"Boolean"}),(0,t.jsxs)(d.td,{children:["Whether to truncate the input text to fit within the model's constraints (default: ",(0,t.jsx)(d.code,{children:"False"}),")"]})]})]})]}),"\n",(0,t.jsx)(d.h3,{id:"outputs-5",children:"Outputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsx)(d.tbody,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"embeddings"}),(0,t.jsx)(d.td,{children:"Embeddings"}),(0,t.jsx)(d.td,{children:"An instance for generating embeddings using Cohere"})]})})]}),"\n",(0,t.jsx)(d.h2,{id:"embedding-similarity",children:"Embedding similarity"}),"\n",(0,t.jsx)(d.p,{children:"This component computes selected forms of similarity between two embedding vectors."}),"\n",(0,t.jsx)(d.h3,{id:"inputs-6",children:"Inputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Display Name"}),(0,t.jsx)(d.th,{children:"Info"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"embedding_vectors"}),(0,t.jsx)(d.td,{children:"Embedding Vectors"}),(0,t.jsx)(d.td,{children:"A list containing exactly two data objects with embedding vectors to compare."})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"similarity_metric"}),(0,t.jsx)(d.td,{children:"Similarity Metric"}),(0,t.jsx)(d.td,{children:'Select the similarity metric to use. Options: "Cosine Similarity", "Euclidean Distance", "Manhattan Distance".'})]})]})]}),"\n",(0,t.jsx)(d.h3,{id:"outputs-6",children:"Outputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Display Name"}),(0,t.jsx)(d.th,{children:"Info"})]})}),(0,t.jsx)(d.tbody,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"similarity_data"}),(0,t.jsx)(d.td,{children:"Similarity Data"}),(0,t.jsx)(d.td,{children:"Data object containing the computed similarity score and additional information."})]})})]}),"\n",(0,t.jsx)(d.h2,{id:"google-generative-ai-embeddings",children:"Google generative AI embeddings"}),"\n",(0,t.jsxs)(d.p,{children:["This component connects to Google's generative AI embedding service using the GoogleGenerativeAIEmbeddings class from the ",(0,t.jsx)(d.code,{children:"langchain-google-genai"})," package."]}),"\n",(0,t.jsx)(d.h3,{id:"inputs-7",children:"Inputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Display Name"}),(0,t.jsx)(d.th,{children:"Info"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"api_key"}),(0,t.jsx)(d.td,{children:"API Key"}),(0,t.jsx)(d.td,{children:"Secret API key for accessing Google's generative AI service (required)"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"model_name"}),(0,t.jsx)(d.td,{children:"Model Name"}),(0,t.jsx)(d.td,{children:'Name of the embedding model to use (default: "models/text-embedding-004")'})]})]})]}),"\n",(0,t.jsx)(d.h3,{id:"outputs-7",children:"Outputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Display Name"}),(0,t.jsx)(d.th,{children:"Info"})]})}),(0,t.jsx)(d.tbody,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"embeddings"}),(0,t.jsx)(d.td,{children:"Embeddings"}),(0,t.jsx)(d.td,{children:"Built GoogleGenerativeAIEmbeddings object"})]})})]}),"\n",(0,t.jsx)(d.h2,{id:"hugging-face-embeddings",children:"Hugging Face Embeddings"}),"\n",(0,t.jsx)(d.admonition,{type:"note",children:(0,t.jsxs)(d.p,{children:["This component is deprecated as of Langflow version 1.0.18.\nInstead, use the ",(0,t.jsx)(d.a,{href:"#hugging-face-embeddings-inference-api",children:"Hugging Face API Embeddings component"}),"."]})}),"\n",(0,t.jsx)(d.p,{children:"This component loads embedding models from HuggingFace."}),"\n",(0,t.jsx)(d.p,{children:"Use this component to generate embeddings using locally downloaded Hugging Face models. Ensure you have sufficient computational resources to run the models."}),"\n",(0,t.jsx)(d.h3,{id:"inputs-8",children:"Inputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Display Name"}),(0,t.jsx)(d.th,{children:"Info"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Cache Folder"}),(0,t.jsx)(d.td,{children:"Cache Folder"}),(0,t.jsx)(d.td,{children:"Folder path to cache HuggingFace models"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Encode Kwargs"}),(0,t.jsx)(d.td,{children:"Encoding Arguments"}),(0,t.jsx)(d.td,{children:"Additional arguments for the encoding process"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Model Kwargs"}),(0,t.jsx)(d.td,{children:"Model Arguments"}),(0,t.jsx)(d.td,{children:"Additional arguments for the model"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Model Name"}),(0,t.jsx)(d.td,{children:"Model Name"}),(0,t.jsx)(d.td,{children:"Name of the HuggingFace model to use"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Multi Process"}),(0,t.jsx)(d.td,{children:"Multi-Process"}),(0,t.jsx)(d.td,{children:"Whether to use multiple processes"})]})]})]}),"\n",(0,t.jsx)(d.h3,{id:"outputs-8",children:"Outputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Display Name"}),(0,t.jsx)(d.th,{children:"Info"})]})}),(0,t.jsx)(d.tbody,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"embeddings"}),(0,t.jsx)(d.td,{children:"Embeddings"}),(0,t.jsx)(d.td,{children:"The generated embeddings"})]})})]}),"\n",(0,t.jsx)(d.h2,{id:"hugging-face-embeddings-inference-api",children:"Hugging Face embeddings Inference API"}),"\n",(0,t.jsxs)(d.p,{children:["This component generates embeddings using ",(0,t.jsx)(d.a,{href:"https://huggingface.co/",children:"Hugging Face Inference API models"}),"."]}),"\n",(0,t.jsx)(d.p,{children:"Use this component to create embeddings with Hugging Face's hosted models."}),"\n",(0,t.jsx)(d.h3,{id:"inputs-9",children:"Inputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Display Name"}),(0,t.jsx)(d.th,{children:"Info"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"API Key"}),(0,t.jsx)(d.td,{children:"API Key"}),(0,t.jsx)(d.td,{children:"API key for accessing the Hugging Face Inference API"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"API URL"}),(0,t.jsx)(d.td,{children:"API URL"}),(0,t.jsx)(d.td,{children:"URL of the Hugging Face Inference API"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Model Name"}),(0,t.jsx)(d.td,{children:"Model Name"}),(0,t.jsx)(d.td,{children:"Name of the model to use for embeddings"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Cache Folder"}),(0,t.jsx)(d.td,{children:"Cache Folder"}),(0,t.jsx)(d.td,{children:"Folder path to cache Hugging Face models"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Encode Kwargs"}),(0,t.jsx)(d.td,{children:"Encoding Arguments"}),(0,t.jsx)(d.td,{children:"Additional arguments for the encoding process"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Model Kwargs"}),(0,t.jsx)(d.td,{children:"Model Arguments"}),(0,t.jsx)(d.td,{children:"Additional arguments for the model"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Multi Process"}),(0,t.jsx)(d.td,{children:"Multi-Process"}),(0,t.jsx)(d.td,{children:"Whether to use multiple processes"})]})]})]}),"\n",(0,t.jsx)(d.h3,{id:"outputs-9",children:"Outputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Display Name"}),(0,t.jsx)(d.th,{children:"Info"})]})}),(0,t.jsx)(d.tbody,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"embeddings"}),(0,t.jsx)(d.td,{children:"Embeddings"}),(0,t.jsx)(d.td,{children:"The generated embeddings"})]})})]}),"\n",(0,t.jsx)(d.h2,{id:"lm-studio-embeddings",children:"LM Studio Embeddings"}),"\n",(0,t.jsxs)(d.p,{children:["This component generates embeddings using ",(0,t.jsx)(d.a,{href:"https://lmstudio.ai/docs",children:"LM Studio"})," models."]}),"\n",(0,t.jsx)(d.h3,{id:"inputs-10",children:"Inputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Display Name"}),(0,t.jsx)(d.th,{children:"Info"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"model"}),(0,t.jsx)(d.td,{children:"Model"}),(0,t.jsx)(d.td,{children:"The LM Studio model to use for generating embeddings"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"base_url"}),(0,t.jsx)(d.td,{children:"LM Studio Base URL"}),(0,t.jsx)(d.td,{children:"The base URL for the LM Studio API"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"api_key"}),(0,t.jsx)(d.td,{children:"LM Studio API Key"}),(0,t.jsx)(d.td,{children:"API key for authentication with LM Studio"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"temperature"}),(0,t.jsx)(d.td,{children:"Model Temperature"}),(0,t.jsx)(d.td,{children:"Temperature setting for the model"})]})]})]}),"\n",(0,t.jsx)(d.h3,{id:"outputs-10",children:"Outputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Display Name"}),(0,t.jsx)(d.th,{children:"Info"})]})}),(0,t.jsx)(d.tbody,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"embeddings"}),(0,t.jsx)(d.td,{children:"Embeddings"}),(0,t.jsx)(d.td,{children:"The generated embeddings"})]})})]}),"\n",(0,t.jsx)(d.h2,{id:"mistralai",children:"MistralAI"}),"\n",(0,t.jsxs)(d.p,{children:["This component generates embeddings using ",(0,t.jsx)(d.a,{href:"https://docs.mistral.ai/",children:"MistralAI"})," models."]}),"\n",(0,t.jsx)(d.h3,{id:"inputs-11",children:"Inputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"model"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsx)(d.td,{children:'The MistralAI model to use (default: "mistral-embed")'})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"mistral_api_key"}),(0,t.jsx)(d.td,{children:"SecretString"}),(0,t.jsx)(d.td,{children:"API key for authenticating with MistralAI"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"max_concurrent_requests"}),(0,t.jsx)(d.td,{children:"Integer"}),(0,t.jsx)(d.td,{children:"Maximum number of concurrent API requests (default: 64)"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"max_retries"}),(0,t.jsx)(d.td,{children:"Integer"}),(0,t.jsx)(d.td,{children:"Maximum number of retry attempts for failed requests (default: 5)"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"timeout"}),(0,t.jsx)(d.td,{children:"Integer"}),(0,t.jsx)(d.td,{children:"Request timeout in seconds (default: 120)"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"endpoint"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsxs)(d.td,{children:["Custom API endpoint URL (default: ",(0,t.jsx)(d.code,{children:"https://api.mistral.ai/v1/"}),")"]})]})]})]}),"\n",(0,t.jsx)(d.h3,{id:"outputs-11",children:"Outputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsx)(d.tbody,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"embeddings"}),(0,t.jsx)(d.td,{children:"Embeddings"}),(0,t.jsx)(d.td,{children:"MistralAIEmbeddings instance for generating embeddings"})]})})]}),"\n",(0,t.jsx)(d.h2,{id:"nvidia",children:"NVIDIA"}),"\n",(0,t.jsxs)(d.p,{children:["This component generates embeddings using ",(0,t.jsx)(d.a,{href:"https://docs.nvidia.com",children:"NVIDIA models"}),"."]}),"\n",(0,t.jsx)(d.h3,{id:"inputs-12",children:"Inputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"model"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsxs)(d.td,{children:["The NVIDIA model to use for embeddings (e.g., ",(0,t.jsx)(d.code,{children:"nvidia/nv-embed-v1"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"base_url"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsxs)(d.td,{children:["Base URL for the NVIDIA API (default: ",(0,t.jsx)(d.code,{children:"https://integrate.api.nvidia.com/v1"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"nvidia_api_key"}),(0,t.jsx)(d.td,{children:"SecretString"}),(0,t.jsx)(d.td,{children:"API key for authenticating with NVIDIA's service"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"temperature"}),(0,t.jsx)(d.td,{children:"Float"}),(0,t.jsxs)(d.td,{children:["Model temperature for embedding generation (default: ",(0,t.jsx)(d.code,{children:"0.1"}),")"]})]})]})]}),"\n",(0,t.jsx)(d.h3,{id:"outputs-12",children:"Outputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsx)(d.tbody,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"embeddings"}),(0,t.jsx)(d.td,{children:"Embeddings"}),(0,t.jsx)(d.td,{children:"NVIDIAEmbeddings instance for generating embeddings"})]})})]}),"\n",(0,t.jsx)(d.h2,{id:"ollama-embeddings",children:"Ollama Embeddings"}),"\n",(0,t.jsxs)(d.p,{children:["This component generates embeddings using ",(0,t.jsx)(d.a,{href:"https://ollama.com/",children:"Ollama models"}),"."]}),"\n",(0,t.jsx)(d.h3,{id:"inputs-13",children:"Inputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Ollama Model"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsxs)(d.td,{children:["Name of the Ollama model to use (default: ",(0,t.jsx)(d.code,{children:"llama2"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Ollama Base URL"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsxs)(d.td,{children:["Base URL of the Ollama API (default: ",(0,t.jsx)(d.code,{children:"http://localhost:11434"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Model Temperature"}),(0,t.jsx)(d.td,{children:"Float"}),(0,t.jsx)(d.td,{children:"Temperature parameter for the model. Adjusts the randomness in the generated embeddings"})]})]})]}),"\n",(0,t.jsx)(d.h3,{id:"outputs-13",children:"Outputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsx)(d.tbody,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"embeddings"}),(0,t.jsx)(d.td,{children:"Embeddings"}),(0,t.jsx)(d.td,{children:"An instance for generating embeddings using Ollama"})]})})]}),"\n",(0,t.jsx)(d.h2,{id:"openai-embeddings",children:"OpenAI Embeddings"}),"\n",(0,t.jsxs)(d.p,{children:["This component is used to load embedding models from ",(0,t.jsx)(d.a,{href:"https://openai.com/",children:"OpenAI"}),"."]}),"\n",(0,t.jsx)(d.h3,{id:"inputs-14",children:"Inputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"OpenAI API Key"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsx)(d.td,{children:"The API key to use for accessing the OpenAI API"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Default Headers"}),(0,t.jsx)(d.td,{children:"Dict"}),(0,t.jsx)(d.td,{children:"Default headers for the HTTP requests"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Default Query"}),(0,t.jsx)(d.td,{children:"NestedDict"}),(0,t.jsx)(d.td,{children:"Default query parameters for the HTTP requests"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Allowed Special"}),(0,t.jsx)(d.td,{children:"List"}),(0,t.jsxs)(d.td,{children:["Special tokens allowed for processing (default: ",(0,t.jsx)(d.code,{children:"[]"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Disallowed Special"}),(0,t.jsx)(d.td,{children:"List"}),(0,t.jsxs)(d.td,{children:["Special tokens disallowed for processing (default: ",(0,t.jsx)(d.code,{children:'["all"]'}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Chunk Size"}),(0,t.jsx)(d.td,{children:"Integer"}),(0,t.jsxs)(d.td,{children:["Chunk size for processing (default: ",(0,t.jsx)(d.code,{children:"1000"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Client"}),(0,t.jsx)(d.td,{children:"Any"}),(0,t.jsx)(d.td,{children:"HTTP client for making requests"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Deployment"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsxs)(d.td,{children:["Deployment name for the model (default: ",(0,t.jsx)(d.code,{children:"text-embedding-3-small"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Embedding Context Length"}),(0,t.jsx)(d.td,{children:"Integer"}),(0,t.jsxs)(d.td,{children:["Length of embedding context (default: ",(0,t.jsx)(d.code,{children:"8191"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Max Retries"}),(0,t.jsx)(d.td,{children:"Integer"}),(0,t.jsxs)(d.td,{children:["Maximum number of retries for failed requests (default: ",(0,t.jsx)(d.code,{children:"6"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Model"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsxs)(d.td,{children:["Name of the model to use (default: ",(0,t.jsx)(d.code,{children:"text-embedding-3-small"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Model Kwargs"}),(0,t.jsx)(d.td,{children:"NestedDict"}),(0,t.jsx)(d.td,{children:"Additional keyword arguments for the model"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"OpenAI API Base"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsx)(d.td,{children:"Base URL of the OpenAI API"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"OpenAI API Type"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsx)(d.td,{children:"Type of the OpenAI API"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"OpenAI API Version"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsx)(d.td,{children:"Version of the OpenAI API"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"OpenAI Organization"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsx)(d.td,{children:"Organization associated with the API key"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"OpenAI Proxy"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsx)(d.td,{children:"Proxy server for the requests"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Request Timeout"}),(0,t.jsx)(d.td,{children:"Float"}),(0,t.jsx)(d.td,{children:"Timeout for the HTTP requests"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Show Progress Bar"}),(0,t.jsx)(d.td,{children:"Boolean"}),(0,t.jsxs)(d.td,{children:["Whether to show a progress bar for processing (default: ",(0,t.jsx)(d.code,{children:"False"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Skip Empty"}),(0,t.jsx)(d.td,{children:"Boolean"}),(0,t.jsxs)(d.td,{children:["Whether to skip empty inputs (default: ",(0,t.jsx)(d.code,{children:"False"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"TikToken Enable"}),(0,t.jsx)(d.td,{children:"Boolean"}),(0,t.jsxs)(d.td,{children:["Whether to enable TikToken (default: ",(0,t.jsx)(d.code,{children:"True"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"TikToken Model Name"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsx)(d.td,{children:"Name of the TikToken model"})]})]})]}),"\n",(0,t.jsx)(d.h3,{id:"outputs-14",children:"Outputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsx)(d.tbody,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"embeddings"}),(0,t.jsx)(d.td,{children:"Embeddings"}),(0,t.jsx)(d.td,{children:"An instance for generating embeddings using OpenAI"})]})})]}),"\n",(0,t.jsx)(d.h2,{id:"text-embedder",children:"Text embedder"}),"\n",(0,t.jsx)(d.p,{children:"This component generates embeddings for a given message using a specified embedding model."}),"\n",(0,t.jsx)(d.h3,{id:"inputs-15",children:"Inputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Display Name"}),(0,t.jsx)(d.th,{children:"Info"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"embedding_model"}),(0,t.jsx)(d.td,{children:"Embedding Model"}),(0,t.jsx)(d.td,{children:"The embedding model to use for generating embeddings."})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"message"}),(0,t.jsx)(d.td,{children:"Message"}),(0,t.jsx)(d.td,{children:"The message for which to generate embeddings."})]})]})]}),"\n",(0,t.jsx)(d.h3,{id:"outputs-15",children:"Outputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Display Name"}),(0,t.jsx)(d.th,{children:"Info"})]})}),(0,t.jsx)(d.tbody,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"embeddings"}),(0,t.jsx)(d.td,{children:"Embedding Data"}),(0,t.jsx)(d.td,{children:"Data object containing the original text and its embedding vector."})]})})]}),"\n",(0,t.jsx)(d.h2,{id:"vertexai-embeddings",children:"VertexAI Embeddings"}),"\n",(0,t.jsxs)(d.p,{children:["This component is a wrapper around ",(0,t.jsx)(d.a,{href:"https://cloud.google.com/vertex-ai",children:"Google Vertex AI"})," ",(0,t.jsx)(d.a,{href:"https://cloud.google.com/vertex-ai/docs/generative-ai/embeddings/get-text-embeddings",children:"Embeddings API"}),"."]}),"\n",(0,t.jsx)(d.h3,{id:"inputs-16",children:"Inputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"credentials"}),(0,t.jsx)(d.td,{children:"Credentials"}),(0,t.jsx)(d.td,{children:"The default custom credentials to use"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"location"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsxs)(d.td,{children:["The default location to use when making API calls (default: ",(0,t.jsx)(d.code,{children:"us-central1"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"max_output_tokens"}),(0,t.jsx)(d.td,{children:"Integer"}),(0,t.jsxs)(d.td,{children:["Token limit determines the maximum amount of text output from one prompt (default: ",(0,t.jsx)(d.code,{children:"128"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"model_name"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsxs)(d.td,{children:["The name of the Vertex AI large language model (default: ",(0,t.jsx)(d.code,{children:"text-bison"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"project"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsx)(d.td,{children:"The default GCP project to use when making Vertex API calls"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"request_parallelism"}),(0,t.jsx)(d.td,{children:"Integer"}),(0,t.jsxs)(d.td,{children:["The amount of parallelism allowed for requests issued to VertexAI models (default: ",(0,t.jsx)(d.code,{children:"5"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"temperature"}),(0,t.jsx)(d.td,{children:"Float"}),(0,t.jsxs)(d.td,{children:["Tunes the degree of randomness in text generations. Should be a non-negative value (default: ",(0,t.jsx)(d.code,{children:"0"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"top_k"}),(0,t.jsx)(d.td,{children:"Integer"}),(0,t.jsxs)(d.td,{children:["How the model selects tokens for output, the next token is selected from the top ",(0,t.jsx)(d.code,{children:"k"})," tokens (default: ",(0,t.jsx)(d.code,{children:"40"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"top_p"}),(0,t.jsx)(d.td,{children:"Float"}),(0,t.jsxs)(d.td,{children:["Tokens are selected from the most probable to least until the sum of their probabilities exceeds the top ",(0,t.jsx)(d.code,{children:"p"})," value (default: ",(0,t.jsx)(d.code,{children:"0.95"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"tuned_model_name"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsxs)(d.td,{children:["The name of a tuned model. If provided, ",(0,t.jsx)(d.code,{children:"model_name"})," is ignored"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"verbose"}),(0,t.jsx)(d.td,{children:"Boolean"}),(0,t.jsxs)(d.td,{children:["This parameter controls the level of detail in the output. When set to ",(0,t.jsx)(d.code,{children:"True"}),", it prints internal states of the chain to help debug (default: ",(0,t.jsx)(d.code,{children:"False"}),")"]})]})]})]}),"\n",(0,t.jsx)(d.h3,{id:"outputs-16",children:"Outputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsx)(d.tbody,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"embeddings"}),(0,t.jsx)(d.td,{children:"Embeddings"}),(0,t.jsx)(d.td,{children:"An instance for generating embeddings using VertexAI"})]})})]})]})}function a(e={}){const{wrapper:d}={...(0,i.R)(),...e.components};return d?(0,t.jsx)(d,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}},80352:(e,d,s)=>{s.d(d,{A:()=>n});const n=s.p+"assets/images/url-component-0ced1fa00ee3b97582421254b6d5be78.png"},28453:(e,d,s)=>{s.d(d,{R:()=>r,x:()=>l});var n=s(96540);const t={},i=n.createContext(t);function r(e){const d=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(d):{...d,...e}}),[d,e])}function l(e){let d;return d=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),n.createElement(i.Provider,{value:d},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/921b5fc1.6cfb95e3.js b/assets/js/921b5fc1.6cfb95e3.js deleted file mode 100644 index 3e132821cd..0000000000 --- a/assets/js/921b5fc1.6cfb95e3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[7462],{56088:(e,d,n)=>{n.r(d),n.d(d,{assets:()=>h,contentTitle:()=>l,default:()=>a,frontMatter:()=>r,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"Components/components-embedding-models","title":"Embeddings","description":"Embeddings models convert text into numerical vectors. These embeddings capture semantic meaning of the input text, and allow LLMs to understand context.","source":"@site/docs/Components/components-embedding-models.md","sourceDirName":"Components","slug":"/components-embedding-models","permalink":"/components-embedding-models","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Embeddings","slug":"/components-embedding-models"},"sidebar":"docs","previous":{"title":"Data","permalink":"/components-data"},"next":{"title":"Helpers","permalink":"/components-helpers"}}');var t=n(74848),i=n(28453);const r={title:"Embeddings",slug:"/components-embedding-models"},l="Embeddings models in Langflow",h={},c=[{value:"Use an embeddings model component in a flow",id:"use-an-embeddings-model-component-in-a-flow",level:2},{value:"AI/ML",id:"aiml",level:2},{value:"Inputs",id:"inputs",level:3},{value:"Outputs",id:"outputs",level:3},{value:"Amazon Bedrock Embeddings",id:"amazon-bedrock-embeddings",level:2},{value:"Inputs",id:"inputs-1",level:3},{value:"Outputs",id:"outputs-1",level:3},{value:"Astra DB vectorize",id:"astra-db-vectorize",level:2},{value:"Inputs",id:"inputs-2",level:3},{value:"Outputs",id:"outputs-2",level:3},{value:"Azure OpenAI Embeddings",id:"azure-openai-embeddings",level:2},{value:"Inputs",id:"inputs-3",level:3},{value:"Outputs",id:"outputs-3",level:3},{value:"Cohere Embeddings",id:"cohere-embeddings",level:2},{value:"Inputs",id:"inputs-4",level:3},{value:"Outputs",id:"outputs-4",level:3},{value:"Embedding similarity",id:"embedding-similarity",level:2},{value:"Inputs",id:"inputs-5",level:3},{value:"Outputs",id:"outputs-5",level:3},{value:"Google generative AI embeddings",id:"google-generative-ai-embeddings",level:2},{value:"Inputs",id:"inputs-6",level:3},{value:"Outputs",id:"outputs-6",level:3},{value:"Hugging Face Embeddings",id:"hugging-face-embeddings",level:2},{value:"Inputs",id:"inputs-7",level:3},{value:"Hugging Face embeddings Inference API",id:"hugging-face-embeddings-inference-api",level:2},{value:"Inputs",id:"inputs-8",level:3},{value:"MistralAI",id:"mistralai",level:2},{value:"Inputs",id:"inputs-9",level:3},{value:"Outputs",id:"outputs-7",level:3},{value:"NVIDIA",id:"nvidia",level:2},{value:"Inputs",id:"inputs-10",level:3},{value:"Outputs",id:"outputs-8",level:3},{value:"Ollama Embeddings",id:"ollama-embeddings",level:2},{value:"Inputs",id:"inputs-11",level:3},{value:"Outputs",id:"outputs-9",level:3},{value:"OpenAI Embeddings",id:"openai-embeddings",level:2},{value:"Inputs",id:"inputs-12",level:3},{value:"Outputs",id:"outputs-10",level:3},{value:"Text embedder",id:"text-embedder",level:2},{value:"Inputs",id:"inputs-13",level:3},{value:"Outputs",id:"outputs-11",level:3},{value:"VertexAI Embeddings",id:"vertexai-embeddings",level:2},{value:"Inputs",id:"inputs-14",level:3},{value:"Outputs",id:"outputs-12",level:3}];function o(e){const d={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(d.header,{children:(0,t.jsx)(d.h1,{id:"embeddings-models-in-langflow",children:"Embeddings models in Langflow"})}),"\n",(0,t.jsx)(d.p,{children:"Embeddings models convert text into numerical vectors. These embeddings capture semantic meaning of the input text, and allow LLMs to understand context."}),"\n",(0,t.jsx)(d.p,{children:"Refer to your specific component's documentation for more information on parameters."}),"\n",(0,t.jsx)(d.h2,{id:"use-an-embeddings-model-component-in-a-flow",children:"Use an embeddings model component in a flow"}),"\n",(0,t.jsxs)(d.p,{children:["In this example of a document ingestion pipeline, the ",(0,t.jsx)(d.strong,{children:"OpenAI"})," embeddings model is connected to a vector database. The component converts the text chunks into vectors and stores them in the vector database. The vectorized data can be used to inform AI workloads like chatbots, similarity searches, and agents."]}),"\n",(0,t.jsx)(d.p,{children:"This embeddings component uses an OpenAI API key for authentication. Refer to your specific embeddings component's documentation for more information on authentication."}),"\n",(0,t.jsx)(d.p,{children:(0,t.jsx)(d.img,{alt:"URL component in a data ingestion pipeline",src:n(80352).A+"",width:"2586",height:"1550"})}),"\n",(0,t.jsx)(d.h2,{id:"aiml",children:"AI/ML"}),"\n",(0,t.jsxs)(d.p,{children:["This component generates embeddings using the ",(0,t.jsx)(d.a,{href:"https://docs.aimlapi.com/api-overview/embeddings",children:"AI/ML API"}),"."]}),"\n",(0,t.jsx)(d.h3,{id:"inputs",children:"Inputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"model_name"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsx)(d.td,{children:"The name of the AI/ML embedding model to use"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"aiml_api_key"}),(0,t.jsx)(d.td,{children:"SecretString"}),(0,t.jsx)(d.td,{children:"API key for authenticating with the AI/ML service"})]})]})]}),"\n",(0,t.jsx)(d.h3,{id:"outputs",children:"Outputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsx)(d.tbody,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"embeddings"}),(0,t.jsx)(d.td,{children:"Embeddings"}),(0,t.jsx)(d.td,{children:"An instance of AIMLEmbeddingsImpl for generating embeddings"})]})})]}),"\n",(0,t.jsx)(d.h2,{id:"amazon-bedrock-embeddings",children:"Amazon Bedrock Embeddings"}),"\n",(0,t.jsxs)(d.p,{children:["This component is used to load embedding models from ",(0,t.jsx)(d.a,{href:"https://aws.amazon.com/bedrock/",children:"Amazon Bedrock"}),"."]}),"\n",(0,t.jsx)(d.h3,{id:"inputs-1",children:"Inputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"credentials_profile_name"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsx)(d.td,{children:"Name of the AWS credentials profile in ~/.aws/credentials or ~/.aws/config, which has access keys or role information"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"model_id"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsxs)(d.td,{children:["ID of the model to call, e.g., ",(0,t.jsx)(d.code,{children:"amazon.titan-embed-text-v1"}),". This is equivalent to the ",(0,t.jsx)(d.code,{children:"modelId"})," property in the ",(0,t.jsx)(d.code,{children:"list-foundation-models"})," API"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"endpoint_url"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsx)(d.td,{children:"URL to set a specific service endpoint other than the default AWS endpoint"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"region_name"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsxs)(d.td,{children:["AWS region to use, e.g., ",(0,t.jsx)(d.code,{children:"us-west-2"}),". Falls back to ",(0,t.jsx)(d.code,{children:"AWS_DEFAULT_REGION"})," environment variable or region specified in ~/.aws/config if not provided"]})]})]})]}),"\n",(0,t.jsx)(d.h3,{id:"outputs-1",children:"Outputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsx)(d.tbody,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"embeddings"}),(0,t.jsx)(d.td,{children:"Embeddings"}),(0,t.jsx)(d.td,{children:"An instance for generating embeddings using Amazon Bedrock"})]})})]}),"\n",(0,t.jsx)(d.h2,{id:"astra-db-vectorize",children:"Astra DB vectorize"}),"\n",(0,t.jsxs)(d.p,{children:["Connect this component to the ",(0,t.jsx)(d.strong,{children:"Embeddings"})," port of the ",(0,t.jsx)(d.a,{href:"/components-vector-stores#astra-db-vector-store",children:"Astra DB vector store component"})," to generate embeddings."]}),"\n",(0,t.jsxs)(d.p,{children:["This component requires that your Astra DB database has a collection that uses a vectorize embedding provider integration.\nFor more information and instructions, see ",(0,t.jsx)(d.a,{href:"https://docs.datastax.com/en/astra-db-serverless/databases/embedding-generation.html",children:"Embedding Generation"}),"."]}),"\n",(0,t.jsx)(d.h3,{id:"inputs-2",children:"Inputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Display Name"}),(0,t.jsx)(d.th,{children:"Info"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"provider"}),(0,t.jsx)(d.td,{children:"Embedding Provider"}),(0,t.jsx)(d.td,{children:"The embedding provider to use"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"model_name"}),(0,t.jsx)(d.td,{children:"Model Name"}),(0,t.jsx)(d.td,{children:"The embedding model to use"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"authentication"}),(0,t.jsx)(d.td,{children:"Authentication"}),(0,t.jsxs)(d.td,{children:["The name of the API key in Astra that stores your ",(0,t.jsx)(d.a,{href:"https://docs.datastax.com/en/astra-db-serverless/databases/embedding-generation.html#embedding-provider-authentication",children:"vectorize embedding provider credentials"}),". (Not required if using an ",(0,t.jsx)(d.a,{href:"https://docs.datastax.com/en/astra-db-serverless/databases/embedding-generation.html#supported-embedding-providers",children:"Astra-hosted embedding provider"}),".)"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"provider_api_key"}),(0,t.jsx)(d.td,{children:"Provider API Key"}),(0,t.jsxs)(d.td,{children:["As an alternative to ",(0,t.jsx)(d.code,{children:"authentication"}),", directly provide your embedding provider credentials."]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"model_parameters"}),(0,t.jsx)(d.td,{children:"Model Parameters"}),(0,t.jsx)(d.td,{children:"Additional model parameters"})]})]})]}),"\n",(0,t.jsx)(d.h3,{id:"outputs-2",children:"Outputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsx)(d.tbody,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"embeddings"}),(0,t.jsx)(d.td,{children:"Embeddings"}),(0,t.jsx)(d.td,{children:"An instance for generating embeddings using Astra vectorize"})]})})]}),"\n",(0,t.jsx)(d.h2,{id:"azure-openai-embeddings",children:"Azure OpenAI Embeddings"}),"\n",(0,t.jsx)(d.p,{children:"This component generates embeddings using Azure OpenAI models."}),"\n",(0,t.jsx)(d.h3,{id:"inputs-3",children:"Inputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Model"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsxs)(d.td,{children:["Name of the model to use (default: ",(0,t.jsx)(d.code,{children:"text-embedding-3-small"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Azure Endpoint"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsxs)(d.td,{children:["Your Azure endpoint, including the resource. Example: ",(0,t.jsx)(d.code,{children:"https://example-resource.azure.openai.com/"})]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Deployment Name"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsx)(d.td,{children:"The name of the deployment"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"API Version"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsx)(d.td,{children:"The API version to use, options include various dates"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"API Key"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsx)(d.td,{children:"The API key to access the Azure OpenAI service"})]})]})]}),"\n",(0,t.jsx)(d.h3,{id:"outputs-3",children:"Outputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsx)(d.tbody,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"embeddings"}),(0,t.jsx)(d.td,{children:"Embeddings"}),(0,t.jsx)(d.td,{children:"An instance for generating embeddings using Azure OpenAI"})]})})]}),"\n",(0,t.jsx)(d.h2,{id:"cohere-embeddings",children:"Cohere Embeddings"}),"\n",(0,t.jsxs)(d.p,{children:["This component is used to load embedding models from ",(0,t.jsx)(d.a,{href:"https://cohere.com/",children:"Cohere"}),"."]}),"\n",(0,t.jsx)(d.h3,{id:"inputs-4",children:"Inputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"cohere_api_key"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsx)(d.td,{children:"API key required to authenticate with the Cohere service"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"model"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsxs)(d.td,{children:["Language model used for embedding text documents and performing queries (default: ",(0,t.jsx)(d.code,{children:"embed-english-v2.0"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"truncate"}),(0,t.jsx)(d.td,{children:"Boolean"}),(0,t.jsxs)(d.td,{children:["Whether to truncate the input text to fit within the model's constraints (default: ",(0,t.jsx)(d.code,{children:"False"}),")"]})]})]})]}),"\n",(0,t.jsx)(d.h3,{id:"outputs-4",children:"Outputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsx)(d.tbody,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"embeddings"}),(0,t.jsx)(d.td,{children:"Embeddings"}),(0,t.jsx)(d.td,{children:"An instance for generating embeddings using Cohere"})]})})]}),"\n",(0,t.jsx)(d.h2,{id:"embedding-similarity",children:"Embedding similarity"}),"\n",(0,t.jsx)(d.p,{children:"This component computes selected forms of similarity between two embedding vectors."}),"\n",(0,t.jsx)(d.h3,{id:"inputs-5",children:"Inputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Display Name"}),(0,t.jsx)(d.th,{children:"Info"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"embedding_vectors"}),(0,t.jsx)(d.td,{children:"Embedding Vectors"}),(0,t.jsx)(d.td,{children:"A list containing exactly two data objects with embedding vectors to compare."})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"similarity_metric"}),(0,t.jsx)(d.td,{children:"Similarity Metric"}),(0,t.jsx)(d.td,{children:'Select the similarity metric to use. Options: "Cosine Similarity", "Euclidean Distance", "Manhattan Distance".'})]})]})]}),"\n",(0,t.jsx)(d.h3,{id:"outputs-5",children:"Outputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Display Name"}),(0,t.jsx)(d.th,{children:"Info"})]})}),(0,t.jsx)(d.tbody,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"similarity_data"}),(0,t.jsx)(d.td,{children:"Similarity Data"}),(0,t.jsx)(d.td,{children:"Data object containing the computed similarity score and additional information."})]})})]}),"\n",(0,t.jsx)(d.h2,{id:"google-generative-ai-embeddings",children:"Google generative AI embeddings"}),"\n",(0,t.jsxs)(d.p,{children:["This component connects to Google's generative AI embedding service using the GoogleGenerativeAIEmbeddings class from the ",(0,t.jsx)(d.code,{children:"langchain-google-genai"})," package."]}),"\n",(0,t.jsx)(d.h3,{id:"inputs-6",children:"Inputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Display Name"}),(0,t.jsx)(d.th,{children:"Info"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"api_key"}),(0,t.jsx)(d.td,{children:"API Key"}),(0,t.jsx)(d.td,{children:"Secret API key for accessing Google's generative AI service (required)"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"model_name"}),(0,t.jsx)(d.td,{children:"Model Name"}),(0,t.jsx)(d.td,{children:'Name of the embedding model to use (default: "models/text-embedding-004")'})]})]})]}),"\n",(0,t.jsx)(d.h3,{id:"outputs-6",children:"Outputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Display Name"}),(0,t.jsx)(d.th,{children:"Info"})]})}),(0,t.jsx)(d.tbody,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"embeddings"}),(0,t.jsx)(d.td,{children:"Embeddings"}),(0,t.jsx)(d.td,{children:"Built GoogleGenerativeAIEmbeddings object"})]})})]}),"\n",(0,t.jsx)(d.h2,{id:"hugging-face-embeddings",children:"Hugging Face Embeddings"}),"\n",(0,t.jsx)(d.admonition,{type:"note",children:(0,t.jsxs)(d.p,{children:["This component is deprecated as of Langflow version 1.0.18.\nInstead, use the ",(0,t.jsx)(d.a,{href:"#hugging-face-embeddings-inference-api",children:"Hugging Face API Embeddings component"}),"."]})}),"\n",(0,t.jsx)(d.p,{children:"This component loads embedding models from HuggingFace."}),"\n",(0,t.jsx)(d.p,{children:"Use this component to generate embeddings using locally downloaded Hugging Face models. Ensure you have sufficient computational resources to run the models."}),"\n",(0,t.jsx)(d.h3,{id:"inputs-7",children:"Inputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Display Name"}),(0,t.jsx)(d.th,{children:"Info"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Cache Folder"}),(0,t.jsx)(d.td,{children:"Cache Folder"}),(0,t.jsx)(d.td,{children:"Folder path to cache HuggingFace models"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Encode Kwargs"}),(0,t.jsx)(d.td,{children:"Encoding Arguments"}),(0,t.jsx)(d.td,{children:"Additional arguments for the encoding process"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Model Kwargs"}),(0,t.jsx)(d.td,{children:"Model Arguments"}),(0,t.jsx)(d.td,{children:"Additional arguments for the model"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Model Name"}),(0,t.jsx)(d.td,{children:"Model Name"}),(0,t.jsx)(d.td,{children:"Name of the HuggingFace model to use"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Multi Process"}),(0,t.jsx)(d.td,{children:"Multi-Process"}),(0,t.jsx)(d.td,{children:"Whether to use multiple processes"})]})]})]}),"\n",(0,t.jsx)(d.h2,{id:"hugging-face-embeddings-inference-api",children:"Hugging Face embeddings Inference API"}),"\n",(0,t.jsx)(d.p,{children:"This component generates embeddings using Hugging Face Inference API models."}),"\n",(0,t.jsx)(d.p,{children:"Use this component to create embeddings with Hugging Face's hosted models. Ensure you have a valid Hugging Face API key."}),"\n",(0,t.jsx)(d.h3,{id:"inputs-8",children:"Inputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Display Name"}),(0,t.jsx)(d.th,{children:"Info"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"API Key"}),(0,t.jsx)(d.td,{children:"API Key"}),(0,t.jsx)(d.td,{children:"API key for accessing the Hugging Face Inference API"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"API URL"}),(0,t.jsx)(d.td,{children:"API URL"}),(0,t.jsx)(d.td,{children:"URL of the Hugging Face Inference API"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Model Name"}),(0,t.jsx)(d.td,{children:"Model Name"}),(0,t.jsx)(d.td,{children:"Name of the model to use for embeddings"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Cache Folder"}),(0,t.jsx)(d.td,{children:"Cache Folder"}),(0,t.jsx)(d.td,{children:"Folder path to cache Hugging Face models"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Encode Kwargs"}),(0,t.jsx)(d.td,{children:"Encoding Arguments"}),(0,t.jsx)(d.td,{children:"Additional arguments for the encoding process"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Model Kwargs"}),(0,t.jsx)(d.td,{children:"Model Arguments"}),(0,t.jsx)(d.td,{children:"Additional arguments for the model"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Multi Process"}),(0,t.jsx)(d.td,{children:"Multi-Process"}),(0,t.jsx)(d.td,{children:"Whether to use multiple processes"})]})]})]}),"\n",(0,t.jsx)(d.h2,{id:"mistralai",children:"MistralAI"}),"\n",(0,t.jsx)(d.p,{children:"This component generates embeddings using MistralAI models."}),"\n",(0,t.jsx)(d.h3,{id:"inputs-9",children:"Inputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"model"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsx)(d.td,{children:'The MistralAI model to use (default: "mistral-embed")'})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"mistral_api_key"}),(0,t.jsx)(d.td,{children:"SecretString"}),(0,t.jsx)(d.td,{children:"API key for authenticating with MistralAI"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"max_concurrent_requests"}),(0,t.jsx)(d.td,{children:"Integer"}),(0,t.jsx)(d.td,{children:"Maximum number of concurrent API requests (default: 64)"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"max_retries"}),(0,t.jsx)(d.td,{children:"Integer"}),(0,t.jsx)(d.td,{children:"Maximum number of retry attempts for failed requests (default: 5)"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"timeout"}),(0,t.jsx)(d.td,{children:"Integer"}),(0,t.jsx)(d.td,{children:"Request timeout in seconds (default: 120)"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"endpoint"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsxs)(d.td,{children:["Custom API endpoint URL (default: ",(0,t.jsx)(d.code,{children:"https://api.mistral.ai/v1/"}),")"]})]})]})]}),"\n",(0,t.jsx)(d.h3,{id:"outputs-7",children:"Outputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsx)(d.tbody,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"embeddings"}),(0,t.jsx)(d.td,{children:"Embeddings"}),(0,t.jsx)(d.td,{children:"MistralAIEmbeddings instance for generating embeddings"})]})})]}),"\n",(0,t.jsx)(d.h2,{id:"nvidia",children:"NVIDIA"}),"\n",(0,t.jsx)(d.p,{children:"This component generates embeddings using NVIDIA models."}),"\n",(0,t.jsx)(d.h3,{id:"inputs-10",children:"Inputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"model"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsxs)(d.td,{children:["The NVIDIA model to use for embeddings (e.g., ",(0,t.jsx)(d.code,{children:"nvidia/nv-embed-v1"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"base_url"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsxs)(d.td,{children:["Base URL for the NVIDIA API (default: ",(0,t.jsx)(d.code,{children:"https://integrate.api.nvidia.com/v1"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"nvidia_api_key"}),(0,t.jsx)(d.td,{children:"SecretString"}),(0,t.jsx)(d.td,{children:"API key for authenticating with NVIDIA's service"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"temperature"}),(0,t.jsx)(d.td,{children:"Float"}),(0,t.jsxs)(d.td,{children:["Model temperature for embedding generation (default: ",(0,t.jsx)(d.code,{children:"0.1"}),")"]})]})]})]}),"\n",(0,t.jsx)(d.h3,{id:"outputs-8",children:"Outputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsx)(d.tbody,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"embeddings"}),(0,t.jsx)(d.td,{children:"Embeddings"}),(0,t.jsx)(d.td,{children:"NVIDIAEmbeddings instance for generating embeddings"})]})})]}),"\n",(0,t.jsx)(d.h2,{id:"ollama-embeddings",children:"Ollama Embeddings"}),"\n",(0,t.jsx)(d.p,{children:"This component generates embeddings using Ollama models."}),"\n",(0,t.jsx)(d.h3,{id:"inputs-11",children:"Inputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Ollama Model"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsxs)(d.td,{children:["Name of the Ollama model to use (default: ",(0,t.jsx)(d.code,{children:"llama2"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Ollama Base URL"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsxs)(d.td,{children:["Base URL of the Ollama API (default: ",(0,t.jsx)(d.code,{children:"http://localhost:11434"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Model Temperature"}),(0,t.jsx)(d.td,{children:"Float"}),(0,t.jsx)(d.td,{children:"Temperature parameter for the model. Adjusts the randomness in the generated embeddings"})]})]})]}),"\n",(0,t.jsx)(d.h3,{id:"outputs-9",children:"Outputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsx)(d.tbody,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"embeddings"}),(0,t.jsx)(d.td,{children:"Embeddings"}),(0,t.jsx)(d.td,{children:"An instance for generating embeddings using Ollama"})]})})]}),"\n",(0,t.jsx)(d.h2,{id:"openai-embeddings",children:"OpenAI Embeddings"}),"\n",(0,t.jsxs)(d.p,{children:["This component is used to load embedding models from ",(0,t.jsx)(d.a,{href:"https://openai.com/",children:"OpenAI"}),"."]}),"\n",(0,t.jsx)(d.h3,{id:"inputs-12",children:"Inputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"OpenAI API Key"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsx)(d.td,{children:"The API key to use for accessing the OpenAI API"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Default Headers"}),(0,t.jsx)(d.td,{children:"Dict"}),(0,t.jsx)(d.td,{children:"Default headers for the HTTP requests"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Default Query"}),(0,t.jsx)(d.td,{children:"NestedDict"}),(0,t.jsx)(d.td,{children:"Default query parameters for the HTTP requests"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Allowed Special"}),(0,t.jsx)(d.td,{children:"List"}),(0,t.jsxs)(d.td,{children:["Special tokens allowed for processing (default: ",(0,t.jsx)(d.code,{children:"[]"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Disallowed Special"}),(0,t.jsx)(d.td,{children:"List"}),(0,t.jsxs)(d.td,{children:["Special tokens disallowed for processing (default: ",(0,t.jsx)(d.code,{children:'["all"]'}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Chunk Size"}),(0,t.jsx)(d.td,{children:"Integer"}),(0,t.jsxs)(d.td,{children:["Chunk size for processing (default: ",(0,t.jsx)(d.code,{children:"1000"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Client"}),(0,t.jsx)(d.td,{children:"Any"}),(0,t.jsx)(d.td,{children:"HTTP client for making requests"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Deployment"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsxs)(d.td,{children:["Deployment name for the model (default: ",(0,t.jsx)(d.code,{children:"text-embedding-3-small"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Embedding Context Length"}),(0,t.jsx)(d.td,{children:"Integer"}),(0,t.jsxs)(d.td,{children:["Length of embedding context (default: ",(0,t.jsx)(d.code,{children:"8191"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Max Retries"}),(0,t.jsx)(d.td,{children:"Integer"}),(0,t.jsxs)(d.td,{children:["Maximum number of retries for failed requests (default: ",(0,t.jsx)(d.code,{children:"6"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Model"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsxs)(d.td,{children:["Name of the model to use (default: ",(0,t.jsx)(d.code,{children:"text-embedding-3-small"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Model Kwargs"}),(0,t.jsx)(d.td,{children:"NestedDict"}),(0,t.jsx)(d.td,{children:"Additional keyword arguments for the model"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"OpenAI API Base"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsx)(d.td,{children:"Base URL of the OpenAI API"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"OpenAI API Type"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsx)(d.td,{children:"Type of the OpenAI API"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"OpenAI API Version"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsx)(d.td,{children:"Version of the OpenAI API"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"OpenAI Organization"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsx)(d.td,{children:"Organization associated with the API key"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"OpenAI Proxy"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsx)(d.td,{children:"Proxy server for the requests"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Request Timeout"}),(0,t.jsx)(d.td,{children:"Float"}),(0,t.jsx)(d.td,{children:"Timeout for the HTTP requests"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Show Progress Bar"}),(0,t.jsx)(d.td,{children:"Boolean"}),(0,t.jsxs)(d.td,{children:["Whether to show a progress bar for processing (default: ",(0,t.jsx)(d.code,{children:"False"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"Skip Empty"}),(0,t.jsx)(d.td,{children:"Boolean"}),(0,t.jsxs)(d.td,{children:["Whether to skip empty inputs (default: ",(0,t.jsx)(d.code,{children:"False"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"TikToken Enable"}),(0,t.jsx)(d.td,{children:"Boolean"}),(0,t.jsxs)(d.td,{children:["Whether to enable TikToken (default: ",(0,t.jsx)(d.code,{children:"True"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"TikToken Model Name"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsx)(d.td,{children:"Name of the TikToken model"})]})]})]}),"\n",(0,t.jsx)(d.h3,{id:"outputs-10",children:"Outputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsx)(d.tbody,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"embeddings"}),(0,t.jsx)(d.td,{children:"Embeddings"}),(0,t.jsx)(d.td,{children:"An instance for generating embeddings using OpenAI"})]})})]}),"\n",(0,t.jsx)(d.h2,{id:"text-embedder",children:"Text embedder"}),"\n",(0,t.jsx)(d.p,{children:"This component generates embeddings for a given message using a specified embedding model."}),"\n",(0,t.jsx)(d.h3,{id:"inputs-13",children:"Inputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Display Name"}),(0,t.jsx)(d.th,{children:"Info"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"embedding_model"}),(0,t.jsx)(d.td,{children:"Embedding Model"}),(0,t.jsx)(d.td,{children:"The embedding model to use for generating embeddings."})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"message"}),(0,t.jsx)(d.td,{children:"Message"}),(0,t.jsx)(d.td,{children:"The message for which to generate embeddings."})]})]})]}),"\n",(0,t.jsx)(d.h3,{id:"outputs-11",children:"Outputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Display Name"}),(0,t.jsx)(d.th,{children:"Info"})]})}),(0,t.jsx)(d.tbody,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"embeddings"}),(0,t.jsx)(d.td,{children:"Embedding Data"}),(0,t.jsx)(d.td,{children:"Data object containing the original text and its embedding vector."})]})})]}),"\n",(0,t.jsx)(d.h2,{id:"vertexai-embeddings",children:"VertexAI Embeddings"}),"\n",(0,t.jsxs)(d.p,{children:["This component is a wrapper around ",(0,t.jsx)(d.a,{href:"https://cloud.google.com/vertex-ai",children:"Google Vertex AI"})," ",(0,t.jsx)(d.a,{href:"https://cloud.google.com/vertex-ai/docs/generative-ai/embeddings/get-text-embeddings",children:"Embeddings API"}),"."]}),"\n",(0,t.jsx)(d.h3,{id:"inputs-14",children:"Inputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsxs)(d.tbody,{children:[(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"credentials"}),(0,t.jsx)(d.td,{children:"Credentials"}),(0,t.jsx)(d.td,{children:"The default custom credentials to use"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"location"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsxs)(d.td,{children:["The default location to use when making API calls (default: ",(0,t.jsx)(d.code,{children:"us-central1"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"max_output_tokens"}),(0,t.jsx)(d.td,{children:"Integer"}),(0,t.jsxs)(d.td,{children:["Token limit determines the maximum amount of text output from one prompt (default: ",(0,t.jsx)(d.code,{children:"128"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"model_name"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsxs)(d.td,{children:["The name of the Vertex AI large language model (default: ",(0,t.jsx)(d.code,{children:"text-bison"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"project"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsx)(d.td,{children:"The default GCP project to use when making Vertex API calls"})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"request_parallelism"}),(0,t.jsx)(d.td,{children:"Integer"}),(0,t.jsxs)(d.td,{children:["The amount of parallelism allowed for requests issued to VertexAI models (default: ",(0,t.jsx)(d.code,{children:"5"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"temperature"}),(0,t.jsx)(d.td,{children:"Float"}),(0,t.jsxs)(d.td,{children:["Tunes the degree of randomness in text generations. Should be a non-negative value (default: ",(0,t.jsx)(d.code,{children:"0"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"top_k"}),(0,t.jsx)(d.td,{children:"Integer"}),(0,t.jsxs)(d.td,{children:["How the model selects tokens for output, the next token is selected from the top ",(0,t.jsx)(d.code,{children:"k"})," tokens (default: ",(0,t.jsx)(d.code,{children:"40"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"top_p"}),(0,t.jsx)(d.td,{children:"Float"}),(0,t.jsxs)(d.td,{children:["Tokens are selected from the most probable to least until the sum of their probabilities exceeds the top ",(0,t.jsx)(d.code,{children:"p"})," value (default: ",(0,t.jsx)(d.code,{children:"0.95"}),")"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"tuned_model_name"}),(0,t.jsx)(d.td,{children:"String"}),(0,t.jsxs)(d.td,{children:["The name of a tuned model. If provided, ",(0,t.jsx)(d.code,{children:"model_name"})," is ignored"]})]}),(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"verbose"}),(0,t.jsx)(d.td,{children:"Boolean"}),(0,t.jsxs)(d.td,{children:["This parameter controls the level of detail in the output. When set to ",(0,t.jsx)(d.code,{children:"True"}),", it prints internal states of the chain to help debug (default: ",(0,t.jsx)(d.code,{children:"False"}),")"]})]})]})]}),"\n",(0,t.jsx)(d.h3,{id:"outputs-12",children:"Outputs"}),"\n",(0,t.jsxs)(d.table,{children:[(0,t.jsx)(d.thead,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.th,{children:"Name"}),(0,t.jsx)(d.th,{children:"Type"}),(0,t.jsx)(d.th,{children:"Description"})]})}),(0,t.jsx)(d.tbody,{children:(0,t.jsxs)(d.tr,{children:[(0,t.jsx)(d.td,{children:"embeddings"}),(0,t.jsx)(d.td,{children:"Embeddings"}),(0,t.jsx)(d.td,{children:"An instance for generating embeddings using VertexAI"})]})})]})]})}function a(e={}){const{wrapper:d}={...(0,i.R)(),...e.components};return d?(0,t.jsx)(d,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}},80352:(e,d,n)=>{n.d(d,{A:()=>s});const s=n.p+"assets/images/url-component-0ced1fa00ee3b97582421254b6d5be78.png"},28453:(e,d,n)=>{n.d(d,{R:()=>r,x:()=>l});var s=n(96540);const t={},i=s.createContext(t);function r(e){const d=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(d):{...d,...e}}),[d,e])}function l(e){let d;return d=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),s.createElement(i.Provider,{value:d},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b7251463.cd0ccbfc.js b/assets/js/b7251463.38baf68f.js similarity index 55% rename from assets/js/b7251463.cd0ccbfc.js rename to assets/js/b7251463.38baf68f.js index cf0fdd9e63..0881bac2bb 100644 --- a/assets/js/b7251463.cd0ccbfc.js +++ b/assets/js/b7251463.38baf68f.js @@ -1 +1 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[51],{75720:(e,n,r)=>{r.r(n),r.d(n,{CH:()=>j,assets:()=>x,chCodeConfig:()=>u,contentTitle:()=>h,default:()=>A,frontMatter:()=>a,metadata:()=>s,toc:()=>f});const s=JSON.parse('{"id":"Configuration/environment-variables","title":"Environment variables","description":"Langflow lets you configure a number of settings using environment variables.","source":"@site/docs/Configuration/environment-variables.md","sourceDirName":"Configuration","slug":"/environment-variables","permalink":"/environment-variables","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Environment variables","slug":"/environment-variables"},"sidebar":"docs","previous":{"title":"Global variables","permalink":"/configuration-global-variables"},"next":{"title":"Security best practices","permalink":"/configuration-security-best-practices"}}');var t=r(74848),i=r(28453),o=r(24754),l=r(65537),d=r(79329),c=r(56289);const a={title:"Environment variables",slug:"/environment-variables"},h=void 0,x={},j={annotations:o.hk,Code:o.Cy},u={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},f=[{value:"Configure environment variables",id:"configure-environment-variables",level:2},{value:"Set environment variables in your terminal",id:"configure-variables-terminal",level:3},{value:"Import environment variables from a .env file",id:"configure-variables-env-file",level:3},{value:"Precedence",id:"precedence",level:2},{value:"Supported environment variables",id:"supported-variables",level:2}];function L(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",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 j||p("CH",!1),j.Code||p("CH.Code",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.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,t.jsx)(n.p,{children:"Langflow lets you configure a number of settings using environment variables."}),"\n",(0,t.jsx)(n.h2,{id:"configure-environment-variables",children:"Configure environment variables"}),"\n",(0,t.jsxs)(n.p,{children:["Langflow recognizes ",(0,t.jsx)(n.a,{href:"#supported-variables",children:"supported environment variables"})," from the following sources:"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Environment variables that you've set in your terminal."}),"\n",(0,t.jsxs)(n.li,{children:["Environment variables that you've imported from a ",(0,t.jsx)(n.code,{children:".env"})," file using the ",(0,t.jsx)(n.code,{children:"--env-file"})," option in the Langflow CLI."]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["You can choose to use one source exclusively, or use both sources together.\nIf you choose to use both sources together, be aware that environment variables imported from a ",(0,t.jsx)(n.code,{children:".env"})," file take ",(0,t.jsx)(n.a,{href:"#precedence",children:"precedence"})," over those set in your terminal."]}),"\n",(0,t.jsx)(n.h3,{id:"configure-variables-terminal",children:"Set environment variables in your terminal"}),"\n",(0,t.jsx)(n.p,{children:"Run the following commands to set environment variables for your current terminal session:"}),"\n",(0,t.jsxs)(l.A,{children:[(0,t.jsx)(d.A,{value:"linux-macos",label:"Linux or macOS",default:!0,children:(0,t.jsx)(j.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"export",props:{style:{color:"#FF7B72"}}},{content:" VARIABLE_NAME",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"'VALUE'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,t.jsx)(d.A,{value:"windows",label:"Windows",default:!0,children:(0,t.jsx)(j.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"set VARIABLE_NAME='VALUE'",props:{}}]}],lang:"text"},annotations:[]}]})}),(0,t.jsx)(d.A,{value:"docker",label:"Docker",default:!0,children:(0,t.jsx)(j.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"docker ",props:{style:{color:"#FFA657"}}},{content:"run ",props:{style:{color:"#A5D6FF"}}},{content:"-it --rm \\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -p ",props:{style:{color:"#79C0FF"}}},{content:"7860:",props:{style:{color:"#A5D6FF"}}},{content:"7860 \\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -e ",props:{style:{color:"#79C0FF"}}},{content:"VARIABLE_NAME='VALUE' ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" langflowai/langflow:latest",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})})]}),"\n",(0,t.jsxs)(n.p,{children:["When you start Langflow, it looks for environment variables that you've set in your terminal.\nIf it detects a supported environment variable, then it automatically adopts the specified value, subject to ",(0,t.jsx)(n.a,{href:"#precedence",children:"precedence rules"}),"."]}),"\n",(0,t.jsx)(n.h3,{id:"configure-variables-env-file",children:"Import environment variables from a .env file"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Create a ",(0,t.jsx)(n.code,{children:".env"})," file and open it in your preferred editor."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Add your environment variables to the file:"}),"\n",(0,t.jsx)(j.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",title:'".env"',focus:"",code:{lines:[{tokens:[{content:"VARIABLE_NAME='VALUE'",props:{}}]},{tokens:[{content:"VARIABLE_NAME='VALUE'",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,t.jsx)(n.admonition,{type:"tip",children:(0,t.jsxs)(n.p,{children:["The Langflow project includes a ",(0,t.jsx)(n.a,{href:"https://github.com/langflow-ai/langflow/blob/main/.env.example",children:(0,t.jsx)(n.code,{children:".env.example"})})," file to help you get started.\nYou can copy the contents of this file into your own ",(0,t.jsx)(n.code,{children:".env"})," file and replace the example values with your own preferred settings."]})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Save and close the file."}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Start Langflow using the ",(0,t.jsx)(n.code,{children:"--env-file"})," option to define the path to your ",(0,t.jsx)(n.code,{children:".env"})," file:"]}),"\n",(0,t.jsxs)(l.A,{children:[(0,t.jsx)(d.A,{value:"local",label:"Local",default:!0,children:(0,t.jsx)(j.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow run ",props:{style:{color:"#A5D6FF"}}},{content:"--env-file ",props:{style:{color:"#79C0FF"}}},{content:".env",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,t.jsx)(d.A,{value:"docker",label:"Docker",default:!0,children:(0,t.jsx)(j.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"docker ",props:{style:{color:"#FFA657"}}},{content:"run ",props:{style:{color:"#A5D6FF"}}},{content:"-it --rm \\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -p ",props:{style:{color:"#79C0FF"}}},{content:"7860:",props:{style:{color:"#A5D6FF"}}},{content:"7860 \\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" --env-file ",props:{style:{color:"#79C0FF"}}},{content:".env ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" langflowai/langflow:latest",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})})]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["On startup, Langflow imports the environment variables from your ",(0,t.jsx)(n.code,{children:".env"})," file, as well as any that you ",(0,t.jsx)(n.a,{href:"#configure-variables-terminal",children:"set in your terminal"}),", and adopts their specified values."]}),"\n",(0,t.jsx)(n.h2,{id:"precedence",children:"Precedence"}),"\n",(0,t.jsxs)(n.p,{children:["Environment variables ",(0,t.jsx)(n.a,{href:"#configure-variables-env-file",children:"defined in the .env file"})," take precedence over those ",(0,t.jsx)(n.a,{href:"#configure-variables-terminal",children:"set in your terminal"}),".\nThat means, if you happen to set the same environment variable in both your terminal and your ",(0,t.jsx)(n.code,{children:".env"})," file, Langflow adopts the value from the the ",(0,t.jsx)(n.code,{children:".env"})," file."]}),"\n",(0,t.jsx)(n.admonition,{title:"CLI precedence",type:"info",children:(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"/configuration-cli",children:"Langflow CLI options"})," override the value of corresponding environment variables defined in the ",(0,t.jsx)(n.code,{children:".env"})," file as well as any environment variables set in your terminal."]})}),"\n",(0,t.jsx)(n.h2,{id:"supported-variables",children:"Supported environment variables"}),"\n",(0,t.jsx)(n.p,{children:"The following table lists the environment variables supported by Langflow."}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Variable"}),(0,t.jsx)(n.th,{children:"Format / Values"}),(0,t.jsx)(n.th,{children:"Default"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"DO_NOT_TRACK"}),(0,t.jsx)(n.code,{children:"DO_NOT_TRACK"})]}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"false"})}),(0,t.jsx)(n.td,{children:"If enabled, Langflow will not track telemetry."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_AUTO_LOGIN"}),(0,t.jsx)(n.code,{children:"LANGFLOW_AUTO_LOGIN"})]}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"true"})}),(0,t.jsxs)(n.td,{children:["Enable automatic login for Langflow. Set to ",(0,t.jsx)(n.code,{children:"false"})," to disable automatic login and require the login form to log into the Langflow UI. Setting to ",(0,t.jsx)(n.code,{children:"false"})," requires ",(0,t.jsx)(n.a,{href:"#LANGFLOW_SUPERUSER",children:(0,t.jsx)(n.code,{children:"LANGFLOW_SUPERUSER"})})," and ",(0,t.jsx)(n.a,{href:"/environment-variables#LANGFLOW_SUPERUSER_PASSWORD",children:(0,t.jsx)(n.code,{children:"LANGFLOW_SUPERUSER_PASSWORD"})})," to be set."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_AUTO_SAVING"}),(0,t.jsx)(n.code,{children:"LANGFLOW_AUTO_SAVING"})]}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"true"})}),(0,t.jsxs)(n.td,{children:["Enable flow auto-saving.",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#run-auto-saving",children:[(0,t.jsx)(n.code,{children:"--auto-saving"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_AUTO_SAVING_INTERVAL"}),(0,t.jsx)(n.code,{children:"LANGFLOW_AUTO_SAVING_INTERVAL"})]}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"1000"})}),(0,t.jsxs)(n.td,{children:["Set the interval for flow auto-saving in milliseconds.",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#run-auto-saving-interval",children:[(0,t.jsx)(n.code,{children:"--auto-saving-interval"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_BACKEND_ONLY"}),(0,t.jsx)(n.code,{children:"LANGFLOW_BACKEND_ONLY"})]}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"false"})}),(0,t.jsxs)(n.td,{children:["Only run Langflow's backend server (no frontend).",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#run-backend-only",children:[(0,t.jsx)(n.code,{children:"--backend-only"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_CACHE_TYPE"}),(0,t.jsx)(n.code,{children:"LANGFLOW_CACHE_TYPE"})]}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.code,{children:"async"}),(0,t.jsx)("br",{}),(0,t.jsx)(n.code,{children:"redis"}),(0,t.jsx)("br",{}),(0,t.jsx)(n.code,{children:"memory"}),(0,t.jsx)("br",{}),(0,t.jsx)(n.code,{children:"disk"}),(0,t.jsx)("br",{}),(0,t.jsx)(n.code,{children:"critical"})]}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"async"})}),(0,t.jsxs)(n.td,{children:["Set the cache type for Langflow.",(0,t.jsx)("br",{}),"If you set the type to ",(0,t.jsx)(n.code,{children:"redis"}),", then you must also set the following environment variables: ",(0,t.jsx)(n.a,{href:"#LANGFLOW_REDIS_HOST",children:(0,t.jsx)(n.code,{children:"LANGFLOW_REDIS_HOST"})}),", ",(0,t.jsx)(n.a,{href:"#LANGFLOW_REDIS_PORT",children:(0,t.jsx)(n.code,{children:"LANGFLOW_REDIS_PORT"})}),", ",(0,t.jsx)(n.a,{href:"#LANGFLOW_REDIS_DB",children:(0,t.jsx)(n.code,{children:"LANGFLOW_REDIS_DB"})}),", and ",(0,t.jsx)(n.a,{href:"#LANGFLOW_REDIS_CACHE_EXPIRE",children:(0,t.jsx)(n.code,{children:"LANGFLOW_REDIS_CACHE_EXPIRE"})}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_COMPONENTS_PATH"}),(0,t.jsx)(n.code,{children:"LANGFLOW_COMPONENTS_PATH"})]}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"langflow/components"})}),(0,t.jsxs)(n.td,{children:["Path to the directory containing custom components.",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#run-components-path",children:[(0,t.jsx)(n.code,{children:"--components-path"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_CONFIG_DIR"}),(0,t.jsx)(n.code,{children:"LANGFLOW_CONFIG_DIR"})]}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.strong,{children:"Linux/WSL"}),": ",(0,t.jsx)(n.code,{children:"~/.cache/langflow/"}),(0,t.jsx)("br",{}),(0,t.jsx)(n.strong,{children:"macOS"}),": ",(0,t.jsx)(n.code,{children:"/Users//Library/Caches/langflow/"}),(0,t.jsx)("br",{}),(0,t.jsx)(n.strong,{children:"Windows"}),": ",(0,t.jsx)(n.code,{children:"%LOCALAPPDATA%\\langflow\\langflow\\Cache"})]}),(0,t.jsx)(n.td,{children:"Set the Langflow configuration directory where files, logs, and the Langflow database are stored."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_DATABASE_URL"}),(0,t.jsx)(n.code,{children:"LANGFLOW_DATABASE_URL"})]}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"Not set"}),(0,t.jsx)(n.td,{children:"Set the database URL for Langflow. If not provided, Langflow will use a SQLite database."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_DATABASE_CONNECTION_RETRY"}),(0,t.jsx)(n.code,{children:"LANGFLOW_DATABASE_CONNECTION_RETRY"})]}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"false"})}),(0,t.jsx)(n.td,{children:"If True, Langflow will retry to connect to the database if it fails."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_DB_POOL_SIZE"}),(0,t.jsx)(n.code,{children:"LANGFLOW_DB_POOL_SIZE"})]}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"10"})}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.strong,{children:"DEPRECATED:"})," Use ",(0,t.jsx)(n.code,{children:"LANGFLOW_DB_CONNECTION_SETTINGS"})," instead. The number of connections to keep open in the connection pool."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_DB_MAX_OVERFLOW"}),(0,t.jsx)(n.code,{children:"LANGFLOW_DB_MAX_OVERFLOW"})]}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"20"})}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.strong,{children:"DEPRECATED:"})," Use ",(0,t.jsx)(n.code,{children:"LANGFLOW_DB_CONNECTION_SETTINGS"})," instead. The number of connections to allow that can be opened beyond the pool size."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_DB_CONNECT_TIMEOUT"}),(0,t.jsx)(n.code,{children:"LANGFLOW_DB_CONNECT_TIMEOUT"})]}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"20"})}),(0,t.jsx)(n.td,{children:"The number of seconds to wait before giving up on a lock to be released or establishing a connection to the database."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_DB_CONNECTION_SETTINGS"}),(0,t.jsx)(n.code,{children:"LANGFLOW_DB_CONNECTION_SETTINGS"})]}),(0,t.jsx)(n.td,{children:"JSON"}),(0,t.jsx)(n.td,{children:"Not set"}),(0,t.jsxs)(n.td,{children:["A JSON dictionary to centralize database connection parameters. Example: ",(0,t.jsx)(n.code,{children:'{"pool_size": 10, "max_overflow": 20}'})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_DEV"}),(0,t.jsx)(n.code,{children:"LANGFLOW_DEV"})]}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"false"})}),(0,t.jsxs)(n.td,{children:["Run Langflow in development mode (may contain bugs).",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#run-dev",children:[(0,t.jsx)(n.code,{children:"--dev"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_FALLBACK_TO_ENV_VAR"}),(0,t.jsx)(n.code,{children:"LANGFLOW_FALLBACK_TO_ENV_VAR"})]}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"true"})}),(0,t.jsxs)(n.td,{children:["If enabled, ",(0,t.jsx)(n.a,{href:"/configuration-global-variables",children:"global variables"})," set in the Langflow UI fall back to an environment variable with the same name when Langflow fails to retrieve the variable value."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_FRONTEND_PATH"}),(0,t.jsx)(n.code,{children:"LANGFLOW_FRONTEND_PATH"})]}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"./frontend"})}),(0,t.jsxs)(n.td,{children:["Path to the frontend directory containing build files. This is for development purposes only.",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#run-frontend-path",children:[(0,t.jsx)(n.code,{children:"--frontend-path"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_HEALTH_CHECK_MAX_RETRIES"}),(0,t.jsx)(n.code,{children:"LANGFLOW_HEALTH_CHECK_MAX_RETRIES"})]}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"5"})}),(0,t.jsxs)(n.td,{children:["Set the maximum number of retries for the health check.",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#run-health-check-max-retries",children:[(0,t.jsx)(n.code,{children:"--health-check-max-retries"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_HOST"}),(0,t.jsx)(n.code,{children:"LANGFLOW_HOST"})]}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"127.0.0.1"})}),(0,t.jsxs)(n.td,{children:["The host on which the Langflow server will run.",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#run-host",children:[(0,t.jsx)(n.code,{children:"--host"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_LANGCHAIN_CACHE"}),(0,t.jsx)(n.code,{children:"LANGFLOW_LANGCHAIN_CACHE"})]}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.code,{children:"InMemoryCache"}),(0,t.jsx)("br",{}),(0,t.jsx)(n.code,{children:"SQLiteCache"})]}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"InMemoryCache"})}),(0,t.jsxs)(n.td,{children:["Type of cache to use.",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#run-cache",children:[(0,t.jsx)(n.code,{children:"--cache"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_MAX_FILE_SIZE_UPLOAD"}),(0,t.jsx)(n.code,{children:"LANGFLOW_MAX_FILE_SIZE_UPLOAD"})]}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"100"})}),(0,t.jsxs)(n.td,{children:["Set the maximum file size for the upload in megabytes.",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#run-max-file-size-upload",children:[(0,t.jsx)(n.code,{children:"--max-file-size-upload"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_MCP_SERVER_ENABLED"}),(0,t.jsx)(n.code,{children:"LANGFLOW_MCP_SERVER_ENABLED"})]}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"true"})}),(0,t.jsx)(n.td,{children:"If set to False, Langflow will not enable the MCP server."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_MCP_SERVER_ENABLE_PROGRESS_NOTIFICATIONS"}),(0,t.jsx)(n.code,{children:"LANGFLOW_MCP_SERVER_ENABLE_PROGRESS_NOTIFICATIONS"})]}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"false"})}),(0,t.jsx)(n.td,{children:"If set to True, Langflow will send progress notifications in the MCP server."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_NEW_USER_IS_ACTIVE"}),(0,t.jsx)(n.code,{children:"LANGFLOW_NEW_USER_IS_ACTIVE"})]}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"false"})}),(0,t.jsx)(n.td,{children:"When enabled, new users are automatically activated and can log in without requiring explicit activation by the superuser."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_OPEN_BROWSER"}),(0,t.jsx)(n.code,{children:"LANGFLOW_OPEN_BROWSER"})]}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"false"})}),(0,t.jsxs)(n.td,{children:["Open the system web browser on startup.",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#run-open-browser",children:[(0,t.jsx)(n.code,{children:"--open-browser"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_PORT"}),(0,t.jsx)(n.code,{children:"LANGFLOW_PORT"})]}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"7860"})}),(0,t.jsxs)(n.td,{children:["The port on which the Langflow server will run. The server automatically selects a free port if the specified port is in use.",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#run-port",children:[(0,t.jsx)(n.code,{children:"--port"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_PROMETHEUS_ENABLED"}),(0,t.jsx)(n.code,{children:"LANGFLOW_PROMETHEUS_ENABLED"})]}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"false"})}),(0,t.jsx)(n.td,{children:"Expose Prometheus metrics."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_PROMETHEUS_PORT"}),(0,t.jsx)(n.code,{children:"LANGFLOW_PROMETHEUS_PORT"})]}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"9090"})}),(0,t.jsx)(n.td,{children:"Set the port on which Langflow exposes Prometheus metrics."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_REDIS_CACHE_EXPIRE"}),(0,t.jsx)(n.code,{children:"LANGFLOW_REDIS_CACHE_EXPIRE"})]}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"3600"})}),(0,t.jsxs)(n.td,{children:["See ",(0,t.jsx)(n.a,{href:"#LANGFLOW_CACHE_TYPE",children:(0,t.jsx)(n.code,{children:"LANGFLOW_CACHE_TYPE"})}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_REDIS_DB"}),(0,t.jsx)(n.code,{children:"LANGFLOW_REDIS_DB"})]}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"0"})}),(0,t.jsxs)(n.td,{children:["See ",(0,t.jsx)(n.a,{href:"#LANGFLOW_CACHE_TYPE",children:(0,t.jsx)(n.code,{children:"LANGFLOW_CACHE_TYPE"})}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_REDIS_HOST"}),(0,t.jsx)(n.code,{children:"LANGFLOW_REDIS_HOST"})]}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"localhost"})}),(0,t.jsxs)(n.td,{children:["See ",(0,t.jsx)(n.a,{href:"#LANGFLOW_CACHE_TYPE",children:(0,t.jsx)(n.code,{children:"LANGFLOW_CACHE_TYPE"})}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_REDIS_PORT"}),(0,t.jsx)(n.code,{children:"LANGFLOW_REDIS_PORT"})]}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"6379"})}),(0,t.jsxs)(n.td,{children:["See ",(0,t.jsx)(n.a,{href:"#LANGFLOW_CACHE_TYPE",children:(0,t.jsx)(n.code,{children:"LANGFLOW_CACHE_TYPE"})}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_REMOVE_API_KEYS"}),(0,t.jsx)(n.code,{children:"LANGFLOW_REMOVE_API_KEYS"})]}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"false"})}),(0,t.jsxs)(n.td,{children:["Remove API keys from the projects saved in the database.",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#run-remove-api-keys",children:[(0,t.jsx)(n.code,{children:"--remove-api-keys"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_SAVE_DB_IN_CONFIG_DIR"}),(0,t.jsx)(n.code,{children:"LANGFLOW_SAVE_DB_IN_CONFIG_DIR"})]}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"false"})}),(0,t.jsxs)(n.td,{children:["Save the Langflow database in ",(0,t.jsx)(n.a,{href:"#LANGFLOW_CONFIG_DIR",children:(0,t.jsx)(n.code,{children:"LANGFLOW_CONFIG_DIR"})})," instead of in the Langflow package directory. Note, when this variable is set to default (",(0,t.jsx)(n.code,{children:"false"}),"), the database isn't shared between different virtual environments and the database is deleted when you uninstall Langflow."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_SECRET_KEY"}),(0,t.jsx)(n.code,{children:"LANGFLOW_SECRET_KEY"})]}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"Auto-generated"}),(0,t.jsx)(n.td,{children:"Key used for encrypting sensitive data like API keys. If not provided, a secure key will be auto-generated. For production environments with multiple instances, you should explicitly set this to ensure consistent encryption across instances."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_STORE"}),(0,t.jsx)(n.code,{children:"LANGFLOW_STORE"})]}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"true"})}),(0,t.jsxs)(n.td,{children:["Enable the Langflow Store.",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#run-store",children:[(0,t.jsx)(n.code,{children:"--store"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_STORE_ENVIRONMENT_VARIABLES"}),(0,t.jsx)(n.code,{children:"LANGFLOW_STORE_ENVIRONMENT_VARIABLES"})]}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"true"})}),(0,t.jsxs)(n.td,{children:["Store environment variables as ",(0,t.jsx)(n.a,{href:"/configuration-global-variables",children:"global variables"})," in the database."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_SUPERUSER"}),(0,t.jsx)(n.code,{children:"LANGFLOW_SUPERUSER"})]}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"langflow"})}),(0,t.jsxs)(n.td,{children:["Set the name for the superuser. Required if ",(0,t.jsx)(n.a,{href:"#LANGFLOW_AUTO_LOGIN",children:(0,t.jsx)(n.code,{children:"LANGFLOW_AUTO_LOGIN"})})," is set to ",(0,t.jsx)(n.code,{children:"false"}),".",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#superuser-username",children:[(0,t.jsx)(n.code,{children:"superuser --username"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_SUPERUSER_PASSWORD"}),(0,t.jsx)(n.code,{children:"LANGFLOW_SUPERUSER_PASSWORD"})]}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"langflow"})}),(0,t.jsxs)(n.td,{children:["Set the password for the superuser. Required if ",(0,t.jsx)(n.a,{href:"#LANGFLOW_AUTO_LOGIN",children:(0,t.jsx)(n.code,{children:"LANGFLOW_AUTO_LOGIN"})})," is set to ",(0,t.jsx)(n.code,{children:"false"}),".",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#superuser-password",children:[(0,t.jsx)(n.code,{children:"superuser --password"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENT"}),(0,t.jsx)(n.code,{children:"LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENT"})]}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"Not set"}),(0,t.jsxs)(n.td,{children:["Comma-separated list of environment variables to get from the environment and store as ",(0,t.jsx)(n.a,{href:"/configuration-global-variables",children:"global variables"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_LOAD_FLOWS_PATH"}),(0,t.jsx)(n.code,{children:"LANGFLOW_LOAD_FLOWS_PATH"})]}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"Not set"}),(0,t.jsxs)(n.td,{children:["Path to a directory containing flow JSON files to be loaded on startup. Note that this feature only works if ",(0,t.jsx)(n.code,{children:"LANGFLOW_AUTO_LOGIN"})," is enabled."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_WORKER_TIMEOUT"}),(0,t.jsx)(n.code,{children:"LANGFLOW_WORKER_TIMEOUT"})]}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"300"})}),(0,t.jsxs)(n.td,{children:["Worker timeout in seconds.",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#run-worker-timeout",children:[(0,t.jsx)(n.code,{children:"--worker-timeout"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_WORKERS"}),(0,t.jsx)(n.code,{children:"LANGFLOW_WORKERS"})]}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"1"})}),(0,t.jsxs)(n.td,{children:["Number of worker processes.",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#run-workers",children:[(0,t.jsx)(n.code,{children:"--workers"})," option"]}),"."]})]})]})]})]})}function A(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(L,{...e})}):L(e)}function p(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},79329:(e,n,r)=>{r.d(n,{A:()=>o});r(96540);var s=r(18215);const t={tabItem:"tabItem_Ymn6"};var i=r(74848);function o(e){let{children:n,hidden:r,className:o}=e;return(0,i.jsx)("div",{role:"tabpanel",className:(0,s.A)(t.tabItem,o),hidden:r,children:n})}},65537:(e,n,r)=>{r.d(n,{A:()=>v});var s=r(96540),t=r(18215),i=r(65627),o=r(56347),l=r(50372),d=r(30604),c=r(11861),a=r(78749);function h(e){return s.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,s.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function x(e){const{values:n,children:r}=e;return(0,s.useMemo)((()=>{const e=n??function(e){return h(e).map((e=>{let{props:{value:n,label:r,attributes:s,default:t}}=e;return{value:n,label:r,attributes:s,default:t}}))}(r);return function(e){const n=(0,c.XI)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,r])}function j(e){let{value:n,tabValues:r}=e;return r.some((e=>e.value===n))}function u(e){let{queryString:n=!1,groupId:r}=e;const t=(0,o.W6)(),i=function(e){let{queryString:n=!1,groupId:r}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!r)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:n,groupId:r});return[(0,d.aZ)(i),(0,s.useCallback)((e=>{if(!i)return;const n=new URLSearchParams(t.location.search);n.set(i,e),t.replace({...t.location,search:n.toString()})}),[i,t])]}function f(e){const{defaultValue:n,queryString:r=!1,groupId:t}=e,i=x(e),[o,d]=(0,s.useState)((()=>function(e){let{defaultValue:n,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!j({value:n,tabValues:r}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${r.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const s=r.find((e=>e.default))??r[0];if(!s)throw new Error("Unexpected error: 0 tabValues");return s.value}({defaultValue:n,tabValues:i}))),[c,h]=u({queryString:r,groupId:t}),[f,L]=function(e){let{groupId:n}=e;const r=function(e){return e?`docusaurus.tab.${e}`:null}(n),[t,i]=(0,a.Dv)(r);return[t,(0,s.useCallback)((e=>{r&&i.set(e)}),[r,i])]}({groupId:t}),A=(()=>{const e=c??f;return j({value:e,tabValues:i})?e:null})();(0,l.A)((()=>{A&&d(A)}),[A]);return{selectedValue:o,selectValue:(0,s.useCallback)((e=>{if(!j({value:e,tabValues:i}))throw new Error(`Can't select invalid tab value=${e}`);d(e),h(e),L(e)}),[h,L,i]),tabValues:i}}var L=r(9136);const A={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var p=r(74848);function _(e){let{className:n,block:r,selectedValue:s,selectValue:o,tabValues:l}=e;const d=[],{blockElementScrollPositionUntilNextRender:c}=(0,i.a_)(),a=e=>{const n=e.currentTarget,r=d.indexOf(n),t=l[r].value;t!==s&&(c(n),o(t))},h=e=>{let n=null;switch(e.key){case"Enter":a(e);break;case"ArrowRight":{const r=d.indexOf(e.currentTarget)+1;n=d[r]??d[0];break}case"ArrowLeft":{const r=d.indexOf(e.currentTarget)-1;n=d[r]??d[d.length-1];break}}n?.focus()};return(0,p.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,t.A)("tabs",{"tabs--block":r},n),children:l.map((e=>{let{value:n,label:r,attributes:i}=e;return(0,p.jsx)("li",{role:"tab",tabIndex:s===n?0:-1,"aria-selected":s===n,ref:e=>{d.push(e)},onKeyDown:h,onClick:a,...i,className:(0,t.A)("tabs__item",A.tabItem,i?.className,{"tabs__item--active":s===n}),children:r??n},n)}))})}function b(e){let{lazy:n,children:r,selectedValue:i}=e;const o=(Array.isArray(r)?r:[r]).filter(Boolean);if(n){const e=o.find((e=>e.props.value===i));return e?(0,s.cloneElement)(e,{className:(0,t.A)("margin-top--md",e.props.className)}):null}return(0,p.jsx)("div",{className:"margin-top--md",children:o.map(((e,n)=>(0,s.cloneElement)(e,{key:n,hidden:e.props.value!==i})))})}function g(e){const n=f(e);return(0,p.jsxs)("div",{className:(0,t.A)("tabs-container",A.tabList),children:[(0,p.jsx)(_,{...n,...e}),(0,p.jsx)(b,{...n,...e})]})}function v(e){const n=(0,L.A)();return(0,p.jsx)(g,{...e,children:h(e.children)},String(n))}}}]); \ No newline at end of file +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[51],{75720:(e,n,r)=>{r.r(n),r.d(n,{CH:()=>j,assets:()=>x,chCodeConfig:()=>u,contentTitle:()=>h,default:()=>A,frontMatter:()=>a,metadata:()=>s,toc:()=>f});const s=JSON.parse('{"id":"Configuration/environment-variables","title":"Environment variables","description":"Langflow lets you configure a number of settings using environment variables.","source":"@site/docs/Configuration/environment-variables.md","sourceDirName":"Configuration","slug":"/environment-variables","permalink":"/environment-variables","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Environment variables","slug":"/environment-variables"},"sidebar":"docs","previous":{"title":"Global variables","permalink":"/configuration-global-variables"},"next":{"title":"Security best practices","permalink":"/configuration-security-best-practices"}}');var t=r(74848),i=r(28453),o=r(24754),d=r(65537),l=r(79329),c=r(56289);const a={title:"Environment variables",slug:"/environment-variables"},h=void 0,x={},j={annotations:o.hk,Code:o.Cy},u={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},f=[{value:"Configure environment variables",id:"configure-environment-variables",level:2},{value:"Set environment variables in your terminal",id:"configure-variables-terminal",level:3},{value:"Import environment variables from a .env file",id:"configure-variables-env-file",level:3},{value:"Precedence",id:"precedence",level:2},{value:"Supported environment variables",id:"supported-variables",level:2}];function L(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",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 j||_("CH",!1),j.Code||_("CH.Code",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.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,t.jsx)(n.p,{children:"Langflow lets you configure a number of settings using environment variables."}),"\n",(0,t.jsx)(n.h2,{id:"configure-environment-variables",children:"Configure environment variables"}),"\n",(0,t.jsxs)(n.p,{children:["Langflow recognizes ",(0,t.jsx)(n.a,{href:"#supported-variables",children:"supported environment variables"})," from the following sources:"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Environment variables that you've set in your terminal."}),"\n",(0,t.jsxs)(n.li,{children:["Environment variables that you've imported from a ",(0,t.jsx)(n.code,{children:".env"})," file using the ",(0,t.jsx)(n.code,{children:"--env-file"})," option in the Langflow CLI."]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["You can choose to use one source exclusively, or use both sources together.\nIf you choose to use both sources together, be aware that environment variables imported from a ",(0,t.jsx)(n.code,{children:".env"})," file take ",(0,t.jsx)(n.a,{href:"#precedence",children:"precedence"})," over those set in your terminal."]}),"\n",(0,t.jsx)(n.h3,{id:"configure-variables-terminal",children:"Set environment variables in your terminal"}),"\n",(0,t.jsx)(n.p,{children:"Run the following commands to set environment variables for your current terminal session:"}),"\n",(0,t.jsxs)(d.A,{children:[(0,t.jsx)(l.A,{value:"linux-macos",label:"Linux or macOS",default:!0,children:(0,t.jsx)(j.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"export",props:{style:{color:"#FF7B72"}}},{content:" VARIABLE_NAME",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"'VALUE'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,t.jsx)(l.A,{value:"windows",label:"Windows",default:!0,children:(0,t.jsx)(j.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"set VARIABLE_NAME='VALUE'",props:{}}]}],lang:"text"},annotations:[]}]})}),(0,t.jsx)(l.A,{value:"docker",label:"Docker",default:!0,children:(0,t.jsx)(j.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"docker ",props:{style:{color:"#FFA657"}}},{content:"run ",props:{style:{color:"#A5D6FF"}}},{content:"-it --rm \\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -p ",props:{style:{color:"#79C0FF"}}},{content:"7860:",props:{style:{color:"#A5D6FF"}}},{content:"7860 \\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -e ",props:{style:{color:"#79C0FF"}}},{content:"VARIABLE_NAME='VALUE' ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" langflowai/langflow:latest",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})})]}),"\n",(0,t.jsxs)(n.p,{children:["When you start Langflow, it looks for environment variables that you've set in your terminal.\nIf it detects a supported environment variable, then it automatically adopts the specified value, subject to ",(0,t.jsx)(n.a,{href:"#precedence",children:"precedence rules"}),"."]}),"\n",(0,t.jsx)(n.h3,{id:"configure-variables-env-file",children:"Import environment variables from a .env file"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Create a ",(0,t.jsx)(n.code,{children:".env"})," file and open it in your preferred editor."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Add your environment variables to the file:"}),"\n",(0,t.jsx)(j.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",title:'".env"',focus:"",code:{lines:[{tokens:[{content:"VARIABLE_NAME='VALUE'",props:{}}]},{tokens:[{content:"VARIABLE_NAME='VALUE'",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,t.jsx)(n.admonition,{type:"tip",children:(0,t.jsxs)(n.p,{children:["The Langflow project includes a ",(0,t.jsx)(n.a,{href:"https://github.com/langflow-ai/langflow/blob/main/.env.example",children:(0,t.jsx)(n.code,{children:".env.example"})})," file to help you get started.\nYou can copy the contents of this file into your own ",(0,t.jsx)(n.code,{children:".env"})," file and replace the example values with your own preferred settings."]})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Save and close the file."}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Start Langflow using the ",(0,t.jsx)(n.code,{children:"--env-file"})," option to define the path to your ",(0,t.jsx)(n.code,{children:".env"})," file:"]}),"\n",(0,t.jsxs)(d.A,{children:[(0,t.jsx)(l.A,{value:"local",label:"Local",default:!0,children:(0,t.jsx)(j.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow run ",props:{style:{color:"#A5D6FF"}}},{content:"--env-file ",props:{style:{color:"#79C0FF"}}},{content:".env",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,t.jsx)(l.A,{value:"docker",label:"Docker",default:!0,children:(0,t.jsx)(j.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"docker ",props:{style:{color:"#FFA657"}}},{content:"run ",props:{style:{color:"#A5D6FF"}}},{content:"-it --rm \\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -p ",props:{style:{color:"#79C0FF"}}},{content:"7860:",props:{style:{color:"#A5D6FF"}}},{content:"7860 \\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" --env-file ",props:{style:{color:"#79C0FF"}}},{content:".env ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" langflowai/langflow:latest",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})})]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["On startup, Langflow imports the environment variables from your ",(0,t.jsx)(n.code,{children:".env"})," file, as well as any that you ",(0,t.jsx)(n.a,{href:"#configure-variables-terminal",children:"set in your terminal"}),", and adopts their specified values."]}),"\n",(0,t.jsx)(n.h2,{id:"precedence",children:"Precedence"}),"\n",(0,t.jsxs)(n.p,{children:["Environment variables ",(0,t.jsx)(n.a,{href:"#configure-variables-env-file",children:"defined in the .env file"})," take precedence over those ",(0,t.jsx)(n.a,{href:"#configure-variables-terminal",children:"set in your terminal"}),".\nThat means, if you happen to set the same environment variable in both your terminal and your ",(0,t.jsx)(n.code,{children:".env"})," file, Langflow adopts the value from the the ",(0,t.jsx)(n.code,{children:".env"})," file."]}),"\n",(0,t.jsx)(n.admonition,{title:"CLI precedence",type:"info",children:(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"/configuration-cli",children:"Langflow CLI options"})," override the value of corresponding environment variables defined in the ",(0,t.jsx)(n.code,{children:".env"})," file as well as any environment variables set in your terminal."]})}),"\n",(0,t.jsx)(n.h2,{id:"supported-variables",children:"Supported environment variables"}),"\n",(0,t.jsx)(n.p,{children:"The following table lists the environment variables supported by Langflow."}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Variable"}),(0,t.jsx)(n.th,{children:"Format / Values"}),(0,t.jsx)(n.th,{children:"Default"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"DO_NOT_TRACK"}),(0,t.jsx)(n.code,{children:"DO_NOT_TRACK"})]}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"false"})}),(0,t.jsx)(n.td,{children:"If enabled, Langflow will not track telemetry."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_AUTO_LOGIN"}),(0,t.jsx)(n.code,{children:"LANGFLOW_AUTO_LOGIN"})]}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"true"})}),(0,t.jsxs)(n.td,{children:["Enable automatic login for Langflow. Set to ",(0,t.jsx)(n.code,{children:"false"})," to disable automatic login and require the login form to log into the Langflow UI. Setting to ",(0,t.jsx)(n.code,{children:"false"})," requires ",(0,t.jsx)(n.a,{href:"#LANGFLOW_SUPERUSER",children:(0,t.jsx)(n.code,{children:"LANGFLOW_SUPERUSER"})})," and ",(0,t.jsx)(n.a,{href:"/environment-variables#LANGFLOW_SUPERUSER_PASSWORD",children:(0,t.jsx)(n.code,{children:"LANGFLOW_SUPERUSER_PASSWORD"})})," to be set."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_AUTO_SAVING"}),(0,t.jsx)(n.code,{children:"LANGFLOW_AUTO_SAVING"})]}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"true"})}),(0,t.jsxs)(n.td,{children:["Enable flow auto-saving.",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#run-auto-saving",children:[(0,t.jsx)(n.code,{children:"--auto-saving"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_AUTO_SAVING_INTERVAL"}),(0,t.jsx)(n.code,{children:"LANGFLOW_AUTO_SAVING_INTERVAL"})]}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"1000"})}),(0,t.jsxs)(n.td,{children:["Set the interval for flow auto-saving in milliseconds.",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#run-auto-saving-interval",children:[(0,t.jsx)(n.code,{children:"--auto-saving-interval"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_BACKEND_ONLY"}),(0,t.jsx)(n.code,{children:"LANGFLOW_BACKEND_ONLY"})]}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"false"})}),(0,t.jsxs)(n.td,{children:["Only run Langflow's backend server (no frontend).",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#run-backend-only",children:[(0,t.jsx)(n.code,{children:"--backend-only"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_CACHE_TYPE"}),(0,t.jsx)(n.code,{children:"LANGFLOW_CACHE_TYPE"})]}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.code,{children:"async"}),(0,t.jsx)("br",{}),(0,t.jsx)(n.code,{children:"redis"}),(0,t.jsx)("br",{}),(0,t.jsx)(n.code,{children:"memory"}),(0,t.jsx)("br",{}),(0,t.jsx)(n.code,{children:"disk"}),(0,t.jsx)("br",{}),(0,t.jsx)(n.code,{children:"critical"})]}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"async"})}),(0,t.jsxs)(n.td,{children:["Set the cache type for Langflow.",(0,t.jsx)("br",{}),"If you set the type to ",(0,t.jsx)(n.code,{children:"redis"}),", then you must also set the following environment variables: ",(0,t.jsx)(n.a,{href:"#LANGFLOW_REDIS_HOST",children:(0,t.jsx)(n.code,{children:"LANGFLOW_REDIS_HOST"})}),", ",(0,t.jsx)(n.a,{href:"#LANGFLOW_REDIS_PORT",children:(0,t.jsx)(n.code,{children:"LANGFLOW_REDIS_PORT"})}),", ",(0,t.jsx)(n.a,{href:"#LANGFLOW_REDIS_DB",children:(0,t.jsx)(n.code,{children:"LANGFLOW_REDIS_DB"})}),", and ",(0,t.jsx)(n.a,{href:"#LANGFLOW_REDIS_CACHE_EXPIRE",children:(0,t.jsx)(n.code,{children:"LANGFLOW_REDIS_CACHE_EXPIRE"})}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_COMPONENTS_PATH"}),(0,t.jsx)(n.code,{children:"LANGFLOW_COMPONENTS_PATH"})]}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"langflow/components"})}),(0,t.jsxs)(n.td,{children:["Path to the directory containing custom components.",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#run-components-path",children:[(0,t.jsx)(n.code,{children:"--components-path"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_CONFIG_DIR"}),(0,t.jsx)(n.code,{children:"LANGFLOW_CONFIG_DIR"})]}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.strong,{children:"Linux/WSL"}),": ",(0,t.jsx)(n.code,{children:"~/.cache/langflow/"}),(0,t.jsx)("br",{}),(0,t.jsx)(n.strong,{children:"macOS"}),": ",(0,t.jsx)(n.code,{children:"/Users//Library/Caches/langflow/"}),(0,t.jsx)("br",{}),(0,t.jsx)(n.strong,{children:"Windows"}),": ",(0,t.jsx)(n.code,{children:"%LOCALAPPDATA%\\langflow\\langflow\\Cache"})]}),(0,t.jsx)(n.td,{children:"Set the Langflow configuration directory where files, logs, and the Langflow database are stored."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_DATABASE_URL"}),(0,t.jsx)(n.code,{children:"LANGFLOW_DATABASE_URL"})]}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"Not set"}),(0,t.jsx)(n.td,{children:"Set the database URL for Langflow. If not provided, Langflow will use a SQLite database."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_DATABASE_CONNECTION_RETRY"}),(0,t.jsx)(n.code,{children:"LANGFLOW_DATABASE_CONNECTION_RETRY"})]}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"false"})}),(0,t.jsx)(n.td,{children:"If True, Langflow will retry to connect to the database if it fails."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_DB_POOL_SIZE"}),(0,t.jsx)(n.code,{children:"LANGFLOW_DB_POOL_SIZE"})]}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"10"})}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.strong,{children:"DEPRECATED:"})," Use ",(0,t.jsx)(n.code,{children:"LANGFLOW_DB_CONNECTION_SETTINGS"})," instead. The number of connections to keep open in the connection pool."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_DB_MAX_OVERFLOW"}),(0,t.jsx)(n.code,{children:"LANGFLOW_DB_MAX_OVERFLOW"})]}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"20"})}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.strong,{children:"DEPRECATED:"})," Use ",(0,t.jsx)(n.code,{children:"LANGFLOW_DB_CONNECTION_SETTINGS"})," instead. The number of connections to allow that can be opened beyond the pool size."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_DB_CONNECT_TIMEOUT"}),(0,t.jsx)(n.code,{children:"LANGFLOW_DB_CONNECT_TIMEOUT"})]}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"20"})}),(0,t.jsx)(n.td,{children:"The number of seconds to wait before giving up on a lock to be released or establishing a connection to the database."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_DB_CONNECTION_SETTINGS"}),(0,t.jsx)(n.code,{children:"LANGFLOW_DB_CONNECTION_SETTINGS"})]}),(0,t.jsx)(n.td,{children:"JSON"}),(0,t.jsx)(n.td,{children:"Not set"}),(0,t.jsxs)(n.td,{children:["A JSON dictionary to centralize database connection parameters. Example: ",(0,t.jsx)(n.code,{children:'{"pool_size": 10, "max_overflow": 20}'})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_DEV"}),(0,t.jsx)(n.code,{children:"LANGFLOW_DEV"})]}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"false"})}),(0,t.jsxs)(n.td,{children:["Run Langflow in development mode (may contain bugs).",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#run-dev",children:[(0,t.jsx)(n.code,{children:"--dev"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_FALLBACK_TO_ENV_VAR"}),(0,t.jsx)(n.code,{children:"LANGFLOW_FALLBACK_TO_ENV_VAR"})]}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"true"})}),(0,t.jsxs)(n.td,{children:["If enabled, ",(0,t.jsx)(n.a,{href:"/configuration-global-variables",children:"global variables"})," set in the Langflow UI fall back to an environment variable with the same name when Langflow fails to retrieve the variable value."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_FRONTEND_PATH"}),(0,t.jsx)(n.code,{children:"LANGFLOW_FRONTEND_PATH"})]}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"./frontend"})}),(0,t.jsxs)(n.td,{children:["Path to the frontend directory containing build files. This is for development purposes only.",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#run-frontend-path",children:[(0,t.jsx)(n.code,{children:"--frontend-path"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_HEALTH_CHECK_MAX_RETRIES"}),(0,t.jsx)(n.code,{children:"LANGFLOW_HEALTH_CHECK_MAX_RETRIES"})]}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"5"})}),(0,t.jsxs)(n.td,{children:["Set the maximum number of retries for the health check.",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#run-health-check-max-retries",children:[(0,t.jsx)(n.code,{children:"--health-check-max-retries"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_HOST"}),(0,t.jsx)(n.code,{children:"LANGFLOW_HOST"})]}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"127.0.0.1"})}),(0,t.jsxs)(n.td,{children:["The host on which the Langflow server will run.",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#run-host",children:[(0,t.jsx)(n.code,{children:"--host"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_LANGCHAIN_CACHE"}),(0,t.jsx)(n.code,{children:"LANGFLOW_LANGCHAIN_CACHE"})]}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.code,{children:"InMemoryCache"}),(0,t.jsx)("br",{}),(0,t.jsx)(n.code,{children:"SQLiteCache"})]}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"InMemoryCache"})}),(0,t.jsxs)(n.td,{children:["Type of cache to use.",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#run-cache",children:[(0,t.jsx)(n.code,{children:"--cache"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_LOG_LEVEL"}),(0,t.jsx)(n.code,{children:"LANGFLOW_LOG_LEVEL"})]}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.code,{children:"DEBUG"}),(0,t.jsx)("br",{}),(0,t.jsx)(n.code,{children:"INFO"}),(0,t.jsx)("br",{}),(0,t.jsx)(n.code,{children:"WARNING"}),(0,t.jsx)("br",{}),(0,t.jsx)(n.code,{children:"ERROR"}),(0,t.jsx)("br",{}),(0,t.jsx)(n.code,{children:"CRITICAL"})]}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"INFO"})}),(0,t.jsx)(n.td,{children:"Set the logging level for Langflow."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_LOG_FILE"}),(0,t.jsx)(n.code,{children:"LANGFLOW_LOG_FILE"})]}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"Not set"}),(0,t.jsx)(n.td,{children:"Path to the log file. If not set, logs will be written to stdout."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_MAX_FILE_SIZE_UPLOAD"}),(0,t.jsx)(n.code,{children:"LANGFLOW_MAX_FILE_SIZE_UPLOAD"})]}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"100"})}),(0,t.jsxs)(n.td,{children:["Set the maximum file size for the upload in megabytes.",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#run-max-file-size-upload",children:[(0,t.jsx)(n.code,{children:"--max-file-size-upload"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_MCP_SERVER_ENABLED"}),(0,t.jsx)(n.code,{children:"LANGFLOW_MCP_SERVER_ENABLED"})]}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"true"})}),(0,t.jsx)(n.td,{children:"If set to False, Langflow will not enable the MCP server."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_MCP_SERVER_ENABLE_PROGRESS_NOTIFICATIONS"}),(0,t.jsx)(n.code,{children:"LANGFLOW_MCP_SERVER_ENABLE_PROGRESS_NOTIFICATIONS"})]}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"false"})}),(0,t.jsx)(n.td,{children:"If set to True, Langflow will send progress notifications in the MCP server."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_NEW_USER_IS_ACTIVE"}),(0,t.jsx)(n.code,{children:"LANGFLOW_NEW_USER_IS_ACTIVE"})]}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"false"})}),(0,t.jsx)(n.td,{children:"When enabled, new users are automatically activated and can log in without requiring explicit activation by the superuser."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_OPEN_BROWSER"}),(0,t.jsx)(n.code,{children:"LANGFLOW_OPEN_BROWSER"})]}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"false"})}),(0,t.jsxs)(n.td,{children:["Open the system web browser on startup.",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#run-open-browser",children:[(0,t.jsx)(n.code,{children:"--open-browser"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_PORT"}),(0,t.jsx)(n.code,{children:"LANGFLOW_PORT"})]}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"7860"})}),(0,t.jsxs)(n.td,{children:["The port on which the Langflow server will run. The server automatically selects a free port if the specified port is in use.",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#run-port",children:[(0,t.jsx)(n.code,{children:"--port"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_PROMETHEUS_ENABLED"}),(0,t.jsx)(n.code,{children:"LANGFLOW_PROMETHEUS_ENABLED"})]}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"false"})}),(0,t.jsx)(n.td,{children:"Expose Prometheus metrics."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_PROMETHEUS_PORT"}),(0,t.jsx)(n.code,{children:"LANGFLOW_PROMETHEUS_PORT"})]}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"9090"})}),(0,t.jsx)(n.td,{children:"Set the port on which Langflow exposes Prometheus metrics."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_REDIS_CACHE_EXPIRE"}),(0,t.jsx)(n.code,{children:"LANGFLOW_REDIS_CACHE_EXPIRE"})]}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"3600"})}),(0,t.jsxs)(n.td,{children:["See ",(0,t.jsx)(n.a,{href:"#LANGFLOW_CACHE_TYPE",children:(0,t.jsx)(n.code,{children:"LANGFLOW_CACHE_TYPE"})}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_REDIS_DB"}),(0,t.jsx)(n.code,{children:"LANGFLOW_REDIS_DB"})]}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"0"})}),(0,t.jsxs)(n.td,{children:["See ",(0,t.jsx)(n.a,{href:"#LANGFLOW_CACHE_TYPE",children:(0,t.jsx)(n.code,{children:"LANGFLOW_CACHE_TYPE"})}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_REDIS_HOST"}),(0,t.jsx)(n.code,{children:"LANGFLOW_REDIS_HOST"})]}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"localhost"})}),(0,t.jsxs)(n.td,{children:["See ",(0,t.jsx)(n.a,{href:"#LANGFLOW_CACHE_TYPE",children:(0,t.jsx)(n.code,{children:"LANGFLOW_CACHE_TYPE"})}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_REDIS_PORT"}),(0,t.jsx)(n.code,{children:"LANGFLOW_REDIS_PORT"})]}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"6379"})}),(0,t.jsxs)(n.td,{children:["See ",(0,t.jsx)(n.a,{href:"#LANGFLOW_CACHE_TYPE",children:(0,t.jsx)(n.code,{children:"LANGFLOW_CACHE_TYPE"})}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_REMOVE_API_KEYS"}),(0,t.jsx)(n.code,{children:"LANGFLOW_REMOVE_API_KEYS"})]}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"false"})}),(0,t.jsxs)(n.td,{children:["Remove API keys from the projects saved in the database.",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#run-remove-api-keys",children:[(0,t.jsx)(n.code,{children:"--remove-api-keys"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_SAVE_DB_IN_CONFIG_DIR"}),(0,t.jsx)(n.code,{children:"LANGFLOW_SAVE_DB_IN_CONFIG_DIR"})]}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"false"})}),(0,t.jsxs)(n.td,{children:["Save the Langflow database in ",(0,t.jsx)(n.a,{href:"#LANGFLOW_CONFIG_DIR",children:(0,t.jsx)(n.code,{children:"LANGFLOW_CONFIG_DIR"})})," instead of in the Langflow package directory. Note, when this variable is set to default (",(0,t.jsx)(n.code,{children:"false"}),"), the database isn't shared between different virtual environments and the database is deleted when you uninstall Langflow."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_SECRET_KEY"}),(0,t.jsx)(n.code,{children:"LANGFLOW_SECRET_KEY"})]}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"Auto-generated"}),(0,t.jsx)(n.td,{children:"Key used for encrypting sensitive data like API keys. If not provided, a secure key will be auto-generated. For production environments with multiple instances, you should explicitly set this to ensure consistent encryption across instances."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_STORE"}),(0,t.jsx)(n.code,{children:"LANGFLOW_STORE"})]}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"true"})}),(0,t.jsxs)(n.td,{children:["Enable the Langflow Store.",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#run-store",children:[(0,t.jsx)(n.code,{children:"--store"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_STORE_ENVIRONMENT_VARIABLES"}),(0,t.jsx)(n.code,{children:"LANGFLOW_STORE_ENVIRONMENT_VARIABLES"})]}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"true"})}),(0,t.jsxs)(n.td,{children:["Store environment variables as ",(0,t.jsx)(n.a,{href:"/configuration-global-variables",children:"global variables"})," in the database."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_SUPERUSER"}),(0,t.jsx)(n.code,{children:"LANGFLOW_SUPERUSER"})]}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"langflow"})}),(0,t.jsxs)(n.td,{children:["Set the name for the superuser. Required if ",(0,t.jsx)(n.a,{href:"#LANGFLOW_AUTO_LOGIN",children:(0,t.jsx)(n.code,{children:"LANGFLOW_AUTO_LOGIN"})})," is set to ",(0,t.jsx)(n.code,{children:"false"}),".",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#superuser-username",children:[(0,t.jsx)(n.code,{children:"superuser --username"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_SUPERUSER_PASSWORD"}),(0,t.jsx)(n.code,{children:"LANGFLOW_SUPERUSER_PASSWORD"})]}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"langflow"})}),(0,t.jsxs)(n.td,{children:["Set the password for the superuser. Required if ",(0,t.jsx)(n.a,{href:"#LANGFLOW_AUTO_LOGIN",children:(0,t.jsx)(n.code,{children:"LANGFLOW_AUTO_LOGIN"})})," is set to ",(0,t.jsx)(n.code,{children:"false"}),".",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#superuser-password",children:[(0,t.jsx)(n.code,{children:"superuser --password"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENT"}),(0,t.jsx)(n.code,{children:"LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENT"})]}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"Not set"}),(0,t.jsxs)(n.td,{children:["Comma-separated list of environment variables to get from the environment and store as ",(0,t.jsx)(n.a,{href:"/configuration-global-variables",children:"global variables"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_LOAD_FLOWS_PATH"}),(0,t.jsx)(n.code,{children:"LANGFLOW_LOAD_FLOWS_PATH"})]}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"Not set"}),(0,t.jsxs)(n.td,{children:["Path to a directory containing flow JSON files to be loaded on startup. Note that this feature only works if ",(0,t.jsx)(n.code,{children:"LANGFLOW_AUTO_LOGIN"})," is enabled."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_WORKER_TIMEOUT"}),(0,t.jsx)(n.code,{children:"LANGFLOW_WORKER_TIMEOUT"})]}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"300"})}),(0,t.jsxs)(n.td,{children:["Worker timeout in seconds.",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#run-worker-timeout",children:[(0,t.jsx)(n.code,{children:"--worker-timeout"})," option"]}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsxs)(n.td,{children:[(0,t.jsx)(c.A,{id:"LANGFLOW_WORKERS"}),(0,t.jsx)(n.code,{children:"LANGFLOW_WORKERS"})]}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"1"})}),(0,t.jsxs)(n.td,{children:["Number of worker processes.",(0,t.jsx)("br",{}),"See ",(0,t.jsxs)(n.a,{href:"/configuration-cli#run-workers",children:[(0,t.jsx)(n.code,{children:"--workers"})," option"]}),"."]})]})]})]})]})}function A(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(L,{...e})}):L(e)}function _(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},79329:(e,n,r)=>{r.d(n,{A:()=>o});r(96540);var s=r(18215);const t={tabItem:"tabItem_Ymn6"};var i=r(74848);function o(e){let{children:n,hidden:r,className:o}=e;return(0,i.jsx)("div",{role:"tabpanel",className:(0,s.A)(t.tabItem,o),hidden:r,children:n})}},65537:(e,n,r)=>{r.d(n,{A:()=>O});var s=r(96540),t=r(18215),i=r(65627),o=r(56347),d=r(50372),l=r(30604),c=r(11861),a=r(78749);function h(e){return s.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,s.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function x(e){const{values:n,children:r}=e;return(0,s.useMemo)((()=>{const e=n??function(e){return h(e).map((e=>{let{props:{value:n,label:r,attributes:s,default:t}}=e;return{value:n,label:r,attributes:s,default:t}}))}(r);return function(e){const n=(0,c.XI)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,r])}function j(e){let{value:n,tabValues:r}=e;return r.some((e=>e.value===n))}function u(e){let{queryString:n=!1,groupId:r}=e;const t=(0,o.W6)(),i=function(e){let{queryString:n=!1,groupId:r}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!r)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:n,groupId:r});return[(0,l.aZ)(i),(0,s.useCallback)((e=>{if(!i)return;const n=new URLSearchParams(t.location.search);n.set(i,e),t.replace({...t.location,search:n.toString()})}),[i,t])]}function f(e){const{defaultValue:n,queryString:r=!1,groupId:t}=e,i=x(e),[o,l]=(0,s.useState)((()=>function(e){let{defaultValue:n,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!j({value:n,tabValues:r}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${r.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const s=r.find((e=>e.default))??r[0];if(!s)throw new Error("Unexpected error: 0 tabValues");return s.value}({defaultValue:n,tabValues:i}))),[c,h]=u({queryString:r,groupId:t}),[f,L]=function(e){let{groupId:n}=e;const r=function(e){return e?`docusaurus.tab.${e}`:null}(n),[t,i]=(0,a.Dv)(r);return[t,(0,s.useCallback)((e=>{r&&i.set(e)}),[r,i])]}({groupId:t}),A=(()=>{const e=c??f;return j({value:e,tabValues:i})?e:null})();(0,d.A)((()=>{A&&l(A)}),[A]);return{selectedValue:o,selectValue:(0,s.useCallback)((e=>{if(!j({value:e,tabValues:i}))throw new Error(`Can't select invalid tab value=${e}`);l(e),h(e),L(e)}),[h,L,i]),tabValues:i}}var L=r(9136);const A={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var _=r(74848);function p(e){let{className:n,block:r,selectedValue:s,selectValue:o,tabValues:d}=e;const l=[],{blockElementScrollPositionUntilNextRender:c}=(0,i.a_)(),a=e=>{const n=e.currentTarget,r=l.indexOf(n),t=d[r].value;t!==s&&(c(n),o(t))},h=e=>{let n=null;switch(e.key){case"Enter":a(e);break;case"ArrowRight":{const r=l.indexOf(e.currentTarget)+1;n=l[r]??l[0];break}case"ArrowLeft":{const r=l.indexOf(e.currentTarget)-1;n=l[r]??l[l.length-1];break}}n?.focus()};return(0,_.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,t.A)("tabs",{"tabs--block":r},n),children:d.map((e=>{let{value:n,label:r,attributes:i}=e;return(0,_.jsx)("li",{role:"tab",tabIndex:s===n?0:-1,"aria-selected":s===n,ref:e=>{l.push(e)},onKeyDown:h,onClick:a,...i,className:(0,t.A)("tabs__item",A.tabItem,i?.className,{"tabs__item--active":s===n}),children:r??n},n)}))})}function b(e){let{lazy:n,children:r,selectedValue:i}=e;const o=(Array.isArray(r)?r:[r]).filter(Boolean);if(n){const e=o.find((e=>e.props.value===i));return e?(0,s.cloneElement)(e,{className:(0,t.A)("margin-top--md",e.props.className)}):null}return(0,_.jsx)("div",{className:"margin-top--md",children:o.map(((e,n)=>(0,s.cloneElement)(e,{key:n,hidden:e.props.value!==i})))})}function g(e){const n=f(e);return(0,_.jsxs)("div",{className:(0,t.A)("tabs-container",A.tabList),children:[(0,_.jsx)(p,{...n,...e}),(0,_.jsx)(b,{...n,...e})]})}function O(e){const n=(0,L.A)();return(0,_.jsx)(g,{...e,children:h(e.children)},String(n))}}}]); \ No newline at end of file diff --git a/assets/js/c39b795e.dc93381f.js b/assets/js/c39b795e.dc93381f.js deleted file mode 100644 index eba866378b..0000000000 --- a/assets/js/c39b795e.dc93381f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[7338],{31154:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>h,contentTitle:()=>l,default:()=>c,frontMatter:()=>i,metadata:()=>n,toc:()=>a});const n=JSON.parse('{"id":"Components/components-helpers","title":"Helpers","description":"Helper components provide utility functions to help manage data, tasks, and other components in your flow.","source":"@site/docs/Components/components-helpers.md","sourceDirName":"Components","slug":"/components-helpers","permalink":"/components-helpers","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Helpers","slug":"/components-helpers"},"sidebar":"docs","previous":{"title":"Embeddings","permalink":"/components-embedding-models"},"next":{"title":"Inputs and outputs","permalink":"/components-io"}}');var r=s(74848),d=s(28453);const i={title:"Helpers",slug:"/components-helpers"},l="Helper components in Langflow",h={},a=[{value:"Use a helper component in a flow",id:"use-a-helper-component-in-a-flow",level:2},{value:"Create List",id:"create-list",level:2},{value:"Inputs",id:"inputs",level:3},{value:"Current date",id:"current-date",level:2},{value:"Inputs",id:"inputs-1",level:3},{value:"Outputs",id:"outputs",level:3},{value:"ID Generator",id:"id-generator",level:2},{value:"Outputs",id:"outputs-1",level:3},{value:"Message history",id:"message-history",level:2},{value:"Inputs",id:"inputs-2",level:3},{value:"Outputs",id:"outputs-2",level:3},{value:"Store Message",id:"store-message",level:2},{value:"Inputs",id:"inputs-3",level:3},{value:"Outputs",id:"outputs-3",level:3},{value:"Structured output",id:"structured-output",level:2},{value:"Input",id:"input",level:3},{value:"Output",id:"output",level:3}];function o(e){const t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,d.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"helper-components-in-langflow",children:"Helper components in Langflow"})}),"\n",(0,r.jsx)(t.p,{children:"Helper components provide utility functions to help manage data, tasks, and other components in your flow."}),"\n",(0,r.jsx)(t.h2,{id:"use-a-helper-component-in-a-flow",children:"Use a helper component in a flow"}),"\n",(0,r.jsxs)(t.p,{children:["Chat memory in Langflow is stored either in local Langflow tables with ",(0,r.jsx)(t.code,{children:"LCBufferMemory"}),", or connected to an external database."]}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"Store Message"})," helper component stores chat memories as ",(0,r.jsx)(t.a,{href:"/concepts-objects",children:"Data"})," objects, and the ",(0,r.jsx)(t.strong,{children:"Message History"})," helper component retrieves chat messages as data objects or strings."]}),"\n",(0,r.jsxs)(t.p,{children:["This example flow stores and retrieves chat history from an ",(0,r.jsx)(t.a,{href:"/components-memories#astradbchatmemory-component",children:"AstraDBChatMemory"})," component with ",(0,r.jsx)(t.strong,{children:"Store Message"})," and ",(0,r.jsx)(t.strong,{children:"Chat Memory"})," components."]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Sample Flow storing Chat Memory in AstraDB",src:s(72654).A+"",width:"3178",height:"1228"})}),"\n",(0,r.jsx)(t.h2,{id:"create-list",children:"Create List"}),"\n",(0,r.jsx)(t.p,{children:"This component dynamically creates a record with a specified number of fields."}),"\n",(0,r.jsx)(t.h3,{id:"inputs",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.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",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:"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:"value"}),(0,r.jsx)(t.td,{children:"Value"}),(0,r.jsx)(t.td,{children:"Unique ID generated."})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"message-history",children:"Message history"}),"\n",(0,r.jsx)(t.admonition,{type:"info",children:(0,r.jsx)(t.p,{children:"Prior to Langflow 1.1, this component was known as the Chat Memory component."})}),"\n",(0,r.jsx)(t.p,{children:"This component retrieves and manages chat messages from Langflow tables or an external memory."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-2",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"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-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.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:"store-message",children:"Store Message"}),"\n",(0,r.jsx)(t.p,{children:"This component stores chat messages or text into Langflow tables or an external memory."}),"\n",(0,r.jsx)(t.p,{children:"It provides flexibility in managing message storage and retrieval within a chat system."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-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:"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-3",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"stored_messages"}),(0,r.jsx)(t.td,{children:"Stored Messages"}),(0,r.jsx)(t.td,{children:"The list of stored messages after the current message has been added."})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"structured-output",children:"Structured output"}),"\n",(0,r.jsx)(t.p,{children:"This component transforms LLM responses into structured data formats."}),"\n",(0,r.jsx)(t.h3,{id:"input",children:"Input"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"llm"}),(0,r.jsx)(t.td,{children:"Language Model"}),(0,r.jsx)(t.td,{children:"The language model to use to generate the structured output."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_value"}),(0,r.jsx)(t.td,{children:"Input message"}),(0,r.jsx)(t.td,{children:"The input message for the language model to process."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"schema_name"}),(0,r.jsx)(t.td,{children:"Schema Name"}),(0,r.jsx)(t.td,{children:"Provide a name for the output data schema."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"output_schema"}),(0,r.jsx)(t.td,{children:"Output Schema"}),(0,r.jsx)(t.td,{children:"Define the structure and data types for the model's output."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"multiple"}),(0,r.jsx)(t.td,{children:"Generate Multiple"}),(0,r.jsx)(t.td,{children:"Set to True if the model should generate a list of outputs instead of a single output."})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"output",children:"Output"}),"\n",(0,r.jsx)(t.p,{children:"| structured_output | Structured Output | The resulting structured output based on the defined schema. |"})]})}function c(e={}){const{wrapper:t}={...(0,d.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(o,{...e})}):o(e)}},72654:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/astra_db_chat_memory_rounded-9746ca2bb69d3b07ac0a071f4b9471b3.png"},28453:(e,t,s)=>{s.d(t,{R:()=>i,x:()=>l});var n=s(96540);const r={},d=n.createContext(r);function i(e){const t=n.useContext(d);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),n.createElement(d.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c39b795e.fda22512.js b/assets/js/c39b795e.fda22512.js new file mode 100644 index 0000000000..efac41d929 --- /dev/null +++ b/assets/js/c39b795e.fda22512.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[7338],{31154:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>h,contentTitle:()=>l,default:()=>o,frontMatter:()=>i,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"Components/components-helpers","title":"Helpers","description":"Helper components provide utility functions to help manage data, tasks, and other components in your flow.","source":"@site/docs/Components/components-helpers.md","sourceDirName":"Components","slug":"/components-helpers","permalink":"/components-helpers","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Helpers","slug":"/components-helpers"},"sidebar":"docs","previous":{"title":"Embeddings","permalink":"/components-embedding-models"},"next":{"title":"Inputs and outputs","permalink":"/components-io"}}');var r=s(74848),d=s(28453);const i={title:"Helpers",slug:"/components-helpers"},l="Helper components in Langflow",h={},c=[{value:"Use a helper component in a flow",id:"use-a-helper-component-in-a-flow",level:2},{value:"Batch Run Component",id:"batch-run-component",level:2},{value:"Inputs",id:"inputs",level:3},{value:"Outputs",id:"outputs",level:3},{value:"Create List",id:"create-list",level:2},{value:"Inputs",id:"inputs-1",level:3},{value:"Outputs",id:"outputs-1",level:3},{value:"Current date",id:"current-date",level:2},{value:"Inputs",id:"inputs-2",level:3},{value:"Outputs",id:"outputs-2",level:3},{value:"ID Generator",id:"id-generator",level:2},{value:"Inputs",id:"inputs-3",level:3},{value:"Outputs",id:"outputs-3",level:3},{value:"Message history",id:"message-history",level:2},{value:"Inputs",id:"inputs-4",level:3},{value:"Outputs",id:"outputs-4",level:3},{value:"Message store",id:"message-store",level:2},{value:"Inputs",id:"inputs-5",level:3},{value:"Outputs",id:"outputs-5",level:3},{value:"Structured output",id:"structured-output",level:2},{value:"Input",id:"input",level:3},{value:"Output",id:"output",level:3}];function a(e){const t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,d.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"helper-components-in-langflow",children:"Helper components in Langflow"})}),"\n",(0,r.jsx)(t.p,{children:"Helper components provide utility functions to help manage data, tasks, and other components in your flow."}),"\n",(0,r.jsx)(t.h2,{id:"use-a-helper-component-in-a-flow",children:"Use a helper component in a flow"}),"\n",(0,r.jsxs)(t.p,{children:["Chat memory in Langflow is stored either in local Langflow tables with ",(0,r.jsx)(t.code,{children:"LCBufferMemory"}),", or connected to an external database."]}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"Store Message"})," helper component stores chat memories as ",(0,r.jsx)(t.a,{href:"/concepts-objects",children:"Data"})," objects, and the ",(0,r.jsx)(t.strong,{children:"Message History"})," helper component retrieves chat messages as data objects or strings."]}),"\n",(0,r.jsxs)(t.p,{children:["This example flow stores and retrieves chat history from an ",(0,r.jsx)(t.a,{href:"/components-memories#astradbchatmemory-component",children:"AstraDBChatMemory"})," component with ",(0,r.jsx)(t.strong,{children:"Store Message"})," and ",(0,r.jsx)(t.strong,{children:"Chat Memory"})," components."]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Sample Flow storing Chat Memory in AstraDB",src:s(72654).A+"",width:"3178",height:"1228"})}),"\n",(0,r.jsx)(t.h2,{id:"batch-run-component",children:"Batch Run Component"}),"\n",(0,r.jsxs)(t.p,{children:["The Batch Run component runs a language model over each row of a ",(0,r.jsx)(t.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"})," text column and returns a new DataFrame with the original text and the model's response."]}),"\n",(0,r.jsx)(t.h3,{id:"inputs",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Info"}),(0,r.jsx)(t.th,{children:"Required"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"model"}),(0,r.jsx)(t.td,{children:"Language Model"}),(0,r.jsx)(t.td,{children:"HandleInput"}),(0,r.jsx)(t.td,{children:"Connect the 'Language Model' output from your LLM component here."}),(0,r.jsx)(t.td,{children:"Yes"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"system_message"}),(0,r.jsx)(t.td,{children:"System Message"}),(0,r.jsx)(t.td,{children:"MultilineInput"}),(0,r.jsx)(t.td,{children:"Multi-line system instruction for all rows in the DataFrame."}),(0,r.jsx)(t.td,{children:"No"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"df"}),(0,r.jsx)(t.td,{children:"DataFrame"}),(0,r.jsx)(t.td,{children:"DataFrameInput"}),(0,r.jsx)(t.td,{children:"The DataFrame whose column (specified by 'column_name') will be treated as text messages."}),(0,r.jsx)(t.td,{children:"Yes"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"column_name"}),(0,r.jsx)(t.td,{children:"Column Name"}),(0,r.jsx)(t.td,{children:"StrInput"}),(0,r.jsx)(t.td,{children:"The name of the DataFrame column to treat as text messages. Default='text'."}),(0,r.jsx)(t.td,{children:"Yes"})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Method"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"batch_results"}),(0,r.jsx)(t.td,{children:"Batch Results"}),(0,r.jsx)(t.td,{children:"run_batch"}),(0,r.jsx)(t.td,{children:"A DataFrame with two columns: 'text_input' and 'model_response'."})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"create-list",children:"Create List"}),"\n",(0,r.jsx)(t.p,{children:"This component dynamically creates a record with a specified number of fields."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-1",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"n_fields"}),(0,r.jsx)(t.td,{children:"Number of Fields"}),(0,r.jsx)(t.td,{children:"Number of fields to be added to the record."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"text_key"}),(0,r.jsx)(t.td,{children:"Text Key"}),(0,r.jsx)(t.td,{children:"Key used as text."})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-1",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"list"}),(0,r.jsx)(t.td,{children:"List"}),(0,r.jsx)(t.td,{children:"The dynamically created list with the specified number of fields."})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"current-date",children:"Current date"}),"\n",(0,r.jsx)(t.p,{children:"The Current Date component returns the current date and time in a selected timezone. This component provides a flexible way to obtain timezone-specific date and time information within a Langflow pipeline."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-2",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"timezone"}),(0,r.jsx)(t.td,{children:"Timezone"}),(0,r.jsx)(t.td,{children:"Select the timezone for the current date and time."})]})})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-2",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"current_date"}),(0,r.jsx)(t.td,{children:"Current Date"}),(0,r.jsx)(t.td,{children:"The resulting current date and time in the selected timezone."})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"id-generator",children:"ID Generator"}),"\n",(0,r.jsx)(t.p,{children:"This component generates a unique ID."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-3",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"unique_id"}),(0,r.jsx)(t.td,{children:"Value"}),(0,r.jsx)(t.td,{children:"The generated unique ID."})]})})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-3",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"id"}),(0,r.jsx)(t.td,{children:"ID"}),(0,r.jsx)(t.td,{children:"The generated unique ID."})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"message-history",children:"Message history"}),"\n",(0,r.jsx)(t.admonition,{type:"info",children:(0,r.jsx)(t.p,{children:"Prior to Langflow 1.1, this component was known as the Chat Memory component."})}),"\n",(0,r.jsx)(t.p,{children:"This component retrieves and manages chat messages from Langflow tables or an external memory."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-4",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"memory"}),(0,r.jsx)(t.td,{children:"External Memory"}),(0,r.jsx)(t.td,{children:"Retrieve messages from an external memory. If empty, it will use the Langflow tables."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"sender"}),(0,r.jsx)(t.td,{children:"Sender Type"}),(0,r.jsx)(t.td,{children:"Filter by sender type."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"sender_name"}),(0,r.jsx)(t.td,{children:"Sender Name"}),(0,r.jsx)(t.td,{children:"Filter by sender name."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"n_messages"}),(0,r.jsx)(t.td,{children:"Number of Messages"}),(0,r.jsx)(t.td,{children:"Number of messages to retrieve."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"session_id"}),(0,r.jsx)(t.td,{children:"Session ID"}),(0,r.jsx)(t.td,{children:"The session ID of the chat. If empty, the current session ID parameter will be used."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"order"}),(0,r.jsx)(t.td,{children:"Order"}),(0,r.jsx)(t.td,{children:"Order of the messages."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"template"}),(0,r.jsx)(t.td,{children:"Template"}),(0,r.jsxs)(t.td,{children:["The template to use for formatting the data. It can contain the keys ",(0,r.jsx)(t.code,{children:"{text}"}),", ",(0,r.jsx)(t.code,{children:"{sender}"})," or any other key in the message data."]})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-4",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"messages"}),(0,r.jsx)(t.td,{children:"Messages (Data)"}),(0,r.jsx)(t.td,{children:"Retrieved messages as Data objects."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"messages_text"}),(0,r.jsx)(t.td,{children:"Messages (Text)"}),(0,r.jsx)(t.td,{children:"Retrieved messages formatted as text."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"lc_memory"}),(0,r.jsx)(t.td,{children:"Memory"}),(0,r.jsxs)(t.td,{children:["A constructed Langchain ",(0,r.jsx)(t.a,{href:"https://api.python.langchain.com/en/latest/memory/langchain.memory.buffer.ConversationBufferMemory.html",children:"ConversationBufferMemory"})," object"]})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"message-store",children:"Message store"}),"\n",(0,r.jsx)(t.p,{children:"This component stores chat messages or text into Langflow tables or an external memory."}),"\n",(0,r.jsx)(t.p,{children:"It provides flexibility in managing message storage and retrieval within a chat system."}),"\n",(0,r.jsx)(t.h3,{id:"inputs-5",children:"Inputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"message"}),(0,r.jsx)(t.td,{children:"Message"}),(0,r.jsx)(t.td,{children:"The chat message to be stored. (Required)"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"memory"}),(0,r.jsx)(t.td,{children:"External Memory"}),(0,r.jsx)(t.td,{children:"The external memory to store the message. If empty, it will use the Langflow tables."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"sender"}),(0,r.jsx)(t.td,{children:"Sender"}),(0,r.jsx)(t.td,{children:"The sender of the message. Can be Machine or User. If empty, the current sender parameter will be used."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"sender_name"}),(0,r.jsx)(t.td,{children:"Sender Name"}),(0,r.jsx)(t.td,{children:"The name of the sender. Can be AI or User. If empty, the current sender parameter will be used."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"session_id"}),(0,r.jsx)(t.td,{children:"Session ID"}),(0,r.jsx)(t.td,{children:"The session ID of the chat. If empty, the current session ID parameter will be used."})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"outputs-5",children:"Outputs"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"stored_messages"}),(0,r.jsx)(t.td,{children:"Stored Messages"}),(0,r.jsx)(t.td,{children:"The list of stored messages after the current message has been added."})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"structured-output",children:"Structured output"}),"\n",(0,r.jsx)(t.p,{children:"This component transforms LLM responses into structured data formats."}),"\n",(0,r.jsx)(t.h3,{id:"input",children:"Input"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"llm"}),(0,r.jsx)(t.td,{children:"Language Model"}),(0,r.jsx)(t.td,{children:"The language model to use to generate the structured output."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_value"}),(0,r.jsx)(t.td,{children:"Input message"}),(0,r.jsx)(t.td,{children:"The input message for the language model to process."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"schema_name"}),(0,r.jsx)(t.td,{children:"Schema Name"}),(0,r.jsx)(t.td,{children:"Provide a name for the output data schema."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"output_schema"}),(0,r.jsx)(t.td,{children:"Output Schema"}),(0,r.jsx)(t.td,{children:"Define the structure and data types for the model's output."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"multiple"}),(0,r.jsx)(t.td,{children:"Generate Multiple"}),(0,r.jsx)(t.td,{children:"Set to True if the model should generate a list of outputs instead of a single output."})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"output",children:"Output"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"stored_messages"}),(0,r.jsx)(t.td,{children:"Stored Messages"}),(0,r.jsx)(t.td,{children:"structured output based on the defined schema."})]})})]})]})}function o(e={}){const{wrapper:t}={...(0,d.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},72654:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/astra_db_chat_memory_rounded-9746ca2bb69d3b07ac0a071f4b9471b3.png"},28453:(e,t,s)=>{s.d(t,{R:()=>i,x:()=>l});var n=s(96540);const r={},d=n.createContext(r);function i(e){const t=n.useContext(d);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),n.createElement(d.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e6c6a4d2.1991f1e2.js b/assets/js/e6c6a4d2.76f42c39.js similarity index 53% rename from assets/js/e6c6a4d2.1991f1e2.js rename to assets/js/e6c6a4d2.76f42c39.js index ab62d84af0..3b39092b94 100644 --- a/assets/js/e6c6a4d2.1991f1e2.js +++ b/assets/js/e6c6a4d2.76f42c39.js @@ -1 +1 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[8504],{94910:(e,t,n)=>{n.r(t),n.d(t,{contentTitle:()=>l,default:()=>d,frontMatter:()=>o,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"}],"title":"Components","default":[],"nullable":true},"input_value":{"anyOf":[{"type":"string"}],"title":"Input Value","nullable":true},"session":{"anyOf":[{"type":"string"}],"title":"Session","nullable":true},"type":{"anyOf":[{"type":"string","enum":["chat","text","any"]}],"title":"Type","description":"Defines on which components the input value should be applied. \'any\' applies to all input components.","default":"any","nullable":true}},"additionalProperties":false,"type":"object","title":"InputValueRequest","example":{"components":["components_id","Component Name"],"input_value":"input_value","session":"session_id"}},"type":"array"}],"title":"Inputs","nullable":true},"outputs":{"anyOf":[{"items":{"type":"string"},"type":"array"}],"title":"Outputs","nullable":true},"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.","example":{"Component Name":{"parameter_name":"value"},"component_id":{"parameter_name":"value"},"parameter_name":"value"}}],"nullable":true},"stream":{"type":"boolean","title":"Stream","default":false},"session_id":{"anyOf":[{"type":"string"}],"title":"Session Id","nullable":true}},"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":[{}],"title":"Results","nullable":true},"artifacts":{"anyOf":[{}],"title":"Artifacts","nullable":true},"outputs":{"anyOf":[{"type":"object"}],"title":"Outputs","nullable":true},"logs":{"anyOf":[{"type":"object"}],"title":"Logs","nullable":true},"messages":{"anyOf":[{"items":{"properties":{"message":{"anyOf":[{"type":"string"},{"items":{"anyOf":[{"type":"string"},{"type":"object"}]},"type":"array"}],"title":"Message"},"sender":{"anyOf":[{"type":"string"}],"title":"Sender","default":"Machine","nullable":true},"sender_name":{"anyOf":[{"type":"string"}],"title":"Sender Name","default":"AI","nullable":true},"session_id":{"anyOf":[{"type":"string"}],"title":"Session Id","nullable":true},"stream_url":{"anyOf":[{"type":"string"}],"title":"Stream Url","nullable":true},"component_id":{"anyOf":[{"type":"string"}],"title":"Component Id","nullable":true},"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"}],"title":"Messages","nullable":true},"timedelta":{"anyOf":[{"type":"number"}],"title":"Timedelta","nullable":true},"duration":{"anyOf":[{"type":"string"}],"title":"Duration","nullable":true},"component_display_name":{"anyOf":[{"type":"string"}],"title":"Component Display Name","nullable":true},"component_id":{"anyOf":[{"type":"string"}],"title":"Component Id","nullable":true},"used_frozen_result":{"anyOf":[{"type":"boolean"}],"title":"Used Frozen Result","default":false,"nullable":true}},"type":"object","title":"ResultData"}],"nullable":true},"type":"array","title":"Outputs"}},"type":"object","title":"RunOutputs"},"type":"array"}],"title":"Outputs","default":[],"nullable":true},"session_id":{"anyOf":[{"type":"string"}],"title":"Session Id","nullable":true}},"type":"object","title":"RunResponse","description":"Run response schema."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}},"method":"post","path":"/api/v1/run/advanced/{flow_id}","securitySchemes":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"api/v1/login"}}},"API key query":{"type":"apiKey","in":"query","name":"x-api-key"},"API key header":{"type":"apiKey","in":"header","name":"x-api-key"}},"jsonRequestBodyExample":{"stream":false},"info":{"title":"Langflow","version":"1.1.1"},"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 \\"elit_6_a\\": \\"\\",\\n \\"exadb\\": \\"\\",\\n \\"dolore_\\": \\"\\"\\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),a=n(28453);const o={},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,a.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,a.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}},28453:(e,t,n)=>{n.d(t,{R:()=>o,x:()=>l});var s=n(96540);const i={},a=s.createContext(i);function o(e){const t=s.useContext(a);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:o(e.components),s.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[8504],{94910:(e,t,n)=>{n.r(t),n.d(t,{contentTitle:()=>l,default:()=>d,frontMatter:()=>o,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"}],"title":"Components","default":[],"nullable":true},"input_value":{"anyOf":[{"type":"string"}],"title":"Input Value","nullable":true},"session":{"anyOf":[{"type":"string"}],"title":"Session","nullable":true},"type":{"anyOf":[{"type":"string","enum":["chat","text","any"]}],"title":"Type","description":"Defines on which components the input value should be applied. \'any\' applies to all input components.","default":"any","nullable":true}},"additionalProperties":false,"type":"object","title":"InputValueRequest","example":{"components":["components_id","Component Name"],"input_value":"input_value","session":"session_id"}},"type":"array"}],"title":"Inputs","nullable":true},"outputs":{"anyOf":[{"items":{"type":"string"},"type":"array"}],"title":"Outputs","nullable":true},"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.","example":{"Component Name":{"parameter_name":"value"},"component_id":{"parameter_name":"value"},"parameter_name":"value"}}],"nullable":true},"stream":{"type":"boolean","title":"Stream","default":false},"session_id":{"anyOf":[{"type":"string"}],"title":"Session Id","nullable":true}},"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":[{}],"title":"Results","nullable":true},"artifacts":{"anyOf":[{}],"title":"Artifacts","nullable":true},"outputs":{"anyOf":[{"type":"object"}],"title":"Outputs","nullable":true},"logs":{"anyOf":[{"type":"object"}],"title":"Logs","nullable":true},"messages":{"anyOf":[{"items":{"properties":{"message":{"anyOf":[{"type":"string"},{"items":{"anyOf":[{"type":"string"},{"type":"object"}]},"type":"array"}],"title":"Message"},"sender":{"anyOf":[{"type":"string"}],"title":"Sender","default":"Machine","nullable":true},"sender_name":{"anyOf":[{"type":"string"}],"title":"Sender Name","default":"AI","nullable":true},"session_id":{"anyOf":[{"type":"string"}],"title":"Session Id","nullable":true},"stream_url":{"anyOf":[{"type":"string"}],"title":"Stream Url","nullable":true},"component_id":{"anyOf":[{"type":"string"}],"title":"Component Id","nullable":true},"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"}],"title":"Messages","nullable":true},"timedelta":{"anyOf":[{"type":"number"}],"title":"Timedelta","nullable":true},"duration":{"anyOf":[{"type":"string"}],"title":"Duration","nullable":true},"component_display_name":{"anyOf":[{"type":"string"}],"title":"Component Display Name","nullable":true},"component_id":{"anyOf":[{"type":"string"}],"title":"Component Id","nullable":true},"used_frozen_result":{"anyOf":[{"type":"boolean"}],"title":"Used Frozen Result","default":false,"nullable":true}},"type":"object","title":"ResultData"}],"nullable":true},"type":"array","title":"Outputs"}},"type":"object","title":"RunOutputs"},"type":"array"}],"title":"Outputs","default":[],"nullable":true},"session_id":{"anyOf":[{"type":"string"}],"title":"Session Id","nullable":true}},"type":"object","title":"RunResponse","description":"Run response schema."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}},"method":"post","path":"/api/v1/run/advanced/{flow_id}","securitySchemes":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"api/v1/login"}}},"API key query":{"type":"apiKey","in":"query","name":"x-api-key"},"API key header":{"type":"apiKey","in":"header","name":"x-api-key"}},"jsonRequestBodyExample":{"stream":false},"info":{"title":"Langflow","version":"1.1.1"},"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 \\"Duis_\\": \\"\\",\\n \\"ullamcoe3\\": \\"\\",\\n \\"incc7\\": \\"\\"\\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),a=n(28453);const o={},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,a.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,a.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}},28453:(e,t,n)=>{n.d(t,{R:()=>o,x:()=>l});var s=n(96540);const i={},a=s.createContext(i);function o(e){const t=s.useContext(a);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:o(e.components),s.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f66238ae.3f25c4d6.js b/assets/js/f66238ae.3f25c4d6.js new file mode 100644 index 0000000000..3f5d09be08 --- /dev/null +++ b/assets/js/f66238ae.3f25c4d6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[3391],{45175:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>h,contentTitle:()=>c,default:()=>o,frontMatter:()=>n,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"Components/components-vector-stores","title":"Vector stores","description":"Vector databases store vector data, which backs AI workloads like chatbots and Retrieval Augmented Generation.","source":"@site/docs/Components/components-vector-stores.md","sourceDirName":"Components","slug":"/components-vector-stores","permalink":"/components-vector-stores","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Vector stores","slug":"/components-vector-stores"},"sidebar":"docs","previous":{"title":"Tools","permalink":"/components-tools"},"next":{"title":"Agents overview","permalink":"/agents-overview"}}');var d=r(74848),i=r(28453);const n={title:"Vector stores",slug:"/components-vector-stores"},c="Vector store components in Langflow",h={},l=[{value:"Use a vector store component in a flow",id:"use-a-vector-store-component-in-a-flow",level:2},{value:"Astra DB Vector Store",id:"astra-db-vector-store",level:2},{value:"Inputs",id:"inputs",level:3},{value:"Outputs",id:"outputs",level:3},{value:"AstraDB Graph vector store",id:"astradb-graph-vector-store",level:2},{value:"Inputs",id:"inputs-1",level:3},{value:"Outputs",id:"outputs-1",level:3},{value:"Cassandra",id:"cassandra",level:2},{value:"Inputs",id:"inputs-2",level:3},{value:"Outputs",id:"outputs-2",level:3},{value:"Cassandra Graph Vector Store",id:"cassandra-graph-vector-store",level:2},{value:"Inputs",id:"inputs-3",level:3},{value:"Outputs",id:"outputs-3",level:3},{value:"Chroma DB",id:"chroma-db",level:2},{value:"Inputs",id:"inputs-4",level:3},{value:"Outputs",id:"outputs-4",level:3},{value:"Clickhouse",id:"clickhouse",level:2},{value:"Inputs",id:"inputs-5",level:3},{value:"Outputs",id:"outputs-5",level:3},{value:"Couchbase",id:"couchbase",level:2},{value:"Inputs",id:"inputs-6",level:3},{value:"Outputs",id:"outputs-6",level:3},{value:"Elasticsearch",id:"elasticsearch",level:2},{value:"Inputs",id:"inputs-7",level:3},{value:"Outputs",id:"outputs-7",level:3},{value:"FAISS",id:"faiss",level:2},{value:"Inputs",id:"inputs-8",level:3},{value:"Outputs",id:"outputs-8",level:3},{value:"Hyper-Converged Database (HCD) Vector Store",id:"hyper-converged-database-hcd-vector-store",level:2},{value:"Inputs",id:"inputs-9",level:3},{value:"Outputs",id:"outputs-9",level:3},{value:"Milvus",id:"milvus",level:2},{value:"Inputs",id:"inputs-10",level:3},{value:"Outputs",id:"outputs-10",level:3},{value:"MongoDB Atlas",id:"mongodb-atlas",level:2},{value:"Inputs",id:"inputs-11",level:3},{value:"Outputs",id:"outputs-11",level:3},{value:"Opensearch",id:"opensearch",level:2},{value:"Inputs",id:"inputs-12",level:3},{value:"Outputs",id:"outputs-12",level:3},{value:"PGVector",id:"pgvector",level:2},{value:"Inputs",id:"inputs-13",level:3},{value:"Outputs",id:"outputs-13",level:3},{value:"Pinecone",id:"pinecone",level:2},{value:"Inputs",id:"inputs-14",level:3},{value:"Outputs",id:"outputs-14",level:3},{value:"Qdrant",id:"qdrant",level:2},{value:"Inputs",id:"inputs-15",level:3},{value:"Outputs",id:"outputs-15",level:3},{value:"Redis",id:"redis",level:2},{value:"Inputs",id:"inputs-16",level:3},{value:"Outputs",id:"outputs-16",level:3},{value:"Supabase",id:"supabase",level:2},{value:"Inputs",id:"inputs-17",level:3},{value:"Outputs",id:"outputs-17",level:3},{value:"Upstash",id:"upstash",level:2},{value:"Inputs",id:"inputs-18",level:3},{value:"Outputs",id:"outputs-18",level:3},{value:"Vectara",id:"vectara",level:2},{value:"Inputs",id:"inputs-19",level:3},{value:"Outputs",id:"outputs-19",level:3},{value:"Vectara Search",id:"vectara-search",level:2},{value:"Inputs",id:"inputs-20",level:3},{value:"Outputs",id:"outputs-20",level:3},{value:"Vectara RAG",id:"vectara-rag",level:2},{value:"Inputs",id:"inputs-21",level:3},{value:"Outputs",id:"outputs-21",level:3},{value:"Weaviate",id:"weaviate",level:2},{value:"Inputs",id:"inputs-22",level:3},{value:"Outputs",id:"outputs-22",level:3},{value:"Weaviate Search",id:"weaviate-search",level:2},{value:"Inputs",id:"inputs-23",level:3},{value:"Outputs",id:"outputs-23",level:3}];function a(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(t.header,{children:(0,d.jsx)(t.h1,{id:"vector-store-components-in-langflow",children:"Vector store components in Langflow"})}),"\n",(0,d.jsx)(t.p,{children:"Vector databases store vector data, which backs AI workloads like chatbots and Retrieval Augmented Generation."}),"\n",(0,d.jsx)(t.p,{children:"Vector database components establish connections to existing vector databases or create in-memory vector stores for storing and retrieving vector data."}),"\n",(0,d.jsxs)(t.p,{children:["Vector database components are distinct from ",(0,d.jsx)(t.a,{href:"/components-memories",children:"memory components"}),", which are built specifically for storing and retrieving chat messages from external databases."]}),"\n",(0,d.jsx)(t.h2,{id:"use-a-vector-store-component-in-a-flow",children:"Use a vector store component in a flow"}),"\n",(0,d.jsxs)(t.p,{children:["This example uses the ",(0,d.jsx)(t.strong,{children:"Astra DB vector store"})," component. Your vector store component's parameters and authentication may be different, but the document ingestion workflow is the same. A document is loaded from a local machine and chunked. The Astra DB vector store generates embeddings with the connected ",(0,d.jsx)(t.a,{href:"/components-models",children:"model"})," component, and stores them in the connected Astra DB database."]}),"\n",(0,d.jsx)(t.p,{children:"This vector data can then be retrieved for workloads like Retrieval Augmented Generation."}),"\n",(0,d.jsx)(t.p,{children:(0,d.jsx)(t.img,{src:r(67719).A+"",width:"2898",height:"1110"})}),"\n",(0,d.jsxs)(t.p,{children:["The user's chat input is embedded and compared to the vectors embedded during document ingestion for a similarity search.\nThe results are output from the vector database component as a ",(0,d.jsx)(t.a,{href:"/concepts-objects",children:"Data"})," object and parsed into text.\nThis text fills the ",(0,d.jsx)(t.code,{children:"{context}"})," variable in the ",(0,d.jsx)(t.strong,{children:"Prompt"})," component, which informs the ",(0,d.jsx)(t.strong,{children:"Open AI model"})," component's responses."]}),"\n",(0,d.jsxs)(t.p,{children:["Alternatively, connect the vector database component's ",(0,d.jsx)(t.strong,{children:"Retriever"})," port to a ",(0,d.jsx)(t.a,{href:"components-tools#retriever-tool",children:"retriever tool"}),", and then to an ",(0,d.jsx)(t.a,{href:"/components-agents",children:"agent"})," component. This enables the agent to use your vector database as a tool and make decisions based on the available data."]}),"\n",(0,d.jsx)(t.p,{children:(0,d.jsx)(t.img,{src:r(59072).A+"",width:"2414",height:"1602"})}),"\n",(0,d.jsx)(t.h2,{id:"astra-db-vector-store",children:"Astra DB Vector Store"}),"\n",(0,d.jsx)(t.p,{children:"This component implements a Vector Store using Astra DB with search capabilities."}),"\n",(0,d.jsxs)(t.p,{children:["For more information, see the ",(0,d.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/databases/create-database.html",children:"DataStax documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"collection_name"}),(0,d.jsx)(t.td,{children:"Collection Name"}),(0,d.jsx)(t.td,{children:"The name of the collection within Astra DB where the vectors will be stored (required)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"token"}),(0,d.jsx)(t.td,{children:"Astra DB Application Token"}),(0,d.jsx)(t.td,{children:"Authentication token for accessing Astra DB (required)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"api_endpoint"}),(0,d.jsx)(t.td,{children:"API Endpoint"}),(0,d.jsx)(t.td,{children:"API endpoint URL for the Astra DB service (required)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_input"}),(0,d.jsx)(t.td,{children:"Search Input"}),(0,d.jsx)(t.td,{children:"Query string for similarity search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Ingest Data"}),(0,d.jsx)(t.td,{children:"Data to be ingested into the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"namespace"}),(0,d.jsx)(t.td,{children:"Namespace"}),(0,d.jsx)(t.td,{children:"Optional namespace within Astra DB to use for the collection"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding_choice"}),(0,d.jsx)(t.td,{children:"Embedding Model or Astra Vectorize"}),(0,d.jsx)(t.td,{children:"Determines whether to use an Embedding Model or Astra Vectorize for the collection"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embedding Model"}),(0,d.jsx)(t.td,{children:"Allows an embedding model configuration (when using Embedding Model)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"provider"}),(0,d.jsx)(t.td,{children:"Vectorize Provider"}),(0,d.jsx)(t.td,{children:"Provider for Astra Vectorize (when using Astra Vectorize)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"metric"}),(0,d.jsx)(t.td,{children:"Metric"}),(0,d.jsx)(t.td,{children:"Optional distance metric for vector comparisons"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"batch_size"}),(0,d.jsx)(t.td,{children:"Batch Size"}),(0,d.jsx)(t.td,{children:"Optional number of data to process in a single batch"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"setup_mode"}),(0,d.jsx)(t.td,{children:"Setup Mode"}),(0,d.jsx)(t.td,{children:'Configuration mode for setting up the vector store (options: "Sync", "Async", "Off", default: "Sync")'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"pre_delete_collection"}),(0,d.jsx)(t.td,{children:"Pre Delete Collection"}),(0,d.jsx)(t.td,{children:"Boolean flag to determine whether to delete the collection before creating a new one"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Number of Results"}),(0,d.jsx)(t.td,{children:"Number of results to return in similarity search (default: 4)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_type"}),(0,d.jsx)(t.td,{children:"Search Type"}),(0,d.jsx)(t.td,{children:'Search type to use (options: "Similarity", "Similarity with score threshold", "MMR (Max Marginal Relevance)")'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_score_threshold"}),(0,d.jsx)(t.td,{children:"Search Score Threshold"}),(0,d.jsx)(t.td,{children:"Minimum similarity score threshold for search results"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_filter"}),(0,d.jsx)(t.td,{children:"Search Metadata Filter"}),(0,d.jsx)(t.td,{children:"Optional dictionary of filters to apply to the search query"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"Vector Store"}),(0,d.jsx)(t.td,{children:"Astra DB vector store instance configured with the specified parameters."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"Search Results"}),(0,d.jsxs)(t.td,{children:["The results of the similarity search as a list of ",(0,d.jsx)(t.code,{children:"Data"})," objects."]})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"astradb-graph-vector-store",children:"AstraDB Graph vector store"}),"\n",(0,d.jsxs)(t.p,{children:["This component implements a Vector Store using AstraDB with graph capabilities.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/tutorials/graph-rag.html",children:"Astra DB Serverless documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-1",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"collection_name"}),(0,d.jsx)(t.td,{children:"Collection Name"}),(0,d.jsx)(t.td,{children:"The name of the collection within AstraDB where the vectors will be stored (required)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"token"}),(0,d.jsx)(t.td,{children:"Astra DB Application Token"}),(0,d.jsx)(t.td,{children:"Authentication token for accessing AstraDB (required)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"api_endpoint"}),(0,d.jsx)(t.td,{children:"API Endpoint"}),(0,d.jsx)(t.td,{children:"API endpoint URL for the AstraDB service (required)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_input"}),(0,d.jsx)(t.td,{children:"Search Input"}),(0,d.jsx)(t.td,{children:"Query string for similarity search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Ingest Data"}),(0,d.jsx)(t.td,{children:"Data to be ingested into the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"namespace"}),(0,d.jsx)(t.td,{children:"Namespace"}),(0,d.jsx)(t.td,{children:"Optional namespace within AstraDB to use for the collection"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embedding Model"}),(0,d.jsx)(t.td,{children:"Embedding model to use"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"metric"}),(0,d.jsx)(t.td,{children:"Metric"}),(0,d.jsx)(t.td,{children:'Distance metric for vector comparisons (options: "cosine", "euclidean", "dot_product")'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"setup_mode"}),(0,d.jsx)(t.td,{children:"Setup Mode"}),(0,d.jsx)(t.td,{children:'Configuration mode for setting up the vector store (options: "Sync", "Async", "Off")'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"pre_delete_collection"}),(0,d.jsx)(t.td,{children:"Pre Delete Collection"}),(0,d.jsx)(t.td,{children:"Boolean flag to determine whether to delete the collection before creating a new one"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Number of Results"}),(0,d.jsx)(t.td,{children:"Number of results to return in similarity search (default: 4)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_type"}),(0,d.jsx)(t.td,{children:"Search Type"}),(0,d.jsx)(t.td,{children:'Search type to use (options: "Similarity", "Graph Traversal", "Hybrid")'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"traversal_depth"}),(0,d.jsx)(t.td,{children:"Traversal Depth"}),(0,d.jsx)(t.td,{children:"Maximum depth for graph traversal searches (default: 1)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_score_threshold"}),(0,d.jsx)(t.td,{children:"Search Score Threshold"}),(0,d.jsx)(t.td,{children:"Minimum similarity score threshold for search results"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_filter"}),(0,d.jsx)(t.td,{children:"Search Metadata Filter"}),(0,d.jsx)(t.td,{children:"Optional dictionary of filters to apply to the search query"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-1",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"Vector Store"}),(0,d.jsx)(t.td,{children:"Astra DB graph vector store instance configured with the specified parameters."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"Search Results"}),(0,d.jsxs)(t.td,{children:["The results of the similarity search as a list of ",(0,d.jsx)(t.code,{children:"Data"})," objects."]})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"cassandra",children:"Cassandra"}),"\n",(0,d.jsxs)(t.p,{children:["This component creates a Cassandra Vector Store with search capabilities.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://cassandra.apache.org/doc/latest/cassandra/vector-search/overview.html",children:"Cassandra documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-2",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"database_ref"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Contact points for the database or AstraDB database ID"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"username"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Username for the database (leave empty for AstraDB)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"token"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"User password for the database or AstraDB token"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"keyspace"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Table Keyspace or AstraDB namespace"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"table_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Name of the table or AstraDB collection"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ttl_seconds"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Time-to-live for added texts"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"batch_size"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of data to process in a single batch"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"setup_mode"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Configuration mode for setting up the Cassandra table"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"cluster_kwargs"}),(0,d.jsx)(t.td,{children:"Dict"}),(0,d.jsx)(t.td,{children:"Additional keyword arguments for the Cassandra cluster"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_query"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Query for similarity search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Data to be ingested into the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embeddings"}),(0,d.jsx)(t.td,{children:"Embedding function to use"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of results to return in search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_type"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Type of search to perform"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_score_threshold"}),(0,d.jsx)(t.td,{children:"Float"}),(0,d.jsx)(t.td,{children:"Minimum similarity score for search results"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_filter"}),(0,d.jsx)(t.td,{children:"Dict"}),(0,d.jsx)(t.td,{children:"Metadata filters for search query"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"body_search"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Document textual search terms"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"enable_body_search"}),(0,d.jsx)(t.td,{children:"Boolean"}),(0,d.jsx)(t.td,{children:"Flag to enable body search"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-2",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"Cassandra"}),(0,d.jsx)(t.td,{children:"A Cassandra vector store instance configured with the specified parameters."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"List[Data]"}),(0,d.jsxs)(t.td,{children:["The results of the similarity search as a list of ",(0,d.jsx)(t.code,{children:"Data"})," objects."]})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"cassandra-graph-vector-store",children:"Cassandra Graph Vector Store"}),"\n",(0,d.jsx)(t.p,{children:"This component implements a Cassandra Graph Vector Store with search capabilities."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-3",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"database_ref"}),(0,d.jsx)(t.td,{children:"Contact Points / Astra Database ID"}),(0,d.jsx)(t.td,{children:"Contact points for the database or AstraDB database ID (required)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"username"}),(0,d.jsx)(t.td,{children:"Username"}),(0,d.jsx)(t.td,{children:"Username for the database (leave empty for AstraDB)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"token"}),(0,d.jsx)(t.td,{children:"Password / AstraDB Token"}),(0,d.jsx)(t.td,{children:"User password for the database or AstraDB token (required)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"keyspace"}),(0,d.jsx)(t.td,{children:"Keyspace"}),(0,d.jsx)(t.td,{children:"Table Keyspace or AstraDB namespace (required)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"table_name"}),(0,d.jsx)(t.td,{children:"Table Name"}),(0,d.jsx)(t.td,{children:"The name of the table or AstraDB collection where vectors will be stored (required)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"setup_mode"}),(0,d.jsx)(t.td,{children:"Setup Mode"}),(0,d.jsx)(t.td,{children:'Configuration mode for setting up the Cassandra table (options: "Sync", "Off", default: "Sync")'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"cluster_kwargs"}),(0,d.jsx)(t.td,{children:"Cluster arguments"}),(0,d.jsx)(t.td,{children:"Optional dictionary of additional keyword arguments for the Cassandra cluster"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_query"}),(0,d.jsx)(t.td,{children:"Search Query"}),(0,d.jsx)(t.td,{children:"Query string for similarity search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Ingest Data"}),(0,d.jsx)(t.td,{children:"Data to be ingested into the vector store (list of Data objects)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embedding"}),(0,d.jsx)(t.td,{children:"Embedding model to use"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Number of Results"}),(0,d.jsx)(t.td,{children:"Number of results to return in similarity search (default: 4)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_type"}),(0,d.jsx)(t.td,{children:"Search Type"}),(0,d.jsx)(t.td,{children:'Search type to use (options: "Traversal", "MMR traversal", "Similarity", "Similarity with score threshold", "MMR (Max Marginal Relevance)", default: "Traversal")'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"depth"}),(0,d.jsx)(t.td,{children:"Depth of traversal"}),(0,d.jsx)(t.td,{children:'The maximum depth of edges to traverse (for "Traversal" or "MMR traversal" search types, default: 1)'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_score_threshold"}),(0,d.jsx)(t.td,{children:"Search Score Threshold"}),(0,d.jsx)(t.td,{children:'Minimum similarity score threshold for search results (for "Similarity with score threshold" search type)'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_filter"}),(0,d.jsx)(t.td,{children:"Search Metadata Filter"}),(0,d.jsx)(t.td,{children:"Optional dictionary of filters to apply to the search query"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-3",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"Vector Store"}),(0,d.jsx)(t.td,{children:"A Cassandra Graph vector store instance configured with the specified parameters."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"Search Results"}),(0,d.jsxs)(t.td,{children:["The results of the similarity search as a list of ",(0,d.jsx)(t.code,{children:"Data"})," objects."]})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"chroma-db",children:"Chroma DB"}),"\n",(0,d.jsxs)(t.p,{children:["This component creates a Chroma Vector Store with search capabilities.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://docs.trychroma.com/",children:"Chroma documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-4",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"collection_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:'The name of the Chroma collection. Default: "langflow".'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"persist_directory"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"The directory to persist the Chroma database."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_query"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"The query to search for in the vector store."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"The data to ingest into the vector store (list of Data objects)."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embeddings"}),(0,d.jsx)(t.td,{children:"The embedding function to use for the vector store."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"chroma_server_cors_allow_origins"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"CORS allow origins for the Chroma server."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"chroma_server_host"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Host for the Chroma server."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"chroma_server_http_port"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"HTTP port for the Chroma server."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"chroma_server_grpc_port"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"gRPC port for the Chroma server."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"chroma_server_ssl_enabled"}),(0,d.jsx)(t.td,{children:"Boolean"}),(0,d.jsx)(t.td,{children:"Enable SSL for the Chroma server."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"allow_duplicates"}),(0,d.jsx)(t.td,{children:"Boolean"}),(0,d.jsx)(t.td,{children:"Allow duplicate documents in the vector store."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_type"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:'Type of search to perform: "Similarity" or "MMR".'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of results to return from the search. Default: 10."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"limit"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Limit the number of records to compare when Allow Duplicates is False."})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-4",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"Chroma"}),(0,d.jsx)(t.td,{children:"Chroma vector store instance"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"List[Data]"}),(0,d.jsx)(t.td,{children:"Results of similarity search"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"clickhouse",children:"Clickhouse"}),"\n",(0,d.jsxs)(t.p,{children:["This component implements a Clickhouse Vector Store with search capabilities.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://clickhouse.com/docs/en/intro",children:"CLickhouse Documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-5",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"host"}),(0,d.jsx)(t.td,{children:"hostname"}),(0,d.jsx)(t.td,{children:'Clickhouse server hostname (required, default: "localhost")'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"port"}),(0,d.jsx)(t.td,{children:"port"}),(0,d.jsx)(t.td,{children:"Clickhouse server port (required, default: 8123)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"database"}),(0,d.jsx)(t.td,{children:"database"}),(0,d.jsx)(t.td,{children:"Clickhouse database name (required)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"table"}),(0,d.jsx)(t.td,{children:"Table name"}),(0,d.jsx)(t.td,{children:"Clickhouse table name (required)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"username"}),(0,d.jsx)(t.td,{children:"The ClickHouse user name."}),(0,d.jsx)(t.td,{children:"Username for authentication (required)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"password"}),(0,d.jsx)(t.td,{children:"The password for username."}),(0,d.jsx)(t.td,{children:"Password for authentication (required)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"index_type"}),(0,d.jsx)(t.td,{children:"index_type"}),(0,d.jsx)(t.td,{children:'Type of the index (options: "annoy", "vector_similarity", default: "annoy")'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"metric"}),(0,d.jsx)(t.td,{children:"metric"}),(0,d.jsx)(t.td,{children:'Metric to compute distance (options: "angular", "euclidean", "manhattan", "hamming", "dot", default: "angular")'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"secure"}),(0,d.jsx)(t.td,{children:"Use https/TLS"}),(0,d.jsx)(t.td,{children:"Overrides inferred values from the interface or port arguments (default: false)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"index_param"}),(0,d.jsx)(t.td,{children:"Param of the index"}),(0,d.jsx)(t.td,{children:"Index parameters (default: \"'L2Distance',100\")"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"index_query_params"}),(0,d.jsx)(t.td,{children:"index query params"}),(0,d.jsx)(t.td,{children:"Additional index query parameters"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_query"}),(0,d.jsx)(t.td,{children:"Search Query"}),(0,d.jsx)(t.td,{children:"Query string for similarity search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Ingest Data"}),(0,d.jsx)(t.td,{children:"Data to be ingested into the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embedding"}),(0,d.jsx)(t.td,{children:"Embedding model to use"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Number of Results"}),(0,d.jsx)(t.td,{children:"Number of results to return in similarity search (default: 4)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"score_threshold"}),(0,d.jsx)(t.td,{children:"Score threshold"}),(0,d.jsx)(t.td,{children:"Threshold for similarity scores"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-5",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"Vector Store"}),(0,d.jsx)(t.td,{children:"Built Clickhouse vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"Search Results"}),(0,d.jsx)(t.td,{children:"Results of the similarity search as a list of Data objects"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"couchbase",children:"Couchbase"}),"\n",(0,d.jsxs)(t.p,{children:["This component creates a Couchbase Vector Store with search capabilities.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://docs.couchbase.com/home/index.html",children:"Couchbase documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-6",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"couchbase_connection_string"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"Couchbase Cluster connection string (required)."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"couchbase_username"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Couchbase username (required)."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"couchbase_password"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"Couchbase password (required)."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"bucket_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Name of the Couchbase bucket (required)."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"scope_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Name of the Couchbase scope (required)."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"collection_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Name of the Couchbase collection (required)."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"index_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Name of the Couchbase index (required)."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_query"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"The query to search for in the vector store."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"The data to ingest into the vector store (list of Data objects)."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embeddings"}),(0,d.jsx)(t.td,{children:"The embedding function to use for the vector store."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of results to return from the search. Default: 4 (advanced)."})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-6",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"CouchbaseVectorStore"}),(0,d.jsx)(t.td,{children:"A Couchbase vector store instance configured with the specified parameters."})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"elasticsearch",children:"Elasticsearch"}),"\n",(0,d.jsxs)(t.p,{children:["This component creates an Elasticsearch Vector Store with search capabilities.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://www.elastic.co/guide/en/elasticsearch/reference/current/dense-vector.html",children:"Elasticsearch documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-7",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"es_url"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Elasticsearch server URL"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"es_user"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Username for Elasticsearch authentication"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"es_password"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"Password for Elasticsearch authentication"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"index_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Name of the Elasticsearch index"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"strategy"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:'Strategy for vector search ("approximate_k_nearest_neighbors" or "script_scoring")'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"distance_strategy"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:'Strategy for distance calculation ("COSINE", "EUCLIDEAN_DISTANCE", "DOT_PRODUCT")'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_query"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Query for similarity search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Data to be ingested into the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embeddings"}),(0,d.jsx)(t.td,{children:"Embedding function to use"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of results to return in search (default: 4)"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-7",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"ElasticsearchStore"}),(0,d.jsx)(t.td,{children:"Elasticsearch vector store instance"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"List[Data]"}),(0,d.jsx)(t.td,{children:"Results of similarity search"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"faiss",children:"FAISS"}),"\n",(0,d.jsxs)(t.p,{children:["This component creates a FAISS Vector Store with search capabilities.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://faiss.ai/index.html",children:"FAISS documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-8",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"index_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:'The name of the FAISS index. Default: "langflow_index".'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"persist_directory"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Path to save the FAISS index. It will be relative to where Langflow is running."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_query"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"The query to search for in the vector store."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"The data to ingest into the vector store (list of Data objects or documents)."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"allow_dangerous_deserialization"}),(0,d.jsx)(t.td,{children:"Boolean"}),(0,d.jsx)(t.td,{children:"Set to True to allow loading pickle files from untrusted sources. Default: True (advanced)."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embeddings"}),(0,d.jsx)(t.td,{children:"The embedding function to use for the vector store."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of results to return from the search. Default: 4 (advanced)."})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-8",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"FAISS"}),(0,d.jsx)(t.td,{children:"A FAISS vector store instance configured with the specified parameters."})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"hyper-converged-database-hcd-vector-store",children:"Hyper-Converged Database (HCD) Vector Store"}),"\n",(0,d.jsx)(t.p,{children:"This component implements a Vector Store using HCD."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-9",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"collection_name"}),(0,d.jsx)(t.td,{children:"Collection Name"}),(0,d.jsx)(t.td,{children:"The name of the collection within HCD where the vectors will be stored (required)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"username"}),(0,d.jsx)(t.td,{children:"HCD Username"}),(0,d.jsx)(t.td,{children:'Authentication username for accessing HCD (default: "hcd-superuser", required)'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"password"}),(0,d.jsx)(t.td,{children:"HCD Password"}),(0,d.jsx)(t.td,{children:"Authentication password for accessing HCD (required)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"api_endpoint"}),(0,d.jsx)(t.td,{children:"HCD API Endpoint"}),(0,d.jsx)(t.td,{children:"API endpoint URL for the HCD service (required)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_input"}),(0,d.jsx)(t.td,{children:"Search Input"}),(0,d.jsx)(t.td,{children:"Query string for similarity search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Ingest Data"}),(0,d.jsx)(t.td,{children:"Data to be ingested into the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"namespace"}),(0,d.jsx)(t.td,{children:"Namespace"}),(0,d.jsx)(t.td,{children:'Optional namespace within HCD to use for the collection (default: "default_namespace")'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ca_certificate"}),(0,d.jsx)(t.td,{children:"CA Certificate"}),(0,d.jsx)(t.td,{children:"Optional CA certificate for TLS connections to HCD"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"metric"}),(0,d.jsx)(t.td,{children:"Metric"}),(0,d.jsx)(t.td,{children:'Optional distance metric for vector comparisons (options: "cosine", "dot_product", "euclidean")'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"batch_size"}),(0,d.jsx)(t.td,{children:"Batch Size"}),(0,d.jsx)(t.td,{children:"Optional number of data to process in a single batch"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"bulk_insert_batch_concurrency"}),(0,d.jsx)(t.td,{children:"Bulk Insert Batch Concurrency"}),(0,d.jsx)(t.td,{children:"Optional concurrency level for bulk insert operations"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"bulk_insert_overwrite_concurrency"}),(0,d.jsx)(t.td,{children:"Bulk Insert Overwrite Concurrency"}),(0,d.jsx)(t.td,{children:"Optional concurrency level for bulk insert operations that overwrite existing data"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"bulk_delete_concurrency"}),(0,d.jsx)(t.td,{children:"Bulk Delete Concurrency"}),(0,d.jsx)(t.td,{children:"Optional concurrency level for bulk delete operations"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"setup_mode"}),(0,d.jsx)(t.td,{children:"Setup Mode"}),(0,d.jsx)(t.td,{children:'Configuration mode for setting up the vector store (options: "Sync", "Async", "Off", default: "Sync")'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"pre_delete_collection"}),(0,d.jsx)(t.td,{children:"Pre Delete Collection"}),(0,d.jsx)(t.td,{children:"Boolean flag to determine whether to delete the collection before creating a new one"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"metadata_indexing_include"}),(0,d.jsx)(t.td,{children:"Metadata Indexing Include"}),(0,d.jsx)(t.td,{children:"Optional list of metadata fields to include in the indexing"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embedding or Astra Vectorize"}),(0,d.jsx)(t.td,{children:"Allows either an embedding model or an Astra Vectorize configuration"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"metadata_indexing_exclude"}),(0,d.jsx)(t.td,{children:"Metadata Indexing Exclude"}),(0,d.jsx)(t.td,{children:"Optional list of metadata fields to exclude from the indexing"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"collection_indexing_policy"}),(0,d.jsx)(t.td,{children:"Collection Indexing Policy"}),(0,d.jsx)(t.td,{children:"Optional dictionary defining the indexing policy for the collection"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Number of Results"}),(0,d.jsx)(t.td,{children:"Number of results to return in similarity search (default: 4)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_type"}),(0,d.jsx)(t.td,{children:"Search Type"}),(0,d.jsx)(t.td,{children:'Search type to use (options: "Similarity", "Similarity with score threshold", "MMR (Max Marginal Relevance)", default: "Similarity")'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_score_threshold"}),(0,d.jsx)(t.td,{children:"Search Score Threshold"}),(0,d.jsx)(t.td,{children:"Minimum similarity score threshold for search results (default: 0)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_filter"}),(0,d.jsx)(t.td,{children:"Search Metadata Filter"}),(0,d.jsx)(t.td,{children:"Optional dictionary of filters to apply to the search query"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-9",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"Vector Store"}),(0,d.jsxs)(t.td,{children:["An HCD vector store instance The results of the similarity search as a list of ",(0,d.jsx)(t.code,{children:"Data"})," objects."]})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"Search Results"}),(0,d.jsxs)(t.td,{children:["The results of the similarity search as a list of ",(0,d.jsx)(t.code,{children:"Data"})," objects."]})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"milvus",children:"Milvus"}),"\n",(0,d.jsxs)(t.p,{children:["This component creates a Milvus Vector Store with search capabilities.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://milvus.io/docs",children:"Milvus documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-10",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"collection_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Name of the Milvus collection"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"collection_description"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Description of the Milvus collection"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"uri"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Connection URI for Milvus"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"password"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"Password for Milvus"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"username"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"Username for Milvus"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"batch_size"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of data to process in a single batch"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_query"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Query for similarity search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Data to be ingested into the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embeddings"}),(0,d.jsx)(t.td,{children:"Embedding function to use"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of results to return in search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_type"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Type of search to perform"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_score_threshold"}),(0,d.jsx)(t.td,{children:"Float"}),(0,d.jsx)(t.td,{children:"Minimum similarity score for search results"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_filter"}),(0,d.jsx)(t.td,{children:"Dict"}),(0,d.jsx)(t.td,{children:"Metadata filters for search query"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"setup_mode"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Configuration mode for setting up the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_dimensions"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of dimensions of the vectors"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"pre_delete_collection"}),(0,d.jsx)(t.td,{children:"Boolean"}),(0,d.jsx)(t.td,{children:"Whether to delete the collection before creating a new one"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-10",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"Milvus"}),(0,d.jsx)(t.td,{children:"A Milvus vector store instance configured with the specified parameters."})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"mongodb-atlas",children:"MongoDB Atlas"}),"\n",(0,d.jsxs)(t.p,{children:["This component creates a MongoDB Atlas Vector Store with search capabilities.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://www.mongodb.com/docs/atlas/atlas-vector-search/tutorials/vector-search-quick-start/",children:"MongoDB Atlas documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-11",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"mongodb_atlas_cluster_uri"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"MongoDB Atlas Cluster URI"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"db_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Database name"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"collection_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Collection name"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"index_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Index name"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_query"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Query for similarity search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Data to be ingested into the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embeddings"}),(0,d.jsx)(t.td,{children:"Embedding function to use"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of results to return in search"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-11",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"MongoDBAtlasVectorSearch"}),(0,d.jsx)(t.td,{children:"MongoDB Atlas vector store instance"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"List[Data]"}),(0,d.jsx)(t.td,{children:"Results of similarity search"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"opensearch",children:"Opensearch"}),"\n",(0,d.jsxs)(t.p,{children:["This component creates an Opensearch vector store with search capabilities\nFor more information, see ",(0,d.jsx)(t.a,{href:"https://opensearch.org/platform/search/vector-database.html",children:"Opensearch documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-12",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"opensearch_url"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsxs)(t.td,{children:["URL for OpenSearch cluster (e.g. ",(0,d.jsx)(t.a,{href:"https://192.168.1.1:9200",children:"https://192.168.1.1:9200"}),")"]})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"index_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"The index name where the vectors will be stored in OpenSearch cluster"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_input"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Enter a search query. Leave empty to retrieve all documents or if hybrid search is being used"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Data to be ingested into the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embeddings"}),(0,d.jsx)(t.td,{children:"Embedding function to use"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_type"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:'Valid values are "similarity", "similarity_score_threshold", "mmr"'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of results to return in search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_score_threshold"}),(0,d.jsx)(t.td,{children:"Float"}),(0,d.jsx)(t.td,{children:"Minimum similarity score threshold for search results"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"username"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"username for the opensource cluster"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"password"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"password for the opensource cluster"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"use_ssl"}),(0,d.jsx)(t.td,{children:"Boolean"}),(0,d.jsx)(t.td,{children:"Use SSL"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"verify_certs"}),(0,d.jsx)(t.td,{children:"Boolean"}),(0,d.jsx)(t.td,{children:"Verify certificates"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"hybrid_search_query"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Provide a custom hybrid search query in JSON format. This allows you to combine vector similarity and keyword matching"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-12",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"OpenSearchVectorSearch"}),(0,d.jsx)(t.td,{children:"OpenSearch vector store instance"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"List[Data]"}),(0,d.jsx)(t.td,{children:"Results of similarity search"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"pgvector",children:"PGVector"}),"\n",(0,d.jsxs)(t.p,{children:["This component creates a PGVector Vector Store with search capabilities.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://github.com/pgvector/pgvector",children:"PGVector documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-13",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"pg_server_url"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"PostgreSQL server connection string"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"collection_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Table name for the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_query"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Query for similarity search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Data to be ingested into the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embeddings"}),(0,d.jsx)(t.td,{children:"Embedding function to use"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of results to return in search"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-13",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"PGVector"}),(0,d.jsx)(t.td,{children:"PGVector vector store instance"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"List[Data]"}),(0,d.jsx)(t.td,{children:"Results of similarity search"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"pinecone",children:"Pinecone"}),"\n",(0,d.jsxs)(t.p,{children:["This component creates a Pinecone Vector Store with search capabilities.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://docs.pinecone.io/home",children:"Pinecone documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-14",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"index_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Name of the Pinecone index"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"namespace"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Namespace for the index"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"distance_strategy"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Strategy for calculating distance between vectors"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"pinecone_api_key"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"API key for Pinecone"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"text_key"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Key in the record to use as text"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_query"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Query for similarity search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Data to be ingested into the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embeddings"}),(0,d.jsx)(t.td,{children:"Embedding function to use"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of results to return in search"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-14",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"Pinecone"}),(0,d.jsx)(t.td,{children:"Pinecone vector store instance"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"List[Data]"}),(0,d.jsx)(t.td,{children:"Results of similarity search"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"qdrant",children:"Qdrant"}),"\n",(0,d.jsxs)(t.p,{children:["This component creates a Qdrant Vector Store with search capabilities.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://qdrant.tech/documentation/",children:"Qdrant documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-15",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"collection_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Name of the Qdrant collection"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"host"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Qdrant server host"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"port"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Qdrant server port"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"grpc_port"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Qdrant gRPC port"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"api_key"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"API key for Qdrant"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"prefix"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Prefix for Qdrant"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"timeout"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Timeout for Qdrant operations"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"path"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Path for Qdrant"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"url"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"URL for Qdrant"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"distance_func"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Distance function for vector similarity"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"content_payload_key"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Key for content payload"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"metadata_payload_key"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Key for metadata payload"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_query"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Query for similarity search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Data to be ingested into the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embeddings"}),(0,d.jsx)(t.td,{children:"Embedding function to use"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of results to return in search"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-15",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"Qdrant"}),(0,d.jsx)(t.td,{children:"Qdrant vector store instance"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"List[Data]"}),(0,d.jsx)(t.td,{children:"Results of similarity search"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"redis",children:"Redis"}),"\n",(0,d.jsxs)(t.p,{children:["This component creates a Redis Vector Store with search capabilities.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://redis.io/docs/latest/develop/interact/search-and-query/advanced-concepts/vectors/",children:"Redis documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-16",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"redis_server_url"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"Redis server connection string"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"redis_index_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Name of the Redis index"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"code"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Custom code for Redis (advanced)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"schema"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Schema for Redis index"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_query"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Query for similarity search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Data to be ingested into the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of results to return in search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embeddings"}),(0,d.jsx)(t.td,{children:"Embedding function to use"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-16",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"Redis"}),(0,d.jsx)(t.td,{children:"Redis vector store instance"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"List[Data]"}),(0,d.jsx)(t.td,{children:"Results of similarity search"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"supabase",children:"Supabase"}),"\n",(0,d.jsxs)(t.p,{children:["This component creates a connection to a Supabase Vector Store with search capabilities.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://supabase.com/docs/guides/ai",children:"Supabase documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-17",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"supabase_url"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"URL of the Supabase instance"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"supabase_service_key"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"Service key for Supabase authentication"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"table_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Name of the table in Supabase"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"query_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Name of the query to use"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_query"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Query for similarity search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Data to be ingested into the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embeddings"}),(0,d.jsx)(t.td,{children:"Embedding function to use"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of results to return in search"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-17",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"SupabaseVectorStore"}),(0,d.jsx)(t.td,{children:"Supabase vector store instance"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"List[Data]"}),(0,d.jsx)(t.td,{children:"Results of similarity search"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"upstash",children:"Upstash"}),"\n",(0,d.jsxs)(t.p,{children:["This component creates an Upstash Vector Store with search capabilities.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://upstash.com/docs/introduction",children:"Upstash documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-18",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"index_url"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"The URL of the Upstash index"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"index_token"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"The token for the Upstash index"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"text_key"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"The key in the record to use as text"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"namespace"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Namespace for the index"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_query"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Query for similarity search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"metadata_filter"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Filters documents by metadata"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Data to be ingested into the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embeddings"}),(0,d.jsx)(t.td,{children:"Embedding function to use (optional)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of results to return in search"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-18",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"UpstashVectorStore"}),(0,d.jsx)(t.td,{children:"Upstash vector store instance"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"List[Data]"}),(0,d.jsx)(t.td,{children:"Results of similarity search"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"vectara",children:"Vectara"}),"\n",(0,d.jsxs)(t.p,{children:["This component creates a Vectara Vector Store with search capabilities.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://docs.vectara.com/docs/",children:"Vectara documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-19",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vectara_customer_id"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Vectara customer ID"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vectara_corpus_id"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Vectara corpus ID"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vectara_api_key"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"Vectara API key"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embeddings"}),(0,d.jsx)(t.td,{children:"Embedding function to use (optional)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"List[Document/Data]"}),(0,d.jsx)(t.td,{children:"Data to be ingested into the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_query"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Query for similarity search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of results to return in search"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-19",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"VectaraVectorStore"}),(0,d.jsx)(t.td,{children:"Vectara vector store instance"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"List[Data]"}),(0,d.jsx)(t.td,{children:"Results of similarity search"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"vectara-search",children:"Vectara Search"}),"\n",(0,d.jsxs)(t.p,{children:["This component searches a Vectara Vector Store for documents based on the provided input.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://docs.vectara.com/docs/",children:"Vectara documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-20",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_type"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:'Type of search, such as "Similarity" or "MMR"'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"input_value"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Search query"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vectara_customer_id"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Vectara customer ID"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vectara_corpus_id"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Vectara corpus ID"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vectara_api_key"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"Vectara API key"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"files_url"}),(0,d.jsx)(t.td,{children:"List[String]"}),(0,d.jsx)(t.td,{children:"Optional URLs for file initialization"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-20",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"List[Data]"}),(0,d.jsx)(t.td,{children:"Results of similarity search"})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"vectara-rag",children:"Vectara RAG"}),"\n",(0,d.jsxs)(t.p,{children:["This component leverages Vectara's Retrieval Augmented Generation (RAG) capabilities to search and summarize documents based on the provided input. For more information, see the ",(0,d.jsx)(t.a,{href:"https://docs.vectara.com/docs/",children:"Vectara documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-21",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vectara_customer_id"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Vectara customer ID"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vectara_corpus_id"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Vectara corpus ID"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vectara_api_key"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"Vectara API key"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_query"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"The query to receive an answer on"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"lexical_interpolation"}),(0,d.jsx)(t.td,{children:"Float"}),(0,d.jsx)(t.td,{children:"Hybrid search factor (0.005 to 0.1)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"filter"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Metadata filters to narrow the search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"reranker"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Reranker type (mmr, rerank_multilingual_v1, none)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"reranker_k"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of results to rerank (1 to 100)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"diversity_bias"}),(0,d.jsx)(t.td,{children:"Float"}),(0,d.jsx)(t.td,{children:"Diversity bias for MMR reranker (0 to 1)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"max_results"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Maximum number of search results to summarize (1 to 100)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"response_lang"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:'Language code for the response (for example, "eng", "auto")'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"prompt"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Prompt name for summarization"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-21",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"answer"}),(0,d.jsx)(t.td,{children:"Message"}),(0,d.jsx)(t.td,{children:"Generated RAG response"})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"weaviate",children:"Weaviate"}),"\n",(0,d.jsxs)(t.p,{children:["This component facilitates a Weaviate Vector Store setup, optimizing text and document indexing and retrieval.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://weaviate.io/developers/weaviate",children:"Weaviate Documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-22",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"weaviate_url"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Default instance URL"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_by_text"}),(0,d.jsx)(t.td,{children:"Boolean"}),(0,d.jsx)(t.td,{children:"Indicates whether to search by text"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"api_key"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"Optional API key for authentication"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"index_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Optional index name"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"text_key"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Default text extraction key"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"input"}),(0,d.jsx)(t.td,{children:"Document"}),(0,d.jsx)(t.td,{children:"Document or record"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embeddings"}),(0,d.jsx)(t.td,{children:"Model used"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"attributes"}),(0,d.jsx)(t.td,{children:"List[String]"}),(0,d.jsx)(t.td,{children:"Optional additional attributes"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-22",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"WeaviateVectorStore"}),(0,d.jsx)(t.td,{children:"Weaviate vector store instance"})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"weaviate-search",children:"Weaviate Search"}),"\n",(0,d.jsxs)(t.p,{children:["This component searches a Weaviate Vector Store for documents similar to the input.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://weaviate.io/developers/weaviate",children:"Weaviate Documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-23",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_type"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:'Type of search, such as "Similarity" or "MMR"'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"input_value"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Search query"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"weaviate_url"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Default instance URL"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_by_text"}),(0,d.jsx)(t.td,{children:"Boolean"}),(0,d.jsx)(t.td,{children:"Indicates whether to search by text"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"api_key"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"Optional API key for authentication"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"index_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Optional index name"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"text_key"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Default text extraction key"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embeddings"}),(0,d.jsx)(t.td,{children:"Model used"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"attributes"}),(0,d.jsx)(t.td,{children:"List[String]"}),(0,d.jsx)(t.td,{children:"Optional additional attributes"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-23",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"List[Data]"}),(0,d.jsx)(t.td,{children:"Results of similarity search"})]})})]})]})}function o(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,d.jsx)(t,{...e,children:(0,d.jsx)(a,{...e})}):a(e)}},59072:(e,t,r)=>{r.d(t,{A:()=>s});const s=r.p+"assets/images/vector-store-agent-retrieval-tool-79066d11008a74c40390f55f7c73bd71.png"},67719:(e,t,r)=>{r.d(t,{A:()=>s});const s=r.p+"assets/images/vector-store-retrieval-452b8316c734a28f85fcddf9ff7a32e4.png"},28453:(e,t,r)=>{r.d(t,{R:()=>n,x:()=>c});var s=r(96540);const d={},i=s.createContext(d);function n(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:n(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f66238ae.48c12833.js b/assets/js/f66238ae.48c12833.js deleted file mode 100644 index ed7a624171..0000000000 --- a/assets/js/f66238ae.48c12833.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[3391],{45175:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>h,contentTitle:()=>c,default:()=>o,frontMatter:()=>i,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"Components/components-vector-stores","title":"Vector stores","description":"Vector databases store vector data, which backs AI workloads like chatbots and Retrieval Augmented Generation.","source":"@site/docs/Components/components-vector-stores.md","sourceDirName":"Components","slug":"/components-vector-stores","permalink":"/components-vector-stores","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Vector stores","slug":"/components-vector-stores"},"sidebar":"docs","previous":{"title":"Tools","permalink":"/components-tools"},"next":{"title":"Agents overview","permalink":"/agents-overview"}}');var d=r(74848),n=r(28453);const i={title:"Vector stores",slug:"/components-vector-stores"},c="Vector store components in Langflow",h={},l=[{value:"Use a vector store component in a flow",id:"use-a-vector-store-component-in-a-flow",level:2},{value:"Astra DB Vector Store",id:"astra-db-vector-store",level:2},{value:"Inputs",id:"inputs",level:3},{value:"Outputs",id:"outputs",level:3},{value:"Cassandra",id:"cassandra",level:2},{value:"Inputs",id:"inputs-1",level:3},{value:"Outputs",id:"outputs-1",level:3},{value:"Cassandra Graph Vector Store",id:"cassandra-graph-vector-store",level:2},{value:"Inputs",id:"inputs-2",level:3},{value:"Outputs",id:"outputs-2",level:3},{value:"Chroma DB",id:"chroma-db",level:2},{value:"Inputs",id:"inputs-3",level:3},{value:"Outputs",id:"outputs-3",level:3},{value:"Clickhouse",id:"clickhouse",level:2},{value:"Inputs",id:"inputs-4",level:3},{value:"Outputs",id:"outputs-4",level:3},{value:"Couchbase",id:"couchbase",level:2},{value:"Inputs",id:"inputs-5",level:3},{value:"Outputs",id:"outputs-5",level:3},{value:"FAISS",id:"faiss",level:2},{value:"Inputs",id:"inputs-6",level:3},{value:"Outputs",id:"outputs-6",level:3},{value:"Hyper-Converged Database (HCD) Vector Store",id:"hyper-converged-database-hcd-vector-store",level:2},{value:"Inputs",id:"inputs-7",level:3},{value:"Outputs",id:"outputs-7",level:3},{value:"Milvus",id:"milvus",level:2},{value:"Inputs",id:"inputs-8",level:3},{value:"Outputs",id:"outputs-8",level:3},{value:"MongoDB Atlas",id:"mongodb-atlas",level:2},{value:"Inputs",id:"inputs-9",level:3},{value:"Outputs",id:"outputs-9",level:3},{value:"Opensearch",id:"opensearch",level:2},{value:"Inputs",id:"inputs-10",level:3},{value:"Outputs",id:"outputs-10",level:3},{value:"PGVector",id:"pgvector",level:2},{value:"Inputs",id:"inputs-11",level:3},{value:"Outputs",id:"outputs-11",level:3},{value:"Pinecone",id:"pinecone",level:2},{value:"Inputs",id:"inputs-12",level:3},{value:"Outputs",id:"outputs-12",level:3},{value:"Qdrant",id:"qdrant",level:2},{value:"Inputs",id:"inputs-13",level:3},{value:"Outputs",id:"outputs-13",level:3},{value:"Redis",id:"redis",level:2},{value:"Inputs",id:"inputs-14",level:3},{value:"Outputs",id:"outputs-14",level:3},{value:"Supabase",id:"supabase",level:2},{value:"Inputs",id:"inputs-15",level:3},{value:"Outputs",id:"outputs-15",level:3},{value:"Upstash",id:"upstash",level:2},{value:"Inputs",id:"inputs-16",level:3},{value:"Outputs",id:"outputs-16",level:3},{value:"Vectara",id:"vectara",level:2},{value:"Inputs",id:"inputs-17",level:3},{value:"Outputs",id:"outputs-17",level:3},{value:"Vectara Search",id:"vectara-search",level:2},{value:"Inputs",id:"inputs-18",level:3},{value:"Outputs",id:"outputs-18",level:3},{value:"Vectara RAG",id:"vectara-rag",level:2},{value:"Inputs",id:"inputs-19",level:3},{value:"Outputs",id:"outputs-19",level:3},{value:"Weaviate",id:"weaviate",level:2},{value:"Inputs",id:"inputs-20",level:3},{value:"Outputs",id:"outputs-20",level:3},{value:"Weaviate Search",id:"weaviate-search",level:2},{value:"Inputs",id:"inputs-21",level:3},{value:"Outputs",id:"outputs-21",level:3}];function a(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,n.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(t.header,{children:(0,d.jsx)(t.h1,{id:"vector-store-components-in-langflow",children:"Vector store components in Langflow"})}),"\n",(0,d.jsx)(t.p,{children:"Vector databases store vector data, which backs AI workloads like chatbots and Retrieval Augmented Generation."}),"\n",(0,d.jsx)(t.p,{children:"Vector database components establish connections to existing vector databases or create in-memory vector stores for storing and retrieving vector data."}),"\n",(0,d.jsxs)(t.p,{children:["Vector database components are distinct from ",(0,d.jsx)(t.a,{href:"/components-memories",children:"memory components"}),", which are built specifically for storing and retrieving chat messages from external databases."]}),"\n",(0,d.jsx)(t.h2,{id:"use-a-vector-store-component-in-a-flow",children:"Use a vector store component in a flow"}),"\n",(0,d.jsx)(t.p,{children:"Vector databases can be populated from within Langflow with document ingestion pipelines, like the following"}),"\n",(0,d.jsx)(t.p,{children:(0,d.jsx)(t.img,{src:r(7685).A+"",width:"1804",height:"1546"})}),"\n",(0,d.jsxs)(t.p,{children:["This example uses the ",(0,d.jsx)(t.strong,{children:"Astra DB vector store"})," component. Your vector store component's parameters and authentication may be different, but the document ingestion workflow is the same. A document is loaded from a local machine and chunked. The Astra DB vector store generates embeddings with the connected ",(0,d.jsx)(t.a,{href:"/components-models",children:"model"})," component, and stores them in the connected Astra DB database."]}),"\n",(0,d.jsx)(t.p,{children:"This vector data can then be retrieved for workloads like Retrieval Augmented Generation."}),"\n",(0,d.jsx)(t.p,{children:(0,d.jsx)(t.img,{src:r(67719).A+"",width:"2898",height:"1110"})}),"\n",(0,d.jsxs)(t.p,{children:["The user's chat input is embedded and compared to the vectors embedded during document ingestion for a similarity search.\nThe results are output from the vector database component as a ",(0,d.jsx)(t.a,{href:"/concepts-objects",children:"Data"})," object and parsed into text.\nThis text fills the ",(0,d.jsx)(t.code,{children:"{context}"})," variable in the ",(0,d.jsx)(t.strong,{children:"Prompt"})," component, which informs the ",(0,d.jsx)(t.strong,{children:"Open AI model"})," component's responses."]}),"\n",(0,d.jsxs)(t.p,{children:["Alternatively, connect the vector database component's ",(0,d.jsx)(t.strong,{children:"Retriever"})," port to a ",(0,d.jsx)(t.a,{href:"components-tools#retriever-tool",children:"retriever tool"}),", and then to an ",(0,d.jsx)(t.a,{href:"/components-agents",children:"agent"})," component. This enables the agent to use your vector database as a tool and make decisions based on the available data."]}),"\n",(0,d.jsx)(t.p,{children:(0,d.jsx)(t.img,{src:r(59072).A+"",width:"2414",height:"1602"})}),"\n",(0,d.jsx)(t.h2,{id:"astra-db-vector-store",children:"Astra DB Vector Store"}),"\n",(0,d.jsx)(t.p,{children:"This component implements a Vector Store using Astra DB with search capabilities."}),"\n",(0,d.jsxs)(t.p,{children:["For more information, see the ",(0,d.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/databases/create-database.html",children:"DataStax documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"collection_name"}),(0,d.jsx)(t.td,{children:"Collection Name"}),(0,d.jsx)(t.td,{children:"The name of the collection within Astra DB where the vectors will be stored (required)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"token"}),(0,d.jsx)(t.td,{children:"Astra DB Application Token"}),(0,d.jsx)(t.td,{children:"Authentication token for accessing Astra DB (required)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"api_endpoint"}),(0,d.jsx)(t.td,{children:"API Endpoint"}),(0,d.jsx)(t.td,{children:"API endpoint URL for the Astra DB service (required)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_input"}),(0,d.jsx)(t.td,{children:"Search Input"}),(0,d.jsx)(t.td,{children:"Query string for similarity search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Ingest Data"}),(0,d.jsx)(t.td,{children:"Data to be ingested into the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"namespace"}),(0,d.jsx)(t.td,{children:"Namespace"}),(0,d.jsx)(t.td,{children:"Optional namespace within Astra DB to use for the collection"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding_choice"}),(0,d.jsx)(t.td,{children:"Embedding Model or Astra Vectorize"}),(0,d.jsx)(t.td,{children:"Determines whether to use an Embedding Model or Astra Vectorize for the collection"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embedding Model"}),(0,d.jsx)(t.td,{children:"Allows an embedding model configuration (when using Embedding Model)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"provider"}),(0,d.jsx)(t.td,{children:"Vectorize Provider"}),(0,d.jsx)(t.td,{children:"Provider for Astra Vectorize (when using Astra Vectorize)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"metric"}),(0,d.jsx)(t.td,{children:"Metric"}),(0,d.jsx)(t.td,{children:"Optional distance metric for vector comparisons"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"batch_size"}),(0,d.jsx)(t.td,{children:"Batch Size"}),(0,d.jsx)(t.td,{children:"Optional number of data to process in a single batch"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"setup_mode"}),(0,d.jsx)(t.td,{children:"Setup Mode"}),(0,d.jsx)(t.td,{children:'Configuration mode for setting up the vector store (options: "Sync", "Async", "Off", default: "Sync")'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"pre_delete_collection"}),(0,d.jsx)(t.td,{children:"Pre Delete Collection"}),(0,d.jsx)(t.td,{children:"Boolean flag to determine whether to delete the collection before creating a new one"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Number of Results"}),(0,d.jsx)(t.td,{children:"Number of results to return in similarity search (default: 4)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_type"}),(0,d.jsx)(t.td,{children:"Search Type"}),(0,d.jsx)(t.td,{children:'Search type to use (options: "Similarity", "Similarity with score threshold", "MMR (Max Marginal Relevance)")'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_score_threshold"}),(0,d.jsx)(t.td,{children:"Search Score Threshold"}),(0,d.jsx)(t.td,{children:"Minimum similarity score threshold for search results"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_filter"}),(0,d.jsx)(t.td,{children:"Search Metadata Filter"}),(0,d.jsx)(t.td,{children:"Optional dictionary of filters to apply to the search query"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"Vector Store"}),(0,d.jsx)(t.td,{children:"Built Astra DB vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"Search Results"}),(0,d.jsx)(t.td,{children:"Results of the similarity search as a list of Data objects"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"cassandra",children:"Cassandra"}),"\n",(0,d.jsxs)(t.p,{children:["This component creates a Cassandra Vector Store with search capabilities.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://cassandra.apache.org/doc/latest/cassandra/vector-search/overview.html",children:"Cassandra documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-1",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"database_ref"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Contact points for the database or AstraDB database ID"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"username"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Username for the database (leave empty for AstraDB)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"token"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"User password for the database or AstraDB token"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"keyspace"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Table Keyspace or AstraDB namespace"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"table_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Name of the table or AstraDB collection"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ttl_seconds"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Time-to-live for added texts"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"batch_size"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of data to process in a single batch"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"setup_mode"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Configuration mode for setting up the Cassandra table"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"cluster_kwargs"}),(0,d.jsx)(t.td,{children:"Dict"}),(0,d.jsx)(t.td,{children:"Additional keyword arguments for the Cassandra cluster"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_query"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Query for similarity search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Data to be ingested into the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embeddings"}),(0,d.jsx)(t.td,{children:"Embedding function to use"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of results to return in search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_type"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Type of search to perform"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_score_threshold"}),(0,d.jsx)(t.td,{children:"Float"}),(0,d.jsx)(t.td,{children:"Minimum similarity score for search results"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_filter"}),(0,d.jsx)(t.td,{children:"Dict"}),(0,d.jsx)(t.td,{children:"Metadata filters for search query"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"body_search"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Document textual search terms"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"enable_body_search"}),(0,d.jsx)(t.td,{children:"Boolean"}),(0,d.jsx)(t.td,{children:"Flag to enable body search"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-1",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"Cassandra"}),(0,d.jsx)(t.td,{children:"Cassandra vector store instance"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"List[Data]"}),(0,d.jsx)(t.td,{children:"Results of similarity search"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"cassandra-graph-vector-store",children:"Cassandra Graph Vector Store"}),"\n",(0,d.jsx)(t.p,{children:"This component implements a Cassandra Graph Vector Store with search capabilities."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-2",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"database_ref"}),(0,d.jsx)(t.td,{children:"Contact Points / Astra Database ID"}),(0,d.jsx)(t.td,{children:"Contact points for the database or AstraDB database ID (required)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"username"}),(0,d.jsx)(t.td,{children:"Username"}),(0,d.jsx)(t.td,{children:"Username for the database (leave empty for AstraDB)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"token"}),(0,d.jsx)(t.td,{children:"Password / AstraDB Token"}),(0,d.jsx)(t.td,{children:"User password for the database or AstraDB token (required)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"keyspace"}),(0,d.jsx)(t.td,{children:"Keyspace"}),(0,d.jsx)(t.td,{children:"Table Keyspace or AstraDB namespace (required)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"table_name"}),(0,d.jsx)(t.td,{children:"Table Name"}),(0,d.jsx)(t.td,{children:"The name of the table or AstraDB collection where vectors will be stored (required)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"setup_mode"}),(0,d.jsx)(t.td,{children:"Setup Mode"}),(0,d.jsx)(t.td,{children:'Configuration mode for setting up the Cassandra table (options: "Sync", "Off", default: "Sync")'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"cluster_kwargs"}),(0,d.jsx)(t.td,{children:"Cluster arguments"}),(0,d.jsx)(t.td,{children:"Optional dictionary of additional keyword arguments for the Cassandra cluster"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_query"}),(0,d.jsx)(t.td,{children:"Search Query"}),(0,d.jsx)(t.td,{children:"Query string for similarity search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Ingest Data"}),(0,d.jsx)(t.td,{children:"Data to be ingested into the vector store (list of Data objects)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embedding"}),(0,d.jsx)(t.td,{children:"Embedding model to use"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Number of Results"}),(0,d.jsx)(t.td,{children:"Number of results to return in similarity search (default: 4)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_type"}),(0,d.jsx)(t.td,{children:"Search Type"}),(0,d.jsx)(t.td,{children:'Search type to use (options: "Traversal", "MMR traversal", "Similarity", "Similarity with score threshold", "MMR (Max Marginal Relevance)", default: "Traversal")'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"depth"}),(0,d.jsx)(t.td,{children:"Depth of traversal"}),(0,d.jsx)(t.td,{children:'The maximum depth of edges to traverse (for "Traversal" or "MMR traversal" search types, default: 1)'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_score_threshold"}),(0,d.jsx)(t.td,{children:"Search Score Threshold"}),(0,d.jsx)(t.td,{children:'Minimum similarity score threshold for search results (for "Similarity with score threshold" search type)'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_filter"}),(0,d.jsx)(t.td,{children:"Search Metadata Filter"}),(0,d.jsx)(t.td,{children:"Optional dictionary of filters to apply to the search query"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-2",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"Vector Store"}),(0,d.jsx)(t.td,{children:"Built Cassandra Graph vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"Search Results"}),(0,d.jsx)(t.td,{children:"Results of the similarity search as a list of Data objects"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"chroma-db",children:"Chroma DB"}),"\n",(0,d.jsxs)(t.p,{children:["This component creates a Chroma Vector Store with search capabilities.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://docs.trychroma.com/",children:"Chroma documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-3",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"collection_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:'The name of the Chroma collection. Default: "langflow".'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"persist_directory"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"The directory to persist the Chroma database."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_query"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"The query to search for in the vector store."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"The data to ingest into the vector store (list of Data objects)."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embeddings"}),(0,d.jsx)(t.td,{children:"The embedding function to use for the vector store."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"chroma_server_cors_allow_origins"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"CORS allow origins for the Chroma server."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"chroma_server_host"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Host for the Chroma server."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"chroma_server_http_port"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"HTTP port for the Chroma server."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"chroma_server_grpc_port"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"gRPC port for the Chroma server."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"chroma_server_ssl_enabled"}),(0,d.jsx)(t.td,{children:"Boolean"}),(0,d.jsx)(t.td,{children:"Enable SSL for the Chroma server."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"allow_duplicates"}),(0,d.jsx)(t.td,{children:"Boolean"}),(0,d.jsx)(t.td,{children:"Allow duplicate documents in the vector store."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_type"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:'Type of search to perform: "Similarity" or "MMR".'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of results to return from the search. Default: 10."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"limit"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Limit the number of records to compare when Allow Duplicates is False."})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-3",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"Chroma"}),(0,d.jsx)(t.td,{children:"Chroma vector store instance"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"List[Data]"}),(0,d.jsx)(t.td,{children:"Results of similarity search"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"clickhouse",children:"Clickhouse"}),"\n",(0,d.jsxs)(t.p,{children:["This component implements a Clickhouse Vector Store with search capabilities.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://clickhouse.com/docs/en/intro",children:"CLickhouse Documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-4",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"host"}),(0,d.jsx)(t.td,{children:"hostname"}),(0,d.jsx)(t.td,{children:'Clickhouse server hostname (required, default: "localhost")'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"port"}),(0,d.jsx)(t.td,{children:"port"}),(0,d.jsx)(t.td,{children:"Clickhouse server port (required, default: 8123)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"database"}),(0,d.jsx)(t.td,{children:"database"}),(0,d.jsx)(t.td,{children:"Clickhouse database name (required)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"table"}),(0,d.jsx)(t.td,{children:"Table name"}),(0,d.jsx)(t.td,{children:"Clickhouse table name (required)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"username"}),(0,d.jsx)(t.td,{children:"The ClickHouse user name."}),(0,d.jsx)(t.td,{children:"Username for authentication (required)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"password"}),(0,d.jsx)(t.td,{children:"The password for username."}),(0,d.jsx)(t.td,{children:"Password for authentication (required)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"index_type"}),(0,d.jsx)(t.td,{children:"index_type"}),(0,d.jsx)(t.td,{children:'Type of the index (options: "annoy", "vector_similarity", default: "annoy")'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"metric"}),(0,d.jsx)(t.td,{children:"metric"}),(0,d.jsx)(t.td,{children:'Metric to compute distance (options: "angular", "euclidean", "manhattan", "hamming", "dot", default: "angular")'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"secure"}),(0,d.jsx)(t.td,{children:"Use https/TLS"}),(0,d.jsx)(t.td,{children:"Overrides inferred values from the interface or port arguments (default: false)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"index_param"}),(0,d.jsx)(t.td,{children:"Param of the index"}),(0,d.jsx)(t.td,{children:"Index parameters (default: \"'L2Distance',100\")"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"index_query_params"}),(0,d.jsx)(t.td,{children:"index query params"}),(0,d.jsx)(t.td,{children:"Additional index query parameters"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_query"}),(0,d.jsx)(t.td,{children:"Search Query"}),(0,d.jsx)(t.td,{children:"Query string for similarity search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Ingest Data"}),(0,d.jsx)(t.td,{children:"Data to be ingested into the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embedding"}),(0,d.jsx)(t.td,{children:"Embedding model to use"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Number of Results"}),(0,d.jsx)(t.td,{children:"Number of results to return in similarity search (default: 4)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"score_threshold"}),(0,d.jsx)(t.td,{children:"Score threshold"}),(0,d.jsx)(t.td,{children:"Threshold for similarity scores"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-4",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"Vector Store"}),(0,d.jsx)(t.td,{children:"Built Clickhouse vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"Search Results"}),(0,d.jsx)(t.td,{children:"Results of the similarity search as a list of Data objects"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"couchbase",children:"Couchbase"}),"\n",(0,d.jsxs)(t.p,{children:["This component creates a Couchbase Vector Store with search capabilities.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://docs.couchbase.com/home/index.html",children:"Couchbase documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-5",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"couchbase_connection_string"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"Couchbase Cluster connection string (required)."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"couchbase_username"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Couchbase username (required)."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"couchbase_password"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"Couchbase password (required)."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"bucket_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Name of the Couchbase bucket (required)."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"scope_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Name of the Couchbase scope (required)."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"collection_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Name of the Couchbase collection (required)."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"index_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Name of the Couchbase index (required)."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_query"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"The query to search for in the vector store."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"The data to ingest into the vector store (list of Data objects)."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embeddings"}),(0,d.jsx)(t.td,{children:"The embedding function to use for the vector store."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of results to return from the search. Default: 4 (advanced)."})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-5",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"CouchbaseVectorStore"}),(0,d.jsx)(t.td,{children:"A Couchbase vector store instance configured with the specified parameters."})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"faiss",children:"FAISS"}),"\n",(0,d.jsxs)(t.p,{children:["This component creates a FAISS Vector Store with search capabilities.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://faiss.ai/index.html",children:"FAISS documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-6",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"index_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:'The name of the FAISS index. Default: "langflow_index".'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"persist_directory"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Path to save the FAISS index. It will be relative to where Langflow is running."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_query"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"The query to search for in the vector store."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"The data to ingest into the vector store (list of Data objects or documents)."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"allow_dangerous_deserialization"}),(0,d.jsx)(t.td,{children:"Boolean"}),(0,d.jsx)(t.td,{children:"Set to True to allow loading pickle files from untrusted sources. Default: True (advanced)."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embeddings"}),(0,d.jsx)(t.td,{children:"The embedding function to use for the vector store."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of results to return from the search. Default: 4 (advanced)."})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-6",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"FAISS"}),(0,d.jsx)(t.td,{children:"A FAISS vector store instance configured with the specified parameters."})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"hyper-converged-database-hcd-vector-store",children:"Hyper-Converged Database (HCD) Vector Store"}),"\n",(0,d.jsx)(t.p,{children:"This component implements a Vector Store using HCD."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-7",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"collection_name"}),(0,d.jsx)(t.td,{children:"Collection Name"}),(0,d.jsx)(t.td,{children:"The name of the collection within HCD where the vectors will be stored (required)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"username"}),(0,d.jsx)(t.td,{children:"HCD Username"}),(0,d.jsx)(t.td,{children:'Authentication username for accessing HCD (default: "hcd-superuser", required)'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"password"}),(0,d.jsx)(t.td,{children:"HCD Password"}),(0,d.jsx)(t.td,{children:"Authentication password for accessing HCD (required)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"api_endpoint"}),(0,d.jsx)(t.td,{children:"HCD API Endpoint"}),(0,d.jsx)(t.td,{children:"API endpoint URL for the HCD service (required)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_input"}),(0,d.jsx)(t.td,{children:"Search Input"}),(0,d.jsx)(t.td,{children:"Query string for similarity search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Ingest Data"}),(0,d.jsx)(t.td,{children:"Data to be ingested into the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"namespace"}),(0,d.jsx)(t.td,{children:"Namespace"}),(0,d.jsx)(t.td,{children:'Optional namespace within HCD to use for the collection (default: "default_namespace")'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ca_certificate"}),(0,d.jsx)(t.td,{children:"CA Certificate"}),(0,d.jsx)(t.td,{children:"Optional CA certificate for TLS connections to HCD"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"metric"}),(0,d.jsx)(t.td,{children:"Metric"}),(0,d.jsx)(t.td,{children:'Optional distance metric for vector comparisons (options: "cosine", "dot_product", "euclidean")'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"batch_size"}),(0,d.jsx)(t.td,{children:"Batch Size"}),(0,d.jsx)(t.td,{children:"Optional number of data to process in a single batch"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"bulk_insert_batch_concurrency"}),(0,d.jsx)(t.td,{children:"Bulk Insert Batch Concurrency"}),(0,d.jsx)(t.td,{children:"Optional concurrency level for bulk insert operations"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"bulk_insert_overwrite_concurrency"}),(0,d.jsx)(t.td,{children:"Bulk Insert Overwrite Concurrency"}),(0,d.jsx)(t.td,{children:"Optional concurrency level for bulk insert operations that overwrite existing data"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"bulk_delete_concurrency"}),(0,d.jsx)(t.td,{children:"Bulk Delete Concurrency"}),(0,d.jsx)(t.td,{children:"Optional concurrency level for bulk delete operations"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"setup_mode"}),(0,d.jsx)(t.td,{children:"Setup Mode"}),(0,d.jsx)(t.td,{children:'Configuration mode for setting up the vector store (options: "Sync", "Async", "Off", default: "Sync")'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"pre_delete_collection"}),(0,d.jsx)(t.td,{children:"Pre Delete Collection"}),(0,d.jsx)(t.td,{children:"Boolean flag to determine whether to delete the collection before creating a new one"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"metadata_indexing_include"}),(0,d.jsx)(t.td,{children:"Metadata Indexing Include"}),(0,d.jsx)(t.td,{children:"Optional list of metadata fields to include in the indexing"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embedding or Astra Vectorize"}),(0,d.jsx)(t.td,{children:"Allows either an embedding model or an Astra Vectorize configuration"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"metadata_indexing_exclude"}),(0,d.jsx)(t.td,{children:"Metadata Indexing Exclude"}),(0,d.jsx)(t.td,{children:"Optional list of metadata fields to exclude from the indexing"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"collection_indexing_policy"}),(0,d.jsx)(t.td,{children:"Collection Indexing Policy"}),(0,d.jsx)(t.td,{children:"Optional dictionary defining the indexing policy for the collection"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Number of Results"}),(0,d.jsx)(t.td,{children:"Number of results to return in similarity search (default: 4)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_type"}),(0,d.jsx)(t.td,{children:"Search Type"}),(0,d.jsx)(t.td,{children:'Search type to use (options: "Similarity", "Similarity with score threshold", "MMR (Max Marginal Relevance)", default: "Similarity")'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_score_threshold"}),(0,d.jsx)(t.td,{children:"Search Score Threshold"}),(0,d.jsx)(t.td,{children:"Minimum similarity score threshold for search results (default: 0)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_filter"}),(0,d.jsx)(t.td,{children:"Search Metadata Filter"}),(0,d.jsx)(t.td,{children:"Optional dictionary of filters to apply to the search query"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-7",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"Vector Store"}),(0,d.jsx)(t.td,{children:"Built HCD vector store instance"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"Search Results"}),(0,d.jsx)(t.td,{children:"Results of similarity search as a list of Data objects"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"milvus",children:"Milvus"}),"\n",(0,d.jsxs)(t.p,{children:["This component creates a Milvus Vector Store with search capabilities.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://milvus.io/docs",children:"Milvus documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-8",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"collection_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Name of the Milvus collection"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"collection_description"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Description of the Milvus collection"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"uri"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Connection URI for Milvus"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"password"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"Password for Milvus"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"username"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"Username for Milvus"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"batch_size"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of data to process in a single batch"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_query"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Query for similarity search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Data to be ingested into the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embeddings"}),(0,d.jsx)(t.td,{children:"Embedding function to use"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of results to return in search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_type"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Type of search to perform"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_score_threshold"}),(0,d.jsx)(t.td,{children:"Float"}),(0,d.jsx)(t.td,{children:"Minimum similarity score for search results"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_filter"}),(0,d.jsx)(t.td,{children:"Dict"}),(0,d.jsx)(t.td,{children:"Metadata filters for search query"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"setup_mode"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Configuration mode for setting up the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_dimensions"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of dimensions of the vectors"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"pre_delete_collection"}),(0,d.jsx)(t.td,{children:"Boolean"}),(0,d.jsx)(t.td,{children:"Whether to delete the collection before creating a new one"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-8",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"Milvus"}),(0,d.jsx)(t.td,{children:"A Milvus vector store instance configured with the specified parameters."})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"mongodb-atlas",children:"MongoDB Atlas"}),"\n",(0,d.jsxs)(t.p,{children:["This component creates a MongoDB Atlas Vector Store with search capabilities.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://www.mongodb.com/docs/atlas/atlas-vector-search/tutorials/vector-search-quick-start/",children:"MongoDB Atlas documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-9",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"mongodb_atlas_cluster_uri"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"MongoDB Atlas Cluster URI"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"db_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Database name"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"collection_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Collection name"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"index_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Index name"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_query"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Query for similarity search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Data to be ingested into the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embeddings"}),(0,d.jsx)(t.td,{children:"Embedding function to use"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of results to return in search"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-9",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"MongoDBAtlasVectorSearch"}),(0,d.jsx)(t.td,{children:"MongoDB Atlas vector store instance"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"List[Data]"}),(0,d.jsx)(t.td,{children:"Results of similarity search"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"opensearch",children:"Opensearch"}),"\n",(0,d.jsxs)(t.p,{children:["This component creates an Opensearch vector store with search capabilities\nFor more information, see ",(0,d.jsx)(t.a,{href:"https://opensearch.org/platform/search/vector-database.html",children:"Opensearch documentation"})]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-10",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"opensearch_url"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsxs)(t.td,{children:["URL for OpenSearch cluster (e.g. ",(0,d.jsx)(t.a,{href:"https://192.168.1.1:9200",children:"https://192.168.1.1:9200"}),")"]})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"index_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"The index name where the vectors will be stored in OpenSearch cluster"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_input"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Enter a search query. Leave empty to retrieve all documents or if hybrid search is being used"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Data to be ingested into the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embeddings"}),(0,d.jsx)(t.td,{children:"Embedding function to use"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_type"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:'Valid values are "similarity", "similarity_score_threshold", "mmr"'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of results to return in search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_score_threshold"}),(0,d.jsx)(t.td,{children:"Float"}),(0,d.jsx)(t.td,{children:"Minimum similarity score threshold for search results"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"username"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"username for the opensource cluster"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"password"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"password for the opensource cluster"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"use_ssl"}),(0,d.jsx)(t.td,{children:"Boolean"}),(0,d.jsx)(t.td,{children:"Use SSL"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"verify_certs"}),(0,d.jsx)(t.td,{children:"Boolean"}),(0,d.jsx)(t.td,{children:"Verify certificates"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"hybrid_search_query"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Provide a custom hybrid search query in JSON format. This allows you to combine vector similarity and keyword matching"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-10",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"OpenSearchVectorSearch"}),(0,d.jsx)(t.td,{children:"OpenSearch vector store instance"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"List[Data]"}),(0,d.jsx)(t.td,{children:"Results of similarity search"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"pgvector",children:"PGVector"}),"\n",(0,d.jsxs)(t.p,{children:["This component creates a PGVector Vector Store with search capabilities.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://github.com/pgvector/pgvector",children:"PGVector documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-11",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"pg_server_url"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"PostgreSQL server connection string"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"collection_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Table name for the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_query"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Query for similarity search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Data to be ingested into the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embeddings"}),(0,d.jsx)(t.td,{children:"Embedding function to use"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of results to return in search"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-11",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"PGVector"}),(0,d.jsx)(t.td,{children:"PGVector vector store instance"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"List[Data]"}),(0,d.jsx)(t.td,{children:"Results of similarity search"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"pinecone",children:"Pinecone"}),"\n",(0,d.jsxs)(t.p,{children:["This component creates a Pinecone Vector Store with search capabilities.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://docs.pinecone.io/home",children:"Pinecone documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-12",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"index_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Name of the Pinecone index"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"namespace"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Namespace for the index"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"distance_strategy"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Strategy for calculating distance between vectors"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"pinecone_api_key"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"API key for Pinecone"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"text_key"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Key in the record to use as text"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_query"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Query for similarity search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Data to be ingested into the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embeddings"}),(0,d.jsx)(t.td,{children:"Embedding function to use"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of results to return in search"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-12",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"Pinecone"}),(0,d.jsx)(t.td,{children:"Pinecone vector store instance"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"List[Data]"}),(0,d.jsx)(t.td,{children:"Results of similarity search"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"qdrant",children:"Qdrant"}),"\n",(0,d.jsxs)(t.p,{children:["This component creates a Qdrant Vector Store with search capabilities.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://qdrant.tech/documentation/",children:"Qdrant documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-13",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"collection_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Name of the Qdrant collection"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"host"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Qdrant server host"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"port"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Qdrant server port"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"grpc_port"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Qdrant gRPC port"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"api_key"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"API key for Qdrant"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"prefix"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Prefix for Qdrant"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"timeout"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Timeout for Qdrant operations"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"path"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Path for Qdrant"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"url"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"URL for Qdrant"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"distance_func"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Distance function for vector similarity"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"content_payload_key"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Key for content payload"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"metadata_payload_key"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Key for metadata payload"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_query"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Query for similarity search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Data to be ingested into the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embeddings"}),(0,d.jsx)(t.td,{children:"Embedding function to use"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of results to return in search"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-13",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"Qdrant"}),(0,d.jsx)(t.td,{children:"Qdrant vector store instance"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"List[Data]"}),(0,d.jsx)(t.td,{children:"Results of similarity search"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"redis",children:"Redis"}),"\n",(0,d.jsxs)(t.p,{children:["This component creates a Redis Vector Store with search capabilities.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://redis.io/docs/latest/develop/interact/search-and-query/advanced-concepts/vectors/",children:"Redis documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-14",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"redis_server_url"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"Redis server connection string"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"redis_index_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Name of the Redis index"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"code"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Custom code for Redis (advanced)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"schema"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Schema for Redis index"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_query"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Query for similarity search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Data to be ingested into the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of results to return in search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embeddings"}),(0,d.jsx)(t.td,{children:"Embedding function to use"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-14",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"Redis"}),(0,d.jsx)(t.td,{children:"Redis vector store instance"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"List[Data]"}),(0,d.jsx)(t.td,{children:"Results of similarity search"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"supabase",children:"Supabase"}),"\n",(0,d.jsxs)(t.p,{children:["This component creates a connection to a Supabase Vector Store with search capabilities.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://supabase.com/docs/guides/ai",children:"Supabase documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-15",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"supabase_url"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"URL of the Supabase instance"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"supabase_service_key"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"Service key for Supabase authentication"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"table_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Name of the table in Supabase"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"query_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Name of the query to use"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_query"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Query for similarity search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Data to be ingested into the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embeddings"}),(0,d.jsx)(t.td,{children:"Embedding function to use"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of results to return in search"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-15",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"SupabaseVectorStore"}),(0,d.jsx)(t.td,{children:"Supabase vector store instance"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"List[Data]"}),(0,d.jsx)(t.td,{children:"Results of similarity search"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"upstash",children:"Upstash"}),"\n",(0,d.jsxs)(t.p,{children:["This component creates an Upstash Vector Store with search capabilities.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://upstash.com/docs/introduction",children:"Upstash documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-16",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"index_url"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"The URL of the Upstash index"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"index_token"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"The token for the Upstash index"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"text_key"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"The key in the record to use as text"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"namespace"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Namespace for the index"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_query"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Query for similarity search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"metadata_filter"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Filters documents by metadata"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Data to be ingested into the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embeddings"}),(0,d.jsx)(t.td,{children:"Embedding function to use (optional)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of results to return in search"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-16",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"UpstashVectorStore"}),(0,d.jsx)(t.td,{children:"Upstash vector store instance"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"List[Data]"}),(0,d.jsx)(t.td,{children:"Results of similarity search"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"vectara",children:"Vectara"}),"\n",(0,d.jsxs)(t.p,{children:["This component creates a Vectara Vector Store with search capabilities.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://docs.vectara.com/docs/",children:"Vectara documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-17",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vectara_customer_id"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Vectara customer ID"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vectara_corpus_id"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Vectara corpus ID"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vectara_api_key"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"Vectara API key"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embeddings"}),(0,d.jsx)(t.td,{children:"Embedding function to use (optional)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"ingest_data"}),(0,d.jsx)(t.td,{children:"List[Document/Data]"}),(0,d.jsx)(t.td,{children:"Data to be ingested into the vector store"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_query"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Query for similarity search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"number_of_results"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of results to return in search"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-17",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"VectaraVectorStore"}),(0,d.jsx)(t.td,{children:"Vectara vector store instance"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"List[Data]"}),(0,d.jsx)(t.td,{children:"Results of similarity search"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"vectara-search",children:"Vectara Search"}),"\n",(0,d.jsxs)(t.p,{children:["This component searches a Vectara Vector Store for documents based on the provided input.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://docs.vectara.com/docs/",children:"Vectara documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-18",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_type"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:'Type of search, such as "Similarity" or "MMR"'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"input_value"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Search query"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vectara_customer_id"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Vectara customer ID"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vectara_corpus_id"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Vectara corpus ID"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vectara_api_key"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"Vectara API key"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"files_url"}),(0,d.jsx)(t.td,{children:"List[String]"}),(0,d.jsx)(t.td,{children:"Optional URLs for file initialization"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-18",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"List[Data]"}),(0,d.jsx)(t.td,{children:"Results of similarity search"})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"vectara-rag",children:"Vectara RAG"}),"\n",(0,d.jsxs)(t.p,{children:["This component leverages Vectara's Retrieval Augmented Generation (RAG) capabilities to search and summarize documents based on the provided input. For more information, see the ",(0,d.jsx)(t.a,{href:"https://docs.vectara.com/docs/",children:"Vectara documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-19",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vectara_customer_id"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Vectara customer ID"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vectara_corpus_id"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Vectara corpus ID"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vectara_api_key"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"Vectara API key"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_query"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"The query to receive an answer on"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"lexical_interpolation"}),(0,d.jsx)(t.td,{children:"Float"}),(0,d.jsx)(t.td,{children:"Hybrid search factor (0.005 to 0.1)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"filter"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Metadata filters to narrow the search"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"reranker"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Reranker type (mmr, rerank_multilingual_v1, none)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"reranker_k"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Number of results to rerank (1 to 100)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"diversity_bias"}),(0,d.jsx)(t.td,{children:"Float"}),(0,d.jsx)(t.td,{children:"Diversity bias for MMR reranker (0 to 1)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"max_results"}),(0,d.jsx)(t.td,{children:"Integer"}),(0,d.jsx)(t.td,{children:"Maximum number of search results to summarize (1 to 100)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"response_lang"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:'Language code for the response (for example, "eng", "auto")'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"prompt"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Prompt name for summarization"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-19",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"answer"}),(0,d.jsx)(t.td,{children:"Message"}),(0,d.jsx)(t.td,{children:"Generated RAG response"})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"weaviate",children:"Weaviate"}),"\n",(0,d.jsxs)(t.p,{children:["This component facilitates a Weaviate Vector Store setup, optimizing text and document indexing and retrieval.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://weaviate.io/developers/weaviate",children:"Weaviate Documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-20",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"weaviate_url"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Default instance URL"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_by_text"}),(0,d.jsx)(t.td,{children:"Boolean"}),(0,d.jsx)(t.td,{children:"Indicates whether to search by text"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"api_key"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"Optional API key for authentication"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"index_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Optional index name"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"text_key"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Default text extraction key"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"input"}),(0,d.jsx)(t.td,{children:"Document"}),(0,d.jsx)(t.td,{children:"Document or record"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embeddings"}),(0,d.jsx)(t.td,{children:"Model used"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"attributes"}),(0,d.jsx)(t.td,{children:"List[String]"}),(0,d.jsx)(t.td,{children:"Optional additional attributes"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-20",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"vector_store"}),(0,d.jsx)(t.td,{children:"WeaviateVectorStore"}),(0,d.jsx)(t.td,{children:"Weaviate vector store instance"})]})})]}),"\n",(0,d.jsxs)(t.p,{children:[(0,d.jsx)(t.strong,{children:"Note:"})," Ensure Weaviate instance is running and accessible. Verify API key, index name, text key, and attributes are set correctly."]}),"\n",(0,d.jsx)(t.h2,{id:"weaviate-search",children:"Weaviate Search"}),"\n",(0,d.jsxs)(t.p,{children:["This component searches a Weaviate Vector Store for documents similar to the input.\nFor more information, see the ",(0,d.jsx)(t.a,{href:"https://weaviate.io/developers/weaviate",children:"Weaviate Documentation"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-21",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_type"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:'Type of search, such as "Similarity" or "MMR"'})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"input_value"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Search query"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"weaviate_url"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Default instance URL"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_by_text"}),(0,d.jsx)(t.td,{children:"Boolean"}),(0,d.jsx)(t.td,{children:"Indicates whether to search by text"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"api_key"}),(0,d.jsx)(t.td,{children:"SecretString"}),(0,d.jsx)(t.td,{children:"Optional API key for authentication"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"index_name"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Optional index name"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"text_key"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"Default text extraction key"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"embedding"}),(0,d.jsx)(t.td,{children:"Embeddings"}),(0,d.jsx)(t.td,{children:"Model used"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"attributes"}),(0,d.jsx)(t.td,{children:"List[String]"}),(0,d.jsx)(t.td,{children:"Optional additional attributes"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-21",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_results"}),(0,d.jsx)(t.td,{children:"List[Data]"}),(0,d.jsx)(t.td,{children:"Results of similarity search"})]})})]})]})}function o(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,d.jsx)(t,{...e,children:(0,d.jsx)(a,{...e})}):a(e)}},59072:(e,t,r)=>{r.d(t,{A:()=>s});const s=r.p+"assets/images/vector-store-agent-retrieval-tool-79066d11008a74c40390f55f7c73bd71.png"},7685:(e,t,r)=>{r.d(t,{A:()=>s});const s=r.p+"assets/images/vector-store-document-ingestion-fce32e9be440846a2545397e3a18b7bf.png"},67719:(e,t,r)=>{r.d(t,{A:()=>s});const s=r.p+"assets/images/vector-store-retrieval-452b8316c734a28f85fcddf9ff7a32e4.png"},28453:(e,t,r)=>{r.d(t,{R:()=>i,x:()=>c});var s=r(96540);const d={},n=s.createContext(d);function i(e){const t=s.useContext(n);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:i(e.components),s.createElement(n.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/fdefa9a8.19dbc565.js b/assets/js/fdefa9a8.19dbc565.js deleted file mode 100644 index eaf671465d..0000000000 --- a/assets/js/fdefa9a8.19dbc565.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[7453],{39245:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>a,frontMatter:()=>i,metadata:()=>n,toc:()=>o});const n=JSON.parse('{"id":"Components/components-data","title":"Data","description":"Data components load data from a source into your flow.","source":"@site/docs/Components/components-data.md","sourceDirName":"Components","slug":"/components-data","permalink":"/components-data","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Data","slug":"/components-data"},"sidebar":"docs","previous":{"title":"Create custom Python components","permalink":"/components-custom-components"},"next":{"title":"Embeddings","permalink":"/components-embedding-models"}}');var d=s(74848),r=s(28453);const i={title:"Data",slug:"/components-data"},l="Data components in Langflow",c={},o=[{value:"Use a data component in a flow",id:"use-a-data-component-in-a-flow",level:2},{value:"API Request",id:"api-request",level:2},{value:"Inputs",id:"inputs",level:3},{value:"Directory",id:"directory",level:2},{value:"Inputs",id:"inputs-1",level:3},{value:"Outputs",id:"outputs",level:3},{value:"File",id:"file",level:2},{value:"Inputs",id:"inputs-2",level:3},{value:"Outputs",id:"outputs-1",level:3},{value:"URL",id:"url",level:2},{value:"Inputs",id:"inputs-3",level:3},{value:"Outputs",id:"outputs-2",level:3},{value:"Gmail Loader",id:"gmail-loader",level:2},{value:"Inputs",id:"inputs-4",level:3},{value:"Outputs",id:"outputs-3",level:3},{value:"Google Drive Loader",id:"google-drive-loader",level:2},{value:"Inputs",id:"inputs-5",level:3},{value:"Outputs",id:"outputs-4",level:3},{value:"Google Drive Search",id:"google-drive-search",level:2},{value:"Inputs",id:"inputs-6",level:3},{value:"Outputs",id:"outputs-5",level:3},{value:"Webhook",id:"webhook",level:2},{value:"Inputs",id:"inputs-7",level:3},{value:"Outputs",id:"outputs-6",level:3}];function h(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,r.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(t.header,{children:(0,d.jsx)(t.h1,{id:"data-components-in-langflow",children:"Data components in Langflow"})}),"\n",(0,d.jsx)(t.p,{children:"Data components load data from a source into your flow."}),"\n",(0,d.jsx)(t.p,{children:"They may perform some processing or type checking, like converting raw HTML data into text, or ensuring your loaded file is of an acceptable type."}),"\n",(0,d.jsx)(t.h2,{id:"use-a-data-component-in-a-flow",children:"Use a data component in a flow"}),"\n",(0,d.jsxs)(t.p,{children:["The ",(0,d.jsx)(t.strong,{children:"URL"})," data component loads content from a list of URLs."]}),"\n",(0,d.jsxs)(t.p,{children:["In the component's ",(0,d.jsx)(t.strong,{children:"URLs"})," field, enter a comma-separated list of URLs you want to load. Alternatively, connect a component that outputs the ",(0,d.jsx)(t.code,{children:"Message"})," type, like the ",(0,d.jsx)(t.strong,{children:"Chat Input"})," component, to supply your URLs with a component."]}),"\n",(0,d.jsxs)(t.p,{children:["To output a ",(0,d.jsx)(t.code,{children:"Data"})," type, in the ",(0,d.jsx)(t.strong,{children:"Output Format"})," dropdown, select ",(0,d.jsx)(t.strong,{children:"Raw HTML"}),".\nTo output a ",(0,d.jsx)(t.code,{children:"Message"})," type, in the ",(0,d.jsx)(t.strong,{children:"Output Format"})," dropdown, select ",(0,d.jsx)(t.strong,{children:"Text"}),". This option applies postprocessing with the ",(0,d.jsx)(t.code,{children:"data_to_text"})," helper function."]}),"\n",(0,d.jsx)(t.p,{children:"In this example of a document ingestion pipeline, the URL component outputs raw HTML to a text splitter, which splits the raw content into chunks for a vector database to ingest."}),"\n",(0,d.jsx)(t.p,{children:(0,d.jsx)(t.img,{alt:"URL component in a data ingestion pipeline",src:s(80352).A+"",width:"2586",height:"1550"})}),"\n",(0,d.jsx)(t.h2,{id:"api-request",children:"API Request"}),"\n",(0,d.jsx)(t.p,{children:"This component sends HTTP requests to the specified URLs."}),"\n",(0,d.jsx)(t.p,{children:"Use this component to interact with external APIs or services and retrieve data. Ensure that the URLs are valid and that you configure the method, headers, body, and timeout correctly."}),"\n",(0,d.jsx)(t.h3,{id:"inputs",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"URLs"}),(0,d.jsx)(t.td,{children:"URLs"}),(0,d.jsx)(t.td,{children:"The URLs to target"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"curl"}),(0,d.jsx)(t.td,{children:"curl"}),(0,d.jsx)(t.td,{children:"Paste a curl command to fill in the dictionary fields for headers and body"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"Method"}),(0,d.jsx)(t.td,{children:"HTTP Method"}),(0,d.jsx)(t.td,{children:"The HTTP method to use, such as GET or POST"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"Headers"}),(0,d.jsx)(t.td,{children:"Headers"}),(0,d.jsx)(t.td,{children:"The headers to include with the request"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"Body"}),(0,d.jsx)(t.td,{children:"Request Body"}),(0,d.jsx)(t.td,{children:"The data to send with the request (for methods like POST, PATCH, PUT)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"Timeout"}),(0,d.jsx)(t.td,{children:"Timeout"}),(0,d.jsx)(t.td,{children:"The maximum time to wait for a response"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"directory",children:"Directory"}),"\n",(0,d.jsx)(t.p,{children:"This component recursively loads files from a directory, with options for file types, depth, and concurrency."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-1",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Input"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"path"}),(0,d.jsx)(t.td,{children:"MessageTextInput"}),(0,d.jsx)(t.td,{children:"Path to the directory to load files from"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"types"}),(0,d.jsx)(t.td,{children:"MessageTextInput"}),(0,d.jsx)(t.td,{children:"File types to load (leave empty to load all types)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"depth"}),(0,d.jsx)(t.td,{children:"IntInput"}),(0,d.jsx)(t.td,{children:"Depth to search for files"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"max_concurrency"}),(0,d.jsx)(t.td,{children:"IntInput"}),(0,d.jsx)(t.td,{children:"Maximum concurrency for loading files"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"load_hidden"}),(0,d.jsx)(t.td,{children:"BoolInput"}),(0,d.jsx)(t.td,{children:"If true, hidden files will be loaded"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"recursive"}),(0,d.jsx)(t.td,{children:"BoolInput"}),(0,d.jsx)(t.td,{children:"If true, the search will be recursive"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"silent_errors"}),(0,d.jsx)(t.td,{children:"BoolInput"}),(0,d.jsx)(t.td,{children:"If true, errors will not raise an exception"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"use_multithreading"}),(0,d.jsx)(t.td,{children:"BoolInput"}),(0,d.jsx)(t.td,{children:"If true, multithreading will be used"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Output"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data"}),(0,d.jsx)(t.td,{children:"List[Data]"}),(0,d.jsx)(t.td,{children:"Loaded file data from the directory"})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"file",children:"File"}),"\n",(0,d.jsx)(t.p,{children:"The FileComponent is a class that loads and parses text files of various supported formats, converting the content into a Data object. It supports multiple file types and provides an option for silent error handling."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-2",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"path"}),(0,d.jsx)(t.td,{children:"Path"}),(0,d.jsx)(t.td,{children:"File path to load."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"silent_errors"}),(0,d.jsx)(t.td,{children:"Silent Errors"}),(0,d.jsx)(t.td,{children:"If true, errors will not raise an exception."})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-1",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Parsed content of the file as a Data object."})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"url",children:"URL"}),"\n",(0,d.jsx)(t.p,{children:"The URLComponent is a class that fetches content from one or more URLs, processes the content, and returns it as a list of Data objects. It ensures that the provided URLs are valid and uses WebBaseLoader to fetch the content."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-3",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"urls"}),(0,d.jsx)(t.td,{children:"URLs"}),(0,d.jsx)(t.td,{children:"Enter one or more URLs"})]})})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-2",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"List of Data objects containing fetched content and metadata"})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"gmail-loader",children:"Gmail Loader"}),"\n",(0,d.jsx)(t.p,{children:"This component loads emails from Gmail using provided credentials and filters."}),"\n",(0,d.jsxs)(t.p,{children:["For more on creating a service account JSON, see ",(0,d.jsx)(t.a,{href:"https://developers.google.com/identity/protocols/oauth2/service-account",children:"Service Account JSON"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-4",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Input"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"json_string"}),(0,d.jsx)(t.td,{children:"SecretStrInput"}),(0,d.jsx)(t.td,{children:"JSON string containing OAuth 2.0 access token information for service account access"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"label_ids"}),(0,d.jsx)(t.td,{children:"MessageTextInput"}),(0,d.jsx)(t.td,{children:"Comma-separated list of label IDs to filter emails"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"max_results"}),(0,d.jsx)(t.td,{children:"MessageTextInput"}),(0,d.jsx)(t.td,{children:"Maximum number of emails to load"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-3",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Output"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Loaded email data"})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"google-drive-loader",children:"Google Drive Loader"}),"\n",(0,d.jsx)(t.p,{children:"This component loads documents from Google Drive using provided credentials and a single document ID."}),"\n",(0,d.jsxs)(t.p,{children:["For more on creating a service account JSON, see ",(0,d.jsx)(t.a,{href:"https://developers.google.com/identity/protocols/oauth2/service-account",children:"Service Account JSON"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-5",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Input"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"json_string"}),(0,d.jsx)(t.td,{children:"SecretStrInput"}),(0,d.jsx)(t.td,{children:"JSON string containing OAuth 2.0 access token information for service account access"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"document_id"}),(0,d.jsx)(t.td,{children:"MessageTextInput"}),(0,d.jsx)(t.td,{children:"Single Google Drive document ID"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-4",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Output"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"docs"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Loaded document data"})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"google-drive-search",children:"Google Drive Search"}),"\n",(0,d.jsx)(t.p,{children:"This component searches Google Drive files using provided credentials and query parameters."}),"\n",(0,d.jsxs)(t.p,{children:["For more on creating a service account JSON, see ",(0,d.jsx)(t.a,{href:"https://developers.google.com/identity/protocols/oauth2/service-account",children:"Service Account JSON"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-6",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Input"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"token_string"}),(0,d.jsx)(t.td,{children:"SecretStrInput"}),(0,d.jsx)(t.td,{children:"JSON string containing OAuth 2.0 access token information for service account access"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"query_item"}),(0,d.jsx)(t.td,{children:"DropdownInput"}),(0,d.jsx)(t.td,{children:"The field to query"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"valid_operator"}),(0,d.jsx)(t.td,{children:"DropdownInput"}),(0,d.jsx)(t.td,{children:"Operator to use in the query"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_term"}),(0,d.jsx)(t.td,{children:"MessageTextInput"}),(0,d.jsx)(t.td,{children:"The value to search for in the specified query item"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"query_string"}),(0,d.jsx)(t.td,{children:"MessageTextInput"}),(0,d.jsx)(t.td,{children:"The query string used for searching (can be edited manually)"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-5",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Output"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"doc_urls"}),(0,d.jsx)(t.td,{children:"List[str]"}),(0,d.jsx)(t.td,{children:"URLs of the found documents"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"doc_ids"}),(0,d.jsx)(t.td,{children:"List[str]"}),(0,d.jsx)(t.td,{children:"IDs of the found documents"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"doc_titles"}),(0,d.jsx)(t.td,{children:"List[str]"}),(0,d.jsx)(t.td,{children:"Titles of the found documents"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Document titles and URLs in a structured format"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"webhook",children:"Webhook"}),"\n",(0,d.jsx)(t.p,{children:"This component defines a webhook input for the flow. The flow can be triggered by an external HTTP POST request (webhook) sending a JSON payload."}),"\n",(0,d.jsx)(t.p,{children:'If the input is not valid JSON, the component will wrap it in a "payload" field. The component\'s status will reflect any errors or the processed data.'}),"\n",(0,d.jsx)(t.h3,{id:"inputs-7",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"JSON payload for testing the webhook component"})]})})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-6",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"output_data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Processed data from the webhook input"})]})})]})]})}function a(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,d.jsx)(t,{...e,children:(0,d.jsx)(h,{...e})}):h(e)}},80352:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/url-component-0ced1fa00ee3b97582421254b6d5be78.png"},28453:(e,t,s)=>{s.d(t,{R:()=>i,x:()=>l});var n=s(96540);const d={},r=n.createContext(d);function i(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:i(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/fdefa9a8.366bfeac.js b/assets/js/fdefa9a8.366bfeac.js new file mode 100644 index 0000000000..bc65cd89d6 --- /dev/null +++ b/assets/js/fdefa9a8.366bfeac.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[7453],{39245:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>a,frontMatter:()=>i,metadata:()=>n,toc:()=>h});const n=JSON.parse('{"id":"Components/components-data","title":"Data","description":"Data components load data from a source into your flow.","source":"@site/docs/Components/components-data.md","sourceDirName":"Components","slug":"/components-data","permalink":"/components-data","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Data","slug":"/components-data"},"sidebar":"docs","previous":{"title":"Create custom Python components","permalink":"/components-custom-components"},"next":{"title":"Embeddings","permalink":"/components-embedding-models"}}');var d=s(74848),r=s(28453);const i={title:"Data",slug:"/components-data"},l="Data components in Langflow",c={},h=[{value:"Use a data component in a flow",id:"use-a-data-component-in-a-flow",level:2},{value:"API Request",id:"api-request",level:2},{value:"Inputs",id:"inputs",level:3},{value:"Outputs",id:"outputs",level:3},{value:"Directory",id:"directory",level:2},{value:"Inputs",id:"inputs-1",level:3},{value:"Outputs",id:"outputs-1",level:3},{value:"File",id:"file",level:2},{value:"Inputs",id:"inputs-2",level:3},{value:"Outputs",id:"outputs-2",level:3},{value:"Gmail Loader",id:"gmail-loader",level:2},{value:"Inputs",id:"inputs-3",level:3},{value:"Outputs",id:"outputs-3",level:3},{value:"Google Drive Loader",id:"google-drive-loader",level:2},{value:"Inputs",id:"inputs-4",level:3},{value:"Outputs",id:"outputs-4",level:3},{value:"Google Drive Search",id:"google-drive-search",level:2},{value:"Inputs",id:"inputs-5",level:3},{value:"Outputs",id:"outputs-5",level:3},{value:"SQL Query",id:"sql-query",level:2},{value:"Inputs",id:"inputs-6",level:3},{value:"Outputs",id:"outputs-6",level:3},{value:"URL",id:"url",level:2},{value:"Inputs",id:"inputs-7",level:3},{value:"Outputs",id:"outputs-7",level:3},{value:"Webhook",id:"webhook",level:2},{value:"Inputs",id:"inputs-8",level:3},{value:"Outputs",id:"outputs-8",level:3}];function o(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,r.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(t.header,{children:(0,d.jsx)(t.h1,{id:"data-components-in-langflow",children:"Data components in Langflow"})}),"\n",(0,d.jsx)(t.p,{children:"Data components load data from a source into your flow."}),"\n",(0,d.jsx)(t.p,{children:"They may perform some processing or type checking, like converting raw HTML data into text, or ensuring your loaded file is of an acceptable type."}),"\n",(0,d.jsx)(t.h2,{id:"use-a-data-component-in-a-flow",children:"Use a data component in a flow"}),"\n",(0,d.jsxs)(t.p,{children:["The ",(0,d.jsx)(t.strong,{children:"URL"})," data component loads content from a list of URLs."]}),"\n",(0,d.jsxs)(t.p,{children:["In the component's ",(0,d.jsx)(t.strong,{children:"URLs"})," field, enter a comma-separated list of URLs you want to load. Alternatively, connect a component that outputs the ",(0,d.jsx)(t.code,{children:"Message"})," type, like the ",(0,d.jsx)(t.strong,{children:"Chat Input"})," component, to supply your URLs with a component."]}),"\n",(0,d.jsxs)(t.p,{children:["To output a ",(0,d.jsx)(t.code,{children:"Data"})," type, in the ",(0,d.jsx)(t.strong,{children:"Output Format"})," dropdown, select ",(0,d.jsx)(t.strong,{children:"Raw HTML"}),".\nTo output a ",(0,d.jsx)(t.code,{children:"Message"})," type, in the ",(0,d.jsx)(t.strong,{children:"Output Format"})," dropdown, select ",(0,d.jsx)(t.strong,{children:"Text"}),". This option applies postprocessing with the ",(0,d.jsx)(t.code,{children:"data_to_text"})," helper function."]}),"\n",(0,d.jsx)(t.p,{children:"In this example of a document ingestion pipeline, the URL component outputs raw HTML to a text splitter, which splits the raw content into chunks for a vector database to ingest."}),"\n",(0,d.jsx)(t.p,{children:(0,d.jsx)(t.img,{alt:"URL component in a data ingestion pipeline",src:s(80352).A+"",width:"2586",height:"1550"})}),"\n",(0,d.jsx)(t.h2,{id:"api-request",children:"API Request"}),"\n",(0,d.jsx)(t.p,{children:"This component makes HTTP requests using URLs or cURL commands."}),"\n",(0,d.jsx)(t.h3,{id:"inputs",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"urls"}),(0,d.jsx)(t.td,{children:"URLs"}),(0,d.jsx)(t.td,{children:"Enter one or more URLs, separated by commas."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"curl"}),(0,d.jsx)(t.td,{children:"cURL"}),(0,d.jsx)(t.td,{children:"Paste a curl command to populate the dictionary fields for headers and body."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"method"}),(0,d.jsx)(t.td,{children:"Method"}),(0,d.jsx)(t.td,{children:"The HTTP method to use."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"use_curl"}),(0,d.jsx)(t.td,{children:"Use cURL"}),(0,d.jsx)(t.td,{children:"Enable cURL mode to populate fields from a cURL command."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"query_params"}),(0,d.jsx)(t.td,{children:"Query Parameters"}),(0,d.jsx)(t.td,{children:"The query parameters to append to the URL."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"body"}),(0,d.jsx)(t.td,{children:"Body"}),(0,d.jsxs)(t.td,{children:["The body to send with the request as a dictionary (for ",(0,d.jsx)(t.code,{children:"POST"}),", ",(0,d.jsx)(t.code,{children:"PATCH"}),", ",(0,d.jsx)(t.code,{children:"PUT"}),")."]})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"headers"}),(0,d.jsx)(t.td,{children:"Headers"}),(0,d.jsx)(t.td,{children:"The headers to send with the request as a dictionary."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"timeout"}),(0,d.jsx)(t.td,{children:"Timeout"}),(0,d.jsx)(t.td,{children:"The timeout to use for the request."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"follow_redirects"}),(0,d.jsx)(t.td,{children:"Follow Redirects"}),(0,d.jsx)(t.td,{children:"Whether to follow http redirects."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"save_to_file"}),(0,d.jsx)(t.td,{children:"Save to File"}),(0,d.jsx)(t.td,{children:"Save the API response to a temporary file"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"include_httpx_metadata"}),(0,d.jsx)(t.td,{children:"Include HTTPx Metadata"}),(0,d.jsxs)(t.td,{children:["Include properties such as ",(0,d.jsx)(t.code,{children:"headers"}),", ",(0,d.jsx)(t.code,{children:"status_code"}),", ",(0,d.jsx)(t.code,{children:"response_headers"}),", and ",(0,d.jsx)(t.code,{children:"redirection_history"})," in the output."]})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"The result of the API requests."})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"directory",children:"Directory"}),"\n",(0,d.jsx)(t.p,{children:"This component recursively loads files from a directory, with options for file types, depth, and concurrency."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-1",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Input"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"path"}),(0,d.jsx)(t.td,{children:"MessageTextInput"}),(0,d.jsx)(t.td,{children:"Path to the directory to load files from"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"types"}),(0,d.jsx)(t.td,{children:"MessageTextInput"}),(0,d.jsx)(t.td,{children:"File types to load (leave empty to load all types)"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"depth"}),(0,d.jsx)(t.td,{children:"IntInput"}),(0,d.jsx)(t.td,{children:"Depth to search for files"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"max_concurrency"}),(0,d.jsx)(t.td,{children:"IntInput"}),(0,d.jsx)(t.td,{children:"Maximum concurrency for loading files"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"load_hidden"}),(0,d.jsx)(t.td,{children:"BoolInput"}),(0,d.jsx)(t.td,{children:"If true, hidden files are loaded"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"recursive"}),(0,d.jsx)(t.td,{children:"BoolInput"}),(0,d.jsx)(t.td,{children:"If true, the search is recursive"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"silent_errors"}),(0,d.jsx)(t.td,{children:"BoolInput"}),(0,d.jsx)(t.td,{children:"If true, errors do not raise an exception"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"use_multithreading"}),(0,d.jsx)(t.td,{children:"BoolInput"}),(0,d.jsx)(t.td,{children:"If true, multithreading is used"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-1",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Output"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data"}),(0,d.jsx)(t.td,{children:"List[Data]"}),(0,d.jsx)(t.td,{children:"Loaded file data from the directory"})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"file",children:"File"}),"\n",(0,d.jsx)(t.p,{children:"The FileComponent is a class that loads and parses text files of various supported formats, converting the content into a Data object. It supports multiple file types and provides an option for silent error handling."}),"\n",(0,d.jsx)(t.p,{children:"The maximum supported file size is 100 MB."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-2",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"path"}),(0,d.jsx)(t.td,{children:"Path"}),(0,d.jsx)(t.td,{children:"File path to load."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"silent_errors"}),(0,d.jsx)(t.td,{children:"Silent Errors"}),(0,d.jsx)(t.td,{children:"If true, errors do not raise an exception."})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-2",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Parsed content of the file as a Data object."})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"gmail-loader",children:"Gmail Loader"}),"\n",(0,d.jsx)(t.p,{children:"This component loads emails from Gmail using provided credentials and filters."}),"\n",(0,d.jsxs)(t.p,{children:["For more on creating a service account JSON, see ",(0,d.jsx)(t.a,{href:"https://developers.google.com/identity/protocols/oauth2/service-account",children:"Service Account JSON"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-3",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Input"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"json_string"}),(0,d.jsx)(t.td,{children:"SecretStrInput"}),(0,d.jsx)(t.td,{children:"JSON string containing OAuth 2.0 access token information for service account access"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"label_ids"}),(0,d.jsx)(t.td,{children:"MessageTextInput"}),(0,d.jsx)(t.td,{children:"Comma-separated list of label IDs to filter emails"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"max_results"}),(0,d.jsx)(t.td,{children:"MessageTextInput"}),(0,d.jsx)(t.td,{children:"Maximum number of emails to load"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-3",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Output"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Loaded email data"})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"google-drive-loader",children:"Google Drive Loader"}),"\n",(0,d.jsx)(t.p,{children:"This component loads documents from Google Drive using provided credentials and a single document ID."}),"\n",(0,d.jsxs)(t.p,{children:["For more on creating a service account JSON, see ",(0,d.jsx)(t.a,{href:"https://developers.google.com/identity/protocols/oauth2/service-account",children:"Service Account JSON"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-4",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Input"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"json_string"}),(0,d.jsx)(t.td,{children:"SecretStrInput"}),(0,d.jsx)(t.td,{children:"JSON string containing OAuth 2.0 access token information for service account access"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"document_id"}),(0,d.jsx)(t.td,{children:"MessageTextInput"}),(0,d.jsx)(t.td,{children:"Single Google Drive document ID"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-4",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Output"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"docs"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Loaded document data"})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"google-drive-search",children:"Google Drive Search"}),"\n",(0,d.jsx)(t.p,{children:"This component searches Google Drive files using provided credentials and query parameters."}),"\n",(0,d.jsxs)(t.p,{children:["For more on creating a service account JSON, see ",(0,d.jsx)(t.a,{href:"https://developers.google.com/identity/protocols/oauth2/service-account",children:"Service Account JSON"}),"."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-5",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Input"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"token_string"}),(0,d.jsx)(t.td,{children:"SecretStrInput"}),(0,d.jsx)(t.td,{children:"JSON string containing OAuth 2.0 access token information for service account access"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"query_item"}),(0,d.jsx)(t.td,{children:"DropdownInput"}),(0,d.jsx)(t.td,{children:"The field to query"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"valid_operator"}),(0,d.jsx)(t.td,{children:"DropdownInput"}),(0,d.jsx)(t.td,{children:"Operator to use in the query"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"search_term"}),(0,d.jsx)(t.td,{children:"MessageTextInput"}),(0,d.jsx)(t.td,{children:"The value to search for in the specified query item"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"query_string"}),(0,d.jsx)(t.td,{children:"MessageTextInput"}),(0,d.jsx)(t.td,{children:"The query string used for searching (can be edited manually)"})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-5",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Output"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"doc_urls"}),(0,d.jsx)(t.td,{children:"List[str]"}),(0,d.jsx)(t.td,{children:"URLs of the found documents"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"doc_ids"}),(0,d.jsx)(t.td,{children:"List[str]"}),(0,d.jsx)(t.td,{children:"IDs of the found documents"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"doc_titles"}),(0,d.jsx)(t.td,{children:"List[str]"}),(0,d.jsx)(t.td,{children:"Titles of the found documents"})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Document titles and URLs in a structured format"})]})]})]}),"\n",(0,d.jsx)(t.h2,{id:"sql-query",children:"SQL Query"}),"\n",(0,d.jsx)(t.p,{children:"This component executes SQL queries on a specified database."}),"\n",(0,d.jsx)(t.h3,{id:"inputs-6",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsxs)(t.tbody,{children:[(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"query"}),(0,d.jsx)(t.td,{children:"Query"}),(0,d.jsx)(t.td,{children:"The SQL query to execute."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"database_url"}),(0,d.jsx)(t.td,{children:"Database URL"}),(0,d.jsx)(t.td,{children:"The URL of the database."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"include_columns"}),(0,d.jsx)(t.td,{children:"Include Columns"}),(0,d.jsx)(t.td,{children:"Include columns in the result."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"passthrough"}),(0,d.jsx)(t.td,{children:"Passthrough"}),(0,d.jsx)(t.td,{children:"If an error occurs, return the query instead of raising an exception."})]}),(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"add_error"}),(0,d.jsx)(t.td,{children:"Add Error"}),(0,d.jsx)(t.td,{children:"Add the error to the result."})]})]})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-6",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"result"}),(0,d.jsx)(t.td,{children:"Result"}),(0,d.jsx)(t.td,{children:"The result of the SQL query execution."})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"url",children:"URL"}),"\n",(0,d.jsxs)(t.p,{children:["This component fetches content from one or more URLs, processes the content, and returns it as a list of ",(0,d.jsx)(t.a,{href:"/concepts-objects",children:"Data"})," objects."]}),"\n",(0,d.jsx)(t.h3,{id:"inputs-7",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"urls"}),(0,d.jsx)(t.td,{children:"URLs"}),(0,d.jsx)(t.td,{children:"Enter one or more URLs"})]})})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-7",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Display Name"}),(0,d.jsx)(t.th,{children:"Info"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"List of Data objects containing fetched content and metadata"})]})})]}),"\n",(0,d.jsx)(t.h2,{id:"webhook",children:"Webhook"}),"\n",(0,d.jsx)(t.p,{children:"This component defines a webhook input for the flow. The flow can be triggered by an external HTTP POST request (webhook) sending a JSON payload."}),"\n",(0,d.jsx)(t.p,{children:'If the input is not valid JSON, the component wraps it in a "payload" field. The component\'s status reflects any errors on the processed data.'}),"\n",(0,d.jsx)(t.h3,{id:"inputs-8",children:"Inputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"data"}),(0,d.jsx)(t.td,{children:"String"}),(0,d.jsx)(t.td,{children:"JSON payload for testing the webhook component"})]})})]}),"\n",(0,d.jsx)(t.h3,{id:"outputs-8",children:"Outputs"}),"\n",(0,d.jsxs)(t.table,{children:[(0,d.jsx)(t.thead,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.th,{children:"Name"}),(0,d.jsx)(t.th,{children:"Type"}),(0,d.jsx)(t.th,{children:"Description"})]})}),(0,d.jsx)(t.tbody,{children:(0,d.jsxs)(t.tr,{children:[(0,d.jsx)(t.td,{children:"output_data"}),(0,d.jsx)(t.td,{children:"Data"}),(0,d.jsx)(t.td,{children:"Processed data from the webhook input"})]})})]})]})}function a(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,d.jsx)(t,{...e,children:(0,d.jsx)(o,{...e})}):o(e)}},80352:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/url-component-0ced1fa00ee3b97582421254b6d5be78.png"},28453:(e,t,s)=>{s.d(t,{R:()=>i,x:()=>l});var n=s(96540);const d={},r=n.createContext(d);function i(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:i(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.c2ce2d5d.js b/assets/js/runtime~main.ea17f636.js similarity index 93% rename from assets/js/runtime~main.c2ce2d5d.js rename to assets/js/runtime~main.ea17f636.js index e89c08b29a..ddb871aef3 100644 --- a/assets/js/runtime~main.c2ce2d5d.js +++ b/assets/js/runtime~main.ea17f636.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,c,d,f,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var c=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(c.exports,c,c.exports,r),c.loaded=!0,c.exports}r.m=b,r.c=t,e=[],r.O=(a,c,d,f)=>{if(!c){var b=1/0;for(i=0;i=f)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,f0&&e[i-1][2]>f;i--)e[i]=e[i-1];e[i]=[c,d,f]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,d){if(1&d&&(e=this(e)),8&d)return e;if("object"==typeof e&&e){if(4&d&&e.__esModule)return e;if(16&d&&"function"==typeof e.then)return e}var f=Object.create(null);r.r(f);var b={};a=a||[null,c({}),c([]),c(c)];for(var t=2&d&&e;"object"==typeof t&&!~a.indexOf(t);t=c(t))Object.getOwnPropertyNames(t).forEach((a=>b[a]=()=>e[a]));return b.default=()=>e,r.d(f,b),f},r.d=(e,a)=>{for(var c in a)r.o(a,c)&&!r.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,c)=>(r.f[c](e,a),a)),[])),r.u=e=>"assets/js/"+({51:"b7251463",145:"0be1d5fe",191:"c643a6d5",230:"bc63ae25",321:"6e1a9721",417:"93e16042",444:"14f42f9e",719:"459c52ca",762:"4af57a32",768:"6d684b63",787:"672a0eba",800:"a4c0ff01",868:"dc7b1ef3",964:"05d835b4",1022:"8a61012d",1035:"24d32e91",1079:"f5818e36",1185:"c2de64b8",1227:"647965d5",1394:"8054effa",1488:"ac3cc3f5",1500:"1e9025f7",1563:"3ef76b56",1567:"22dd74f7",1625:"92852ade",1690:"41a97a99",1845:"2ab0d4f5",1956:"fe6f9601",2073:"7b7db446",2097:"338a6f8e",2273:"e756fa26",2431:"c0d3c6ab",2624:"8ff68e6f",2657:"a3ab51d1",2777:"b3ba68b4",2818:"a9b73094",3040:"2148ae42",3110:"6a2beaac",3142:"ec64dfaf",3247:"bd7ab245",3327:"6aa941bb",3347:"b5257597",3391:"f66238ae",3576:"64045095",3694:"c2b1730c",3758:"a963b3cb",3859:"7679ca6e",3917:"c8dad5f1",3964:"829ff4d2",3968:"0e5205b8",4028:"c2ebd62a",4046:"9ac856ad",4133:"5cf11f26",4633:"c563aec0",4645:"fef056e9",4778:"e189eece",4784:"438e4337",4841:"8298c1cb",4891:"ca67d85f",4930:"d2ad385b",4931:"a9b4f8aa",4954:"a71efd4a",4973:"2d2c4fcb",5138:"309383dc",5179:"41e3c105",5281:"a0511a5b",5284:"64ca91f1",5327:"6ead2d51",5339:"9447891f",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",5923:"73d1a090",5979:"a3a1efc2",6003:"4d983c8e",6008:"445668ec",6053:"dfc50084",6080:"4d15791b",6147:"ab17fe15",6214:"b1220dbd",6281:"c96ce3ed",6332:"873508e7",6350:"188ee668",6419:"96eb0e67",6445:"9fb9a766",6473:"4c5e977b",6511:"320c2db0",6559:"6f13807a",6682:"5a6d6120",6877:"d8246fb2",6890:"8b85e1d0",6897:"57123a14",6920:"c817e236",6949:"b36bb719",7098:"a7bd4aaa",7108:"688feaef",7118:"4ce9199e",7165:"547df4a1",7211:"cacdc615",7338:"c39b795e",7339:"7a774ddf",7408:"3ae94ad4",7453:"fdefa9a8",7462:"921b5fc1",7472:"744aaf8b",7507:"be76515e",7713:"3a82b27e",7894:"0f44198a",8031:"25bf2d67",8034:"e98c4d08",8054:"85112c90",8064:"274fd934",8085:"cc44357e",8102:"019dbd1f",8188:"ecd67556",8196:"75a9e1e0",8208:"216e3ed7",8304:"3b356402",8356:"c6a5eaec",8401:"17896441",8504:"e6c6a4d2",8598:"44dfcf75",8661:"8f774222",8679:"3705a9c0",8921:"45476a69",8927:"ae68aa8b",8929:"172b3cfb",8953:"adef6868",9048:"a94703ab",9126:"ea3c040a",9141:"19136925",9306:"667d0790",9371:"991799c5",9455:"54175a6c",9465:"4600db1a",9476:"57c9a2b8",9479:"4e038a6a",9483:"7823fa72",9555:"dedd5914",9619:"29b8e27a",9642:"eae80ce0",9647:"5e95c892",9681:"5ff9f4db",9905:"43df3697"}[e]||e)+"."+{51:"cd0ccbfc",145:"93d3aee5",191:"bc5122d0",230:"b6389ffe",321:"2a404cb4",417:"3967824c",444:"662d50d1",719:"5b0df143",756:"f7ff21a2",762:"220e9d37",768:"8ddf9b8a",787:"9dc6b752",800:"0d1da50c",868:"90a99e8c",900:"f83a9a5d",964:"52f4bc75",1022:"a81c4194",1035:"6006f0af",1079:"1baa350d",1185:"d4f26f26",1227:"ccc328fb",1394:"d7eb1c7c",1488:"6f7803ae",1500:"ead316c7",1563:"f9ec23bc",1567:"c23c20bf",1625:"14cdddbe",1690:"8912710a",1845:"1dec73f1",1956:"6b72388b",2073:"2194f82f",2097:"bbfb9b02",2273:"c5ea1bc9",2431:"ef6babef",2624:"9aa620c1",2657:"f521046d",2777:"57b762bf",2818:"ae82c374",3040:"cf0a09ef",3042:"820318fc",3110:"efde14d4",3142:"4b89066a",3247:"ad682b57",3327:"bc984c84",3347:"6aaa5e51",3391:"48c12833",3576:"4480f648",3694:"22e44aca",3758:"513c8458",3859:"5588afec",3917:"143a9275",3964:"0e3ae67f",3968:"a3381f15",3997:"090f48a9",4028:"2a4b8371",4046:"1dc3f82f",4058:"44d6af12",4133:"ce574f15",4633:"330eb490",4645:"e4a06c20",4778:"74201833",4784:"4590473d",4841:"95bdb0b5",4891:"69891488",4930:"6bc17c71",4931:"cb12fb22",4954:"9ee039ed",4973:"f6e09b74",5138:"03f4ba4c",5179:"a3b69269",5281:"c345cb7a",5284:"e5f9e373",5327:"4ba9c3a5",5339:"07281f4b",5425:"7f63d321",5467:"68965b36",5474:"61ddfc16",5475:"89352920",5513:"9c38ba6c",5514:"111ea7c3",5562:"01913d89",5572:"d1f33705",5628:"63973836",5634:"b7885256",5647:"58894ec5",5673:"cf260da8",5716:"3d7a49b4",5718:"f6457b6c",5742:"60b1d5b2",5772:"9436c684",5865:"a3d13070",5866:"f55dc808",5883:"b3e45b3f",5923:"9daa9f23",5979:"80ca228a",6003:"96bc0917",6008:"147458cd",6053:"ae0731fb",6080:"69319b8f",6147:"91723488",6214:"45643701",6281:"80f1d0e3",6332:"39aff2c5",6350:"6f1ea0ba",6419:"0ade5b58",6445:"f54c3977",6473:"f971cbc2",6511:"b6592c47",6559:"ebf99c08",6682:"385228f0",6877:"7c28731a",6890:"47d196f8",6897:"2044bb87",6920:"78411df9",6949:"a9755879",7098:"a45af46d",7108:"fae262a3",7118:"9ac51451",7165:"1e262c91",7211:"4ca61e4a",7338:"dc93381f",7339:"b3715884",7408:"b289e5d7",7453:"19dbc565",7462:"6cfb95e3",7472:"7f031020",7507:"66acb103",7713:"2f34c310",7894:"88db355f",8031:"d87ef78d",8034:"db2b6c6a",8054:"328c1000",8064:"c0a40144",8085:"d48055e0",8102:"ab810662",8188:"266529a9",8196:"bfd7d988",8208:"ff7f250a",8304:"d2fd2ec3",8356:"eac1e2fe",8401:"a6833301",8504:"1991f1e2",8598:"254b3339",8661:"c53c72f1",8679:"8885f262",8921:"7c0b2af2",8927:"cc51e0c9",8929:"64592955",8953:"63657ea6",9048:"28fc73fe",9126:"f1454bcb",9141:"6e47c5b6",9306:"285bf480",9371:"2ce271a5",9455:"8f81730b",9465:"1ec9a5b3",9476:"e11eeaaa",9479:"ae84686a",9483:"0aead841",9555:"03d5b57b",9619:"60482e7c",9642:"befc5bf5",9647:"01ffca43",9681:"c7ae0882",9729:"b41836ed",9905:"30ce7db4"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),d={},f="langflow-docs:",r.l=(e,a,c,b)=>{if(d[e])d[e].push(a);else{var t,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var f=d[e];if(delete d[e],t.parentNode&&t.parentNode.removeChild(t),f&&f.forEach((e=>e(c))),a)return a(c)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=u.bind(null,t.onerror),t.onload=u.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.p="/",r.gca=function(e){return e={17896441:"8401",19136925:"9141",64045095:"3576",b7251463:"51","0be1d5fe":"145",c643a6d5:"191",bc63ae25:"230","6e1a9721":"321","93e16042":"417","14f42f9e":"444","459c52ca":"719","4af57a32":"762","6d684b63":"768","672a0eba":"787",a4c0ff01:"800",dc7b1ef3:"868","05d835b4":"964","8a61012d":"1022","24d32e91":"1035",f5818e36:"1079",c2de64b8:"1185","647965d5":"1227","8054effa":"1394",ac3cc3f5:"1488","1e9025f7":"1500","3ef76b56":"1563","22dd74f7":"1567","92852ade":"1625","41a97a99":"1690","2ab0d4f5":"1845",fe6f9601:"1956","7b7db446":"2073","338a6f8e":"2097",e756fa26:"2273",c0d3c6ab:"2431","8ff68e6f":"2624",a3ab51d1:"2657",b3ba68b4:"2777",a9b73094:"2818","2148ae42":"3040","6a2beaac":"3110",ec64dfaf:"3142",bd7ab245:"3247","6aa941bb":"3327",b5257597:"3347",f66238ae:"3391",c2b1730c:"3694",a963b3cb:"3758","7679ca6e":"3859",c8dad5f1:"3917","829ff4d2":"3964","0e5205b8":"3968",c2ebd62a:"4028","9ac856ad":"4046","5cf11f26":"4133",c563aec0:"4633",fef056e9:"4645",e189eece:"4778","438e4337":"4784","8298c1cb":"4841",ca67d85f:"4891",d2ad385b:"4930",a9b4f8aa:"4931",a71efd4a:"4954","2d2c4fcb":"4973","309383dc":"5138","41e3c105":"5179",a0511a5b:"5281","64ca91f1":"5284","6ead2d51":"5327","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","73d1a090":"5923",a3a1efc2:"5979","4d983c8e":"6003","445668ec":"6008",dfc50084:"6053","4d15791b":"6080",ab17fe15:"6147",b1220dbd:"6214",c96ce3ed:"6281","873508e7":"6332","188ee668":"6350","96eb0e67":"6419","9fb9a766":"6445","4c5e977b":"6473","320c2db0":"6511","6f13807a":"6559","5a6d6120":"6682",d8246fb2:"6877","8b85e1d0":"6890","57123a14":"6897",c817e236:"6920",b36bb719:"6949",a7bd4aaa:"7098","688feaef":"7108","4ce9199e":"7118","547df4a1":"7165",cacdc615:"7211",c39b795e:"7338","7a774ddf":"7339","3ae94ad4":"7408",fdefa9a8:"7453","921b5fc1":"7462","744aaf8b":"7472",be76515e:"7507","3a82b27e":"7713","0f44198a":"7894","25bf2d67":"8031",e98c4d08:"8034","85112c90":"8054","274fd934":"8064",cc44357e:"8085","019dbd1f":"8102",ecd67556:"8188","75a9e1e0":"8196","216e3ed7":"8208","3b356402":"8304",c6a5eaec:"8356",e6c6a4d2:"8504","44dfcf75":"8598","8f774222":"8661","3705a9c0":"8679","45476a69":"8921",ae68aa8b:"8927","172b3cfb":"8929",adef6868:"8953",a94703ab:"9048",ea3c040a:"9126","667d0790":"9306","991799c5":"9371","54175a6c":"9455","4600db1a":"9465","57c9a2b8":"9476","4e038a6a":"9479","7823fa72":"9483",dedd5914:"9555","29b8e27a":"9619",eae80ce0:"9642","5e95c892":"9647","5ff9f4db":"9681","43df3697":"9905"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(a,c)=>{var d=r.o(e,a)?e[a]:void 0;if(0!==d)if(d)c.push(d[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var f=new Promise(((c,f)=>d=e[a]=[c,f]));c.push(d[2]=f);var b=r.p+r.u(a),t=new Error;r.l(b,(c=>{if(r.o(e,a)&&(0!==(d=e[a])&&(e[a]=void 0),d)){var f=c&&("load"===c.type?"missing":c.type),b=c&&c.target&&c.target.src;t.message="Loading chunk "+a+" failed.\n("+f+": "+b+")",t.name="ChunkLoadError",t.type=f,t.request=b,d[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,c)=>{var d,f,b=c[0],t=c[1],o=c[2],n=0;if(b.some((a=>0!==e[a]))){for(d in t)r.o(t,d)&&(r.m[d]=t[d]);if(o)var i=o(r)}for(a&&a(c);n{"use strict";var e,a,c,d,f,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var c=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(c.exports,c,c.exports,r),c.loaded=!0,c.exports}r.m=b,r.c=t,e=[],r.O=(a,c,d,f)=>{if(!c){var b=1/0;for(i=0;i=f)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,f0&&e[i-1][2]>f;i--)e[i]=e[i-1];e[i]=[c,d,f]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,d){if(1&d&&(e=this(e)),8&d)return e;if("object"==typeof e&&e){if(4&d&&e.__esModule)return e;if(16&d&&"function"==typeof e.then)return e}var f=Object.create(null);r.r(f);var b={};a=a||[null,c({}),c([]),c(c)];for(var t=2&d&&e;"object"==typeof t&&!~a.indexOf(t);t=c(t))Object.getOwnPropertyNames(t).forEach((a=>b[a]=()=>e[a]));return b.default=()=>e,r.d(f,b),f},r.d=(e,a)=>{for(var c in a)r.o(a,c)&&!r.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,c)=>(r.f[c](e,a),a)),[])),r.u=e=>"assets/js/"+({51:"b7251463",145:"0be1d5fe",191:"c643a6d5",230:"bc63ae25",321:"6e1a9721",417:"93e16042",444:"14f42f9e",719:"459c52ca",762:"4af57a32",768:"6d684b63",787:"672a0eba",800:"a4c0ff01",868:"dc7b1ef3",964:"05d835b4",1022:"8a61012d",1035:"24d32e91",1079:"f5818e36",1185:"c2de64b8",1227:"647965d5",1394:"8054effa",1488:"ac3cc3f5",1500:"1e9025f7",1563:"3ef76b56",1567:"22dd74f7",1625:"92852ade",1690:"41a97a99",1845:"2ab0d4f5",1956:"fe6f9601",2073:"7b7db446",2097:"338a6f8e",2273:"e756fa26",2431:"c0d3c6ab",2624:"8ff68e6f",2657:"a3ab51d1",2777:"b3ba68b4",2818:"a9b73094",3040:"2148ae42",3110:"6a2beaac",3142:"ec64dfaf",3247:"bd7ab245",3327:"6aa941bb",3347:"b5257597",3391:"f66238ae",3576:"64045095",3694:"c2b1730c",3758:"a963b3cb",3859:"7679ca6e",3917:"c8dad5f1",3964:"829ff4d2",3968:"0e5205b8",4028:"c2ebd62a",4046:"9ac856ad",4133:"5cf11f26",4633:"c563aec0",4645:"fef056e9",4778:"e189eece",4784:"438e4337",4841:"8298c1cb",4891:"ca67d85f",4930:"d2ad385b",4931:"a9b4f8aa",4954:"a71efd4a",4973:"2d2c4fcb",5138:"309383dc",5179:"41e3c105",5281:"a0511a5b",5284:"64ca91f1",5327:"6ead2d51",5339:"9447891f",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",5923:"73d1a090",5979:"a3a1efc2",6003:"4d983c8e",6008:"445668ec",6053:"dfc50084",6080:"4d15791b",6147:"ab17fe15",6214:"b1220dbd",6281:"c96ce3ed",6332:"873508e7",6350:"188ee668",6419:"96eb0e67",6445:"9fb9a766",6473:"4c5e977b",6511:"320c2db0",6559:"6f13807a",6682:"5a6d6120",6877:"d8246fb2",6890:"8b85e1d0",6897:"57123a14",6920:"c817e236",6949:"b36bb719",7098:"a7bd4aaa",7108:"688feaef",7118:"4ce9199e",7165:"547df4a1",7211:"cacdc615",7338:"c39b795e",7339:"7a774ddf",7408:"3ae94ad4",7453:"fdefa9a8",7462:"921b5fc1",7472:"744aaf8b",7507:"be76515e",7713:"3a82b27e",7894:"0f44198a",8031:"25bf2d67",8034:"e98c4d08",8054:"85112c90",8064:"274fd934",8085:"cc44357e",8102:"019dbd1f",8188:"ecd67556",8196:"75a9e1e0",8208:"216e3ed7",8304:"3b356402",8356:"c6a5eaec",8401:"17896441",8504:"e6c6a4d2",8598:"44dfcf75",8661:"8f774222",8679:"3705a9c0",8921:"45476a69",8927:"ae68aa8b",8929:"172b3cfb",8953:"adef6868",9048:"a94703ab",9126:"ea3c040a",9141:"19136925",9306:"667d0790",9371:"991799c5",9455:"54175a6c",9465:"4600db1a",9476:"57c9a2b8",9479:"4e038a6a",9483:"7823fa72",9555:"dedd5914",9619:"29b8e27a",9642:"eae80ce0",9647:"5e95c892",9681:"5ff9f4db",9905:"43df3697"}[e]||e)+"."+{51:"38baf68f",145:"93d3aee5",191:"bc5122d0",230:"b6389ffe",321:"161e4b94",417:"3967824c",444:"662d50d1",719:"5b0df143",756:"f7ff21a2",762:"220e9d37",768:"8ddf9b8a",787:"9dc6b752",800:"0d1da50c",868:"90a99e8c",900:"f83a9a5d",964:"52f4bc75",1022:"a81c4194",1035:"6006f0af",1079:"1baa350d",1185:"d4f26f26",1227:"ccc328fb",1394:"b917c700",1488:"6f7803ae",1500:"ead316c7",1563:"f9ec23bc",1567:"c23c20bf",1625:"14cdddbe",1690:"8912710a",1845:"81744766",1956:"6b72388b",2073:"2194f82f",2097:"bbfb9b02",2273:"c5ea1bc9",2431:"ef6babef",2624:"94ae8daa",2657:"f521046d",2777:"57b762bf",2818:"ae82c374",3040:"cf0a09ef",3042:"820318fc",3110:"efde14d4",3142:"4b89066a",3247:"ad682b57",3327:"3140d0c4",3347:"6aaa5e51",3391:"3f25c4d6",3576:"4480f648",3694:"22e44aca",3758:"513c8458",3859:"5588afec",3917:"143a9275",3964:"0e3ae67f",3968:"a3381f15",3997:"090f48a9",4028:"2a4b8371",4046:"1dc3f82f",4058:"44d6af12",4133:"ce574f15",4633:"330eb490",4645:"e4a06c20",4778:"74201833",4784:"4590473d",4841:"95bdb0b5",4891:"69891488",4930:"6bc17c71",4931:"cb12fb22",4954:"9ee039ed",4973:"f6e09b74",5138:"03f4ba4c",5179:"a3b69269",5281:"c345cb7a",5284:"e5f9e373",5327:"4ba9c3a5",5339:"07281f4b",5425:"7f63d321",5467:"68965b36",5474:"61ddfc16",5475:"89352920",5513:"9c38ba6c",5514:"111ea7c3",5562:"01913d89",5572:"d1f33705",5628:"63973836",5634:"b7885256",5647:"58894ec5",5673:"cf260da8",5716:"3d7a49b4",5718:"f6457b6c",5742:"60b1d5b2",5772:"9436c684",5865:"a3d13070",5866:"f55dc808",5883:"b3e45b3f",5923:"9daa9f23",5979:"80ca228a",6003:"96bc0917",6008:"147458cd",6053:"ae0731fb",6080:"69319b8f",6147:"91723488",6214:"45643701",6281:"80f1d0e3",6332:"39aff2c5",6350:"6f1ea0ba",6419:"0ade5b58",6445:"f54c3977",6473:"f971cbc2",6511:"b6592c47",6559:"ebf99c08",6682:"385228f0",6877:"7c28731a",6890:"47d196f8",6897:"2044bb87",6920:"78411df9",6949:"a9755879",7098:"a45af46d",7108:"fae262a3",7118:"9ac51451",7165:"1e262c91",7211:"4ca61e4a",7338:"fda22512",7339:"b3715884",7408:"b289e5d7",7453:"366bfeac",7462:"529c2dd9",7472:"7f031020",7507:"66acb103",7713:"2f34c310",7894:"88db355f",8031:"d87ef78d",8034:"db2b6c6a",8054:"328c1000",8064:"c0a40144",8085:"d48055e0",8102:"ab810662",8188:"266529a9",8196:"bfd7d988",8208:"ff7f250a",8304:"d2fd2ec3",8356:"eac1e2fe",8401:"a6833301",8504:"76f42c39",8598:"254b3339",8661:"a51c4119",8679:"8885f262",8921:"7c0b2af2",8927:"cc51e0c9",8929:"64592955",8953:"63657ea6",9048:"28fc73fe",9126:"f1454bcb",9141:"6e47c5b6",9306:"285bf480",9371:"2ce271a5",9455:"8f81730b",9465:"c6fccf29",9476:"e11eeaaa",9479:"ae84686a",9483:"0aead841",9555:"03d5b57b",9619:"60482e7c",9642:"befc5bf5",9647:"01ffca43",9681:"c7ae0882",9729:"b41836ed",9905:"30ce7db4"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),d={},f="langflow-docs:",r.l=(e,a,c,b)=>{if(d[e])d[e].push(a);else{var t,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var f=d[e];if(delete d[e],t.parentNode&&t.parentNode.removeChild(t),f&&f.forEach((e=>e(c))),a)return a(c)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=u.bind(null,t.onerror),t.onload=u.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.p="/",r.gca=function(e){return e={17896441:"8401",19136925:"9141",64045095:"3576",b7251463:"51","0be1d5fe":"145",c643a6d5:"191",bc63ae25:"230","6e1a9721":"321","93e16042":"417","14f42f9e":"444","459c52ca":"719","4af57a32":"762","6d684b63":"768","672a0eba":"787",a4c0ff01:"800",dc7b1ef3:"868","05d835b4":"964","8a61012d":"1022","24d32e91":"1035",f5818e36:"1079",c2de64b8:"1185","647965d5":"1227","8054effa":"1394",ac3cc3f5:"1488","1e9025f7":"1500","3ef76b56":"1563","22dd74f7":"1567","92852ade":"1625","41a97a99":"1690","2ab0d4f5":"1845",fe6f9601:"1956","7b7db446":"2073","338a6f8e":"2097",e756fa26:"2273",c0d3c6ab:"2431","8ff68e6f":"2624",a3ab51d1:"2657",b3ba68b4:"2777",a9b73094:"2818","2148ae42":"3040","6a2beaac":"3110",ec64dfaf:"3142",bd7ab245:"3247","6aa941bb":"3327",b5257597:"3347",f66238ae:"3391",c2b1730c:"3694",a963b3cb:"3758","7679ca6e":"3859",c8dad5f1:"3917","829ff4d2":"3964","0e5205b8":"3968",c2ebd62a:"4028","9ac856ad":"4046","5cf11f26":"4133",c563aec0:"4633",fef056e9:"4645",e189eece:"4778","438e4337":"4784","8298c1cb":"4841",ca67d85f:"4891",d2ad385b:"4930",a9b4f8aa:"4931",a71efd4a:"4954","2d2c4fcb":"4973","309383dc":"5138","41e3c105":"5179",a0511a5b:"5281","64ca91f1":"5284","6ead2d51":"5327","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","73d1a090":"5923",a3a1efc2:"5979","4d983c8e":"6003","445668ec":"6008",dfc50084:"6053","4d15791b":"6080",ab17fe15:"6147",b1220dbd:"6214",c96ce3ed:"6281","873508e7":"6332","188ee668":"6350","96eb0e67":"6419","9fb9a766":"6445","4c5e977b":"6473","320c2db0":"6511","6f13807a":"6559","5a6d6120":"6682",d8246fb2:"6877","8b85e1d0":"6890","57123a14":"6897",c817e236:"6920",b36bb719:"6949",a7bd4aaa:"7098","688feaef":"7108","4ce9199e":"7118","547df4a1":"7165",cacdc615:"7211",c39b795e:"7338","7a774ddf":"7339","3ae94ad4":"7408",fdefa9a8:"7453","921b5fc1":"7462","744aaf8b":"7472",be76515e:"7507","3a82b27e":"7713","0f44198a":"7894","25bf2d67":"8031",e98c4d08:"8034","85112c90":"8054","274fd934":"8064",cc44357e:"8085","019dbd1f":"8102",ecd67556:"8188","75a9e1e0":"8196","216e3ed7":"8208","3b356402":"8304",c6a5eaec:"8356",e6c6a4d2:"8504","44dfcf75":"8598","8f774222":"8661","3705a9c0":"8679","45476a69":"8921",ae68aa8b:"8927","172b3cfb":"8929",adef6868:"8953",a94703ab:"9048",ea3c040a:"9126","667d0790":"9306","991799c5":"9371","54175a6c":"9455","4600db1a":"9465","57c9a2b8":"9476","4e038a6a":"9479","7823fa72":"9483",dedd5914:"9555","29b8e27a":"9619",eae80ce0:"9642","5e95c892":"9647","5ff9f4db":"9681","43df3697":"9905"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(a,c)=>{var d=r.o(e,a)?e[a]:void 0;if(0!==d)if(d)c.push(d[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var f=new Promise(((c,f)=>d=e[a]=[c,f]));c.push(d[2]=f);var b=r.p+r.u(a),t=new Error;r.l(b,(c=>{if(r.o(e,a)&&(0!==(d=e[a])&&(e[a]=void 0),d)){var f=c&&("load"===c.type?"missing":c.type),b=c&&c.target&&c.target.src;t.message="Loading chunk "+a+" failed.\n("+f+": "+b+")",t.name="ChunkLoadError",t.type=f,t.request=b,d[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,c)=>{var d,f,b=c[0],t=c[1],o=c[2],n=0;if(b.some((a=>0!==e[a]))){for(d in t)r.o(t,d)&&(r.m[d]=t[d]);if(o)var i=o(r)}for(a&&a(c);n - + diff --git a/components-custom-components.html b/components-custom-components.html index e5a079b062..04aef4b441 100644 --- a/components-custom-components.html +++ b/components-custom-components.html @@ -10,7 +10,7 @@ - + diff --git a/components-data.html b/components-data.html index 03e9d0f231..81eaec470d 100644 --- a/components-data.html +++ b/components-data.html @@ -10,7 +10,7 @@ - + @@ -30,55 +30,63 @@ To output a Message type, in the Output Format dro

In this example of a document ingestion pipeline, the URL component outputs raw HTML to a text splitter, which splits the raw content into chunks for a vector database to ingest.

URL component in a data ingestion pipeline

API Request

-

This component sends HTTP requests to the specified URLs.

-

Use this component to interact with external APIs or services and retrieve data. Ensure that the URLs are valid and that you configure the method, headers, body, and timeout correctly.

+

This component makes HTTP requests using URLs or cURL commands.

Inputs

-
NameDisplay NameInfo
URLsURLsThe URLs to target
curlcurlPaste a curl command to fill in the dictionary fields for headers and body
MethodHTTP MethodThe HTTP method to use, such as GET or POST
HeadersHeadersThe headers to include with the request
BodyRequest BodyThe data to send with the request (for methods like POST, PATCH, PUT)
TimeoutTimeoutThe maximum time to wait for a response
+
NameDisplay NameInfo
urlsURLsEnter one or more URLs, separated by commas.
curlcURLPaste a curl command to populate the dictionary fields for headers and body.
methodMethodThe HTTP method to use.
use_curlUse cURLEnable cURL mode to populate fields from a cURL command.
query_paramsQuery ParametersThe query parameters to append to the URL.
bodyBodyThe body to send with the request as a dictionary (for POST, PATCH, PUT).
headersHeadersThe headers to send with the request as a dictionary.
timeoutTimeoutThe timeout to use for the request.
follow_redirectsFollow RedirectsWhether to follow http redirects.
save_to_fileSave to FileSave the API response to a temporary file
include_httpx_metadataInclude HTTPx MetadataInclude properties such as headers, status_code, response_headers, and redirection_history in the output.
+

Outputs

+
NameDisplay NameInfo
dataDataThe result of the API requests.

Directory

This component recursively loads files from a directory, with options for file types, depth, and concurrency.

Inputs

-
InputTypeDescription
pathMessageTextInputPath to the directory to load files from
typesMessageTextInputFile types to load (leave empty to load all types)
depthIntInputDepth to search for files
max_concurrencyIntInputMaximum concurrency for loading files
load_hiddenBoolInputIf true, hidden files will be loaded
recursiveBoolInputIf true, the search will be recursive
silent_errorsBoolInputIf true, errors will not raise an exception
use_multithreadingBoolInputIf true, multithreading will be used
-

Outputs

+
InputTypeDescription
pathMessageTextInputPath to the directory to load files from
typesMessageTextInputFile types to load (leave empty to load all types)
depthIntInputDepth to search for files
max_concurrencyIntInputMaximum concurrency for loading files
load_hiddenBoolInputIf true, hidden files are loaded
recursiveBoolInputIf true, the search is recursive
silent_errorsBoolInputIf true, errors do not raise an exception
use_multithreadingBoolInputIf true, multithreading is used
+

Outputs

OutputTypeDescription
dataList[Data]Loaded file data from the directory

File

The FileComponent is a class that loads and parses text files of various supported formats, converting the content into a Data object. It supports multiple file types and provides an option for silent error handling.

+

The maximum supported file size is 100 MB.

Inputs

-
NameDisplay NameInfo
pathPathFile path to load.
silent_errorsSilent ErrorsIf true, errors will not raise an exception.
-

Outputs

-
NameDisplay NameInfo
dataDataParsed content of the file as a Data object.
-

URL

-

The URLComponent is a class that fetches content from one or more URLs, processes the content, and returns it as a list of Data objects. It ensures that the provided URLs are valid and uses WebBaseLoader to fetch the content.

-

Inputs

-
NameDisplay NameInfo
urlsURLsEnter one or more URLs
+
NameDisplay NameInfo
pathPathFile path to load.
silent_errorsSilent ErrorsIf true, errors do not raise an exception.

Outputs

-
NameDisplay NameInfo
dataDataList of Data objects containing fetched content and metadata
+
NameDisplay NameInfo
dataDataParsed content of the file as a Data object.

Gmail Loader

This component loads emails from Gmail using provided credentials and filters.

For more on creating a service account JSON, see Service Account JSON.

-

Inputs

+

Inputs

InputTypeDescription
json_stringSecretStrInputJSON string containing OAuth 2.0 access token information for service account access
label_idsMessageTextInputComma-separated list of label IDs to filter emails
max_resultsMessageTextInputMaximum number of emails to load

Outputs

OutputTypeDescription
dataDataLoaded email data

Google Drive Loader

This component loads documents from Google Drive using provided credentials and a single document ID.

For more on creating a service account JSON, see Service Account JSON.

-

Inputs

+

Inputs

InputTypeDescription
json_stringSecretStrInputJSON string containing OAuth 2.0 access token information for service account access
document_idMessageTextInputSingle Google Drive document ID

Outputs

OutputTypeDescription
docsDataLoaded document data

This component searches Google Drive files using provided credentials and query parameters.

For more on creating a service account JSON, see Service Account JSON.

-

Inputs

+

Inputs

InputTypeDescription
token_stringSecretStrInputJSON string containing OAuth 2.0 access token information for service account access
query_itemDropdownInputThe field to query
valid_operatorDropdownInputOperator to use in the query
search_termMessageTextInputThe value to search for in the specified query item
query_stringMessageTextInputThe query string used for searching (can be edited manually)

Outputs

OutputTypeDescription
doc_urlsList[str]URLs of the found documents
doc_idsList[str]IDs of the found documents
doc_titlesList[str]Titles of the found documents
DataDataDocument titles and URLs in a structured format
+

SQL Query

+

This component executes SQL queries on a specified database.

+

Inputs

+
NameDisplay NameInfo
queryQueryThe SQL query to execute.
database_urlDatabase URLThe URL of the database.
include_columnsInclude ColumnsInclude columns in the result.
passthroughPassthroughIf an error occurs, return the query instead of raising an exception.
add_errorAdd ErrorAdd the error to the result.
+

Outputs

+
NameDisplay NameInfo
resultResultThe result of the SQL query execution.
+

URL

+

This component fetches content from one or more URLs, processes the content, and returns it as a list of Data objects.

+

Inputs

+
NameDisplay NameInfo
urlsURLsEnter one or more URLs
+

Outputs

+
NameDisplay NameInfo
dataDataList of Data objects containing fetched content and metadata

Webhook

This component defines a webhook input for the flow. The flow can be triggered by an external HTTP POST request (webhook) sending a JSON payload.

-

If the input is not valid JSON, the component will wrap it in a "payload" field. The component's status will reflect any errors or the processed data.

-

Inputs

+

If the input is not valid JSON, the component wraps it in a "payload" field. The component's status reflects any errors on the processed data.

+

Inputs

NameTypeDescription
dataStringJSON payload for testing the webhook component
-

Outputs

-
NameTypeDescription
output_dataDataProcessed data from the webhook input

Hi, how can I help you?

+

Outputs

+
NameTypeDescription
output_dataDataProcessed data from the webhook input

Hi, how can I help you?

\ No newline at end of file diff --git a/components-embedding-models.html b/components-embedding-models.html index 3942086c64..79b13494b3 100644 --- a/components-embedding-models.html +++ b/components-embedding-models.html @@ -10,7 +10,7 @@ - + @@ -39,6 +39,8 @@

Outputs

NameTypeDescription
embeddingsEmbeddingsAn instance for generating embeddings using Amazon Bedrock

Astra DB vectorize

+
important

This component is deprecated as of Langflow version 1.1.2. +Instead, use the Astra DB vector store component

Connect this component to the Embeddings port of the Astra DB vector store component to generate embeddings.

This component requires that your Astra DB database has a collection that uses a vectorize embedding provider integration. For more information and instructions, see Embedding Generation.

@@ -52,71 +54,87 @@ For more information and instructions, see Outputs
NameTypeDescription
embeddingsEmbeddingsAn instance for generating embeddings using Azure OpenAI
+

Cloudflare Workers AI Embeddings

+

This component generates embeddings using Cloudflare Workers AI models.

+

Inputs

+
NameDisplay NameInfo
account_idCloudflare account IDFind your Cloudflare account ID
api_tokenCloudflare API tokenCreate an API token
model_nameModel NameList of supported models
strip_new_linesStrip New LinesWhether to strip new lines from the input text
batch_sizeBatch SizeNumber of texts to embed in each batch
api_base_urlCloudflare API base URLBase URL for the Cloudflare API
headersHeadersAdditional request headers
+

Outputs

+
NameDisplay NameInfo
embeddingsEmbeddingsAn instance for generating embeddings using Cloudflare Workers

Cohere Embeddings

This component is used to load embedding models from Cohere.

-

Inputs

+

Inputs

NameTypeDescription
cohere_api_keyStringAPI key required to authenticate with the Cohere service
modelStringLanguage model used for embedding text documents and performing queries (default: embed-english-v2.0)
truncateBooleanWhether to truncate the input text to fit within the model's constraints (default: False)
-

Outputs

+

Outputs

NameTypeDescription
embeddingsEmbeddingsAn instance for generating embeddings using Cohere

Embedding similarity

This component computes selected forms of similarity between two embedding vectors.

-

Inputs

+

Inputs

NameDisplay NameInfo
embedding_vectorsEmbedding VectorsA list containing exactly two data objects with embedding vectors to compare.
similarity_metricSimilarity MetricSelect the similarity metric to use. Options: "Cosine Similarity", "Euclidean Distance", "Manhattan Distance".
-

Outputs

+

Outputs

NameDisplay NameInfo
similarity_dataSimilarity DataData object containing the computed similarity score and additional information.

Google generative AI embeddings

This component connects to Google's generative AI embedding service using the GoogleGenerativeAIEmbeddings class from the langchain-google-genai package.

-

Inputs

+

Inputs

NameDisplay NameInfo
api_keyAPI KeySecret API key for accessing Google's generative AI service (required)
model_nameModel NameName of the embedding model to use (default: "models/text-embedding-004")
-

Outputs

+

Outputs

NameDisplay NameInfo
embeddingsEmbeddingsBuilt GoogleGenerativeAIEmbeddings object

Hugging Face Embeddings

note

This component is deprecated as of Langflow version 1.0.18. Instead, use the Hugging Face API Embeddings component.

This component loads embedding models from HuggingFace.

Use this component to generate embeddings using locally downloaded Hugging Face models. Ensure you have sufficient computational resources to run the models.

-

Inputs

-
NameDisplay NameInfo
Cache FolderCache FolderFolder path to cache HuggingFace models
Encode KwargsEncoding ArgumentsAdditional arguments for the encoding process
Model KwargsModel ArgumentsAdditional arguments for the model
Model NameModel NameName of the HuggingFace model to use
Multi ProcessMulti-ProcessWhether to use multiple processes
-

Hugging Face embeddings Inference API

-

This component generates embeddings using Hugging Face Inference API models.

-

Use this component to create embeddings with Hugging Face's hosted models. Ensure you have a valid Hugging Face API key.

Inputs

-
NameDisplay NameInfo
API KeyAPI KeyAPI key for accessing the Hugging Face Inference API
API URLAPI URLURL of the Hugging Face Inference API
Model NameModel NameName of the model to use for embeddings
Cache FolderCache FolderFolder path to cache Hugging Face models
Encode KwargsEncoding ArgumentsAdditional arguments for the encoding process
Model KwargsModel ArgumentsAdditional arguments for the model
Multi ProcessMulti-ProcessWhether to use multiple processes
-

MistralAI

-

This component generates embeddings using MistralAI models.

+
NameDisplay NameInfo
Cache FolderCache FolderFolder path to cache HuggingFace models
Encode KwargsEncoding ArgumentsAdditional arguments for the encoding process
Model KwargsModel ArgumentsAdditional arguments for the model
Model NameModel NameName of the HuggingFace model to use
Multi ProcessMulti-ProcessWhether to use multiple processes
+

Outputs

+
NameDisplay NameInfo
embeddingsEmbeddingsThe generated embeddings
+

Hugging Face embeddings Inference API

+

This component generates embeddings using Hugging Face Inference API models.

+

Use this component to create embeddings with Hugging Face's hosted models.

Inputs

+
NameDisplay NameInfo
API KeyAPI KeyAPI key for accessing the Hugging Face Inference API
API URLAPI URLURL of the Hugging Face Inference API
Model NameModel NameName of the model to use for embeddings
Cache FolderCache FolderFolder path to cache Hugging Face models
Encode KwargsEncoding ArgumentsAdditional arguments for the encoding process
Model KwargsModel ArgumentsAdditional arguments for the model
Multi ProcessMulti-ProcessWhether to use multiple processes
+

Outputs

+
NameDisplay NameInfo
embeddingsEmbeddingsThe generated embeddings
+

LM Studio Embeddings

+

This component generates embeddings using LM Studio models.

+

Inputs

+
NameDisplay NameInfo
modelModelThe LM Studio model to use for generating embeddings
base_urlLM Studio Base URLThe base URL for the LM Studio API
api_keyLM Studio API KeyAPI key for authentication with LM Studio
temperatureModel TemperatureTemperature setting for the model
+

Outputs

+
NameDisplay NameInfo
embeddingsEmbeddingsThe generated embeddings
+

MistralAI

+

This component generates embeddings using MistralAI models.

+

Inputs

NameTypeDescription
modelStringThe MistralAI model to use (default: "mistral-embed")
mistral_api_keySecretStringAPI key for authenticating with MistralAI
max_concurrent_requestsIntegerMaximum number of concurrent API requests (default: 64)
max_retriesIntegerMaximum number of retry attempts for failed requests (default: 5)
timeoutIntegerRequest timeout in seconds (default: 120)
endpointStringCustom API endpoint URL (default: https://api.mistral.ai/v1/)
-

Outputs

+

Outputs

NameTypeDescription
embeddingsEmbeddingsMistralAIEmbeddings instance for generating embeddings

NVIDIA

-

This component generates embeddings using NVIDIA models.

-

Inputs

+

This component generates embeddings using NVIDIA models.

+

Inputs

NameTypeDescription
modelStringThe NVIDIA model to use for embeddings (e.g., nvidia/nv-embed-v1)
base_urlStringBase URL for the NVIDIA API (default: https://integrate.api.nvidia.com/v1)
nvidia_api_keySecretStringAPI key for authenticating with NVIDIA's service
temperatureFloatModel temperature for embedding generation (default: 0.1)
-

Outputs

+

Outputs

NameTypeDescription
embeddingsEmbeddingsNVIDIAEmbeddings instance for generating embeddings

Ollama Embeddings

-

This component generates embeddings using Ollama models.

-

Inputs

+

This component generates embeddings using Ollama models.

+

Inputs

NameTypeDescription
Ollama ModelStringName of the Ollama model to use (default: llama2)
Ollama Base URLStringBase URL of the Ollama API (default: http://localhost:11434)
Model TemperatureFloatTemperature parameter for the model. Adjusts the randomness in the generated embeddings
-

Outputs

+

Outputs

NameTypeDescription
embeddingsEmbeddingsAn instance for generating embeddings using Ollama

OpenAI Embeddings

This component is used to load embedding models from OpenAI.

-

Inputs

+

Inputs

NameTypeDescription
OpenAI API KeyStringThe API key to use for accessing the OpenAI API
Default HeadersDictDefault headers for the HTTP requests
Default QueryNestedDictDefault query parameters for the HTTP requests
Allowed SpecialListSpecial tokens allowed for processing (default: [])
Disallowed SpecialListSpecial tokens disallowed for processing (default: ["all"])
Chunk SizeIntegerChunk size for processing (default: 1000)
ClientAnyHTTP client for making requests
DeploymentStringDeployment name for the model (default: text-embedding-3-small)
Embedding Context LengthIntegerLength of embedding context (default: 8191)
Max RetriesIntegerMaximum number of retries for failed requests (default: 6)
ModelStringName of the model to use (default: text-embedding-3-small)
Model KwargsNestedDictAdditional keyword arguments for the model
OpenAI API BaseStringBase URL of the OpenAI API
OpenAI API TypeStringType of the OpenAI API
OpenAI API VersionStringVersion of the OpenAI API
OpenAI OrganizationStringOrganization associated with the API key
OpenAI ProxyStringProxy server for the requests
Request TimeoutFloatTimeout for the HTTP requests
Show Progress BarBooleanWhether to show a progress bar for processing (default: False)
Skip EmptyBooleanWhether to skip empty inputs (default: False)
TikToken EnableBooleanWhether to enable TikToken (default: True)
TikToken Model NameStringName of the TikToken model
-

Outputs

+

Outputs

NameTypeDescription
embeddingsEmbeddingsAn instance for generating embeddings using OpenAI

Text embedder

This component generates embeddings for a given message using a specified embedding model.

-

Inputs

+

Inputs

NameDisplay NameInfo
embedding_modelEmbedding ModelThe embedding model to use for generating embeddings.
messageMessageThe message for which to generate embeddings.
-

Outputs

+

Outputs

NameDisplay NameInfo
embeddingsEmbedding DataData object containing the original text and its embedding vector.

VertexAI Embeddings

This component is a wrapper around Google Vertex AI Embeddings API.

-

Inputs

+

Inputs

NameTypeDescription
credentialsCredentialsThe default custom credentials to use
locationStringThe default location to use when making API calls (default: us-central1)
max_output_tokensIntegerToken limit determines the maximum amount of text output from one prompt (default: 128)
model_nameStringThe name of the Vertex AI large language model (default: text-bison)
projectStringThe default GCP project to use when making Vertex API calls
request_parallelismIntegerThe amount of parallelism allowed for requests issued to VertexAI models (default: 5)
temperatureFloatTunes the degree of randomness in text generations. Should be a non-negative value (default: 0)
top_kIntegerHow the model selects tokens for output, the next token is selected from the top k tokens (default: 40)
top_pFloatTokens are selected from the most probable to least until the sum of their probabilities exceeds the top p value (default: 0.95)
tuned_model_nameStringThe name of a tuned model. If provided, model_name is ignored
verboseBooleanThis parameter controls the level of detail in the output. When set to True, it prints internal states of the chain to help debug (default: False)
-

Outputs

-
NameTypeDescription
embeddingsEmbeddingsAn instance for generating embeddings using VertexAI

Hi, how can I help you?

+

Outputs

+
NameTypeDescription
embeddingsEmbeddingsAn instance for generating embeddings using VertexAI

Hi, how can I help you?

\ No newline at end of file diff --git a/components-helpers.html b/components-helpers.html index 228e404aba..8189c33e32 100644 --- a/components-helpers.html +++ b/components-helpers.html @@ -10,7 +10,7 @@ - + @@ -26,39 +26,49 @@

The Store Message helper component stores chat memories as Data objects, and the Message History helper component retrieves chat messages as data objects or strings.

This example flow stores and retrieves chat history from an AstraDBChatMemory component with Store Message and Chat Memory components.

Sample Flow storing Chat Memory in AstraDB

+

Batch Run Component

+

The Batch Run component runs a language model over each row of a DataFrame text column and returns a new DataFrame with the original text and the model's response.

+

Inputs

+
NameDisplay NameTypeInfoRequired
modelLanguage ModelHandleInputConnect the 'Language Model' output from your LLM component here.Yes
system_messageSystem MessageMultilineInputMulti-line system instruction for all rows in the DataFrame.No
dfDataFrameDataFrameInputThe DataFrame whose column (specified by 'column_name') will be treated as text messages.Yes
column_nameColumn NameStrInputThe name of the DataFrame column to treat as text messages. Default='text'.Yes
+

Outputs

+
NameDisplay NameMethodInfo
batch_resultsBatch Resultsrun_batchA DataFrame with two columns: 'text_input' and 'model_response'.

Create List

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

-

Inputs

+

Inputs

NameDisplay NameInfo
n_fieldsNumber of FieldsNumber of fields to be added to the record.
text_keyText KeyKey used as text.
+

Outputs

+
NameDisplay NameInfo
listListThe dynamically created list with the specified number of fields.

Current date

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.

-

Inputs

+

Inputs

NameDisplay NameInfo
timezoneTimezoneSelect the timezone for the current date and time.
-

Outputs

+

Outputs

NameDisplay NameInfo
current_dateCurrent DateThe resulting current date and time in the selected timezone.

ID Generator

This component generates a unique ID.

-

Outputs

-
NameDisplay NameInfo
valueValueUnique ID generated.
+

Inputs

+
NameDisplay NameInfo
unique_idValueThe generated unique ID.
+

Outputs

+
NameDisplay NameInfo
idIDThe generated unique ID.

Message history

info

Prior to Langflow 1.1, this component was known as the Chat Memory component.

This component retrieves and manages chat messages from Langflow tables or an external memory.

-

Inputs

+

Inputs

NameDisplay NameInfo
memoryExternal MemoryRetrieve messages from an external memory. If empty, it will use the Langflow tables.
senderSender TypeFilter by sender type.
sender_nameSender NameFilter by sender name.
n_messagesNumber of MessagesNumber of messages to retrieve.
session_idSession IDThe session ID of the chat. If empty, the current session ID parameter will be used.
orderOrderOrder of the messages.
templateTemplateThe template to use for formatting the data. It can contain the keys {text}, {sender} or any other key in the message data.
-

Outputs

+

Outputs

NameDisplay NameInfo
messagesMessages (Data)Retrieved messages as Data objects.
messages_textMessages (Text)Retrieved messages formatted as text.
lc_memoryMemoryA constructed Langchain ConversationBufferMemory object
-

Store Message

+

Message store

This component stores chat messages or text into Langflow tables or an external memory.

It provides flexibility in managing message storage and retrieval within a chat system.

-

Inputs

+

Inputs

NameDisplay NameInfo
messageMessageThe chat message to be stored. (Required)
memoryExternal MemoryThe external memory to store the message. If empty, it will use the Langflow tables.
senderSenderThe sender of the message. Can be Machine or User. If empty, the current sender parameter will be used.
sender_nameSender NameThe name of the sender. Can be AI or User. If empty, the current sender parameter will be used.
session_idSession IDThe session ID of the chat. If empty, the current session ID parameter will be used.
-

Outputs

+

Outputs

NameDisplay NameInfo
stored_messagesStored MessagesThe list of stored messages after the current message has been added.

Structured output

This component transforms LLM responses into structured data formats.

Input

NameDisplay NameInfo
llmLanguage ModelThe language model to use to generate the structured output.
input_valueInput messageThe input message for the language model to process.
schema_nameSchema NameProvide a name for the output data schema.
output_schemaOutput SchemaDefine the structure and data types for the model's output.
multipleGenerate MultipleSet to True if the model should generate a list of outputs instead of a single output.

Output

-

| structured_output | Structured Output | The resulting structured output based on the defined schema. |

Hi, how can I help you?

+
NameDisplay NameInfo
stored_messagesStored Messagesstructured output based on the defined schema.

Hi, how can I help you?

\ No newline at end of file diff --git a/components-io.html b/components-io.html index 7a78fe538f..affa1c6a3b 100644 --- a/components-io.html +++ b/components-io.html @@ -10,7 +10,7 @@ - + diff --git a/components-loaders.html b/components-loaders.html index 4103717c79..5d302ae65a 100644 --- a/components-loaders.html +++ b/components-loaders.html @@ -10,7 +10,7 @@ - + diff --git a/components-logic.html b/components-logic.html index 3001585189..1254cff32e 100644 --- a/components-logic.html +++ b/components-logic.html @@ -10,7 +10,7 @@ - + @@ -32,7 +32,7 @@ This is represented in Langflow by connecting the Parse Data component's Sample Flow looping summarizer

The output will look similar to this:


_10
Document Summary
_10
Total Pages Processed
_10
Total Pages: 2
_10
Overall Tone of Document
_10
Tone: Informative and Instructional
_10
The documentation outlines microservices architecture patterns and best practices.
_10
It emphasizes service isolation and inter-service communication protocols.
_10
The use of asynchronous messaging patterns is recommended for system scalability.
_10
It includes code examples of REST and gRPC implementations to demonstrate integration approaches.

-

Conditional router

+

Conditional router (If-Else component)

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

The ConditionalRouterComponent routes messages based on text comparison. It evaluates a condition by comparing two text inputs using a specified operator and routes the message accordingly.

Inputs

@@ -46,7 +46,9 @@ This is represented in Langflow by connecting the Parse Data component's NameTypeDescriptiondata_inputDataThe data object or list of data objects to process.key_nameStringThe name of the key in the data object to check.operatorDropdownThe operator to apply for comparing the values.compare_valueStringThe value to compare against (not used for boolean validator).

Outputs

NameTypeDescription
true_outputData/ListOutput when the condition is met.
false_outputData/ListOutput when the condition is not met.
-

Flow as Tool

+

Flow as tool

+
important

This component is deprecated as of Langflow version 1.1.2. +Instead, use the Run flow component

This component constructs a tool from a function that runs a loaded flow.

Inputs

NameTypeDescription
flow_nameDropdownThe name of the flow to run.
tool_nameStringThe name of the tool.
tool_descriptionStringThe description of the tool.
return_directBooleanIf true, returns the result directly from the tool.
@@ -70,19 +72,27 @@ This is represented in Langflow by connecting the Parse Data component's NameTypeDescriptionnameStringThe name of the notification.dataDataThe data to store in the notification.appendBooleanIf true, the record will be appended to the existing notification.

Outputs

NameTypeDescription
outputDataThe data stored in the notification.
+

Pass message

+

This component forwards the input message, unchanged.

+

Inputs

+
NameDisplay NameInfo
input_messageInput MessageThe message to be passed forward.
ignored_messageIgnored MessageA second message to be ignored. Used as a workaround for continuity.
+

Outputs

+
NameDisplay NameInfo
output_messageOutput MessageThe forwarded input message.

Run flow

This component allows you to run a specified flow with given inputs and tweaks.

The RunFlowComponent executes a specified flow within a larger workflow. It provides the ability to run a flow with custom inputs and apply tweaks to modify its behavior.

-

Inputs

+

Inputs

NameTypeDescription
input_valueStringThe input value for the flow to process.
flow_nameDropdownThe name of the flow to run.
tweaksNested DictTweaks to apply to the flow.
-

Outputs

+

Outputs

NameTypeDescription
run_outputsList[Data]The results generated from running the flow.
-

Sub Flow

+

Sub flow

+
important

This component is deprecated as of Langflow version 1.1.2. +Instead, use the Run flow component

This SubFlowComponent generates a component from a flow with all of its inputs and outputs.

This component can integrate entire flows as components within a larger workflow. It dynamically generates inputs based on the selected flow and executes the flow with provided parameters.

-

Inputs

+

Inputs

NameTypeDescription
flow_nameDropdownThe name of the flow to run.
-

Outputs

-
NameTypeDescription
flow_outputsList[Data]The outputs generated from the flow.

Hi, how can I help you?

+

Outputs

+
NameTypeDescription
flow_outputsList[Data]The outputs generated from the flow.

Hi, how can I help you?

\ No newline at end of file diff --git a/components-memories.html b/components-memories.html index f35bb684d9..7c201d9093 100644 --- a/components-memories.html +++ b/components-memories.html @@ -10,7 +10,7 @@ - + @@ -39,11 +39,23 @@
NameTypeDescription
database_refMessageTextContact points for Cassandra or Astra DB database ID. Required.
usernameMessageTextUsername for Cassandra (leave empty for Astra DB).
tokenSecretStringPassword for Cassandra or token for Astra DB. Required.
keyspaceMessageTextKeyspace in Cassandra or namespace in Astra DB. Required.
table_nameMessageTextName of the table or collection for storing messages. Required.
session_idMessageTextUnique identifier for the chat session. Optional.
cluster_kwargsDictionaryAdditional keyword arguments for Cassandra cluster configuration. Optional.

Outputs

NameTypeDescription
message_historyBaseChatMessageHistoryAn instance of CassandraChatMessageHistory for the session.
+

Mem0 Chat Memory

+

The Mem0 Chat Memory component retrieves and stores chat messages using Mem0 memory storage.

+

Inputs

+
NameDisplay NameInfo
mem0_configMem0 ConfigurationConfiguration dictionary for initializing Mem0 memory instance.
ingest_messageMessage to IngestThe message content to be ingested into Mem0 memory.
existing_memoryExisting Memory InstanceOptional existing Mem0 memory instance.
user_idUser IDIdentifier for the user associated with the messages.
search_querySearch QueryInput text for searching related memories in Mem0.
mem0_api_keyMem0 API KeyAPI key for Mem0 platform (leave empty to use the local version).
metadataMetadataAdditional metadata to associate with the ingested message.
openai_api_keyOpenAI API KeyAPI key for OpenAI. This item is required if you use OpenAI embeddings without a provided configuration.
+

Outputs

+
NameDisplay NameInfo
memoryMem0 MemoryThe resulting Mem0 Memory object after ingesting data.
search_resultsSearch ResultsThe search results from querying Mem0 memory.
+

Redis Chat Memory

+

This component retrieves and stores chat messages from Redis.

+

Inputs

+
NameDisplay NameInfo
hosthostnameIP address or hostname.
portportRedis Port Number.
databasedatabaseRedis database.
usernameUsernameThe Redis user name.
passwordPasswordThe password for username.
key_prefixKey prefixKey prefix.
session_idSession IDSession ID for the message.
+

Outputs

+
NameDisplay NameInfo
memoryMemoryThe Redis chat message history object

ZepChatMemory Component

This component creates a ZepChatMessageHistory instance, enabling storage and retrieval of chat messages using Zep, a memory server for Large Language Models (LLMs).

-

Inputs

+

Inputs

NameTypeDescription
urlMessageTextURL of the Zep instance. Required.
api_keySecretStringAPI Key for authentication with the Zep instance.
api_base_pathDropdownAPI version to use. Options: "api/v1" or "api/v2".
session_idMessageTextUnique identifier for the chat session. Optional.
-

Outputs

-
NameTypeDescription
message_historyBaseChatMessageHistoryAn instance of ZepChatMessageHistory for the session.

Hi, how can I help you?

+

Outputs

+
NameTypeDescription
message_historyBaseChatMessageHistoryAn instance of ZepChatMessageHistory for the session.

Hi, how can I help you?

\ No newline at end of file diff --git a/components-models.html b/components-models.html index 1820acd791..a5a963aea3 100644 --- a/components-models.html +++ b/components-models.html @@ -10,7 +10,7 @@ - + diff --git a/components-processing.html b/components-processing.html index 04412bfc83..52cf0a8f1b 100644 --- a/components-processing.html +++ b/components-processing.html @@ -10,7 +10,7 @@ - + @@ -22,49 +22,109 @@

Processing components in Langflow

Processing components process and transform data within a flow.

Use a processing component in a flow

-

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

+

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

The component offers control over chunk size, overlap, and separator, which affect context and granularity in vector store retrieval results.

+

Alter Metadata

+

This component modifies metadata of input objects. It can add new metadata, update existing metadata, and remove specified metadata fields. The component works with both Message and Data objects, and can also create a new Data object from user-provided text.

+

Inputs

+
NameDisplay NameInfo
input_valueInputObjects to which Metadata should be added
text_inUser TextText input; value will be in 'text' attribute of Data object. Empty text entries are ignored.
metadataMetadataMetadata to add to each object
remove_fieldsFields to RemoveMetadata Fields to Remove
+

Outputs

+
NameDisplay NameInfo
dataDataList of Input objects, each with added Metadata

Combine Text

This component concatenates two text sources into a single text chunk using a specified delimiter.

-

Inputs

+

Inputs

NameDisplay NameInfo
first_textFirst TextThe first text input to concatenate.
second_textSecond TextThe second text input to concatenate.
delimiterDelimiterA string used to separate the two text inputs. Defaults to a space.

DataFrame operations

This component performs the following operations on Pandas DataFrame:

OperationDescriptionRequired Inputs
Add ColumnAdds a new column with a constant valuenew_column_name, new_column_value
Drop ColumnRemoves a specified columncolumn_name
FilterFilters rows based on column valuecolumn_name, filter_value
HeadReturns first n rowsnum_rows
Rename ColumnRenames an existing columncolumn_name, new_column_name
Replace ValueReplaces values in a columncolumn_name, replace_value, replacement_value
Select ColumnsSelects specific columnscolumns_to_select
SortSorts DataFrame by columncolumn_name, ascending
TailReturns last n rowsnum_rows
-

Inputs

+

Inputs

NameDisplay NameInfo
dfDataFrameThe input DataFrame to operate on.
operationOperationSelect the DataFrame operation to perform. Options: Add Column, Drop Column, Filter, Head, Rename Column, Replace Value, Select Columns, Sort, Tail
column_nameColumn NameThe column name to use for the operation.
filter_valueFilter ValueThe value to filter rows by.
ascendingSort AscendingWhether to sort in ascending order.
new_column_nameNew Column NameThe new column name when renaming or adding a column.
new_column_valueNew Column ValueThe value to populate the new column with.
columns_to_selectColumns to SelectList of column names to select.
num_rowsNumber of RowsNumber of rows to return (for head/tail). Default: 5
replace_valueValue to ReplaceThe value to replace in the column.
replacement_valueReplacement ValueThe value to replace with.
-

Outputs

+

Outputs

NameDisplay NameInfo
outputDataFrameThe resulting DataFrame after the operation.

Filter Data

This component filters a Data object based on a list of keys.

-

Inputs

+

Inputs

NameDisplay NameInfo
dataDataData object to filter.
filter_criteriaFilter CriteriaList of keys to filter by.
-

Outputs

+

Outputs

NameDisplay NameInfo
filtered_dataFiltered DataA new Data object containing only the key-value pairs that match the filter criteria.

Parse JSON

This component converts and extracts JSON fields using JQ queries.

-

Inputs

+

Inputs

NameDisplay NameInfo
input_valueInputData object to filter. Can be a message or data object.
queryJQ QueryJQ Query to filter the data. The input is always a JSON list.
-

Outputs

+

Outputs

NameDisplay NameInfo
filtered_dataFiltered DataFiltered data as a list of data objects.

Merge Data component

This component combines multiple data sources into a single unified Data object.

The component iterates through the input list of data objects, merging them into a single data object. If the input list is empty, it returns an empty data object. If there's only one input data object, it returns that object unchanged. The merging process uses the addition operator to combine data objects.

-

Inputs

+

Inputs

NameDisplay NameInfo
dataDataA list of data objects to be merged
-

Outputs

+

Outputs

NameDisplay NameInfo
merged_dataMerged DataA single data object containing the combined information from all input data objects

Parse Data

The ParseData component converts data objects into plain text using a specified template. This component transforms structured data into human-readable text formats, allowing for customizable output through the use of templates.

-

Inputs

+

Inputs

NameDisplay NameInfo
dataDataThe data to convert to text.
templateTemplateThe template to use for formatting the data. It can contain the keys {text}, {data} or any other key in the data.
sepSeparatorThe separator to use between multiple data items.
-

Outputs

+

Outputs

NameDisplay NameInfo
textTextThe resulting formatted text string as a message object.

Split Text

This component splits text into chunks of a specified length.

-

Inputs

-
NameDisplay NameInfo
textsTextsTexts to split.
separatorsSeparatorsCharacters to split on. Defaults to a space.
max_chunk_sizeMax Chunk SizeThe maximum length, in characters, of each chunk.
chunk_overlapChunk OverlapThe amount of character overlap between chunks.
recursiveRecursiveWhether to split recursively.

Hi, how can I help you?

+

Inputs

+
NameDisplay NameInfo
textsTextsTexts to split.
separatorsSeparatorsCharacters to split on. Defaults to a space.
max_chunk_sizeMax Chunk SizeThe maximum length, in characters, of each chunk.
chunk_overlapChunk OverlapThe amount of character overlap between chunks.
recursiveRecursiveWhether to split recursively.
+

LLM Router

+

This component routes requests to the most appropriate LLM based on OpenRouter model specifications.

+

Inputs

+
NameDisplay NameInfo
modelsLanguage ModelsList of LLMs to route between
input_valueInputThe input message to be routed
judge_llmJudge LLMLLM that will evaluate and select the most appropriate model
optimizationOptimizationOptimization preference (quality/speed/cost/balanced)
+

Outputs

+
NameDisplay NameInfo
outputOutputThe response from the selected model
selected_modelSelected ModelName of the chosen model
+

Merge Data (Data Combiner)

+

This component combines data using different operations.

+

Inputs

+
NameDisplay NameInfo
data_inputsData InputsData to combine (minimum 2 inputs required)
operationOperation TypeOperation to perform (Concatenate/Append/Merge/Join)
+

Outputs

+
NameDisplay NameInfo
combined_dataDataFrameThe combined data result
+

Message to Data

+

This component converts Message objects to Data objects.

+

Inputs

+
NameDisplay NameInfo
messageMessageThe Message object to convert to a Data object
+

Outputs

+
NameDisplay NameInfo
dataDataThe converted Data object
+

Parse Data (Data to Message)

+

This component converts Data objects into Messages using templated formatting.

+

Inputs

+
NameDisplay NameInfo
dataDataThe data to convert to text (can be list)
templateTemplateTemplate for formatting ({text}, {data, or any key in Data)
sepSeparatorSeparator between multiple data items
+

Outputs

+
NameDisplay NameInfo
textMessageData as a single Message
data_listData ListData as list of new Data objects
+

Parse DataFrame

+

This component converts DataFrames into plain text using templates.

+

Inputs

+
NameDisplay NameInfo
dfDataFrameThe DataFrame to convert to text rows
templateTemplateTemplate for formatting (use {column_name} placeholders)
sepSeparatorString to join rows in output
+

Outputs

+
NameDisplay NameInfo
textTextAll rows combined into single text
+

Parse JSON Data

+

This component converts and extracts JSON fields using JQ queries.

+

Inputs

+
NameDisplay NameInfo
input_valueInputData object to filter (Message or Data)
queryJQ QueryJQ Query to filter the data
+

Outputs

+
NameDisplay NameInfo
filtered_dataFiltered DataFiltered data as list of Data objects
+

Select Data

+

This component selects a single data item from a list.

+

Inputs

+
NameDisplay NameInfo
data_listData ListList of data to select from
data_indexData IndexIndex of the data to select
+

Outputs

+
NameDisplay NameInfo
selected_dataSelected DataThe selected Data object
+

Split Text

+

This component splits text into chunks based on specified criteria.

+

Inputs

+
NameDisplay NameInfo
data_inputsData InputsThe data to split
chunk_overlapChunk OverlapNumber of characters to overlap between chunks
chunk_sizeChunk SizeMaximum number of characters in each chunk
separatorSeparatorCharacter to split on (defaults to newline)
+

Outputs

+
NameDisplay NameInfo
chunksChunksList of split text chunks as Data objects
dataframeDataFrameThe chunks as a DataFrame
+

Update Data

+

This component dynamically updates or appends data with specified fields.

+

Inputs

+
NameDisplay NameInfo
old_dataDataThe records to update
number_of_fieldsNumber of FieldsNumber of fields to add (max 15)
text_keyText KeyKey for text content
text_key_validatorText Key ValidatorValidates text key presence
+

Outputs

+
NameDisplay NameInfo
dataDataUpdated Data objects

Hi, how can I help you?

\ No newline at end of file diff --git a/components-prompts.html b/components-prompts.html index fc65452ade..076551c749 100644 --- a/components-prompts.html +++ b/components-prompts.html @@ -10,7 +10,7 @@ - + diff --git a/components-tools.html b/components-tools.html index d4f3837cfc..cd98f54522 100644 --- a/components-tools.html +++ b/components-tools.html @@ -10,7 +10,7 @@ - + @@ -32,124 +32,154 @@ Agents become aware of tools through tool registration, where the agent is provi

To make a component into a tool that an agent can use, enable Tool mode in the component. Enabling Tool mode modifies a component input to accept calls from an agent. If the component you want to connect to an agent doesn't have a Tool mode option, you can modify the component's inputs to become a tool. For an example, see Make any component a tool.

+

arXiv

+

This component searches and retrieves papers from arXiv.org.

+

Inputs

+
NameDisplay NameInfo
search_querySearch QueryThe search query for arXiv papers (for example, quantum computing)
search_typeSearch FieldThe field to search in
max_resultsMax ResultsMaximum number of results to return
+

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.

-

Inputs

+

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.
-

Outputs

+

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.

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.

The main difference between this tool and the 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.

-

Inputs

+

Inputs

NameTypeDescription
Tool NameStringThe name used to reference the tool in the agent's prompt.
Tool DescriptionStringA brief description of the tool to guide the model in using it.
KeyspaceStringThe name of the keyspace.
Table NameStringThe name of the Astra DB CQL table to query.
TokenSecretStringThe authentication token for Astra DB.
API EndpointStringThe Astra DB API endpoint.
Projection FieldsStringThe attributes to return, separated by commas. Default: "*".
Partition KeysDictRequired parameters that the model must fill to query the tool.
Clustering KeysDictOptional parameters the model can fill to refine the query. Required parameters should be marked with an exclamation mark (for example, !customer_id).
Static FiltersDictAttribute-value pairs used to filter query results.
LimitStringThe number of records to return.
-

Outputs

+

Outputs

NameTypeDescription
DataList[Data]A list of 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 number_of_results parameter.
ToolStructuredToolA 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.

Bing Search API

This component allows you to call the Bing Search API.

-

Inputs

+

Inputs

NameTypeDescription
bing_subscription_keySecretStringBing API subscription key
input_valueStringSearch query input
bing_search_urlStringCustom Bing Search URL (optional)
kIntegerNumber of search results to return
-

Outputs

+

Outputs

NameTypeDescription
resultsList[Data]List of search results
toolToolBing Search tool for use in LangChain

Calculator Tool

This component creates a tool for performing basic arithmetic operations on a given expression.

-

Inputs

-
NameTypeDescription
expressionStringThe arithmetic expression to evaluate (e.g., 4*4*(33/22)+12-20).
-

Outputs

+

Inputs

+
NameTypeDescription
expressionStringThe arithmetic expression to evaluate (for example, 4*4*(33/22)+12-20).
+

Outputs

NameTypeDescription
resultToolCalculator tool for use in LangChain

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.

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

-

Inputs

+

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

+

Outputs

NameDisplay NameDescription
optimized_promptOptimized PromptA message object containing the optimized prompt
reasonsSelected ReasonsA list of the selected reasons that are embedded in the optimized prompt
+ +

This component performs web searches using the DuckDuckGo search engine with result-limiting capabilities.

+

Inputs

+
NameDisplay NameInfo
input_valueSearch QueryThe search query to be used for the DuckDuckGo search
max_resultsMax ResultsMaximum number of results to return
max_snippet_lengthMax Snippet LengthMaximum length of each result snippet
+

Outputs

+
NameDisplay NameInfo
dataDataList of search results as Data objects
+ +

This component provides an [https://exa.ai/](Exa Search) toolkit for search and content retrieval.

+

Inputs

+
NameDisplay NameInfo
metaphor_api_keyExa Search API KeyAPI key for Exa Search (entered as a password)
use_autopromptUse AutopromptWhether to use autoprompt feature (default: true)
search_num_resultsSearch Number of ResultsNumber of results to return for search (default: 5)
similar_num_resultsSimilar Number of ResultsNumber of similar results to return (default: 5)
+

Outputs

+
NameDisplay NameInfo
toolsToolsList of search tools provided by the toolkit

Glean Search API

This component allows you to call the Glean Search API.

-

Inputs

+

Inputs

NameTypeDescription
glean_api_urlStringURL of the Glean API
glean_access_tokenSecretStringAccess token for Glean API authentication
queryStringSearch query input
page_sizeIntegerNumber of results per page (default: 10)
request_optionsDictAdditional options for the API request (optional)
-

Outputs

+

Outputs

NameTypeDescription
resultsList[Data]List of search results
toolToolGlean Search tool for use in LangChain

Google Search API

This component allows you to call the Google Search API.

-

Inputs

+

Inputs

NameTypeDescription
google_api_keySecretStringGoogle API key for authentication
google_cse_idSecretStringGoogle Custom Search Engine ID
input_valueStringSearch query input
kIntegerNumber of search results to return
-

Outputs

+

Outputs

NameTypeDescription
resultsList[Data]List of search results
toolToolGoogle Search tool for use in LangChain

Google Serper API

This component allows you to call the Serper.dev Google Search API.

-

Inputs

+

Inputs

NameTypeDescription
serper_api_keySecretStringAPI key for Serper.dev authentication
input_valueStringSearch query input
kIntegerNumber of search results to return
-

Outputs

+

Outputs

NameTypeDescription
resultsList[Data]List of search results
toolToolGoogle Serper search tool for use in LangChain

MCP Tools (stdio)

This component connects to a Model Context Protocol (MCP) server over stdio and exposes its tools as Langflow tools to be used by an Agent component.

-

Inputs

+

Inputs

NameTypeDescription
commandStringMCP command (default: uvx mcp-sse-shim@latest)
-

Outputs

+

Outputs

NameTypeDescription
toolsList[Tool]List of tools exposed by the MCP server

MCP Tools (SSE)

This component connects to a Model Context Protocol (MCP) server over SSE (Server-Sent Events) and exposes its tools as Langflow tools to be used by an Agent component.

-

Inputs

+

Inputs

NameTypeDescription
urlStringSSE URL (default: http://localhost:7860/api/v1/mcp/sse)
-

Outputs

+

Outputs

NameTypeDescription
toolsList[Tool]List of tools exposed by the MCP server

Python Code Structured Tool

This component creates a structured tool from Python code using a dataclass.

The component dynamically updates its configuration based on the provided Python code, allowing for custom function arguments and descriptions.

-

Inputs

+

Inputs

NameTypeDescription
tool_codeStringPython code for the tool's dataclass
tool_nameStringName of the tool
tool_descriptionStringDescription of the tool
return_directBooleanWhether to return the function output directly
tool_functionStringSelected function for the tool
global_variablesDictGlobal variables or data for the tool
-

Outputs

+

Outputs

NameTypeDescription
result_toolTool │ Structured tool created from the Python code

Python REPL Tool

This component creates a Python REPL (Read-Eval-Print Loop) tool for executing Python code.

-

Inputs

+

Inputs

NameTypeDescription
nameStringThe name of the tool (default: "python_repl")
descriptionStringA description of the tool's functionality
global_importsList[String]List of modules to import globally (default: ["math"])
-

Outputs

+

Outputs

NameTypeDescription
toolToolPython REPL tool for use in LangChain

Retriever Tool

This component creates a tool for interacting with a retriever in LangChain.

-

Inputs

+

Inputs

NameTypeDescription
retrieverBaseRetrieverThe retriever to interact with
nameStringThe name of the tool
descriptionStringA description of the tool's functionality
-

Outputs

+

Outputs

NameTypeDescription
toolToolRetriever tool for use in LangChain

SearXNG Search Tool

This component creates a tool for searching using SearXNG, a metasearch engine.

-

Inputs

+

Inputs

NameTypeDescription
urlStringThe URL of the SearXNG instance
max_resultsIntegerMaximum number of results to return
categoriesList[String]Categories to search in
languageStringLanguage for the search results
-

Outputs

+

Outputs

NameTypeDescription
result_toolToolSearXNG search tool for use in LangChain

Search API

This component calls the searchapi.io API. It can be used to search the web for information.

For more information, see the SearchAPI documentation.

-

Inputs

+

Inputs

NameDisplay NameInfo
engineEngineThe search engine to use (default: "google")
api_keySearchAPI API KeyThe API key for authenticating with SearchAPI
input_valueInputThe search query or input for the API call
search_paramsSearch parametersAdditional parameters for customizing the search
-

Outputs

+

Outputs

NameDisplay NameInfo
dataSearch ResultsList of Data objects containing search results
toolSearch API ToolA Tool object for use in LangChain workflows

Serp Search API

This component creates a tool for searching using the Serp API.

-

Inputs

+

Inputs

NameTypeDescription
serpapi_api_keySecretStringAPI key for Serp API authentication
input_valueStringSearch query input
search_paramsDictAdditional search parameters (optional)
-

Outputs

+

Outputs

NameTypeDescription
resultsList[Data]List of search results
toolToolSerp API search tool for use in LangChain
+ +

This component performs searches using the Tavily AI search engine, which is optimized for LLMs and RAG applications.

+

Inputs

+
NameDisplay NameInfo
api_keyTavily API KeyYour Tavily API Key.
querySearch QueryThe search query you want to execute with Tavily.
search_depthSearch DepthThe depth of the search.
topicSearch TopicThe category of the search.
max_resultsMax ResultsThe maximum number of search results to return.
include_imagesInclude ImagesInclude a list of query-related images in the response.
include_answerInclude AnswerInclude a short answer to original query.
+

Outputs

+
NameDisplay NameInfo
dataDataThe search results as a list of Data objects.
textTextThe search results formatted as a text string.
+

Wikidata

+

This component performs a search using the Wikidata API.

+

Inputs

+
NameDisplay NameInfo
queryQueryThe text query for similarity search on Wikidata.
+

Outputs

+
NameDisplay NameInfo
dataDataThe search results from Wikidata API as a list of Data objects.
textMessageThe search results formatted as a text message.

Wikipedia API

This component creates a tool for searching and retrieving information from Wikipedia.

-

Inputs

+

Inputs

NameTypeDescription
input_valueStringSearch query input
langStringLanguage code for Wikipedia (default: "en")
kIntegerNumber of results to return
load_all_available_metaBooleanWhether to load all available metadata (advanced)
doc_content_chars_maxIntegerMaximum number of characters for document content (advanced)
-

Outputs

+

Outputs

NameTypeDescription
resultsList[Data]List of Wikipedia search results
toolToolWikipedia search tool for use in LangChain

Wolfram Alpha API

This component creates a tool for querying the Wolfram Alpha API.

-

Inputs

+

Inputs

NameTypeDescription
input_valueStringQuery input for Wolfram Alpha
app_idSecretStringWolfram Alpha API App ID
-

Outputs

+

Outputs

NameTypeDescription
resultsList[Data]List containing the Wolfram Alpha API response
toolToolWolfram Alpha API tool for use in LangChain

Yahoo Finance News Tool

This component creates a tool for retrieving news from Yahoo Finance.

-

Inputs

+

Inputs

This component does not have any input parameters.

-

Outputs

-
NameTypeDescription
toolToolYahoo Finance News tool for use in LangChain

Hi, how can I help you?

+

Outputs

+
NameTypeDescription
toolToolYahoo Finance News tool for use in LangChain

Hi, how can I help you?

\ No newline at end of file diff --git a/components-vector-stores.html b/components-vector-stores.html index 2df27462db..6417832a27 100644 --- a/components-vector-stores.html +++ b/components-vector-stores.html @@ -10,7 +10,7 @@ - + @@ -24,8 +24,6 @@

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

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

Use a vector store component in a flow

-

Vector databases can be populated from within Langflow with document ingestion pipelines, like the following

-

This example uses the Astra DB vector store component. Your vector store component's parameters and authentication may be different, but the document ingestion workflow is the same. A document is loaded from a local machine and chunked. The Astra DB vector store generates embeddings with the connected model component, and stores them in the connected Astra DB database.

This vector data can then be retrieved for workloads like Retrieval Augmented Generation.

@@ -40,151 +38,164 @@ This text fills the {context} variable in the PromptInputs
NameDisplay NameInfo
collection_nameCollection NameThe name of the collection within Astra DB where the vectors will be stored (required)
tokenAstra DB Application TokenAuthentication token for accessing Astra DB (required)
api_endpointAPI EndpointAPI endpoint URL for the Astra DB service (required)
search_inputSearch InputQuery string for similarity search
ingest_dataIngest DataData to be ingested into the vector store
namespaceNamespaceOptional namespace within Astra DB to use for the collection
embedding_choiceEmbedding Model or Astra VectorizeDetermines whether to use an Embedding Model or Astra Vectorize for the collection
embeddingEmbedding ModelAllows an embedding model configuration (when using Embedding Model)
providerVectorize ProviderProvider for Astra Vectorize (when using Astra Vectorize)
metricMetricOptional distance metric for vector comparisons
batch_sizeBatch SizeOptional number of data to process in a single batch
setup_modeSetup ModeConfiguration mode for setting up the vector store (options: "Sync", "Async", "Off", default: "Sync")
pre_delete_collectionPre Delete CollectionBoolean flag to determine whether to delete the collection before creating a new one
number_of_resultsNumber of ResultsNumber of results to return in similarity search (default: 4)
search_typeSearch TypeSearch type to use (options: "Similarity", "Similarity with score threshold", "MMR (Max Marginal Relevance)")
search_score_thresholdSearch Score ThresholdMinimum similarity score threshold for search results
search_filterSearch Metadata FilterOptional dictionary of filters to apply to the search query

Outputs

-
NameDisplay NameInfo
vector_storeVector StoreBuilt Astra DB vector store
search_resultsSearch ResultsResults of the similarity search as a list of Data objects
+
NameDisplay NameInfo
vector_storeVector StoreAstra DB vector store instance configured with the specified parameters.
search_resultsSearch ResultsThe results of the similarity search as a list of Data objects.
+

AstraDB Graph vector store

+

This component implements a Vector Store using AstraDB with graph capabilities. +For more information, see the Astra DB Serverless documentation.

+

Inputs

+
NameDisplay NameInfo
collection_nameCollection NameThe name of the collection within AstraDB where the vectors will be stored (required)
tokenAstra DB Application TokenAuthentication token for accessing AstraDB (required)
api_endpointAPI EndpointAPI endpoint URL for the AstraDB service (required)
search_inputSearch InputQuery string for similarity search
ingest_dataIngest DataData to be ingested into the vector store
namespaceNamespaceOptional namespace within AstraDB to use for the collection
embeddingEmbedding ModelEmbedding model to use
metricMetricDistance metric for vector comparisons (options: "cosine", "euclidean", "dot_product")
setup_modeSetup ModeConfiguration mode for setting up the vector store (options: "Sync", "Async", "Off")
pre_delete_collectionPre Delete CollectionBoolean flag to determine whether to delete the collection before creating a new one
number_of_resultsNumber of ResultsNumber of results to return in similarity search (default: 4)
search_typeSearch TypeSearch type to use (options: "Similarity", "Graph Traversal", "Hybrid")
traversal_depthTraversal DepthMaximum depth for graph traversal searches (default: 1)
search_score_thresholdSearch Score ThresholdMinimum similarity score threshold for search results
search_filterSearch Metadata FilterOptional dictionary of filters to apply to the search query
+

Outputs

+
NameDisplay NameInfo
vector_storeVector StoreAstra DB graph vector store instance configured with the specified parameters.
search_resultsSearch ResultsThe results of the similarity search as a list of Data objects.

Cassandra

This component creates a Cassandra Vector Store with search capabilities. For more information, see the Cassandra documentation.

-

Inputs

+

Inputs

NameTypeDescription
database_refStringContact points for the database or AstraDB database ID
usernameStringUsername for the database (leave empty for AstraDB)
tokenSecretStringUser password for the database or AstraDB token
keyspaceStringTable Keyspace or AstraDB namespace
table_nameStringName of the table or AstraDB collection
ttl_secondsIntegerTime-to-live for added texts
batch_sizeIntegerNumber of data to process in a single batch
setup_modeStringConfiguration mode for setting up the Cassandra table
cluster_kwargsDictAdditional keyword arguments for the Cassandra cluster
search_queryStringQuery for similarity search
ingest_dataDataData to be ingested into the vector store
embeddingEmbeddingsEmbedding function to use
number_of_resultsIntegerNumber of results to return in search
search_typeStringType of search to perform
search_score_thresholdFloatMinimum similarity score for search results
search_filterDictMetadata filters for search query
body_searchStringDocument textual search terms
enable_body_searchBooleanFlag to enable body search
-

Outputs

-
NameTypeDescription
vector_storeCassandraCassandra vector store instance
search_resultsList[Data]Results of similarity search
+

Outputs

+
NameTypeDescription
vector_storeCassandraA Cassandra vector store instance configured with the specified parameters.
search_resultsList[Data]The results of the similarity search as a list of Data objects.

Cassandra Graph Vector Store

This component implements a Cassandra Graph Vector Store with search capabilities.

-

Inputs

+

Inputs

NameDisplay NameInfo
database_refContact Points / Astra Database IDContact points for the database or AstraDB database ID (required)
usernameUsernameUsername for the database (leave empty for AstraDB)
tokenPassword / AstraDB TokenUser password for the database or AstraDB token (required)
keyspaceKeyspaceTable Keyspace or AstraDB namespace (required)
table_nameTable NameThe name of the table or AstraDB collection where vectors will be stored (required)
setup_modeSetup ModeConfiguration mode for setting up the Cassandra table (options: "Sync", "Off", default: "Sync")
cluster_kwargsCluster argumentsOptional dictionary of additional keyword arguments for the Cassandra cluster
search_querySearch QueryQuery string for similarity search
ingest_dataIngest DataData to be ingested into the vector store (list of Data objects)
embeddingEmbeddingEmbedding model to use
number_of_resultsNumber of ResultsNumber of results to return in similarity search (default: 4)
search_typeSearch TypeSearch type to use (options: "Traversal", "MMR traversal", "Similarity", "Similarity with score threshold", "MMR (Max Marginal Relevance)", default: "Traversal")
depthDepth of traversalThe maximum depth of edges to traverse (for "Traversal" or "MMR traversal" search types, default: 1)
search_score_thresholdSearch Score ThresholdMinimum similarity score threshold for search results (for "Similarity with score threshold" search type)
search_filterSearch Metadata FilterOptional dictionary of filters to apply to the search query
-

Outputs

-
NameDisplay NameInfo
vector_storeVector StoreBuilt Cassandra Graph vector store
search_resultsSearch ResultsResults of the similarity search as a list of Data objects
+

Outputs

+
NameDisplay NameInfo
vector_storeVector StoreA Cassandra Graph vector store instance configured with the specified parameters.
search_resultsSearch ResultsThe results of the similarity search as a list of Data objects.

Chroma DB

This component creates a Chroma Vector Store with search capabilities. For more information, see the Chroma documentation.

-

Inputs

+

Inputs

NameTypeDescription
collection_nameStringThe name of the Chroma collection. Default: "langflow".
persist_directoryStringThe directory to persist the Chroma database.
search_queryStringThe query to search for in the vector store.
ingest_dataDataThe data to ingest into the vector store (list of Data objects).
embeddingEmbeddingsThe embedding function to use for the vector store.
chroma_server_cors_allow_originsStringCORS allow origins for the Chroma server.
chroma_server_hostStringHost for the Chroma server.
chroma_server_http_portIntegerHTTP port for the Chroma server.
chroma_server_grpc_portIntegergRPC port for the Chroma server.
chroma_server_ssl_enabledBooleanEnable SSL for the Chroma server.
allow_duplicatesBooleanAllow duplicate documents in the vector store.
search_typeStringType of search to perform: "Similarity" or "MMR".
number_of_resultsIntegerNumber of results to return from the search. Default: 10.
limitIntegerLimit the number of records to compare when Allow Duplicates is False.
-

Outputs

+

Outputs

NameTypeDescription
vector_storeChromaChroma vector store instance
search_resultsList[Data]Results of similarity search

Clickhouse

This component implements a Clickhouse Vector Store with search capabilities. For more information, see the CLickhouse Documentation.

-

Inputs

+

Inputs

NameDisplay NameInfo
hosthostnameClickhouse server hostname (required, default: "localhost")
portportClickhouse server port (required, default: 8123)
databasedatabaseClickhouse database name (required)
tableTable nameClickhouse table name (required)
usernameThe ClickHouse user name.Username for authentication (required)
passwordThe password for username.Password for authentication (required)
index_typeindex_typeType of the index (options: "annoy", "vector_similarity", default: "annoy")
metricmetricMetric to compute distance (options: "angular", "euclidean", "manhattan", "hamming", "dot", default: "angular")
secureUse https/TLSOverrides inferred values from the interface or port arguments (default: false)
index_paramParam of the indexIndex parameters (default: "'L2Distance',100")
index_query_paramsindex query paramsAdditional index query parameters
search_querySearch QueryQuery string for similarity search
ingest_dataIngest DataData to be ingested into the vector store
embeddingEmbeddingEmbedding model to use
number_of_resultsNumber of ResultsNumber of results to return in similarity search (default: 4)
score_thresholdScore thresholdThreshold for similarity scores
-

Outputs

+

Outputs

NameDisplay NameInfo
vector_storeVector StoreBuilt Clickhouse vector store
search_resultsSearch ResultsResults of the similarity search as a list of Data objects

Couchbase

This component creates a Couchbase Vector Store with search capabilities. For more information, see the Couchbase documentation.

-

Inputs

+

Inputs

NameTypeDescription
couchbase_connection_stringSecretStringCouchbase Cluster connection string (required).
couchbase_usernameStringCouchbase username (required).
couchbase_passwordSecretStringCouchbase password (required).
bucket_nameStringName of the Couchbase bucket (required).
scope_nameStringName of the Couchbase scope (required).
collection_nameStringName of the Couchbase collection (required).
index_nameStringName of the Couchbase index (required).
search_queryStringThe query to search for in the vector store.
ingest_dataDataThe data to ingest into the vector store (list of Data objects).
embeddingEmbeddingsThe embedding function to use for the vector store.
number_of_resultsIntegerNumber of results to return from the search. Default: 4 (advanced).
-

Outputs

+

Outputs

NameTypeDescription
vector_storeCouchbaseVectorStoreA Couchbase vector store instance configured with the specified parameters.
+

Elasticsearch

+

This component creates an Elasticsearch Vector Store with search capabilities. +For more information, see the Elasticsearch documentation.

+

Inputs

+
NameTypeDescription
es_urlStringElasticsearch server URL
es_userStringUsername for Elasticsearch authentication
es_passwordSecretStringPassword for Elasticsearch authentication
index_nameStringName of the Elasticsearch index
strategyStringStrategy for vector search ("approximate_k_nearest_neighbors" or "script_scoring")
distance_strategyStringStrategy for distance calculation ("COSINE", "EUCLIDEAN_DISTANCE", "DOT_PRODUCT")
search_queryStringQuery for similarity search
ingest_dataDataData to be ingested into the vector store
embeddingEmbeddingsEmbedding function to use
number_of_resultsIntegerNumber of results to return in search (default: 4)
+

Outputs

+
NameTypeDescription
vector_storeElasticsearchStoreElasticsearch vector store instance
search_resultsList[Data]Results of similarity search

FAISS

This component creates a FAISS Vector Store with search capabilities. For more information, see the FAISS documentation.

-

Inputs

+

Inputs

NameTypeDescription
index_nameStringThe name of the FAISS index. Default: "langflow_index".
persist_directoryStringPath to save the FAISS index. It will be relative to where Langflow is running.
search_queryStringThe query to search for in the vector store.
ingest_dataDataThe data to ingest into the vector store (list of Data objects or documents).
allow_dangerous_deserializationBooleanSet to True to allow loading pickle files from untrusted sources. Default: True (advanced).
embeddingEmbeddingsThe embedding function to use for the vector store.
number_of_resultsIntegerNumber of results to return from the search. Default: 4 (advanced).
-

Outputs

+

Outputs

NameTypeDescription
vector_storeFAISSA FAISS vector store instance configured with the specified parameters.

Hyper-Converged Database (HCD) Vector Store

This component implements a Vector Store using HCD.

-

Inputs

+

Inputs

NameDisplay NameInfo
collection_nameCollection NameThe name of the collection within HCD where the vectors will be stored (required)
usernameHCD UsernameAuthentication username for accessing HCD (default: "hcd-superuser", required)
passwordHCD PasswordAuthentication password for accessing HCD (required)
api_endpointHCD API EndpointAPI endpoint URL for the HCD service (required)
search_inputSearch InputQuery string for similarity search
ingest_dataIngest DataData to be ingested into the vector store
namespaceNamespaceOptional namespace within HCD to use for the collection (default: "default_namespace")
ca_certificateCA CertificateOptional CA certificate for TLS connections to HCD
metricMetricOptional distance metric for vector comparisons (options: "cosine", "dot_product", "euclidean")
batch_sizeBatch SizeOptional number of data to process in a single batch
bulk_insert_batch_concurrencyBulk Insert Batch ConcurrencyOptional concurrency level for bulk insert operations
bulk_insert_overwrite_concurrencyBulk Insert Overwrite ConcurrencyOptional concurrency level for bulk insert operations that overwrite existing data
bulk_delete_concurrencyBulk Delete ConcurrencyOptional concurrency level for bulk delete operations
setup_modeSetup ModeConfiguration mode for setting up the vector store (options: "Sync", "Async", "Off", default: "Sync")
pre_delete_collectionPre Delete CollectionBoolean flag to determine whether to delete the collection before creating a new one
metadata_indexing_includeMetadata Indexing IncludeOptional list of metadata fields to include in the indexing
embeddingEmbedding or Astra VectorizeAllows either an embedding model or an Astra Vectorize configuration
metadata_indexing_excludeMetadata Indexing ExcludeOptional list of metadata fields to exclude from the indexing
collection_indexing_policyCollection Indexing PolicyOptional dictionary defining the indexing policy for the collection
number_of_resultsNumber of ResultsNumber of results to return in similarity search (default: 4)
search_typeSearch TypeSearch type to use (options: "Similarity", "Similarity with score threshold", "MMR (Max Marginal Relevance)", default: "Similarity")
search_score_thresholdSearch Score ThresholdMinimum similarity score threshold for search results (default: 0)
search_filterSearch Metadata FilterOptional dictionary of filters to apply to the search query
-

Outputs

-
NameDisplay NameInfo
vector_storeVector StoreBuilt HCD vector store instance
search_resultsSearch ResultsResults of similarity search as a list of Data objects
+

Outputs

+
NameDisplay NameInfo
vector_storeVector StoreAn HCD vector store instance The results of the similarity search as a list of Data objects.
search_resultsSearch ResultsThe results of the similarity search as a list of Data objects.

Milvus

This component creates a Milvus Vector Store with search capabilities. For more information, see the Milvus documentation.

-

Inputs

+

Inputs

NameTypeDescription
collection_nameStringName of the Milvus collection
collection_descriptionStringDescription of the Milvus collection
uriStringConnection URI for Milvus
passwordSecretStringPassword for Milvus
usernameSecretStringUsername for Milvus
batch_sizeIntegerNumber of data to process in a single batch
search_queryStringQuery for similarity search
ingest_dataDataData to be ingested into the vector store
embeddingEmbeddingsEmbedding function to use
number_of_resultsIntegerNumber of results to return in search
search_typeStringType of search to perform
search_score_thresholdFloatMinimum similarity score for search results
search_filterDictMetadata filters for search query
setup_modeStringConfiguration mode for setting up the vector store
vector_dimensionsIntegerNumber of dimensions of the vectors
pre_delete_collectionBooleanWhether to delete the collection before creating a new one
-

Outputs

+

Outputs

NameTypeDescription
vector_storeMilvusA Milvus vector store instance configured with the specified parameters.

MongoDB Atlas

This component creates a MongoDB Atlas Vector Store with search capabilities. For more information, see the MongoDB Atlas documentation.

-

Inputs

+

Inputs

NameTypeDescription
mongodb_atlas_cluster_uriSecretStringMongoDB Atlas Cluster URI
db_nameStringDatabase name
collection_nameStringCollection name
index_nameStringIndex name
search_queryStringQuery for similarity search
ingest_dataDataData to be ingested into the vector store
embeddingEmbeddingsEmbedding function to use
number_of_resultsIntegerNumber of results to return in search
-

Outputs

+

Outputs

NameTypeDescription
vector_storeMongoDBAtlasVectorSearchMongoDB Atlas vector store instance
search_resultsList[Data]Results of similarity search

Opensearch

This component creates an Opensearch vector store with search capabilities -For more information, see Opensearch documentation

-

Inputs

+For more information, see Opensearch documentation.

+

Inputs

NameTypeDescription
opensearch_urlStringURL for OpenSearch cluster (e.g. https://192.168.1.1:9200)
index_nameStringThe index name where the vectors will be stored in OpenSearch cluster
search_inputStringEnter a search query. Leave empty to retrieve all documents or if hybrid search is being used
ingest_dataDataData to be ingested into the vector store
embeddingEmbeddingsEmbedding function to use
search_typeStringValid values are "similarity", "similarity_score_threshold", "mmr"
number_of_resultsIntegerNumber of results to return in search
search_score_thresholdFloatMinimum similarity score threshold for search results
usernameStringusername for the opensource cluster
passwordSecretStringpassword for the opensource cluster
use_sslBooleanUse SSL
verify_certsBooleanVerify certificates
hybrid_search_queryStringProvide a custom hybrid search query in JSON format. This allows you to combine vector similarity and keyword matching
-

Outputs

+

Outputs

NameTypeDescription
vector_storeOpenSearchVectorSearchOpenSearch vector store instance
search_resultsList[Data]Results of similarity search

PGVector

This component creates a PGVector Vector Store with search capabilities. For more information, see the PGVector documentation.

-

Inputs

+

Inputs

NameTypeDescription
pg_server_urlSecretStringPostgreSQL server connection string
collection_nameStringTable name for the vector store
search_queryStringQuery for similarity search
ingest_dataDataData to be ingested into the vector store
embeddingEmbeddingsEmbedding function to use
number_of_resultsIntegerNumber of results to return in search
-

Outputs

+

Outputs

NameTypeDescription
vector_storePGVectorPGVector vector store instance
search_resultsList[Data]Results of similarity search

Pinecone

This component creates a Pinecone Vector Store with search capabilities. For more information, see the Pinecone documentation.

-

Inputs

+

Inputs

NameTypeDescription
index_nameStringName of the Pinecone index
namespaceStringNamespace for the index
distance_strategyStringStrategy for calculating distance between vectors
pinecone_api_keySecretStringAPI key for Pinecone
text_keyStringKey in the record to use as text
search_queryStringQuery for similarity search
ingest_dataDataData to be ingested into the vector store
embeddingEmbeddingsEmbedding function to use
number_of_resultsIntegerNumber of results to return in search
-

Outputs

+

Outputs

NameTypeDescription
vector_storePineconePinecone vector store instance
search_resultsList[Data]Results of similarity search

Qdrant

This component creates a Qdrant Vector Store with search capabilities. For more information, see the Qdrant documentation.

-

Inputs

+

Inputs

NameTypeDescription
collection_nameStringName of the Qdrant collection
hostStringQdrant server host
portIntegerQdrant server port
grpc_portIntegerQdrant gRPC port
api_keySecretStringAPI key for Qdrant
prefixStringPrefix for Qdrant
timeoutIntegerTimeout for Qdrant operations
pathStringPath for Qdrant
urlStringURL for Qdrant
distance_funcStringDistance function for vector similarity
content_payload_keyStringKey for content payload
metadata_payload_keyStringKey for metadata payload
search_queryStringQuery for similarity search
ingest_dataDataData to be ingested into the vector store
embeddingEmbeddingsEmbedding function to use
number_of_resultsIntegerNumber of results to return in search
-

Outputs

+

Outputs

NameTypeDescription
vector_storeQdrantQdrant vector store instance
search_resultsList[Data]Results of similarity search

Redis

This component creates a Redis Vector Store with search capabilities. For more information, see the Redis documentation.

-

Inputs

+

Inputs

NameTypeDescription
redis_server_urlSecretStringRedis server connection string
redis_index_nameStringName of the Redis index
codeStringCustom code for Redis (advanced)
schemaStringSchema for Redis index
search_queryStringQuery for similarity search
ingest_dataDataData to be ingested into the vector store
number_of_resultsIntegerNumber of results to return in search
embeddingEmbeddingsEmbedding function to use
-

Outputs

+

Outputs

NameTypeDescription
vector_storeRedisRedis vector store instance
search_resultsList[Data]Results of similarity search

Supabase

This component creates a connection to a Supabase Vector Store with search capabilities. For more information, see the Supabase documentation.

-

Inputs

+

Inputs

NameTypeDescription
supabase_urlStringURL of the Supabase instance
supabase_service_keySecretStringService key for Supabase authentication
table_nameStringName of the table in Supabase
query_nameStringName of the query to use
search_queryStringQuery for similarity search
ingest_dataDataData to be ingested into the vector store
embeddingEmbeddingsEmbedding function to use
number_of_resultsIntegerNumber of results to return in search
-

Outputs

+

Outputs

NameTypeDescription
vector_storeSupabaseVectorStoreSupabase vector store instance
search_resultsList[Data]Results of similarity search

Upstash

This component creates an Upstash Vector Store with search capabilities. For more information, see the Upstash documentation.

-

Inputs

+

Inputs

NameTypeDescription
index_urlStringThe URL of the Upstash index
index_tokenSecretStringThe token for the Upstash index
text_keyStringThe key in the record to use as text
namespaceStringNamespace for the index
search_queryStringQuery for similarity search
metadata_filterStringFilters documents by metadata
ingest_dataDataData to be ingested into the vector store
embeddingEmbeddingsEmbedding function to use (optional)
number_of_resultsIntegerNumber of results to return in search
-

Outputs

+

Outputs

NameTypeDescription
vector_storeUpstashVectorStoreUpstash vector store instance
search_resultsList[Data]Results of similarity search

Vectara

This component creates a Vectara Vector Store with search capabilities. For more information, see the Vectara documentation.

-

Inputs

+

Inputs

NameTypeDescription
vectara_customer_idStringVectara customer ID
vectara_corpus_idStringVectara corpus ID
vectara_api_keySecretStringVectara API key
embeddingEmbeddingsEmbedding function to use (optional)
ingest_dataList[Document/Data]Data to be ingested into the vector store
search_queryStringQuery for similarity search
number_of_resultsIntegerNumber of results to return in search
-

Outputs

+

Outputs

NameTypeDescription
vector_storeVectaraVectorStoreVectara vector store instance
search_resultsList[Data]Results of similarity search

This component searches a Vectara Vector Store for documents based on the provided input. For more information, see the Vectara documentation.

-

Inputs

+

Inputs

NameTypeDescription
search_typeStringType of search, such as "Similarity" or "MMR"
input_valueStringSearch query
vectara_customer_idStringVectara customer ID
vectara_corpus_idStringVectara corpus ID
vectara_api_keySecretStringVectara API key
files_urlList[String]Optional URLs for file initialization
-

Outputs

+

Outputs

NameTypeDescription
search_resultsList[Data]Results of similarity search

Vectara RAG

This component leverages Vectara's Retrieval Augmented Generation (RAG) capabilities to search and summarize documents based on the provided input. For more information, see the Vectara documentation.

-

Inputs

+

Inputs

NameTypeDescription
vectara_customer_idStringVectara customer ID
vectara_corpus_idStringVectara corpus ID
vectara_api_keySecretStringVectara API key
search_queryStringThe query to receive an answer on
lexical_interpolationFloatHybrid search factor (0.005 to 0.1)
filterStringMetadata filters to narrow the search
rerankerStringReranker type (mmr, rerank_multilingual_v1, none)
reranker_kIntegerNumber of results to rerank (1 to 100)
diversity_biasFloatDiversity bias for MMR reranker (0 to 1)
max_resultsIntegerMaximum number of search results to summarize (1 to 100)
response_langStringLanguage code for the response (for example, "eng", "auto")
promptStringPrompt name for summarization
-

Outputs

+

Outputs

NameTypeDescription
answerMessageGenerated RAG response

Weaviate

This component facilitates a Weaviate Vector Store setup, optimizing text and document indexing and retrieval. For more information, see the Weaviate Documentation.

-

Inputs

+

Inputs

NameTypeDescription
weaviate_urlStringDefault instance URL
search_by_textBooleanIndicates whether to search by text
api_keySecretStringOptional API key for authentication
index_nameStringOptional index name
text_keyStringDefault text extraction key
inputDocumentDocument or record
embeddingEmbeddingsModel used
attributesList[String]Optional additional attributes
-

Outputs

+

Outputs

NameTypeDescription
vector_storeWeaviateVectorStoreWeaviate vector store instance
-

Note: Ensure Weaviate instance is running and accessible. Verify API key, index name, text key, and attributes are set correctly.

This component searches a Weaviate Vector Store for documents similar to the input. For more information, see the Weaviate Documentation.

-

Inputs

+

Inputs

NameTypeDescription
search_typeStringType of search, such as "Similarity" or "MMR"
input_valueStringSearch query
weaviate_urlStringDefault instance URL
search_by_textBooleanIndicates whether to search by text
api_keySecretStringOptional API key for authentication
index_nameStringOptional index name
text_keyStringDefault text extraction key
embeddingEmbeddingsModel used
attributesList[String]Optional additional attributes
-

Outputs

-
NameTypeDescription
search_resultsList[Data]Results of similarity search

Hi, how can I help you?

+

Outputs

+
NameTypeDescription
search_resultsList[Data]Results of similarity search

Hi, how can I help you?

\ No newline at end of file diff --git a/concepts-api.html b/concepts-api.html index affac87474..1022601392 100644 --- a/concepts-api.html +++ b/concepts-api.html @@ -10,7 +10,7 @@ - + diff --git a/concepts-components.html b/concepts-components.html index 1b3879a46c..40e608f791 100644 --- a/concepts-components.html +++ b/concepts-components.html @@ -10,7 +10,7 @@ - + diff --git a/concepts-objects.html b/concepts-objects.html index 8ed8dcf7ee..5f4c08ebf5 100644 --- a/concepts-objects.html +++ b/concepts-objects.html @@ -10,7 +10,7 @@ - + diff --git a/concepts-overview.html b/concepts-overview.html index d0654cd22c..2181520e6c 100644 --- a/concepts-overview.html +++ b/concepts-overview.html @@ -10,7 +10,7 @@ - + diff --git a/concepts-playground.html b/concepts-playground.html index e719478124..bc4ed045a2 100644 --- a/concepts-playground.html +++ b/concepts-playground.html @@ -10,7 +10,7 @@ - + diff --git a/configuration-api-keys.html b/configuration-api-keys.html index 041a765c14..f8689fb42c 100644 --- a/configuration-api-keys.html +++ b/configuration-api-keys.html @@ -10,7 +10,7 @@ - + diff --git a/configuration-authentication.html b/configuration-authentication.html index 6ee83fb57d..79647ce210 100644 --- a/configuration-authentication.html +++ b/configuration-authentication.html @@ -10,7 +10,7 @@ - + diff --git a/configuration-auto-save.html b/configuration-auto-save.html index 20ece90548..2418ce6c28 100644 --- a/configuration-auto-save.html +++ b/configuration-auto-save.html @@ -10,7 +10,7 @@ - + diff --git a/configuration-backend-only.html b/configuration-backend-only.html index 9b225adb19..7a67a0a062 100644 --- a/configuration-backend-only.html +++ b/configuration-backend-only.html @@ -10,7 +10,7 @@ - + diff --git a/configuration-cli.html b/configuration-cli.html index 8f767f01e8..cb3f3237b0 100644 --- a/configuration-cli.html +++ b/configuration-cli.html @@ -10,7 +10,7 @@ - + diff --git a/configuration-custom-database.html b/configuration-custom-database.html index fa3efb3f6b..a557b6ad57 100644 --- a/configuration-custom-database.html +++ b/configuration-custom-database.html @@ -10,7 +10,7 @@ - + diff --git a/configuration-global-variables.html b/configuration-global-variables.html index 58c69a9dda..87fda1a9e9 100644 --- a/configuration-global-variables.html +++ b/configuration-global-variables.html @@ -10,7 +10,7 @@ - + diff --git a/configuration-security-best-practices.html b/configuration-security-best-practices.html index c0ea7a25f1..a6ab2cb8f5 100644 --- a/configuration-security-best-practices.html +++ b/configuration-security-best-practices.html @@ -10,7 +10,7 @@ - + diff --git a/contributing-community.html b/contributing-community.html index 576a6e5aa9..81a3356afb 100644 --- a/contributing-community.html +++ b/contributing-community.html @@ -10,7 +10,7 @@ - + diff --git a/contributing-components.html b/contributing-components.html index 2179cf0695..5259ac0abf 100644 --- a/contributing-components.html +++ b/contributing-components.html @@ -10,7 +10,7 @@ - + diff --git a/contributing-github-discussions.html b/contributing-github-discussions.html index 1c9bff4187..0015706ccc 100644 --- a/contributing-github-discussions.html +++ b/contributing-github-discussions.html @@ -10,7 +10,7 @@ - + diff --git a/contributing-github-issues.html b/contributing-github-issues.html index 14eb5234af..0bd6926635 100644 --- a/contributing-github-issues.html +++ b/contributing-github-issues.html @@ -10,7 +10,7 @@ - + diff --git a/contributing-how-to-contribute.html b/contributing-how-to-contribute.html index 3e50ee4867..bcb0d62401 100644 --- a/contributing-how-to-contribute.html +++ b/contributing-how-to-contribute.html @@ -10,7 +10,7 @@ - + diff --git a/contributing-telemetry.html b/contributing-telemetry.html index dcedd970ca..cbdbffc569 100644 --- a/contributing-telemetry.html +++ b/contributing-telemetry.html @@ -10,7 +10,7 @@ - + diff --git a/deployment-gcp.html b/deployment-gcp.html index fa755ef335..1e17fe56cf 100644 --- a/deployment-gcp.html +++ b/deployment-gcp.html @@ -10,7 +10,7 @@ - + diff --git a/deployment-hugging-face-spaces.html b/deployment-hugging-face-spaces.html index 1881f328ad..5cb142f639 100644 --- a/deployment-hugging-face-spaces.html +++ b/deployment-hugging-face-spaces.html @@ -10,7 +10,7 @@ - + diff --git a/deployment-kubernetes.html b/deployment-kubernetes.html index e3a2a79bbd..8329a26e33 100644 --- a/deployment-kubernetes.html +++ b/deployment-kubernetes.html @@ -10,7 +10,7 @@ - + diff --git a/deployment-railway.html b/deployment-railway.html index 40e45fcbd7..e03b68187a 100644 --- a/deployment-railway.html +++ b/deployment-railway.html @@ -10,7 +10,7 @@ - + diff --git a/deployment-render.html b/deployment-render.html index d2cc7b2a8d..a14bbd34a5 100644 --- a/deployment-render.html +++ b/deployment-render.html @@ -10,7 +10,7 @@ - + diff --git a/environment-variables.html b/environment-variables.html index 97e126507e..69985b3c74 100644 --- a/environment-variables.html +++ b/environment-variables.html @@ -10,7 +10,7 @@ - + @@ -61,6 +61,6 @@ That means, if you happen to set the same environment variable in both your term
CLI precedence

Langflow CLI options override the value of corresponding environment variables defined in the .env file as well as any environment variables set in your terminal.

Supported environment variables

The following table lists the environment variables supported by Langflow.

-
VariableFormat / ValuesDefaultDescription
DO_NOT_TRACKBooleanfalseIf enabled, Langflow will not track telemetry.
LANGFLOW_AUTO_LOGINBooleantrueEnable automatic login for Langflow. Set to false to disable automatic login and require the login form to log into the Langflow UI. Setting to false requires LANGFLOW_SUPERUSER and LANGFLOW_SUPERUSER_PASSWORD to be set.
LANGFLOW_AUTO_SAVINGBooleantrueEnable flow auto-saving.
See --auto-saving option.
LANGFLOW_AUTO_SAVING_INTERVALInteger1000Set the interval for flow auto-saving in milliseconds.
See --auto-saving-interval option.
LANGFLOW_BACKEND_ONLYBooleanfalseOnly run Langflow's backend server (no frontend).
See --backend-only option.
LANGFLOW_CACHE_TYPEasync
redis
memory
disk
critical
asyncSet the cache type for Langflow.
If you set the type to redis, then you must also set the following environment variables: LANGFLOW_REDIS_HOST, LANGFLOW_REDIS_PORT, LANGFLOW_REDIS_DB, and LANGFLOW_REDIS_CACHE_EXPIRE.
LANGFLOW_COMPONENTS_PATHStringlangflow/componentsPath to the directory containing custom components.
See --components-path option.
LANGFLOW_CONFIG_DIRStringLinux/WSL: ~/.cache/langflow/
macOS: /Users/<username>/Library/Caches/langflow/
Windows: %LOCALAPPDATA%\langflow\langflow\Cache
Set the Langflow configuration directory where files, logs, and the Langflow database are stored.
LANGFLOW_DATABASE_URLStringNot setSet the database URL for Langflow. If not provided, Langflow will use a SQLite database.
LANGFLOW_DATABASE_CONNECTION_RETRYBooleanfalseIf True, Langflow will retry to connect to the database if it fails.
LANGFLOW_DB_POOL_SIZEInteger10DEPRECATED: Use LANGFLOW_DB_CONNECTION_SETTINGS instead. The number of connections to keep open in the connection pool.
LANGFLOW_DB_MAX_OVERFLOWInteger20DEPRECATED: Use LANGFLOW_DB_CONNECTION_SETTINGS instead. The number of connections to allow that can be opened beyond the pool size.
LANGFLOW_DB_CONNECT_TIMEOUTInteger20The number of seconds to wait before giving up on a lock to be released or establishing a connection to the database.
LANGFLOW_DB_CONNECTION_SETTINGSJSONNot setA JSON dictionary to centralize database connection parameters. Example: {"pool_size": 10, "max_overflow": 20}
LANGFLOW_DEVBooleanfalseRun Langflow in development mode (may contain bugs).
See --dev option.
LANGFLOW_FALLBACK_TO_ENV_VARBooleantrueIf enabled, global variables set in the Langflow UI fall back to an environment variable with the same name when Langflow fails to retrieve the variable value.
LANGFLOW_FRONTEND_PATHString./frontendPath to the frontend directory containing build files. This is for development purposes only.
See --frontend-path option.
LANGFLOW_HEALTH_CHECK_MAX_RETRIESInteger5Set the maximum number of retries for the health check.
See --health-check-max-retries option.
LANGFLOW_HOSTString127.0.0.1The host on which the Langflow server will run.
See --host option.
LANGFLOW_LANGCHAIN_CACHEInMemoryCache
SQLiteCache
InMemoryCacheType of cache to use.
See --cache option.
LANGFLOW_MAX_FILE_SIZE_UPLOADInteger100Set the maximum file size for the upload in megabytes.
See --max-file-size-upload option.
LANGFLOW_MCP_SERVER_ENABLEDBooleantrueIf set to False, Langflow will not enable the MCP server.
LANGFLOW_MCP_SERVER_ENABLE_PROGRESS_NOTIFICATIONSBooleanfalseIf set to True, Langflow will send progress notifications in the MCP server.
LANGFLOW_NEW_USER_IS_ACTIVEBooleanfalseWhen enabled, new users are automatically activated and can log in without requiring explicit activation by the superuser.
LANGFLOW_OPEN_BROWSERBooleanfalseOpen the system web browser on startup.
See --open-browser option.
LANGFLOW_PORTInteger7860The port on which the Langflow server will run. The server automatically selects a free port if the specified port is in use.
See --port option.
LANGFLOW_PROMETHEUS_ENABLEDBooleanfalseExpose Prometheus metrics.
LANGFLOW_PROMETHEUS_PORTInteger9090Set the port on which Langflow exposes Prometheus metrics.
LANGFLOW_REDIS_CACHE_EXPIREInteger3600See LANGFLOW_CACHE_TYPE.
LANGFLOW_REDIS_DBInteger0See LANGFLOW_CACHE_TYPE.
LANGFLOW_REDIS_HOSTStringlocalhostSee LANGFLOW_CACHE_TYPE.
LANGFLOW_REDIS_PORTString6379See LANGFLOW_CACHE_TYPE.
LANGFLOW_REMOVE_API_KEYSBooleanfalseRemove API keys from the projects saved in the database.
See --remove-api-keys option.
LANGFLOW_SAVE_DB_IN_CONFIG_DIRBooleanfalseSave the Langflow database in LANGFLOW_CONFIG_DIR instead of in the Langflow package directory. Note, when this variable is set to default (false), the database isn't shared between different virtual environments and the database is deleted when you uninstall Langflow.
LANGFLOW_SECRET_KEYStringAuto-generatedKey used for encrypting sensitive data like API keys. If not provided, a secure key will be auto-generated. For production environments with multiple instances, you should explicitly set this to ensure consistent encryption across instances.
LANGFLOW_STOREBooleantrueEnable the Langflow Store.
See --store option.
LANGFLOW_STORE_ENVIRONMENT_VARIABLESBooleantrueStore environment variables as global variables in the database.
LANGFLOW_SUPERUSERStringlangflowSet the name for the superuser. Required if LANGFLOW_AUTO_LOGIN is set to false.
See superuser --username option.
LANGFLOW_SUPERUSER_PASSWORDStringlangflowSet the password for the superuser. Required if LANGFLOW_AUTO_LOGIN is set to false.
See superuser --password option.
LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENTStringNot setComma-separated list of environment variables to get from the environment and store as global variables.
LANGFLOW_LOAD_FLOWS_PATHStringNot setPath to a directory containing flow JSON files to be loaded on startup. Note that this feature only works if LANGFLOW_AUTO_LOGIN is enabled.
LANGFLOW_WORKER_TIMEOUTInteger300Worker timeout in seconds.
See --worker-timeout option.
LANGFLOW_WORKERSInteger1Number of worker processes.
See --workers option.

Hi, how can I help you?

+
VariableFormat / ValuesDefaultDescription
DO_NOT_TRACKBooleanfalseIf enabled, Langflow will not track telemetry.
LANGFLOW_AUTO_LOGINBooleantrueEnable automatic login for Langflow. Set to false to disable automatic login and require the login form to log into the Langflow UI. Setting to false requires LANGFLOW_SUPERUSER and LANGFLOW_SUPERUSER_PASSWORD to be set.
LANGFLOW_AUTO_SAVINGBooleantrueEnable flow auto-saving.
See --auto-saving option.
LANGFLOW_AUTO_SAVING_INTERVALInteger1000Set the interval for flow auto-saving in milliseconds.
See --auto-saving-interval option.
LANGFLOW_BACKEND_ONLYBooleanfalseOnly run Langflow's backend server (no frontend).
See --backend-only option.
LANGFLOW_CACHE_TYPEasync
redis
memory
disk
critical
asyncSet the cache type for Langflow.
If you set the type to redis, then you must also set the following environment variables: LANGFLOW_REDIS_HOST, LANGFLOW_REDIS_PORT, LANGFLOW_REDIS_DB, and LANGFLOW_REDIS_CACHE_EXPIRE.
LANGFLOW_COMPONENTS_PATHStringlangflow/componentsPath to the directory containing custom components.
See --components-path option.
LANGFLOW_CONFIG_DIRStringLinux/WSL: ~/.cache/langflow/
macOS: /Users/<username>/Library/Caches/langflow/
Windows: %LOCALAPPDATA%\langflow\langflow\Cache
Set the Langflow configuration directory where files, logs, and the Langflow database are stored.
LANGFLOW_DATABASE_URLStringNot setSet the database URL for Langflow. If not provided, Langflow will use a SQLite database.
LANGFLOW_DATABASE_CONNECTION_RETRYBooleanfalseIf True, Langflow will retry to connect to the database if it fails.
LANGFLOW_DB_POOL_SIZEInteger10DEPRECATED: Use LANGFLOW_DB_CONNECTION_SETTINGS instead. The number of connections to keep open in the connection pool.
LANGFLOW_DB_MAX_OVERFLOWInteger20DEPRECATED: Use LANGFLOW_DB_CONNECTION_SETTINGS instead. The number of connections to allow that can be opened beyond the pool size.
LANGFLOW_DB_CONNECT_TIMEOUTInteger20The number of seconds to wait before giving up on a lock to be released or establishing a connection to the database.
LANGFLOW_DB_CONNECTION_SETTINGSJSONNot setA JSON dictionary to centralize database connection parameters. Example: {"pool_size": 10, "max_overflow": 20}
LANGFLOW_DEVBooleanfalseRun Langflow in development mode (may contain bugs).
See --dev option.
LANGFLOW_FALLBACK_TO_ENV_VARBooleantrueIf enabled, global variables set in the Langflow UI fall back to an environment variable with the same name when Langflow fails to retrieve the variable value.
LANGFLOW_FRONTEND_PATHString./frontendPath to the frontend directory containing build files. This is for development purposes only.
See --frontend-path option.
LANGFLOW_HEALTH_CHECK_MAX_RETRIESInteger5Set the maximum number of retries for the health check.
See --health-check-max-retries option.
LANGFLOW_HOSTString127.0.0.1The host on which the Langflow server will run.
See --host option.
LANGFLOW_LANGCHAIN_CACHEInMemoryCache
SQLiteCache
InMemoryCacheType of cache to use.
See --cache option.
LANGFLOW_LOG_LEVELDEBUG
INFO
WARNING
ERROR
CRITICAL
INFOSet the logging level for Langflow.
LANGFLOW_LOG_FILEStringNot setPath to the log file. If not set, logs will be written to stdout.
LANGFLOW_MAX_FILE_SIZE_UPLOADInteger100Set the maximum file size for the upload in megabytes.
See --max-file-size-upload option.
LANGFLOW_MCP_SERVER_ENABLEDBooleantrueIf set to False, Langflow will not enable the MCP server.
LANGFLOW_MCP_SERVER_ENABLE_PROGRESS_NOTIFICATIONSBooleanfalseIf set to True, Langflow will send progress notifications in the MCP server.
LANGFLOW_NEW_USER_IS_ACTIVEBooleanfalseWhen enabled, new users are automatically activated and can log in without requiring explicit activation by the superuser.
LANGFLOW_OPEN_BROWSERBooleanfalseOpen the system web browser on startup.
See --open-browser option.
LANGFLOW_PORTInteger7860The port on which the Langflow server will run. The server automatically selects a free port if the specified port is in use.
See --port option.
LANGFLOW_PROMETHEUS_ENABLEDBooleanfalseExpose Prometheus metrics.
LANGFLOW_PROMETHEUS_PORTInteger9090Set the port on which Langflow exposes Prometheus metrics.
LANGFLOW_REDIS_CACHE_EXPIREInteger3600See LANGFLOW_CACHE_TYPE.
LANGFLOW_REDIS_DBInteger0See LANGFLOW_CACHE_TYPE.
LANGFLOW_REDIS_HOSTStringlocalhostSee LANGFLOW_CACHE_TYPE.
LANGFLOW_REDIS_PORTString6379See LANGFLOW_CACHE_TYPE.
LANGFLOW_REMOVE_API_KEYSBooleanfalseRemove API keys from the projects saved in the database.
See --remove-api-keys option.
LANGFLOW_SAVE_DB_IN_CONFIG_DIRBooleanfalseSave the Langflow database in LANGFLOW_CONFIG_DIR instead of in the Langflow package directory. Note, when this variable is set to default (false), the database isn't shared between different virtual environments and the database is deleted when you uninstall Langflow.
LANGFLOW_SECRET_KEYStringAuto-generatedKey used for encrypting sensitive data like API keys. If not provided, a secure key will be auto-generated. For production environments with multiple instances, you should explicitly set this to ensure consistent encryption across instances.
LANGFLOW_STOREBooleantrueEnable the Langflow Store.
See --store option.
LANGFLOW_STORE_ENVIRONMENT_VARIABLESBooleantrueStore environment variables as global variables in the database.
LANGFLOW_SUPERUSERStringlangflowSet the name for the superuser. Required if LANGFLOW_AUTO_LOGIN is set to false.
See superuser --username option.
LANGFLOW_SUPERUSER_PASSWORDStringlangflowSet the password for the superuser. Required if LANGFLOW_AUTO_LOGIN is set to false.
See superuser --password option.
LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENTStringNot setComma-separated list of environment variables to get from the environment and store as global variables.
LANGFLOW_LOAD_FLOWS_PATHStringNot setPath to a directory containing flow JSON files to be loaded on startup. Note that this feature only works if LANGFLOW_AUTO_LOGIN is enabled.
LANGFLOW_WORKER_TIMEOUTInteger300Worker timeout in seconds.
See --worker-timeout option.
LANGFLOW_WORKERSInteger1Number of worker processes.
See --workers option.

Hi, how can I help you?

\ No newline at end of file diff --git a/get-started-installation.html b/get-started-installation.html index 5fcbd1c1b7..124655f768 100644 --- a/get-started-installation.html +++ b/get-started-installation.html @@ -10,7 +10,7 @@ - + diff --git a/get-started-quickstart.html b/get-started-quickstart.html index 53d22ef090..e220dbbdb8 100644 --- a/get-started-quickstart.html +++ b/get-started-quickstart.html @@ -10,7 +10,7 @@ - + diff --git a/index.html b/index.html index be424b40ae..70199c1d7e 100644 --- a/index.html +++ b/index.html @@ -10,7 +10,7 @@ - + diff --git a/integrations-assemblyai.html b/integrations-assemblyai.html index 5bb70afe7f..f061414de0 100644 --- a/integrations-assemblyai.html +++ b/integrations-assemblyai.html @@ -10,7 +10,7 @@ - + diff --git a/integrations-composio.html b/integrations-composio.html index de602acce9..0420eb8161 100644 --- a/integrations-composio.html +++ b/integrations-composio.html @@ -10,7 +10,7 @@ - + diff --git a/integrations-langfuse.html b/integrations-langfuse.html index 9b04129d26..a4af8cb5c7 100644 --- a/integrations-langfuse.html +++ b/integrations-langfuse.html @@ -10,7 +10,7 @@ - + diff --git a/integrations-langsmith.html b/integrations-langsmith.html index bd5515ed60..8f4752e7d0 100644 --- a/integrations-langsmith.html +++ b/integrations-langsmith.html @@ -10,7 +10,7 @@ - + diff --git a/integrations-langwatch.html b/integrations-langwatch.html index ca766c1a2e..da26f45a6f 100644 --- a/integrations-langwatch.html +++ b/integrations-langwatch.html @@ -10,7 +10,7 @@ - + diff --git a/integrations-setup-google-cloud-vertex-ai-langflow.html b/integrations-setup-google-cloud-vertex-ai-langflow.html index 17b1ac0a1f..2178dbc01a 100644 --- a/integrations-setup-google-cloud-vertex-ai-langflow.html +++ b/integrations-setup-google-cloud-vertex-ai-langflow.html @@ -10,7 +10,7 @@ - + diff --git a/integrations-setup-google-oauth-langflow.html b/integrations-setup-google-oauth-langflow.html index 1dcb054d2f..a2b90400b7 100644 --- a/integrations-setup-google-oauth-langflow.html +++ b/integrations-setup-google-oauth-langflow.html @@ -10,7 +10,7 @@ - + diff --git a/integrations/notion/notion-agent-conversational.html b/integrations/notion/notion-agent-conversational.html index ac913059e7..9708f46490 100644 --- a/integrations/notion/notion-agent-conversational.html +++ b/integrations/notion/notion-agent-conversational.html @@ -10,7 +10,7 @@ - + diff --git a/integrations/notion/notion-agent-meeting-notes.html b/integrations/notion/notion-agent-meeting-notes.html index b8004498a6..c783286f77 100644 --- a/integrations/notion/notion-agent-meeting-notes.html +++ b/integrations/notion/notion-agent-meeting-notes.html @@ -10,7 +10,7 @@ - + diff --git a/integrations/notion/setup.html b/integrations/notion/setup.html index c10132931a..7f9190d5c3 100644 --- a/integrations/notion/setup.html +++ b/integrations/notion/setup.html @@ -10,7 +10,7 @@ - + diff --git a/sitemap.xml b/sitemap.xml index be99ce63cb..a853e19dc4 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -https://docs.langflow.org/apihttps://docs.langflow.org/api/add-userhttps://docs.langflow.org/api/auto-loginhttps://docs.langflow.org/api/build-flowhttps://docs.langflow.org/api/build-vertexhttps://docs.langflow.org/api/build-vertex-streamhttps://docs.langflow.org/api/check-if-store-has-api-keyhttps://docs.langflow.org/api/check-if-store-is-enabledhttps://docs.langflow.org/api/create-api-key-routehttps://docs.langflow.org/api/create-flowhttps://docs.langflow.org/api/create-flowshttps://docs.langflow.org/api/create-folderhttps://docs.langflow.org/api/create-upload-filehttps://docs.langflow.org/api/create-variablehttps://docs.langflow.org/api/custom-componenthttps://docs.langflow.org/api/custom-component-updatehttps://docs.langflow.org/api/delete-api-key-routehttps://docs.langflow.org/api/delete-filehttps://docs.langflow.org/api/delete-flowhttps://docs.langflow.org/api/delete-folderhttps://docs.langflow.org/api/delete-messageshttps://docs.langflow.org/api/delete-messages-sessionhttps://docs.langflow.org/api/delete-multiple-flowshttps://docs.langflow.org/api/delete-userhttps://docs.langflow.org/api/delete-variablehttps://docs.langflow.org/api/delete-vertex-buildshttps://docs.langflow.org/api/download-componenthttps://docs.langflow.org/api/download-filehttps://docs.langflow.org/api/download-file-1https://docs.langflow.org/api/download-imagehttps://docs.langflow.org/api/download-multiple-filehttps://docs.langflow.org/api/download-profile-picturehttps://docs.langflow.org/api/experimental-run-flowhttps://docs.langflow.org/api/get-allhttps://docs.langflow.org/api/get-api-keys-routehttps://docs.langflow.org/api/get-componentshttps://docs.langflow.org/api/get-confighttps://docs.langflow.org/api/get-list-of-components-liked-by-userhttps://docs.langflow.org/api/get-messageshttps://docs.langflow.org/api/get-starter-projectshttps://docs.langflow.org/api/get-tagshttps://docs.langflow.org/api/get-task-statushttps://docs.langflow.org/api/get-transactionshttps://docs.langflow.org/api/get-versionhttps://docs.langflow.org/api/get-vertex-buildshttps://docs.langflow.org/api/handle-messageshttps://docs.langflow.org/api/handle-ssehttps://docs.langflow.org/api/healthhttps://docs.langflow.org/api/health-checkhttps://docs.langflow.org/api/like-componenthttps://docs.langflow.org/api/list-fileshttps://docs.langflow.org/api/list-profile-pictureshttps://docs.langflow.org/api/login-to-get-access-tokenhttps://docs.langflow.org/api/logouthttps://docs.langflow.org/api/logshttps://docs.langflow.org/api/patch-userhttps://docs.langflow.org/api/post-validate-codehttps://docs.langflow.org/api/post-validate-prompthttps://docs.langflow.org/api/processhttps://docs.langflow.org/api/process-1https://docs.langflow.org/api/read-all-usershttps://docs.langflow.org/api/read-basic-exampleshttps://docs.langflow.org/api/read-current-userhttps://docs.langflow.org/api/read-flowhttps://docs.langflow.org/api/read-flowshttps://docs.langflow.org/api/read-folderhttps://docs.langflow.org/api/read-foldershttps://docs.langflow.org/api/read-variableshttps://docs.langflow.org/api/refresh-tokenhttps://docs.langflow.org/api/reset-passwordhttps://docs.langflow.org/api/retrieve-vertices-orderhttps://docs.langflow.org/api/save-store-api-keyhttps://docs.langflow.org/api/share-componenthttps://docs.langflow.org/api/simplified-run-flowhttps://docs.langflow.org/api/stream-logshttps://docs.langflow.org/api/update-flowhttps://docs.langflow.org/api/update-folderhttps://docs.langflow.org/api/update-messagehttps://docs.langflow.org/api/update-session-idhttps://docs.langflow.org/api/update-shared-componenthttps://docs.langflow.org/api/update-variablehttps://docs.langflow.org/api/upload-filehttps://docs.langflow.org/api/upload-file-1https://docs.langflow.org/api/upload-file-2https://docs.langflow.org/api/webhook-run-flowhttps://docs.langflow.org/agents-overview2025-01-31T20:08:10.000Zhttps://docs.langflow.org/agents-tool-calling-agent-component2025-01-31T20:08:10.000Zhttps://docs.langflow.org/api-reference-api-examples2025-01-31T20:08:10.000Zhttps://docs.langflow.org/components-agents2025-01-31T20:08:10.000Zhttps://docs.langflow.org/components-custom-components2025-01-31T20:08:10.000Zhttps://docs.langflow.org/components-data2025-01-31T20:08:10.000Zhttps://docs.langflow.org/components-embedding-models2025-01-31T20:08:10.000Zhttps://docs.langflow.org/components-helpers2025-01-31T20:08:10.000Zhttps://docs.langflow.org/components-io2025-01-31T20:08:10.000Zhttps://docs.langflow.org/components-loaders2025-01-31T20:08:10.000Zhttps://docs.langflow.org/components-logic2025-01-31T20:08:10.000Zhttps://docs.langflow.org/components-memories2025-01-31T20:08:10.000Zhttps://docs.langflow.org/components-models2025-01-31T20:08:10.000Zhttps://docs.langflow.org/components-processing2025-01-31T20:08:10.000Zhttps://docs.langflow.org/components-prompts2025-01-31T20:08:10.000Zhttps://docs.langflow.org/components-tools2025-01-31T20:08:10.000Zhttps://docs.langflow.org/components-vector-stores2025-01-31T20:08:10.000Zhttps://docs.langflow.org/concepts-api2025-01-31T20:08:10.000Zhttps://docs.langflow.org/concepts-components2025-01-31T20:08:10.000Zhttps://docs.langflow.org/concepts-objects2025-01-31T20:08:10.000Zhttps://docs.langflow.org/concepts-overview2025-01-31T20:08:10.000Zhttps://docs.langflow.org/concepts-playground2025-01-31T20:08:10.000Zhttps://docs.langflow.org/Concepts/concepts-flows2025-01-31T20:08:10.000Zhttps://docs.langflow.org/configuration-api-keys2025-01-31T20:08:10.000Zhttps://docs.langflow.org/configuration-authentication2025-01-31T20:08:10.000Zhttps://docs.langflow.org/configuration-auto-save2025-01-31T20:08:10.000Zhttps://docs.langflow.org/configuration-backend-only2025-01-31T20:08:10.000Zhttps://docs.langflow.org/configuration-cli2025-01-31T20:08:10.000Zhttps://docs.langflow.org/configuration-custom-database2025-01-31T20:08:10.000Zhttps://docs.langflow.org/configuration-global-variables2025-01-31T20:08:10.000Zhttps://docs.langflow.org/configuration-security-best-practices2025-01-31T20:08:10.000Zhttps://docs.langflow.org/contributing-community2025-01-31T20:08:10.000Zhttps://docs.langflow.org/contributing-components2025-01-31T20:08:10.000Zhttps://docs.langflow.org/contributing-github-discussions2025-01-31T20:08:10.000Zhttps://docs.langflow.org/contributing-github-issues2025-01-31T20:08:10.000Zhttps://docs.langflow.org/contributing-how-to-contribute2025-01-31T20:08:10.000Zhttps://docs.langflow.org/contributing-telemetry2025-01-31T20:08:10.000Zhttps://docs.langflow.org/deployment-gcp2025-01-31T20:08:10.000Zhttps://docs.langflow.org/deployment-hugging-face-spaces2025-01-31T20:08:10.000Zhttps://docs.langflow.org/deployment-kubernetes2025-01-31T20:08:10.000Zhttps://docs.langflow.org/deployment-railway2025-01-31T20:08:10.000Zhttps://docs.langflow.org/deployment-render2025-01-31T20:08:10.000Zhttps://docs.langflow.org/Deployment/deployment-docker2025-01-31T20:08:10.000Zhttps://docs.langflow.org/environment-variables2025-01-31T20:08:10.000Zhttps://docs.langflow.org/get-started-installation2025-01-31T20:08:10.000Zhttps://docs.langflow.org/get-started-quickstart2025-01-31T20:08:10.000Zhttps://docs.langflow.org/integrations-assemblyai2025-01-31T20:08:10.000Zhttps://docs.langflow.org/integrations-composio2025-01-31T20:08:10.000Zhttps://docs.langflow.org/integrations-langfuse2025-01-31T20:08:10.000Zhttps://docs.langflow.org/integrations-langsmith2025-01-31T20:08:10.000Zhttps://docs.langflow.org/integrations-langwatch2025-01-31T20:08:10.000Zhttps://docs.langflow.org/integrations-setup-google-cloud-vertex-ai-langflow2025-01-31T20:08:10.000Zhttps://docs.langflow.org/integrations-setup-google-oauth-langflow2025-01-31T20:08:10.000Zhttps://docs.langflow.org/integrations/notion/notion-agent-conversational2025-01-31T20:08:10.000Zhttps://docs.langflow.org/integrations/notion/notion-agent-meeting-notes2025-01-31T20:08:10.000Zhttps://docs.langflow.org/integrations/notion/setup2025-01-31T20:08:10.000Zhttps://docs.langflow.org/starter-projects-basic-prompting2025-01-31T20:08:10.000Zhttps://docs.langflow.org/starter-projects-simple-agent2025-01-31T20:08:10.000Zhttps://docs.langflow.org/starter-projects-vector-store-rag2025-01-31T20:08:10.000Zhttps://docs.langflow.org/tutorials-blog-writer2025-01-31T20:08:10.000Zhttps://docs.langflow.org/tutorials-document-qa2025-01-31T20:08:10.000Zhttps://docs.langflow.org/tutorials-math-agent2025-01-31T20:08:10.000Zhttps://docs.langflow.org/tutorials-memory-chatbot2025-01-31T20:08:10.000Zhttps://docs.langflow.org/tutorials-sequential-agent2025-01-31T20:08:10.000Zhttps://docs.langflow.org/tutorials-travel-planning-agent2025-01-31T20:08:10.000Zhttps://docs.langflow.org/2025-01-31T20:08:10.000Z \ No newline at end of file +https://docs.langflow.org/apihttps://docs.langflow.org/api/add-userhttps://docs.langflow.org/api/auto-loginhttps://docs.langflow.org/api/build-flowhttps://docs.langflow.org/api/build-vertexhttps://docs.langflow.org/api/build-vertex-streamhttps://docs.langflow.org/api/check-if-store-has-api-keyhttps://docs.langflow.org/api/check-if-store-is-enabledhttps://docs.langflow.org/api/create-api-key-routehttps://docs.langflow.org/api/create-flowhttps://docs.langflow.org/api/create-flowshttps://docs.langflow.org/api/create-folderhttps://docs.langflow.org/api/create-upload-filehttps://docs.langflow.org/api/create-variablehttps://docs.langflow.org/api/custom-componenthttps://docs.langflow.org/api/custom-component-updatehttps://docs.langflow.org/api/delete-api-key-routehttps://docs.langflow.org/api/delete-filehttps://docs.langflow.org/api/delete-flowhttps://docs.langflow.org/api/delete-folderhttps://docs.langflow.org/api/delete-messageshttps://docs.langflow.org/api/delete-messages-sessionhttps://docs.langflow.org/api/delete-multiple-flowshttps://docs.langflow.org/api/delete-userhttps://docs.langflow.org/api/delete-variablehttps://docs.langflow.org/api/delete-vertex-buildshttps://docs.langflow.org/api/download-componenthttps://docs.langflow.org/api/download-filehttps://docs.langflow.org/api/download-file-1https://docs.langflow.org/api/download-imagehttps://docs.langflow.org/api/download-multiple-filehttps://docs.langflow.org/api/download-profile-picturehttps://docs.langflow.org/api/experimental-run-flowhttps://docs.langflow.org/api/get-allhttps://docs.langflow.org/api/get-api-keys-routehttps://docs.langflow.org/api/get-componentshttps://docs.langflow.org/api/get-confighttps://docs.langflow.org/api/get-list-of-components-liked-by-userhttps://docs.langflow.org/api/get-messageshttps://docs.langflow.org/api/get-starter-projectshttps://docs.langflow.org/api/get-tagshttps://docs.langflow.org/api/get-task-statushttps://docs.langflow.org/api/get-transactionshttps://docs.langflow.org/api/get-versionhttps://docs.langflow.org/api/get-vertex-buildshttps://docs.langflow.org/api/handle-messageshttps://docs.langflow.org/api/handle-ssehttps://docs.langflow.org/api/healthhttps://docs.langflow.org/api/health-checkhttps://docs.langflow.org/api/like-componenthttps://docs.langflow.org/api/list-fileshttps://docs.langflow.org/api/list-profile-pictureshttps://docs.langflow.org/api/login-to-get-access-tokenhttps://docs.langflow.org/api/logouthttps://docs.langflow.org/api/logshttps://docs.langflow.org/api/patch-userhttps://docs.langflow.org/api/post-validate-codehttps://docs.langflow.org/api/post-validate-prompthttps://docs.langflow.org/api/processhttps://docs.langflow.org/api/process-1https://docs.langflow.org/api/read-all-usershttps://docs.langflow.org/api/read-basic-exampleshttps://docs.langflow.org/api/read-current-userhttps://docs.langflow.org/api/read-flowhttps://docs.langflow.org/api/read-flowshttps://docs.langflow.org/api/read-folderhttps://docs.langflow.org/api/read-foldershttps://docs.langflow.org/api/read-variableshttps://docs.langflow.org/api/refresh-tokenhttps://docs.langflow.org/api/reset-passwordhttps://docs.langflow.org/api/retrieve-vertices-orderhttps://docs.langflow.org/api/save-store-api-keyhttps://docs.langflow.org/api/share-componenthttps://docs.langflow.org/api/simplified-run-flowhttps://docs.langflow.org/api/stream-logshttps://docs.langflow.org/api/update-flowhttps://docs.langflow.org/api/update-folderhttps://docs.langflow.org/api/update-messagehttps://docs.langflow.org/api/update-session-idhttps://docs.langflow.org/api/update-shared-componenthttps://docs.langflow.org/api/update-variablehttps://docs.langflow.org/api/upload-filehttps://docs.langflow.org/api/upload-file-1https://docs.langflow.org/api/upload-file-2https://docs.langflow.org/api/webhook-run-flowhttps://docs.langflow.org/agents-overview2025-01-31T20:25:58.000Zhttps://docs.langflow.org/agents-tool-calling-agent-component2025-01-31T20:25:58.000Zhttps://docs.langflow.org/api-reference-api-examples2025-01-31T20:25:58.000Zhttps://docs.langflow.org/components-agents2025-01-31T20:25:58.000Zhttps://docs.langflow.org/components-custom-components2025-01-31T20:25:58.000Zhttps://docs.langflow.org/components-data2025-01-31T20:25:58.000Zhttps://docs.langflow.org/components-embedding-models2025-01-31T20:25:58.000Zhttps://docs.langflow.org/components-helpers2025-01-31T20:25:58.000Zhttps://docs.langflow.org/components-io2025-01-31T20:25:58.000Zhttps://docs.langflow.org/components-loaders2025-01-31T20:25:58.000Zhttps://docs.langflow.org/components-logic2025-01-31T20:25:58.000Zhttps://docs.langflow.org/components-memories2025-01-31T20:25:58.000Zhttps://docs.langflow.org/components-models2025-01-31T20:25:58.000Zhttps://docs.langflow.org/components-processing2025-01-31T20:25:58.000Zhttps://docs.langflow.org/components-prompts2025-01-31T20:25:58.000Zhttps://docs.langflow.org/components-tools2025-01-31T20:25:58.000Zhttps://docs.langflow.org/components-vector-stores2025-01-31T20:25:58.000Zhttps://docs.langflow.org/concepts-api2025-01-31T20:25:58.000Zhttps://docs.langflow.org/concepts-components2025-01-31T20:25:58.000Zhttps://docs.langflow.org/concepts-objects2025-01-31T20:25:58.000Zhttps://docs.langflow.org/concepts-overview2025-01-31T20:25:58.000Zhttps://docs.langflow.org/concepts-playground2025-01-31T20:25:58.000Zhttps://docs.langflow.org/Concepts/concepts-flows2025-01-31T20:25:58.000Zhttps://docs.langflow.org/configuration-api-keys2025-01-31T20:25:58.000Zhttps://docs.langflow.org/configuration-authentication2025-01-31T20:25:58.000Zhttps://docs.langflow.org/configuration-auto-save2025-01-31T20:25:58.000Zhttps://docs.langflow.org/configuration-backend-only2025-01-31T20:25:58.000Zhttps://docs.langflow.org/configuration-cli2025-01-31T20:25:58.000Zhttps://docs.langflow.org/configuration-custom-database2025-01-31T20:25:58.000Zhttps://docs.langflow.org/configuration-global-variables2025-01-31T20:25:58.000Zhttps://docs.langflow.org/configuration-security-best-practices2025-01-31T20:25:58.000Zhttps://docs.langflow.org/contributing-community2025-01-31T20:25:58.000Zhttps://docs.langflow.org/contributing-components2025-01-31T20:25:58.000Zhttps://docs.langflow.org/contributing-github-discussions2025-01-31T20:25:58.000Zhttps://docs.langflow.org/contributing-github-issues2025-01-31T20:25:58.000Zhttps://docs.langflow.org/contributing-how-to-contribute2025-01-31T20:25:58.000Zhttps://docs.langflow.org/contributing-telemetry2025-01-31T20:25:58.000Zhttps://docs.langflow.org/deployment-gcp2025-01-31T20:25:58.000Zhttps://docs.langflow.org/deployment-hugging-face-spaces2025-01-31T20:25:58.000Zhttps://docs.langflow.org/deployment-kubernetes2025-01-31T20:25:58.000Zhttps://docs.langflow.org/deployment-railway2025-01-31T20:25:58.000Zhttps://docs.langflow.org/deployment-render2025-01-31T20:25:58.000Zhttps://docs.langflow.org/Deployment/deployment-docker2025-01-31T20:25:58.000Zhttps://docs.langflow.org/environment-variables2025-01-31T20:25:58.000Zhttps://docs.langflow.org/get-started-installation2025-01-31T20:25:58.000Zhttps://docs.langflow.org/get-started-quickstart2025-01-31T20:25:58.000Zhttps://docs.langflow.org/integrations-assemblyai2025-01-31T20:25:58.000Zhttps://docs.langflow.org/integrations-composio2025-01-31T20:25:58.000Zhttps://docs.langflow.org/integrations-langfuse2025-01-31T20:25:58.000Zhttps://docs.langflow.org/integrations-langsmith2025-01-31T20:25:58.000Zhttps://docs.langflow.org/integrations-langwatch2025-01-31T20:25:58.000Zhttps://docs.langflow.org/integrations-setup-google-cloud-vertex-ai-langflow2025-01-31T20:25:58.000Zhttps://docs.langflow.org/integrations-setup-google-oauth-langflow2025-01-31T20:25:58.000Zhttps://docs.langflow.org/integrations/notion/notion-agent-conversational2025-01-31T20:25:58.000Zhttps://docs.langflow.org/integrations/notion/notion-agent-meeting-notes2025-01-31T20:25:58.000Zhttps://docs.langflow.org/integrations/notion/setup2025-01-31T20:25:58.000Zhttps://docs.langflow.org/starter-projects-basic-prompting2025-01-31T20:25:58.000Zhttps://docs.langflow.org/starter-projects-simple-agent2025-01-31T20:25:58.000Zhttps://docs.langflow.org/starter-projects-vector-store-rag2025-01-31T20:25:58.000Zhttps://docs.langflow.org/tutorials-blog-writer2025-01-31T20:25:58.000Zhttps://docs.langflow.org/tutorials-document-qa2025-01-31T20:25:58.000Zhttps://docs.langflow.org/tutorials-math-agent2025-01-31T20:25:58.000Zhttps://docs.langflow.org/tutorials-memory-chatbot2025-01-31T20:25:58.000Zhttps://docs.langflow.org/tutorials-sequential-agent2025-01-31T20:25:58.000Zhttps://docs.langflow.org/tutorials-travel-planning-agent2025-01-31T20:25:58.000Zhttps://docs.langflow.org/2025-01-31T20:25:58.000Z \ No newline at end of file diff --git a/starter-projects-basic-prompting.html b/starter-projects-basic-prompting.html index a07713a3c7..04f61ef0c2 100644 --- a/starter-projects-basic-prompting.html +++ b/starter-projects-basic-prompting.html @@ -10,7 +10,7 @@ - + diff --git a/starter-projects-simple-agent.html b/starter-projects-simple-agent.html index a10cc2486c..9cabf1c126 100644 --- a/starter-projects-simple-agent.html +++ b/starter-projects-simple-agent.html @@ -10,7 +10,7 @@ - + diff --git a/starter-projects-vector-store-rag.html b/starter-projects-vector-store-rag.html index efb094ceb5..3108b1de49 100644 --- a/starter-projects-vector-store-rag.html +++ b/starter-projects-vector-store-rag.html @@ -10,7 +10,7 @@ - + diff --git a/tutorials-blog-writer.html b/tutorials-blog-writer.html index 9cab1cdb4a..702659ce70 100644 --- a/tutorials-blog-writer.html +++ b/tutorials-blog-writer.html @@ -10,7 +10,7 @@ - + diff --git a/tutorials-document-qa.html b/tutorials-document-qa.html index cb07dd69a1..f3c65c9231 100644 --- a/tutorials-document-qa.html +++ b/tutorials-document-qa.html @@ -10,7 +10,7 @@ - + diff --git a/tutorials-math-agent.html b/tutorials-math-agent.html index b345bbb7e0..c292832f0a 100644 --- a/tutorials-math-agent.html +++ b/tutorials-math-agent.html @@ -10,7 +10,7 @@ - + diff --git a/tutorials-memory-chatbot.html b/tutorials-memory-chatbot.html index b13301f77f..58a5d30a4e 100644 --- a/tutorials-memory-chatbot.html +++ b/tutorials-memory-chatbot.html @@ -10,7 +10,7 @@ - + @@ -59,7 +59,7 @@ The Message Logs pane displays all previous messages, with each

In the Memory Chatbot flow you created, the Chat Memory component references past interactions by Session ID. You can demonstrate this by modifying the Session ID value to switch between conversation histories.

  1. In the Session ID field of the Chat Memory and Chat Input components, add a Session ID value like MySessionID.
  2. -
  3. Now, once you send a new message the Playground, you should have a new memory created on the Memories tab.
  4. +
  5. Now, once you send a new message the Playground, you should have a new memory created in the Message Logs pane.
  6. Notice how your conversation is being stored in different memory sessions.

Learn more about chat memories in the Memory section.

Hi, how can I help you?

diff --git a/tutorials-sequential-agent.html b/tutorials-sequential-agent.html index 76e2ad2178..d71207bcd3 100644 --- a/tutorials-sequential-agent.html +++ b/tutorials-sequential-agent.html @@ -10,7 +10,7 @@ - + diff --git a/tutorials-travel-planning-agent.html b/tutorials-travel-planning-agent.html index 649ee42d5a..a4edc2990d 100644 --- a/tutorials-travel-planning-agent.html +++ b/tutorials-travel-planning-agent.html @@ -10,7 +10,7 @@ - +