You might find it helpful to set the following environment variables in your terminal.
The examples in this guide use environment variables for these values.
Export your Langflow URL in your terminal.
-Langflow starts by default at http://127.0.0.1:7860.
+Langflow starts by default at http://localhost:7860.
-
_10
export LANGFLOW_URL="http://127.0.0.1:7860"
+
_10
export LANGFLOW_URL="http://localhost:7860"
Export the flow-id in your terminal.
The flow-id is found in the Publish pane or in the flow's URL.
diff --git a/api.html b/api.html
index 314f949632..5058c25c57 100644
--- a/api.html
+++ b/api.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/add-user.html b/api/add-user.html
index 9500ab0607..2a7835f45a 100644
--- a/api/add-user.html
+++ b/api/add-user.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/auto-login.html b/api/auto-login.html
index 2ef02148b1..41b5b6a7c4 100644
--- a/api/auto-login.html
+++ b/api/auto-login.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/build-flow.html b/api/build-flow.html
index d9491c7115..7f5dc5c8ed 100644
--- a/api/build-flow.html
+++ b/api/build-flow.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/build-public-tmp.html b/api/build-public-tmp.html
index e5a0ba9f18..3a2dddb022 100644
--- a/api/build-public-tmp.html
+++ b/api/build-public-tmp.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/build-vertex-stream.html b/api/build-vertex-stream.html
index 25793ebdfb..5b91c64ef3 100644
--- a/api/build-vertex-stream.html
+++ b/api/build-vertex-stream.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/build-vertex.html b/api/build-vertex.html
index 2e8c9d0bc4..04d9ea0a66 100644
--- a/api/build-vertex.html
+++ b/api/build-vertex.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/cancel-build.html b/api/cancel-build.html
index c65e714820..a5f1713bbf 100644
--- a/api/cancel-build.html
+++ b/api/cancel-build.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/check-if-store-has-api-key.html b/api/check-if-store-has-api-key.html
index b70f056d03..b04c0f3abe 100644
--- a/api/check-if-store-has-api-key.html
+++ b/api/check-if-store-has-api-key.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/check-if-store-is-enabled.html b/api/check-if-store-is-enabled.html
index 671c7c1138..f6106b9a62 100644
--- a/api/check-if-store-is-enabled.html
+++ b/api/check-if-store-is-enabled.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/create-api-key-route.html b/api/create-api-key-route.html
index 9650e05b97..c7829c7048 100644
--- a/api/create-api-key-route.html
+++ b/api/create-api-key-route.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/create-flow.html b/api/create-flow.html
index ffdeb51a14..ee6b2ff508 100644
--- a/api/create-flow.html
+++ b/api/create-flow.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/create-flows.html b/api/create-flows.html
index 66da788438..a7b99a4bb6 100644
--- a/api/create-flows.html
+++ b/api/create-flows.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/create-folder-redirect.html b/api/create-folder-redirect.html
index 0358cc5e30..a65e6c3e64 100644
--- a/api/create-folder-redirect.html
+++ b/api/create-folder-redirect.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/create-project.html b/api/create-project.html
index 37c91330ef..41910d07f3 100644
--- a/api/create-project.html
+++ b/api/create-project.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/create-upload-file.html b/api/create-upload-file.html
index 36a8dc3480..812ba6e93e 100644
--- a/api/create-upload-file.html
+++ b/api/create-upload-file.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/create-variable.html b/api/create-variable.html
index 63b61758b8..cbba1b94bd 100644
--- a/api/create-variable.html
+++ b/api/create-variable.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/custom-component-update.html b/api/custom-component-update.html
index 6d754ef5b7..9d026cd0a9 100644
--- a/api/custom-component-update.html
+++ b/api/custom-component-update.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/custom-component.html b/api/custom-component.html
index 3abcba0a28..d3e6cff218 100644
--- a/api/custom-component.html
+++ b/api/custom-component.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/delete-all-files-1.html b/api/delete-all-files-1.html
index 543670d79f..5d64ac5d12 100644
--- a/api/delete-all-files-1.html
+++ b/api/delete-all-files-1.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/delete-all-files.html b/api/delete-all-files.html
index 77a6a83a0c..ff7ded8658 100644
--- a/api/delete-all-files.html
+++ b/api/delete-all-files.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/delete-api-key-route.html b/api/delete-api-key-route.html
index de8bf09a89..8a329c6b68 100644
--- a/api/delete-api-key-route.html
+++ b/api/delete-api-key-route.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/delete-file-1.html b/api/delete-file-1.html
index 1b210c0bf1..5929a2d671 100644
--- a/api/delete-file-1.html
+++ b/api/delete-file-1.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/delete-file.html b/api/delete-file.html
index 8255914734..fbbfb65294 100644
--- a/api/delete-file.html
+++ b/api/delete-file.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/delete-files-batch.html b/api/delete-files-batch.html
index 607089369e..ec04b65fa2 100644
--- a/api/delete-files-batch.html
+++ b/api/delete-files-batch.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/delete-flow.html b/api/delete-flow.html
index 8fba81a765..1926e29c53 100644
--- a/api/delete-flow.html
+++ b/api/delete-flow.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/delete-folder-redirect.html b/api/delete-folder-redirect.html
index 9f8ac99900..bc1925721b 100644
--- a/api/delete-folder-redirect.html
+++ b/api/delete-folder-redirect.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/delete-messages-session.html b/api/delete-messages-session.html
index 29579d9de5..759cc16572 100644
--- a/api/delete-messages-session.html
+++ b/api/delete-messages-session.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/delete-messages.html b/api/delete-messages.html
index 78bf544a9d..eec2a68d4a 100644
--- a/api/delete-messages.html
+++ b/api/delete-messages.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/delete-multiple-flows.html b/api/delete-multiple-flows.html
index 4ff600efe8..ab9d9d31f4 100644
--- a/api/delete-multiple-flows.html
+++ b/api/delete-multiple-flows.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/delete-project.html b/api/delete-project.html
index a87dbdbff6..9b03c41a54 100644
--- a/api/delete-project.html
+++ b/api/delete-project.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/delete-user.html b/api/delete-user.html
index 2b333beee7..00ada023ba 100644
--- a/api/delete-user.html
+++ b/api/delete-user.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/delete-variable.html b/api/delete-variable.html
index 11b4f88b42..5b21c6260d 100644
--- a/api/delete-variable.html
+++ b/api/delete-variable.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/delete-vertex-builds.html b/api/delete-vertex-builds.html
index aa35f86606..4a58daed54 100644
--- a/api/delete-vertex-builds.html
+++ b/api/delete-vertex-builds.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/download-component.html b/api/download-component.html
index 64a0ebe7a9..d32ef2a8a0 100644
--- a/api/download-component.html
+++ b/api/download-component.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/download-file-1.html b/api/download-file-1.html
index 4e129b8113..2bba2508e9 100644
--- a/api/download-file-1.html
+++ b/api/download-file-1.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/download-file-2.html b/api/download-file-2.html
index 878012c1e0..4d820fc518 100644
--- a/api/download-file-2.html
+++ b/api/download-file-2.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/download-file-redirect.html b/api/download-file-redirect.html
index 020a7a47c1..b429bf5e9e 100644
--- a/api/download-file-redirect.html
+++ b/api/download-file-redirect.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/download-file.html b/api/download-file.html
index 278fea6b31..94f79037cc 100644
--- a/api/download-file.html
+++ b/api/download-file.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/download-files-batch.html b/api/download-files-batch.html
index 2f6ed7ce91..a07b8a203c 100644
--- a/api/download-files-batch.html
+++ b/api/download-files-batch.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/download-image.html b/api/download-image.html
index df76b522b2..25fd9a4a92 100644
--- a/api/download-image.html
+++ b/api/download-image.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/download-multiple-file.html b/api/download-multiple-file.html
index 7e5ef4999e..62d6da6d6d 100644
--- a/api/download-multiple-file.html
+++ b/api/download-multiple-file.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/download-profile-picture.html b/api/download-profile-picture.html
index 06219c10e7..e1a0c6ddd2 100644
--- a/api/download-profile-picture.html
+++ b/api/download-profile-picture.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/edit-file-name.html b/api/edit-file-name.html
index 861176641f..97c6a30b76 100644
--- a/api/edit-file-name.html
+++ b/api/edit-file-name.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/experimental-run-flow.html b/api/experimental-run-flow.html
index 35ec5d452f..43401cc56b 100644
--- a/api/experimental-run-flow.html
+++ b/api/experimental-run-flow.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/get-all.html b/api/get-all.html
index 420d96721a..6eeddd602f 100644
--- a/api/get-all.html
+++ b/api/get-all.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/get-api-keys-route.html b/api/get-api-keys-route.html
index 408a0b65e7..a37b51e3a0 100644
--- a/api/get-api-keys-route.html
+++ b/api/get-api-keys-route.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/get-build-events.html b/api/get-build-events.html
index 0ccb850c20..a24c571380 100644
--- a/api/get-build-events.html
+++ b/api/get-build-events.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/get-components.html b/api/get-components.html
index e72699370a..65a4e26c88 100644
--- a/api/get-components.html
+++ b/api/get-components.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/get-config.html b/api/get-config.html
index 7f003aac13..fdcf1551eb 100644
--- a/api/get-config.html
+++ b/api/get-config.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/get-elevenlabs-voice-ids.html b/api/get-elevenlabs-voice-ids.html
index 38bd8986ac..b0d52a9478 100644
--- a/api/get-elevenlabs-voice-ids.html
+++ b/api/get-elevenlabs-voice-ids.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/get-list-of-components-liked-by-user.html b/api/get-list-of-components-liked-by-user.html
index df1035128f..39b307004e 100644
--- a/api/get-list-of-components-liked-by-user.html
+++ b/api/get-list-of-components-liked-by-user.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/get-messages.html b/api/get-messages.html
index 7959d6d94f..fd294cb38b 100644
--- a/api/get-messages.html
+++ b/api/get-messages.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/get-starter-projects.html b/api/get-starter-projects.html
index 87ffd6df1d..ceaff3b112 100644
--- a/api/get-starter-projects.html
+++ b/api/get-starter-projects.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/get-tags.html b/api/get-tags.html
index 717485dbe0..34bae6a49e 100644
--- a/api/get-tags.html
+++ b/api/get-tags.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/get-task-status.html b/api/get-task-status.html
index 5691285226..8514aa4a48 100644
--- a/api/get-task-status.html
+++ b/api/get-task-status.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/get-transactions.html b/api/get-transactions.html
index 509e96dbd8..73180f7176 100644
--- a/api/get-transactions.html
+++ b/api/get-transactions.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/get-version.html b/api/get-version.html
index e4781263aa..d06225d3b1 100644
--- a/api/get-version.html
+++ b/api/get-version.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/get-vertex-builds.html b/api/get-vertex-builds.html
index 99ce52ae8f..c57e29ebb2 100644
--- a/api/get-vertex-builds.html
+++ b/api/get-vertex-builds.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/handle-messages-1.html b/api/handle-messages-1.html
index cd057856c7..b314c6109f 100644
--- a/api/handle-messages-1.html
+++ b/api/handle-messages-1.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/handle-messages.html b/api/handle-messages.html
index 90d688a395..cb15e3226b 100644
--- a/api/handle-messages.html
+++ b/api/handle-messages.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/handle-project-messages-with-slash.html b/api/handle-project-messages-with-slash.html
index 2a3e08cd5e..5841120c7c 100644
--- a/api/handle-project-messages-with-slash.html
+++ b/api/handle-project-messages-with-slash.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/handle-project-messages.html b/api/handle-project-messages.html
index 1213fff692..0fd6764583 100644
--- a/api/handle-project-messages.html
+++ b/api/handle-project-messages.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/handle-project-sse.html b/api/handle-project-sse.html
index d0a1dd2c5a..12bf4fa565 100644
--- a/api/handle-project-sse.html
+++ b/api/handle-project-sse.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/handle-sse-1.html b/api/handle-sse-1.html
index 689ff73481..dfd6383f63 100644
--- a/api/handle-sse-1.html
+++ b/api/handle-sse-1.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/handle-sse.html b/api/handle-sse.html
index 02bab396c8..f03116d9f8 100644
--- a/api/handle-sse.html
+++ b/api/handle-sse.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/health-check.html b/api/health-check.html
index 4315b10217..ca0881b31e 100644
--- a/api/health-check.html
+++ b/api/health-check.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/health.html b/api/health.html
index b61ba45c89..4fe2a90664 100644
--- a/api/health.html
+++ b/api/health.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/like-component.html b/api/like-component.html
index b49384ea1a..013fda3044 100644
--- a/api/like-component.html
+++ b/api/like-component.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/list-files-1.html b/api/list-files-1.html
index 1aa27793ee..986db06ea0 100644
--- a/api/list-files-1.html
+++ b/api/list-files-1.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/list-files-2.html b/api/list-files-2.html
index 65295e000c..1536778e6f 100644
--- a/api/list-files-2.html
+++ b/api/list-files-2.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/list-files.html b/api/list-files.html
index 6fe445e71a..e19c2b6ef6 100644
--- a/api/list-files.html
+++ b/api/list-files.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/list-profile-pictures.html b/api/list-profile-pictures.html
index 823ca13f44..bfead0b4ad 100644
--- a/api/list-profile-pictures.html
+++ b/api/list-profile-pictures.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/list-project-tools.html b/api/list-project-tools.html
index 81404daf51..772c9acc9e 100644
--- a/api/list-project-tools.html
+++ b/api/list-project-tools.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/login-to-get-access-token.html b/api/login-to-get-access-token.html
index f82243a73e..1fec82b57b 100644
--- a/api/login-to-get-access-token.html
+++ b/api/login-to-get-access-token.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/logout.html b/api/logout.html
index 6643e51201..6cee858c5e 100644
--- a/api/logout.html
+++ b/api/logout.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/logs.html b/api/logs.html
index 7cee24f8e7..654e7d4e94 100644
--- a/api/logs.html
+++ b/api/logs.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/patch-user.html b/api/patch-user.html
index 352fca1310..8bcde73172 100644
--- a/api/patch-user.html
+++ b/api/patch-user.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/post-validate-code.html b/api/post-validate-code.html
index efbe5989bf..d14a690d1a 100644
--- a/api/post-validate-code.html
+++ b/api/post-validate-code.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/post-validate-prompt.html b/api/post-validate-prompt.html
index 3c18cd3dbc..2721f9a6b0 100644
--- a/api/post-validate-prompt.html
+++ b/api/post-validate-prompt.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/process-1.html b/api/process-1.html
index 3ca8083636..e311a29618 100644
--- a/api/process-1.html
+++ b/api/process-1.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/process.html b/api/process.html
index d6e60e897a..6caae42e70 100644
--- a/api/process.html
+++ b/api/process.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/read-all-users.html b/api/read-all-users.html
index 2e2c27e8e3..f95312cd7f 100644
--- a/api/read-all-users.html
+++ b/api/read-all-users.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/read-basic-examples.html b/api/read-basic-examples.html
index 20acd48a98..30ee009c6c 100644
--- a/api/read-basic-examples.html
+++ b/api/read-basic-examples.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/read-current-user.html b/api/read-current-user.html
index cf006846a8..7b16b157b5 100644
--- a/api/read-current-user.html
+++ b/api/read-current-user.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/read-flow.html b/api/read-flow.html
index 030fe9da93..a645312074 100644
--- a/api/read-flow.html
+++ b/api/read-flow.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/read-flows.html b/api/read-flows.html
index eb748f634d..a20b357567 100644
--- a/api/read-flows.html
+++ b/api/read-flows.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/read-folder-redirect.html b/api/read-folder-redirect.html
index 2d8fbdd1f8..a52eac3d02 100644
--- a/api/read-folder-redirect.html
+++ b/api/read-folder-redirect.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/read-folders-redirect.html b/api/read-folders-redirect.html
index 7455cb204f..49a10dc52c 100644
--- a/api/read-folders-redirect.html
+++ b/api/read-folders-redirect.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/read-project.html b/api/read-project.html
index faa1b53b73..5c828edc88 100644
--- a/api/read-project.html
+++ b/api/read-project.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/read-projects.html b/api/read-projects.html
index e65b8af648..e49adc12ff 100644
--- a/api/read-projects.html
+++ b/api/read-projects.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/read-public-flow.html b/api/read-public-flow.html
index bc8c63b7f0..980e7ae847 100644
--- a/api/read-public-flow.html
+++ b/api/read-public-flow.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/read-variables.html b/api/read-variables.html
index 9bfe238e62..713b05845b 100644
--- a/api/read-variables.html
+++ b/api/read-variables.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/refresh-token.html b/api/refresh-token.html
index dd3bd1fe8a..29e74de876 100644
--- a/api/refresh-token.html
+++ b/api/refresh-token.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/reset-password.html b/api/reset-password.html
index 2dc010cb99..742db7c5c9 100644
--- a/api/reset-password.html
+++ b/api/reset-password.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/retrieve-vertices-order.html b/api/retrieve-vertices-order.html
index 0c4e7f8435..5c7e77dda4 100644
--- a/api/retrieve-vertices-order.html
+++ b/api/retrieve-vertices-order.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/save-store-api-key.html b/api/save-store-api-key.html
index 0654e9105a..fc41c06a90 100644
--- a/api/save-store-api-key.html
+++ b/api/save-store-api-key.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/share-component.html b/api/share-component.html
index 6832374f6e..05b6f5d6c3 100644
--- a/api/share-component.html
+++ b/api/share-component.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/simplified-run-flow.html b/api/simplified-run-flow.html
index a5e7726ddd..2be476066b 100644
--- a/api/simplified-run-flow.html
+++ b/api/simplified-run-flow.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/stream-logs.html b/api/stream-logs.html
index e0cacf36f4..e4b8cbfbea 100644
--- a/api/stream-logs.html
+++ b/api/stream-logs.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/update-flow.html b/api/update-flow.html
index 5e9f3fe839..710e63210b 100644
--- a/api/update-flow.html
+++ b/api/update-flow.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/update-folder-redirect.html b/api/update-folder-redirect.html
index d39a4f80f3..1157807653 100644
--- a/api/update-folder-redirect.html
+++ b/api/update-folder-redirect.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/update-message.html b/api/update-message.html
index 7496970c58..c601ada086 100644
--- a/api/update-message.html
+++ b/api/update-message.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/update-project-mcp-settings.html b/api/update-project-mcp-settings.html
index 3123c2641a..d5485375c0 100644
--- a/api/update-project-mcp-settings.html
+++ b/api/update-project-mcp-settings.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/update-project.html b/api/update-project.html
index c8bf3b3444..f84c3c1c86 100644
--- a/api/update-project.html
+++ b/api/update-project.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/update-session-id.html b/api/update-session-id.html
index 5b402b7b1b..e3ce1b4229 100644
--- a/api/update-session-id.html
+++ b/api/update-session-id.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/update-shared-component.html b/api/update-shared-component.html
index e1020563b7..4e7da484e8 100644
--- a/api/update-shared-component.html
+++ b/api/update-shared-component.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/update-variable.html b/api/update-variable.html
index 18f4da3761..ea362c851d 100644
--- a/api/update-variable.html
+++ b/api/update-variable.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/upload-file-1.html b/api/upload-file-1.html
index 51404d8f29..9d196ed618 100644
--- a/api/upload-file-1.html
+++ b/api/upload-file-1.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/upload-file-2.html b/api/upload-file-2.html
index 4ca049d6cb..9d0dbe8f69 100644
--- a/api/upload-file-2.html
+++ b/api/upload-file-2.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/upload-file-redirect.html b/api/upload-file-redirect.html
index 95234f9d17..740931d0dd 100644
--- a/api/upload-file-redirect.html
+++ b/api/upload-file-redirect.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/upload-file.html b/api/upload-file.html
index 67ae7a2400..9ce5ab8170 100644
--- a/api/upload-file.html
+++ b/api/upload-file.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/upload-user-file-1.html b/api/upload-user-file-1.html
index df9762f9ef..d451243587 100644
--- a/api/upload-user-file-1.html
+++ b/api/upload-user-file-1.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/upload-user-file.html b/api/upload-user-file.html
index b0ee7b2848..30122347b5 100644
--- a/api/upload-user-file.html
+++ b/api/upload-user-file.html
@@ -21,7 +21,7 @@
-
+
diff --git a/api/webhook-run-flow.html b/api/webhook-run-flow.html
index 5cc38a4cd3..f89ae43c5f 100644
--- a/api/webhook-run-flow.html
+++ b/api/webhook-run-flow.html
@@ -21,7 +21,7 @@
-
+
diff --git a/assets/js/021496c4.c33e7e71.js b/assets/js/021496c4.a8133303.js
similarity index 97%
rename from assets/js/021496c4.c33e7e71.js
rename to assets/js/021496c4.a8133303.js
index e5e989aab8..600fe1da3c 100644
--- a/assets/js/021496c4.c33e7e71.js
+++ b/assets/js/021496c4.a8133303.js
@@ -1 +1 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[982],{28453:(e,n,l)=>{l.d(n,{R:()=>t,x:()=>c});var s=l(96540);const i={},o=s.createContext(i);function t(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:t(e.components),s.createElement(o.Provider,{value:n},e.children)}},51937:(e,n,l)=>{l.r(n),l.d(n,{assets:()=>r,contentTitle:()=>d,default:()=>p,frontMatter:()=>c,metadata:()=>s,toc:()=>a});const s=JSON.parse('{"id":"Concepts/concepts-file-management","title":"Manage files","description":"Upload, store, and manage files in Langflow\'s File management system.","source":"@site/docs/Concepts/concepts-file-management.md","sourceDirName":"Concepts","slug":"/concepts-file-management","permalink":"/concepts-file-management","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Manage files","slug":"/concepts-file-management"},"sidebar":"docs","previous":{"title":"Model Context Protocol (MCP) server","permalink":"/mcp-server"},"next":{"title":"Voice mode","permalink":"/concepts-voice-mode"}}');var i=l(74848),o=l(28453),t=l(84443);const c={title:"Manage files",slug:"/concepts-file-management"},d=void 0,r={},a=[{value:"Upload a file",id:"upload-a-file",level:2},{value:"Use uploaded files in a flow",id:"use-uploaded-files-in-a-flow",level:2},{value:"Supported file types",id:"supported-file-types",level:2}];function h(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:["Upload, store, and manage files in Langflow's ",(0,i.jsx)(n.strong,{children:"File management"})," system."]}),"\n",(0,i.jsxs)(n.p,{children:["Uploading files to the ",(0,i.jsx)(n.strong,{children:"File management"})," system keeps your files in a central location, and allows you to re-use files across flows without repeated manual uploads."]}),"\n",(0,i.jsx)(n.h2,{id:"upload-a-file",children:"Upload a file"}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.strong,{children:"File management"})," system is available at the ",(0,i.jsx)(n.code,{children:"/files"})," URL. For example, if you're running Langflow at the default ",(0,i.jsx)(n.code,{children:"http://127.0.0.1:7860"})," address, the ",(0,i.jsx)(n.strong,{children:"File management"})," system is located at ",(0,i.jsx)(n.code,{children:"http://127.0.0.1:7860/files"}),"."]}),"\n",(0,i.jsx)(n.p,{children:"To upload a file from your local machine:"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["From the ",(0,i.jsx)(n.strong,{children:"My Files"})," window at ",(0,i.jsx)(n.code,{children:"http://127.0.0.1:7860/files"}),", click ",(0,i.jsx)(n.strong,{children:"Upload"}),"."]}),"\n",(0,i.jsx)(n.li,{children:"Select the file to upload.\nThe file is uploaded to Langflow."}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"You can upload multiple files in a single action.\nFiles are available to flows stored in different projects."}),"\n",(0,i.jsxs)(n.p,{children:["Files stored in ",(0,i.jsx)(n.strong,{children:"My Files"})," can be renamed, downloaded, duplicated, or deleted."]}),"\n",(0,i.jsxs)(n.p,{children:["To delete a file from your project, hover over a file's icon to click and select it, and then click ",(0,i.jsx)(t.A,{name:"Trash2","aria-hidden":"true"})," ",(0,i.jsx)(n.strong,{children:"Delete"}),".\nYou can delete multiple files in a single action."]}),"\n",(0,i.jsxs)(n.p,{children:["To download a file from your project, hover over a file's icon to click and select it, and then click ",(0,i.jsx)(t.A,{name:"Download","aria-hidden":"true"})," ",(0,i.jsx)(n.strong,{children:"Download"}),".\nYou can download multiple files in a single action, but they will be saved together in a .ZIP file."]}),"\n",(0,i.jsx)(n.h2,{id:"use-uploaded-files-in-a-flow",children:"Use uploaded files in a flow"}),"\n",(0,i.jsx)(n.p,{children:"To use your uploaded files in flows:"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["Include the ",(0,i.jsx)(n.a,{href:"/components-data#file",children:"File"})," component in a flow."]}),"\n",(0,i.jsxs)(n.li,{children:["To select a document to load, in the\xa0",(0,i.jsx)(n.strong,{children:"File"}),"\xa0component, click the\xa0",(0,i.jsx)(n.strong,{children:"Select files"}),"\xa0button."]}),"\n",(0,i.jsxs)(n.li,{children:["Select a file to upload, and then click\xa0",(0,i.jsx)(n.strong,{children:"Select file"}),". The loaded file name appears in the component."]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["For an example of using the ",(0,i.jsx)(n.strong,{children:"File"})," component in a flow, see the ",(0,i.jsx)(n.a,{href:"/document-qa",children:"Document QA tutorial project"}),"."]}),"\n",(0,i.jsx)(n.admonition,{type:"note",children:(0,i.jsxs)(n.p,{children:["If you prefer a one-time upload, the ",(0,i.jsx)(n.a,{href:"/components-data#file",children:"File"})," component still allows one-time uploads directly from your local machine."]})}),"\n",(0,i.jsx)(n.h2,{id:"supported-file-types",children:"Supported file types"}),"\n",(0,i.jsx)(n.p,{children:"The maximum supported file size is 100 MB."}),"\n",(0,i.jsx)(n.p,{children:"Text files:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".txt"})," - Text files"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".md"}),", ",(0,i.jsx)(n.code,{children:".mdx"})," - Markdown files"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".csv"})," - CSV files"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".json"})," - JSON files"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".yaml"}),", ",(0,i.jsx)(n.code,{children:".yml"})," - YAML files"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".xml"})," - XML files"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".html"}),", ",(0,i.jsx)(n.code,{children:".htm"})," - HTML files"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".pdf"})," - PDF files"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".docx"})," - Word documents"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".py"})," - Python files"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".sh"})," - Shell scripts"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".sql"})," - SQL files"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".js"})," - JavaScript files"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".ts"}),", ",(0,i.jsx)(n.code,{children:".tsx"})," - TypeScript files"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Archive formats (for bundling multiple files):"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".zip"})," - ZIP archives"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".tar"})," - TAR archives"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".tgz"})," - Gzipped TAR archives"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".bz2"})," - Bzip2 compressed files"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".gz"})," - Gzip compressed files"]}),"\n"]})]})}function p(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},84443:(e,n,l)=>{l.d(n,{A:()=>o});l(96540);var s=l(64058),i=l(74848);function o(e){let{name:n,...l}=e;const o=s[n];return o?(0,i.jsx)(o,{...l}):null}}}]);
\ No newline at end of file
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[982],{28453:(e,n,l)=>{l.d(n,{R:()=>t,x:()=>c});var s=l(96540);const i={},o=s.createContext(i);function t(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:t(e.components),s.createElement(o.Provider,{value:n},e.children)}},51937:(e,n,l)=>{l.r(n),l.d(n,{assets:()=>r,contentTitle:()=>d,default:()=>p,frontMatter:()=>c,metadata:()=>s,toc:()=>a});const s=JSON.parse('{"id":"Concepts/concepts-file-management","title":"Manage files","description":"Upload, store, and manage files in Langflow\'s File management system.","source":"@site/docs/Concepts/concepts-file-management.md","sourceDirName":"Concepts","slug":"/concepts-file-management","permalink":"/concepts-file-management","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Manage files","slug":"/concepts-file-management"},"sidebar":"docs","previous":{"title":"Model Context Protocol (MCP) server","permalink":"/mcp-server"},"next":{"title":"Voice mode","permalink":"/concepts-voice-mode"}}');var i=l(74848),o=l(28453),t=l(84443);const c={title:"Manage files",slug:"/concepts-file-management"},d=void 0,r={},a=[{value:"Upload a file",id:"upload-a-file",level:2},{value:"Use uploaded files in a flow",id:"use-uploaded-files-in-a-flow",level:2},{value:"Supported file types",id:"supported-file-types",level:2}];function h(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:["Upload, store, and manage files in Langflow's ",(0,i.jsx)(n.strong,{children:"File management"})," system."]}),"\n",(0,i.jsxs)(n.p,{children:["Uploading files to the ",(0,i.jsx)(n.strong,{children:"File management"})," system keeps your files in a central location, and allows you to re-use files across flows without repeated manual uploads."]}),"\n",(0,i.jsx)(n.h2,{id:"upload-a-file",children:"Upload a file"}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.strong,{children:"File management"})," system is available at the ",(0,i.jsx)(n.code,{children:"/files"})," URL. For example, if you're running Langflow at the default ",(0,i.jsx)(n.code,{children:"http://localhost:7860"})," address, the ",(0,i.jsx)(n.strong,{children:"File management"})," system is located at ",(0,i.jsx)(n.code,{children:"http://localhost:7860/files"}),"."]}),"\n",(0,i.jsx)(n.p,{children:"To upload a file from your local machine:"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["From the ",(0,i.jsx)(n.strong,{children:"My Files"})," window at ",(0,i.jsx)(n.code,{children:"http://localhost:7860/files"}),", click ",(0,i.jsx)(n.strong,{children:"Upload"}),"."]}),"\n",(0,i.jsx)(n.li,{children:"Select the file to upload.\nThe file is uploaded to Langflow."}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"You can upload multiple files in a single action.\nFiles are available to flows stored in different projects."}),"\n",(0,i.jsxs)(n.p,{children:["Files stored in ",(0,i.jsx)(n.strong,{children:"My Files"})," can be renamed, downloaded, duplicated, or deleted."]}),"\n",(0,i.jsxs)(n.p,{children:["To delete a file from your project, hover over a file's icon to click and select it, and then click ",(0,i.jsx)(t.A,{name:"Trash2","aria-hidden":"true"})," ",(0,i.jsx)(n.strong,{children:"Delete"}),".\nYou can delete multiple files in a single action."]}),"\n",(0,i.jsxs)(n.p,{children:["To download a file from your project, hover over a file's icon to click and select it, and then click ",(0,i.jsx)(t.A,{name:"Download","aria-hidden":"true"})," ",(0,i.jsx)(n.strong,{children:"Download"}),".\nYou can download multiple files in a single action, but they will be saved together in a .ZIP file."]}),"\n",(0,i.jsx)(n.h2,{id:"use-uploaded-files-in-a-flow",children:"Use uploaded files in a flow"}),"\n",(0,i.jsx)(n.p,{children:"To use your uploaded files in flows:"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["Include the ",(0,i.jsx)(n.a,{href:"/components-data#file",children:"File"})," component in a flow."]}),"\n",(0,i.jsxs)(n.li,{children:["To select a document to load, in the\xa0",(0,i.jsx)(n.strong,{children:"File"}),"\xa0component, click the\xa0",(0,i.jsx)(n.strong,{children:"Select files"}),"\xa0button."]}),"\n",(0,i.jsxs)(n.li,{children:["Select a file to upload, and then click\xa0",(0,i.jsx)(n.strong,{children:"Select file"}),". The loaded file name appears in the component."]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["For an example of using the ",(0,i.jsx)(n.strong,{children:"File"})," component in a flow, see the ",(0,i.jsx)(n.a,{href:"/document-qa",children:"Document QA tutorial project"}),"."]}),"\n",(0,i.jsx)(n.admonition,{type:"note",children:(0,i.jsxs)(n.p,{children:["If you prefer a one-time upload, the ",(0,i.jsx)(n.a,{href:"/components-data#file",children:"File"})," component still allows one-time uploads directly from your local machine."]})}),"\n",(0,i.jsx)(n.h2,{id:"supported-file-types",children:"Supported file types"}),"\n",(0,i.jsx)(n.p,{children:"The maximum supported file size is 100 MB."}),"\n",(0,i.jsx)(n.p,{children:"Text files:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".txt"})," - Text files"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".md"}),", ",(0,i.jsx)(n.code,{children:".mdx"})," - Markdown files"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".csv"})," - CSV files"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".json"})," - JSON files"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".yaml"}),", ",(0,i.jsx)(n.code,{children:".yml"})," - YAML files"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".xml"})," - XML files"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".html"}),", ",(0,i.jsx)(n.code,{children:".htm"})," - HTML files"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".pdf"})," - PDF files"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".docx"})," - Word documents"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".py"})," - Python files"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".sh"})," - Shell scripts"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".sql"})," - SQL files"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".js"})," - JavaScript files"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".ts"}),", ",(0,i.jsx)(n.code,{children:".tsx"})," - TypeScript files"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Archive formats (for bundling multiple files):"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".zip"})," - ZIP archives"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".tar"})," - TAR archives"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".tgz"})," - Gzipped TAR archives"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".bz2"})," - Bzip2 compressed files"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".gz"})," - Gzip compressed files"]}),"\n"]})]})}function p(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},84443:(e,n,l)=>{l.d(n,{A:()=>o});l(96540);var s=l(64058),i=l(74848);function o(e){let{name:n,...l}=e;const o=s[n];return o?(0,i.jsx)(o,{...l}):null}}}]);
\ No newline at end of file
diff --git a/assets/js/0be1d5fe.ba3f69e7.js b/assets/js/0be1d5fe.77c93a97.js
similarity index 99%
rename from assets/js/0be1d5fe.ba3f69e7.js
rename to assets/js/0be1d5fe.77c93a97.js
index 6ee6ea1652..75e4056a83 100644
--- a/assets/js/0be1d5fe.ba3f69e7.js
+++ b/assets/js/0be1d5fe.77c93a97.js
@@ -1 +1 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[145],{23592:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/component-groq-d3df19923f67805fd483632d537af9f4.png"},68799:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/component-watsonx-model-2f388a824b49f1c49287f07bc8738d0f.png"},73630:(e,n,t)=>{t.r(n),t.d(n,{CH:()=>a,assets:()=>o,chCodeConfig:()=>x,contentTitle:()=>c,default:()=>p,frontMatter:()=>h,metadata:()=>s,toc:()=>j});const s=JSON.parse('{"id":"Components/components-models","title":"Models","description":"Model components generate text using large language models.","source":"@site/docs/Components/components-models.md","sourceDirName":"Components","slug":"/components-models","permalink":"/components-models","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Models","slug":"/components-models"},"sidebar":"docs","previous":{"title":"Memories","permalink":"/components-memories"},"next":{"title":"Processing","permalink":"/components-processing"}}');var r=t(74848),d=t(28453),i=t(24754),l=t(84443);const h={title:"Models",slug:"/components-models"},c="Model components in Langflow",o={},a={annotations:i.hk,Code:i.Cy},x={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},j=[{value:"Use a model component in a flow",id:"use-a-model-component-in-a-flow",level:2},{value:"AIML",id:"aiml",level:2},{value:"Amazon Bedrock",id:"amazon-bedrock",level:2},{value:"Anthropic",id:"anthropic",level:2},{value:"Azure OpenAI",id:"azure-openai",level:2},{value:"Cohere",id:"cohere",level:2},{value:"DeepSeek",id:"deepseek",level:2},{value:"Google Generative AI",id:"google-generative-ai",level:2},{value:"Groq",id:"groq",level:2},{value:"Hugging Face API",id:"hugging-face-api",level:2},{value:"IBM watsonx.ai",id:"ibm-watsonxai",level:2},{value:"Language model",id:"language-model",level:2},{value:"LMStudio",id:"lmstudio",level:2},{value:"Maritalk",id:"maritalk",level:2},{value:"Mistral",id:"mistral",level:2},{value:"Novita AI",id:"novita-ai",level:2},{value:"NVIDIA",id:"nvidia",level:2},{value:"Ollama",id:"ollama",level:2},{value:"OpenAI",id:"openai",level:2},{value:"OpenRouter",id:"openrouter",level:2},{value:"Perplexity",id:"perplexity",level:2},{value:"Qianfan",id:"qianfan",level:2},{value:"SambaNova",id:"sambanova",level:2},{value:"VertexAI",id:"vertexai",level:2},{value:"xAI",id:"xai",level:2}];function m(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,d.R)(),...e.components},{Details:s}=n;return a||u("CH",!1),a.Code||u("CH.Code",!0),s||u("Details",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"model-components-in-langflow",children:"Model components in Langflow"})}),"\n",(0,r.jsx)(n.p,{children:"Model components generate text using large language models."}),"\n",(0,r.jsx)(n.p,{children:"Refer to your specific component's documentation for more information on parameters."}),"\n",(0,r.jsx)(n.h2,{id:"use-a-model-component-in-a-flow",children:"Use a model component in a flow"}),"\n",(0,r.jsx)(n.p,{children:"Model components receive inputs and prompts for generating text, and the generated text is sent to an output component."}),"\n",(0,r.jsxs)(n.p,{children:["The model output can also be sent to the ",(0,r.jsx)(n.strong,{children:"Language Model"})," port and on to a ",(0,r.jsx)(n.strong,{children:"Parse Data"})," component, where the output can be parsed into structured ",(0,r.jsx)(n.a,{href:"/concepts-objects",children:"Data"})," objects."]}),"\n",(0,r.jsxs)(n.p,{children:["This example has the OpenAI model in a chatbot flow. For more information, see the ",(0,r.jsx)(n.a,{href:"/starter-projects-basic-prompting",children:"Basic prompting flow"}),"."]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{src:t(90567).A+"",width:"2500",height:"1528"})}),"\n",(0,r.jsx)(n.h2,{id:"aiml",children:"AIML"}),"\n",(0,r.jsx)(n.p,{children:"This component creates a ChatOpenAI model instance using the AIML API."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see ",(0,r.jsx)(n.a,{href:"https://docs.aimlapi.com/",children:"AIML documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"The maximum number of tokens to generate. Set to 0 for unlimited tokens. Range: 0-128000."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_kwargs"}),(0,r.jsx)(n.td,{children:"Dictionary"}),(0,r.jsx)(n.td,{children:"Additional keyword arguments for the model."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["The name of the AIML model to use. Options are predefined in ",(0,r.jsx)(n.code,{children:"AIML_CHAT_MODELS"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"aiml_api_base"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["The base URL of the AIML API. Defaults to ",(0,r.jsx)(n.code,{children:"https://api.aimlapi.com"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"api_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"The AIML API Key to use for the model."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Controls randomness in the output. Default: ",(0,r.jsx)(n.code,{children:"0.1"}),"."]})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of ChatOpenAI configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"amazon-bedrock",children:"Amazon Bedrock"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using Amazon Bedrock LLMs."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see ",(0,r.jsx)(n.a,{href:"https://docs.aws.amazon.com/bedrock",children:"Amazon Bedrock documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_id"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"The ID of the Amazon Bedrock model to use. Options include various models."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"aws_access_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"AWS Access Key for authentication."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"aws_secret_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"AWS Secret Key for authentication."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"aws_session_token"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"The session key for your AWS account."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"credentials_profile_name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"Name of the AWS credentials profile to use."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"region_name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["AWS region name. Default: ",(0,r.jsx)(n.code,{children:"us-east-1"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_kwargs"}),(0,r.jsx)(n.td,{children:"Dictionary"}),(0,r.jsx)(n.td,{children:"Additional keyword arguments for the model."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"endpoint_url"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"Custom endpoint URL for the Bedrock service."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of ChatBedrock configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"anthropic",children:"Anthropic"}),"\n",(0,r.jsx)(n.p,{children:"This component allows the generation of text using Anthropic Chat and Language models."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see the ",(0,r.jsx)(n.a,{href:"https://docs.anthropic.com/en/docs/welcome",children:"Anthropic documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsxs)(n.td,{children:["The maximum number of tokens to generate. Set to 0 for unlimited tokens. Default: ",(0,r.jsx)(n.code,{children:"4096"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"The name of the Anthropic model to use. Options include various Claude 3 models."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"anthropic_api_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"Your Anthropic API key for authentication."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Controls randomness in the output. Default: ",(0,r.jsx)(n.code,{children:"0.1"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"anthropic_api_url"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["Endpoint of the Anthropic API. Defaults to ",(0,r.jsx)(n.code,{children:"https://api.anthropic.com"})," if not specified (advanced)."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"prefill"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"Prefill text to guide the model's response (advanced)."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of ChatAnthropic configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"azure-openai",children:"Azure OpenAI"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using Azure OpenAI LLM."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see the ",(0,r.jsx)(n.a,{href:"https://learn.microsoft.com/en-us/azure/ai-services/openai/",children:"Azure OpenAI documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Model Name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"Specifies the name of the Azure OpenAI model to be used for text generation."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Azure Endpoint"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"Your Azure endpoint, including the resource."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Deployment Name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"Specifies the name of the deployment."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"API Version"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"Specifies the version of the Azure OpenAI API to be used."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"API Key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"Your Azure OpenAI API key."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Specifies the sampling temperature. Defaults to ",(0,r.jsx)(n.code,{children:"0.7"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Max Tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsxs)(n.td,{children:["Specifies the maximum number of tokens to generate. Defaults to ",(0,r.jsx)(n.code,{children:"1000"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Input Value"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"Specifies the input text for text generation."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Stream"}),(0,r.jsx)(n.td,{children:"Boolean"}),(0,r.jsxs)(n.td,{children:["Specifies whether to stream the response from the model. Defaults to ",(0,r.jsx)(n.code,{children:"False"}),"."]})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of AzureOpenAI configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"cohere",children:"Cohere"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using Cohere's language models."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see the ",(0,r.jsx)(n.a,{href:"https://cohere.ai/",children:"Cohere documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Cohere API Key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"Your Cohere API key."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Max Tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsxs)(n.td,{children:["Specifies the maximum number of tokens to generate. Defaults to ",(0,r.jsx)(n.code,{children:"256"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Specifies the sampling temperature. Defaults to ",(0,r.jsx)(n.code,{children:"0.75"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Input Value"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"Specifies the input text for text generation."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of the Cohere model configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"deepseek",children:"DeepSeek"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using DeepSeek's language models."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see the ",(0,r.jsx)(n.a,{href:"https://api-docs.deepseek.com/",children:"DeepSeek documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsxs)(n.td,{children:["Maximum number of tokens to generate. Set to ",(0,r.jsx)(n.code,{children:"0"})," for unlimited. Range: ",(0,r.jsx)(n.code,{children:"0-128000"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_kwargs"}),(0,r.jsx)(n.td,{children:"Dictionary"}),(0,r.jsx)(n.td,{children:"Additional keyword arguments for the model."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"json_mode"}),(0,r.jsx)(n.td,{children:"Boolean"}),(0,r.jsxs)(n.td,{children:["If ",(0,r.jsx)(n.code,{children:"True"}),", outputs JSON regardless of passing a schema."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["The DeepSeek model to use. Default: ",(0,r.jsx)(n.code,{children:"deepseek-chat"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"api_base"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["Base URL for API requests. Default: ",(0,r.jsx)(n.code,{children:"https://api.deepseek.com"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"api_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"Your DeepSeek API key for authentication."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Controls randomness in responses. Range: ",(0,r.jsx)(n.code,{children:"[0.0, 2.0]"}),". Default: ",(0,r.jsx)(n.code,{children:"1.0"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"seed"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"Number initialized for random number generation. Use the same seed integer for more reproducible results, and use a different seed number for more random results."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of ChatOpenAI configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"google-generative-ai",children:"Google Generative AI"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using Google's Generative AI models."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see the ",(0,r.jsx)(n.a,{href:"https://cloud.google.com/vertex-ai/docs/",children:"Google Generative AI documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Google API Key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"Your Google API key to use for the Google Generative AI."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Model"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["The name of the model to use, such as ",(0,r.jsx)(n.code,{children:'"gemini-pro"'}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Max Output Tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"The maximum number of tokens to generate."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Run inference with this temperature."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Top K"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"Consider the set of top K most probable tokens."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Top P"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"The maximum cumulative probability of tokens to consider when sampling."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"N"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"Number of chat completions to generate for each prompt."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of ChatGoogleGenerativeAI configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"groq",children:"Groq"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using Groq's language models."}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["To use this component in a flow, connect it as a ",(0,r.jsx)(n.strong,{children:"Model"})," in a flow like the ",(0,r.jsx)(n.a,{href:"/starter-projects-basic-prompting",children:"Basic prompting flow"}),", or select it as the ",(0,r.jsx)(n.strong,{children:"Model Provider"})," if you're using an ",(0,r.jsx)(n.strong,{children:"Agent"})," component."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Groq component in a basic prompting flow",src:t(23592).A+"",width:"1982",height:"1194"})}),"\n",(0,r.jsxs)(n.ol,{start:"2",children:["\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Groq API Key"})," field, paste your Groq API key.\nThe Groq model component automatically retrieves a list of the latest models.\nTo refresh your list of models, click ",(0,r.jsx)(l.A,{name:"RefreshCw","aria-label":"Refresh"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Model"})," field, select the model you want to use for your LLM.\nThis example uses ",(0,r.jsx)(n.a,{href:"https://console.groq.com/docs/model/llama-3.1-8b-instant",children:"llama-3.1-8b-instant"}),", which Groq recommends for real-time conversational interfaces."]}),"\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Prompt"})," component, enter:"]}),"\n"]}),"\n",(0,r.jsx)(a.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"You are a helpful assistant who supports their claims with sources.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(n.ol,{start:"5",children:["\n",(0,r.jsxs)(n.li,{children:["Click ",(0,r.jsx)(n.strong,{children:"Playground"})," and ask your Groq LLM a question.\nThe responses include a list of sources."]}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see the ",(0,r.jsx)(n.a,{href:"https://groq.com/",children:"Groq documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"groq_api_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"API key for the Groq API."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"groq_api_base"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["Base URL path for API requests. Default: ",(0,r.jsx)(n.code,{children:"https://api.groq.com"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"The maximum number of tokens to generate."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Controls randomness in the output. Range: ",(0,r.jsx)(n.code,{children:"[0.0, 1.0]"}),". Default: ",(0,r.jsx)(n.code,{children:"0.1"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"n"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"Number of chat completions to generate for each prompt."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"The name of the Groq model to use. Options are dynamically fetched from the Groq API."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"tool_mode_enabled"}),(0,r.jsx)(n.td,{children:"Bool"}),(0,r.jsx)(n.td,{children:"If enabled, the component only displays models that work with tools."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of ChatGroq configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"hugging-face-api",children:"Hugging Face API"}),"\n",(0,r.jsxs)(n.p,{children:["This component sends requests to the Hugging Face API to generate text using the model specified in the ",(0,r.jsx)(n.strong,{children:"Model ID"})," field."]}),"\n",(0,r.jsxs)(n.p,{children:["The Hugging Face API is a hosted inference API for models hosted on Hugging Face, and requires a ",(0,r.jsx)(n.a,{href:"https://huggingface.co/docs/hub/security-tokens",children:"Hugging Face API token"})," to authenticate."]}),"\n",(0,r.jsxs)(n.p,{children:["In this example based on the ",(0,r.jsx)(n.a,{href:"/starter-projects-basic-prompting",children:"Basic prompting flow"}),", the ",(0,r.jsx)(n.strong,{children:"Hugging Face API"})," model component replaces the ",(0,r.jsx)(n.strong,{children:"Open AI"})," model. By selecting different hosted models, you can see how different models return different results."]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Create a ",(0,r.jsx)(n.a,{href:"/starter-projects-basic-prompting",children:"Basic prompting flow"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Replace the ",(0,r.jsx)(n.strong,{children:"OpenAI"})," model component with a ",(0,r.jsx)(n.strong,{children:"Hugging Face API"})," model component."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["In the ",(0,r.jsx)(n.strong,{children:"Hugging Face API"})," component, add your Hugging Face API token to the ",(0,r.jsx)(n.strong,{children:"API Token"})," field."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Open the ",(0,r.jsx)(n.strong,{children:"Playground"})," and ask a question to the model, and see how it responds."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Try different models, and see how they perform differently."}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see the ",(0,r.jsx)(n.a,{href:"https://huggingface.co/",children:"Hugging Face documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_id"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:'The model ID from Hugging Face Hub. For example, "gpt2", "facebook/bart-large".'})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"huggingfacehub_api_token"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"Your Hugging Face API token for authentication."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Controls randomness in the output. Range: [0.0, 1.0]. Default: 0.7."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_new_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"Maximum number of tokens to generate. Default: 512."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"top_p"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Nucleus sampling parameter. Range: [0.0, 1.0]. Default: 0.95."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"top_k"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"Top-k sampling parameter. Default: 50."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_kwargs"}),(0,r.jsx)(n.td,{children:"Dictionary"}),(0,r.jsx)(n.td,{children:"Additional keyword arguments to pass to the model."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of HuggingFaceHub configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"ibm-watsonxai",children:"IBM watsonx.ai"}),"\n",(0,r.jsxs)(n.p,{children:["This component generates text using ",(0,r.jsx)(n.a,{href:"https://www.ibm.com/watsonx",children:"IBM watsonx.ai"})," foundation models."]}),"\n",(0,r.jsxs)(n.p,{children:["To use ",(0,r.jsx)(n.strong,{children:"IBM watsonx.ai"})," model components, replace a model component with the IBM watsonx.ai component in a flow."]}),"\n",(0,r.jsx)(n.p,{children:"An example flow looks like the following:"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"IBM watsonx model component in a basic prompting flow",src:t(68799).A+"",width:"2364",height:"1562"})}),"\n",(0,r.jsxs)(n.p,{children:["The values for ",(0,r.jsx)(n.strong,{children:"API endpoint"}),", ",(0,r.jsx)(n.strong,{children:"Project ID"}),", ",(0,r.jsx)(n.strong,{children:"API key"}),", and ",(0,r.jsx)(n.strong,{children:"Model Name"})," are found in your IBM watsonx.ai deployment.\nFor more information, see the ",(0,r.jsx)(n.a,{href:"https://python.langchain.com/docs/integrations/chat/ibm_watsonx/",children:"Langchain documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"url"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"The base URL of the watsonx API."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"project_id"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"Your watsonx Project ID."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"api_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"Your IBM watsonx API Key."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"The name of the watsonx model to use. Options are dynamically fetched from the API."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsxs)(n.td,{children:["The maximum number of tokens to generate. Default: ",(0,r.jsx)(n.code,{children:"1000"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"stop_sequence"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"The sequence where generation should stop."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Controls randomness in the output. Default: ",(0,r.jsx)(n.code,{children:"0.1"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"top_p"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Controls nucleus sampling, which limits the model to tokens whose probability is below the ",(0,r.jsx)(n.code,{children:"top_p"})," value. Range: Default: ",(0,r.jsx)(n.code,{children:"0.9"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"frequency_penalty"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Controls frequency penalty. A positive value decreases the probability of repeating tokens, and a negative value increases the probability. Range: Default: ",(0,r.jsx)(n.code,{children:"0.5"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"presence_penalty"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Controls presence penalty. A positive value increases the likelihood of new topics being introduced. Default: ",(0,r.jsx)(n.code,{children:"0.3"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"seed"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsxs)(n.td,{children:["A random seed for the model. Default: ",(0,r.jsx)(n.code,{children:"8"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"logprobs"}),(0,r.jsx)(n.td,{children:"Boolean"}),(0,r.jsxs)(n.td,{children:["Whether to return log probabilities of output tokens or not. Default: ",(0,r.jsx)(n.code,{children:"True"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"top_logprobs"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsxs)(n.td,{children:["The number of most likely tokens to return at each position. Default: ",(0,r.jsx)(n.code,{children:"3"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"logit_bias"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"A JSON string of token IDs to bias or suppress."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsxs)(n.td,{children:["An instance of ",(0,r.jsx)(n.a,{href:"https://python.langchain.com/docs/integrations/chat/ibm_watsonx/",children:"ChatWatsonx"})," configured with the specified parameters."]})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"language-model",children:"Language model"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using either OpenAI or Anthropic language models."}),"\n",(0,r.jsx)(n.p,{children:"Use this component as a drop-in replacement for LLM models to switch between different model providers and models."}),"\n",(0,r.jsx)(n.p,{children:"Instead of swapping out model components when you want to try a different provider, like switching between OpenAI and Anthropic components, change the provider dropdown in this single component. This makes it easier to experiment with and compare different models while keeping the rest of your flow intact."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see the ",(0,r.jsx)(n.a,{href:"https://platform.openai.com/docs",children:"OpenAI documentation"})," and ",(0,r.jsx)(n.a,{href:"https://docs.anthropic.com/",children:"Anthropic documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"provider"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:'The model provider to use. Options: "OpenAI", "Anthropic". Default: "OpenAI".'})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"The name of the model to use. Options depend on the selected provider."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"api_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"The API Key for authentication with the selected provider."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"input_value"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"The input text to send to the model."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"system_message"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"A system message that helps set the behavior of the assistant (advanced)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"stream"}),(0,r.jsx)(n.td,{children:"Boolean"}),(0,r.jsxs)(n.td,{children:["Whether to stream the response. Default: ",(0,r.jsx)(n.code,{children:"False"})," (advanced)."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Controls randomness in responses. Range: ",(0,r.jsx)(n.code,{children:"[0.0, 1.0]"}),". Default: ",(0,r.jsx)(n.code,{children:"0.1"})," (advanced)."]})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of ChatOpenAI or ChatAnthropic configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"lmstudio",children:"LMStudio"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using LM Studio's local language models."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see ",(0,r.jsx)(n.a,{href:"https://lmstudio.ai/",children:"LM Studio documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"base_url"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["The URL where LM Studio is running. Default: ",(0,r.jsx)(n.code,{children:'"http://localhost:1234"'}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsxs)(n.td,{children:["Maximum number of tokens to generate in the response. Default: ",(0,r.jsx)(n.code,{children:"512"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Controls randomness in the output. Range: ",(0,r.jsx)(n.code,{children:"[0.0, 2.0]"}),". Default: ",(0,r.jsx)(n.code,{children:"0.7"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"top_p"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Controls diversity via nucleus sampling. Range: ",(0,r.jsx)(n.code,{children:"[0.0, 1.0]"}),". Default: ",(0,r.jsx)(n.code,{children:"1.0"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"stop"}),(0,r.jsx)(n.td,{children:"List[String]"}),(0,r.jsx)(n.td,{children:"List of strings that stop generation when encountered."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"stream"}),(0,r.jsx)(n.td,{children:"Boolean"}),(0,r.jsxs)(n.td,{children:["Whether to stream the response. Default: ",(0,r.jsx)(n.code,{children:"False"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"presence_penalty"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Penalizes repeated tokens. Range: ",(0,r.jsx)(n.code,{children:"[-2.0, 2.0]"}),". Default: ",(0,r.jsx)(n.code,{children:"0.0"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"frequency_penalty"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Penalizes frequent tokens. Range: ",(0,r.jsx)(n.code,{children:"[-2.0, 2.0]"}),". Default: ",(0,r.jsx)(n.code,{children:"0.0"}),"."]})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of LMStudio configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"maritalk",children:"Maritalk"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using Maritalk LLMs."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see ",(0,r.jsx)(n.a,{href:"https://www.maritalk.com/",children:"Maritalk documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsxs)(n.td,{children:["The maximum number of tokens to generate. Set to ",(0,r.jsx)(n.code,{children:"0"})," for unlimited tokens. Default: ",(0,r.jsx)(n.code,{children:"512"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["The name of the Maritalk model to use. Options: ",(0,r.jsx)(n.code,{children:"sabia-2-small"}),", ",(0,r.jsx)(n.code,{children:"sabia-2-medium"}),". Default: ",(0,r.jsx)(n.code,{children:"sabia-2-small"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"api_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"The Maritalk API Key to use for authentication."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Controls randomness in the output. Range: ",(0,r.jsx)(n.code,{children:"[0.0, 1.0]"}),". Default: ",(0,r.jsx)(n.code,{children:"0.5"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"endpoint_url"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["The Maritalk API endpoint. Default: ",(0,r.jsx)(n.code,{children:"https://api.maritalk.com"}),"."]})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of ChatMaritalk configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"mistral",children:"Mistral"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using MistralAI LLMs."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see ",(0,r.jsx)(n.a,{href:"https://docs.mistral.ai/",children:"Mistral AI documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"The maximum number of tokens to generate. Set to 0 for unlimited tokens (advanced)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["The name of the Mistral AI model to use. Options include ",(0,r.jsx)(n.code,{children:"open-mixtral-8x7b"}),", ",(0,r.jsx)(n.code,{children:"open-mixtral-8x22b"}),", ",(0,r.jsx)(n.code,{children:"mistral-small-latest"}),", ",(0,r.jsx)(n.code,{children:"mistral-medium-latest"}),", ",(0,r.jsx)(n.code,{children:"mistral-large-latest"}),", and ",(0,r.jsx)(n.code,{children:"codestral-latest"}),". Default: ",(0,r.jsx)(n.code,{children:"codestral-latest"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"mistral_api_base"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["The base URL of the Mistral API. Defaults to ",(0,r.jsx)(n.code,{children:"https://api.mistral.ai/v1"})," (advanced)."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"api_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"The Mistral API Key to use for authentication."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Controls randomness in the output. Default: 0.5."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_retries"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"Maximum number of retries for API calls. Default: 5 (advanced)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"timeout"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"Timeout for API calls in seconds. Default: 60 (advanced)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_concurrent_requests"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"Maximum number of concurrent API requests. Default: 3 (advanced)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"top_p"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Nucleus sampling parameter. Default: 1 (advanced)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"random_seed"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"Seed for random number generation. Default: 1 (advanced)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"safe_mode"}),(0,r.jsx)(n.td,{children:"Boolean"}),(0,r.jsx)(n.td,{children:"Enables safe mode for content generation (advanced)."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of ChatMistralAI configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"novita-ai",children:"Novita AI"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using Novita AI's language models."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see ",(0,r.jsx)(n.a,{href:"https://novita.ai/docs/model-api/reference/llm/llm.html?utm_source=github_langflow&utm_medium=github_readme&utm_campaign=link",children:"Novita AI documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"api_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"Your Novita AI API Key."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"The id of the Novita AI model to use."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"The maximum number of tokens to generate. Set to 0 for unlimited tokens."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Controls randomness in the output. Range: [0.0, 1.0]. Default: 0.7."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"top_p"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Controls the nucleus sampling. Range: [0.0, 1.0]. Default: 1.0."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"frequency_penalty"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Controls the frequency penalty. Range: [0.0, 2.0]. Default: 0.0."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"presence_penalty"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Controls the presence penalty. Range: [0.0, 2.0]. Default: 0.0."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of Novita AI model configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"nvidia",children:"NVIDIA"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using NVIDIA LLMs."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see ",(0,r.jsx)(n.a,{href:"https://developer.nvidia.com/generative-ai",children:"NVIDIA AI documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsxs)(n.td,{children:["The maximum number of tokens to generate. Set to ",(0,r.jsx)(n.code,{children:"0"})," for unlimited tokens (advanced)."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["The name of the NVIDIA model to use. Default: ",(0,r.jsx)(n.code,{children:"mistralai/mixtral-8x7b-instruct-v0.1"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"base_url"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["The base URL of the NVIDIA API. Default: ",(0,r.jsx)(n.code,{children:"https://integrate.api.nvidia.com/v1"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"nvidia_api_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"The NVIDIA API Key for authentication."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Controls randomness in the output. Default: ",(0,r.jsx)(n.code,{children:"0.1"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"seed"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsxs)(n.td,{children:["The seed controls the reproducibility of the job (advanced). Default: ",(0,r.jsx)(n.code,{children:"1"}),"."]})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of ChatNVIDIA configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"ollama",children:"Ollama"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using Ollama's language models."}),"\n",(0,r.jsx)(n.p,{children:"To use this component in a flow, connect Langflow to your locally running Ollama server and select a model."}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["In the Ollama component, in the ",(0,r.jsx)(n.strong,{children:"Base URL"})," field, enter the address for your locally running Ollama server.\nThis value is set as the ",(0,r.jsx)(n.code,{children:"OLLAMA_HOST"})," environment variable in Ollama.\nThe default base URL is ",(0,r.jsx)(n.code,{children:"http://127.0.0.1:11434"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["To refresh the server's list of models, click ",(0,r.jsx)(l.A,{name:"RefreshCw","aria-label":"Refresh"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Model Name"})," field, select a model. This example uses ",(0,r.jsx)(n.code,{children:"llama3.2:latest"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Connect the ",(0,r.jsx)(n.strong,{children:"Ollama"})," model component to a flow. For example, this flow connects a local Ollama server running a Llama 3.2 model as the custom model for an ",(0,r.jsx)(n.a,{href:"/components-agents",children:"Agent"})," component."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Ollama model as Agent custom model",src:t(92757).A+"",width:"4000",height:"2668"})}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see the ",(0,r.jsx)(n.a,{href:"https://ollama.com/",children:"Ollama documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Base URL"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"Endpoint of the Ollama API."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Model Name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"The model name to use."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Controls the creativity of model responses."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of an Ollama model configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"openai",children:"OpenAI"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using OpenAI's language models."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see ",(0,r.jsx)(n.a,{href:"https://beta.openai.com/docs/",children:"OpenAI documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"api_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"Your OpenAI API Key."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:'The name of the OpenAI model to use. Options include "gpt-3.5-turbo" and "gpt-4".'})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"The maximum number of tokens to generate. Set to 0 for unlimited tokens."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Controls randomness in the output. Range: [0.0, 1.0]. Default: 0.7."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"top_p"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Controls the nucleus sampling. Range: [0.0, 1.0]. Default: 1.0."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"frequency_penalty"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Controls the frequency penalty. Range: [0.0, 2.0]. Default: 0.0."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"presence_penalty"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Controls the presence penalty. Range: [0.0, 2.0]. Default: 0.0."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of OpenAI model configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"openrouter",children:"OpenRouter"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using OpenRouter's unified API for multiple AI models from different providers."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see ",(0,r.jsx)(n.a,{href:"https://openrouter.ai/docs",children:"OpenRouter documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"api_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"Your OpenRouter API key for authentication."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"site_url"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"Your site URL for OpenRouter rankings (advanced)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"app_name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"Your app name for OpenRouter rankings (advanced)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"provider"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"The AI model provider to use."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"The specific model to use for chat completion."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Controls randomness in the output. Range: [0.0, 2.0]. Default: 0.7."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"The maximum number of tokens to generate (advanced)."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of ChatOpenAI configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"perplexity",children:"Perplexity"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using Perplexity's language models."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see ",(0,r.jsx)(n.a,{href:"https://perplexity.ai/",children:"Perplexity documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"The name of the Perplexity model to use. Options include various Llama 3.1 models."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_output_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"The maximum number of tokens to generate."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"api_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"The Perplexity API Key for authentication."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Controls randomness in the output. Default: 0.75."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"top_p"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"The maximum cumulative probability of tokens to consider when sampling (advanced)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"n"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"Number of chat completions to generate for each prompt (advanced)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"top_k"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"Number of top tokens to consider for top-k sampling. Must be positive (advanced)."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of ChatPerplexity configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"qianfan",children:"Qianfan"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using Qianfan's language models."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see ",(0,r.jsx)(n.a,{href:"https://github.com/baidubce/bce-qianfan-sdk",children:"Qianfan documentation"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"sambanova",children:"SambaNova"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using SambaNova LLMs."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see ",(0,r.jsx)(n.a,{href:"https://cloud.sambanova.ai/",children:"Sambanova Cloud documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"sambanova_url"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["Base URL path for API requests. Default: ",(0,r.jsx)(n.code,{children:"https://api.sambanova.ai/v1/chat/completions"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"sambanova_api_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"Your SambaNova API Key."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"The name of the Sambanova model to use. Options include various Llama models."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"The maximum number of tokens to generate. Set to 0 for unlimited tokens."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Controls randomness in the output. Range: [0.0, 1.0]. Default: 0.07."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of SambaNova model configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"vertexai",children:"VertexAI"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using Vertex AI LLMs."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see ",(0,r.jsx)(n.a,{href:"https://cloud.google.com/vertex-ai",children:"Google Vertex AI documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"credentials"}),(0,r.jsx)(n.td,{children:"File"}),(0,r.jsx)(n.td,{children:"JSON credentials file. Leave empty to fall back to environment variables. File type: JSON."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:'The name of the Vertex AI model to use. Default: "gemini-1.5-pro".'})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"project"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"The project ID (advanced)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"location"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:'The location for the Vertex AI API. Default: "us-central1" (advanced).'})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_output_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"The maximum number of tokens to generate (advanced)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_retries"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"Maximum number of retries for API calls. Default: 1 (advanced)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Controls randomness in the output. Default: 0.0."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"top_k"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"The number of highest probability vocabulary tokens to keep for top-k-filtering (advanced)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"top_p"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"The cumulative probability of parameter highest probability vocabulary tokens to keep for nucleus sampling. Default: 0.95 (advanced)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"verbose"}),(0,r.jsx)(n.td,{children:"Boolean"}),(0,r.jsx)(n.td,{children:"Whether to print verbose output. Default: False (advanced)."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of ChatVertexAI configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"xai",children:"xAI"}),"\n",(0,r.jsxs)(n.p,{children:["This component generates text using xAI models like ",(0,r.jsx)(n.a,{href:"https://x.ai/grok",children:"Grok"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see the ",(0,r.jsx)(n.a,{href:"https://x.ai/",children:"xAI documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsxs)(n.td,{children:["Maximum number of tokens to generate. Set to ",(0,r.jsx)(n.code,{children:"0"})," for unlimited. Range: ",(0,r.jsx)(n.code,{children:"0-128000"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_kwargs"}),(0,r.jsx)(n.td,{children:"Dictionary"}),(0,r.jsx)(n.td,{children:"Additional keyword arguments for the model."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"json_mode"}),(0,r.jsx)(n.td,{children:"Boolean"}),(0,r.jsxs)(n.td,{children:["If ",(0,r.jsx)(n.code,{children:"True"}),", outputs JSON regardless of passing a schema."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["The xAI model to use. Default: ",(0,r.jsx)(n.code,{children:"grok-2-latest"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"base_url"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["Base URL for API requests. Default: ",(0,r.jsx)(n.code,{children:"https://api.x.ai/v1"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"api_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"Your xAI API key for authentication."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Controls randomness in the output. Range: ",(0,r.jsx)(n.code,{children:"[0.0, 2.0]"}),". Default: ",(0,r.jsx)(n.code,{children:"0.1"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"seed"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"Controls reproducibility of the job."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of ChatOpenAI configured with the specified parameters."})]})})]})]})]})}function p(e={}){const{wrapper:n}={...(0,d.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(m,{...e})}):m(e)}function u(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},84443:(e,n,t)=>{t.d(n,{A:()=>d});t(96540);var s=t(64058),r=t(74848);function d(e){let{name:n,...t}=e;const d=s[n];return d?(0,r.jsx)(d,{...t}):null}},90567:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/starter-flow-basic-prompting-09331815d7282bd6a3feedf84838ba20.png"},92757:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/component-ollama-model-5755eab19c67fb10ee0533b3f7ade726.png"}}]);
\ No newline at end of file
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[145],{23592:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/component-groq-d3df19923f67805fd483632d537af9f4.png"},68799:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/component-watsonx-model-2f388a824b49f1c49287f07bc8738d0f.png"},73630:(e,n,t)=>{t.r(n),t.d(n,{CH:()=>a,assets:()=>o,chCodeConfig:()=>x,contentTitle:()=>c,default:()=>p,frontMatter:()=>h,metadata:()=>s,toc:()=>j});const s=JSON.parse('{"id":"Components/components-models","title":"Models","description":"Model components generate text using large language models.","source":"@site/docs/Components/components-models.md","sourceDirName":"Components","slug":"/components-models","permalink":"/components-models","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Models","slug":"/components-models"},"sidebar":"docs","previous":{"title":"Memories","permalink":"/components-memories"},"next":{"title":"Processing","permalink":"/components-processing"}}');var r=t(74848),d=t(28453),i=t(24754),l=t(84443);const h={title:"Models",slug:"/components-models"},c="Model components in Langflow",o={},a={annotations:i.hk,Code:i.Cy},x={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},j=[{value:"Use a model component in a flow",id:"use-a-model-component-in-a-flow",level:2},{value:"AIML",id:"aiml",level:2},{value:"Amazon Bedrock",id:"amazon-bedrock",level:2},{value:"Anthropic",id:"anthropic",level:2},{value:"Azure OpenAI",id:"azure-openai",level:2},{value:"Cohere",id:"cohere",level:2},{value:"DeepSeek",id:"deepseek",level:2},{value:"Google Generative AI",id:"google-generative-ai",level:2},{value:"Groq",id:"groq",level:2},{value:"Hugging Face API",id:"hugging-face-api",level:2},{value:"IBM watsonx.ai",id:"ibm-watsonxai",level:2},{value:"Language model",id:"language-model",level:2},{value:"LMStudio",id:"lmstudio",level:2},{value:"Maritalk",id:"maritalk",level:2},{value:"Mistral",id:"mistral",level:2},{value:"Novita AI",id:"novita-ai",level:2},{value:"NVIDIA",id:"nvidia",level:2},{value:"Ollama",id:"ollama",level:2},{value:"OpenAI",id:"openai",level:2},{value:"OpenRouter",id:"openrouter",level:2},{value:"Perplexity",id:"perplexity",level:2},{value:"Qianfan",id:"qianfan",level:2},{value:"SambaNova",id:"sambanova",level:2},{value:"VertexAI",id:"vertexai",level:2},{value:"xAI",id:"xai",level:2}];function m(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,d.R)(),...e.components},{Details:s}=n;return a||u("CH",!1),a.Code||u("CH.Code",!0),s||u("Details",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"model-components-in-langflow",children:"Model components in Langflow"})}),"\n",(0,r.jsx)(n.p,{children:"Model components generate text using large language models."}),"\n",(0,r.jsx)(n.p,{children:"Refer to your specific component's documentation for more information on parameters."}),"\n",(0,r.jsx)(n.h2,{id:"use-a-model-component-in-a-flow",children:"Use a model component in a flow"}),"\n",(0,r.jsx)(n.p,{children:"Model components receive inputs and prompts for generating text, and the generated text is sent to an output component."}),"\n",(0,r.jsxs)(n.p,{children:["The model output can also be sent to the ",(0,r.jsx)(n.strong,{children:"Language Model"})," port and on to a ",(0,r.jsx)(n.strong,{children:"Parse Data"})," component, where the output can be parsed into structured ",(0,r.jsx)(n.a,{href:"/concepts-objects",children:"Data"})," objects."]}),"\n",(0,r.jsxs)(n.p,{children:["This example has the OpenAI model in a chatbot flow. For more information, see the ",(0,r.jsx)(n.a,{href:"/starter-projects-basic-prompting",children:"Basic prompting flow"}),"."]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{src:t(90567).A+"",width:"2500",height:"1528"})}),"\n",(0,r.jsx)(n.h2,{id:"aiml",children:"AIML"}),"\n",(0,r.jsx)(n.p,{children:"This component creates a ChatOpenAI model instance using the AIML API."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see ",(0,r.jsx)(n.a,{href:"https://docs.aimlapi.com/",children:"AIML documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"The maximum number of tokens to generate. Set to 0 for unlimited tokens. Range: 0-128000."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_kwargs"}),(0,r.jsx)(n.td,{children:"Dictionary"}),(0,r.jsx)(n.td,{children:"Additional keyword arguments for the model."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["The name of the AIML model to use. Options are predefined in ",(0,r.jsx)(n.code,{children:"AIML_CHAT_MODELS"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"aiml_api_base"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["The base URL of the AIML API. Defaults to ",(0,r.jsx)(n.code,{children:"https://api.aimlapi.com"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"api_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"The AIML API Key to use for the model."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Controls randomness in the output. Default: ",(0,r.jsx)(n.code,{children:"0.1"}),"."]})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of ChatOpenAI configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"amazon-bedrock",children:"Amazon Bedrock"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using Amazon Bedrock LLMs."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see ",(0,r.jsx)(n.a,{href:"https://docs.aws.amazon.com/bedrock",children:"Amazon Bedrock documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_id"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"The ID of the Amazon Bedrock model to use. Options include various models."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"aws_access_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"AWS Access Key for authentication."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"aws_secret_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"AWS Secret Key for authentication."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"aws_session_token"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"The session key for your AWS account."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"credentials_profile_name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"Name of the AWS credentials profile to use."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"region_name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["AWS region name. Default: ",(0,r.jsx)(n.code,{children:"us-east-1"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_kwargs"}),(0,r.jsx)(n.td,{children:"Dictionary"}),(0,r.jsx)(n.td,{children:"Additional keyword arguments for the model."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"endpoint_url"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"Custom endpoint URL for the Bedrock service."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of ChatBedrock configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"anthropic",children:"Anthropic"}),"\n",(0,r.jsx)(n.p,{children:"This component allows the generation of text using Anthropic Chat and Language models."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see the ",(0,r.jsx)(n.a,{href:"https://docs.anthropic.com/en/docs/welcome",children:"Anthropic documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsxs)(n.td,{children:["The maximum number of tokens to generate. Set to 0 for unlimited tokens. Default: ",(0,r.jsx)(n.code,{children:"4096"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"The name of the Anthropic model to use. Options include various Claude 3 models."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"anthropic_api_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"Your Anthropic API key for authentication."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Controls randomness in the output. Default: ",(0,r.jsx)(n.code,{children:"0.1"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"anthropic_api_url"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["Endpoint of the Anthropic API. Defaults to ",(0,r.jsx)(n.code,{children:"https://api.anthropic.com"})," if not specified (advanced)."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"prefill"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"Prefill text to guide the model's response (advanced)."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of ChatAnthropic configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"azure-openai",children:"Azure OpenAI"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using Azure OpenAI LLM."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see the ",(0,r.jsx)(n.a,{href:"https://learn.microsoft.com/en-us/azure/ai-services/openai/",children:"Azure OpenAI documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Model Name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"Specifies the name of the Azure OpenAI model to be used for text generation."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Azure Endpoint"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"Your Azure endpoint, including the resource."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Deployment Name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"Specifies the name of the deployment."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"API Version"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"Specifies the version of the Azure OpenAI API to be used."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"API Key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"Your Azure OpenAI API key."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Specifies the sampling temperature. Defaults to ",(0,r.jsx)(n.code,{children:"0.7"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Max Tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsxs)(n.td,{children:["Specifies the maximum number of tokens to generate. Defaults to ",(0,r.jsx)(n.code,{children:"1000"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Input Value"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"Specifies the input text for text generation."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Stream"}),(0,r.jsx)(n.td,{children:"Boolean"}),(0,r.jsxs)(n.td,{children:["Specifies whether to stream the response from the model. Defaults to ",(0,r.jsx)(n.code,{children:"False"}),"."]})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of AzureOpenAI configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"cohere",children:"Cohere"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using Cohere's language models."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see the ",(0,r.jsx)(n.a,{href:"https://cohere.ai/",children:"Cohere documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Cohere API Key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"Your Cohere API key."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Max Tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsxs)(n.td,{children:["Specifies the maximum number of tokens to generate. Defaults to ",(0,r.jsx)(n.code,{children:"256"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Specifies the sampling temperature. Defaults to ",(0,r.jsx)(n.code,{children:"0.75"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Input Value"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"Specifies the input text for text generation."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of the Cohere model configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"deepseek",children:"DeepSeek"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using DeepSeek's language models."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see the ",(0,r.jsx)(n.a,{href:"https://api-docs.deepseek.com/",children:"DeepSeek documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsxs)(n.td,{children:["Maximum number of tokens to generate. Set to ",(0,r.jsx)(n.code,{children:"0"})," for unlimited. Range: ",(0,r.jsx)(n.code,{children:"0-128000"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_kwargs"}),(0,r.jsx)(n.td,{children:"Dictionary"}),(0,r.jsx)(n.td,{children:"Additional keyword arguments for the model."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"json_mode"}),(0,r.jsx)(n.td,{children:"Boolean"}),(0,r.jsxs)(n.td,{children:["If ",(0,r.jsx)(n.code,{children:"True"}),", outputs JSON regardless of passing a schema."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["The DeepSeek model to use. Default: ",(0,r.jsx)(n.code,{children:"deepseek-chat"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"api_base"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["Base URL for API requests. Default: ",(0,r.jsx)(n.code,{children:"https://api.deepseek.com"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"api_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"Your DeepSeek API key for authentication."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Controls randomness in responses. Range: ",(0,r.jsx)(n.code,{children:"[0.0, 2.0]"}),". Default: ",(0,r.jsx)(n.code,{children:"1.0"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"seed"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"Number initialized for random number generation. Use the same seed integer for more reproducible results, and use a different seed number for more random results."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of ChatOpenAI configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"google-generative-ai",children:"Google Generative AI"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using Google's Generative AI models."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see the ",(0,r.jsx)(n.a,{href:"https://cloud.google.com/vertex-ai/docs/",children:"Google Generative AI documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Google API Key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"Your Google API key to use for the Google Generative AI."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Model"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["The name of the model to use, such as ",(0,r.jsx)(n.code,{children:'"gemini-pro"'}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Max Output Tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"The maximum number of tokens to generate."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Run inference with this temperature."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Top K"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"Consider the set of top K most probable tokens."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Top P"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"The maximum cumulative probability of tokens to consider when sampling."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"N"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"Number of chat completions to generate for each prompt."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of ChatGoogleGenerativeAI configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"groq",children:"Groq"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using Groq's language models."}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["To use this component in a flow, connect it as a ",(0,r.jsx)(n.strong,{children:"Model"})," in a flow like the ",(0,r.jsx)(n.a,{href:"/starter-projects-basic-prompting",children:"Basic prompting flow"}),", or select it as the ",(0,r.jsx)(n.strong,{children:"Model Provider"})," if you're using an ",(0,r.jsx)(n.strong,{children:"Agent"})," component."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Groq component in a basic prompting flow",src:t(23592).A+"",width:"1982",height:"1194"})}),"\n",(0,r.jsxs)(n.ol,{start:"2",children:["\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Groq API Key"})," field, paste your Groq API key.\nThe Groq model component automatically retrieves a list of the latest models.\nTo refresh your list of models, click ",(0,r.jsx)(l.A,{name:"RefreshCw","aria-label":"Refresh"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Model"})," field, select the model you want to use for your LLM.\nThis example uses ",(0,r.jsx)(n.a,{href:"https://console.groq.com/docs/model/llama-3.1-8b-instant",children:"llama-3.1-8b-instant"}),", which Groq recommends for real-time conversational interfaces."]}),"\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Prompt"})," component, enter:"]}),"\n"]}),"\n",(0,r.jsx)(a.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"You are a helpful assistant who supports their claims with sources.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(n.ol,{start:"5",children:["\n",(0,r.jsxs)(n.li,{children:["Click ",(0,r.jsx)(n.strong,{children:"Playground"})," and ask your Groq LLM a question.\nThe responses include a list of sources."]}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see the ",(0,r.jsx)(n.a,{href:"https://groq.com/",children:"Groq documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"groq_api_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"API key for the Groq API."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"groq_api_base"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["Base URL path for API requests. Default: ",(0,r.jsx)(n.code,{children:"https://api.groq.com"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"The maximum number of tokens to generate."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Controls randomness in the output. Range: ",(0,r.jsx)(n.code,{children:"[0.0, 1.0]"}),". Default: ",(0,r.jsx)(n.code,{children:"0.1"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"n"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"Number of chat completions to generate for each prompt."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"The name of the Groq model to use. Options are dynamically fetched from the Groq API."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"tool_mode_enabled"}),(0,r.jsx)(n.td,{children:"Bool"}),(0,r.jsx)(n.td,{children:"If enabled, the component only displays models that work with tools."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of ChatGroq configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"hugging-face-api",children:"Hugging Face API"}),"\n",(0,r.jsxs)(n.p,{children:["This component sends requests to the Hugging Face API to generate text using the model specified in the ",(0,r.jsx)(n.strong,{children:"Model ID"})," field."]}),"\n",(0,r.jsxs)(n.p,{children:["The Hugging Face API is a hosted inference API for models hosted on Hugging Face, and requires a ",(0,r.jsx)(n.a,{href:"https://huggingface.co/docs/hub/security-tokens",children:"Hugging Face API token"})," to authenticate."]}),"\n",(0,r.jsxs)(n.p,{children:["In this example based on the ",(0,r.jsx)(n.a,{href:"/starter-projects-basic-prompting",children:"Basic prompting flow"}),", the ",(0,r.jsx)(n.strong,{children:"Hugging Face API"})," model component replaces the ",(0,r.jsx)(n.strong,{children:"Open AI"})," model. By selecting different hosted models, you can see how different models return different results."]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Create a ",(0,r.jsx)(n.a,{href:"/starter-projects-basic-prompting",children:"Basic prompting flow"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Replace the ",(0,r.jsx)(n.strong,{children:"OpenAI"})," model component with a ",(0,r.jsx)(n.strong,{children:"Hugging Face API"})," model component."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["In the ",(0,r.jsx)(n.strong,{children:"Hugging Face API"})," component, add your Hugging Face API token to the ",(0,r.jsx)(n.strong,{children:"API Token"})," field."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Open the ",(0,r.jsx)(n.strong,{children:"Playground"})," and ask a question to the model, and see how it responds."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Try different models, and see how they perform differently."}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see the ",(0,r.jsx)(n.a,{href:"https://huggingface.co/",children:"Hugging Face documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_id"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:'The model ID from Hugging Face Hub. For example, "gpt2", "facebook/bart-large".'})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"huggingfacehub_api_token"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"Your Hugging Face API token for authentication."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Controls randomness in the output. Range: [0.0, 1.0]. Default: 0.7."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_new_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"Maximum number of tokens to generate. Default: 512."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"top_p"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Nucleus sampling parameter. Range: [0.0, 1.0]. Default: 0.95."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"top_k"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"Top-k sampling parameter. Default: 50."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_kwargs"}),(0,r.jsx)(n.td,{children:"Dictionary"}),(0,r.jsx)(n.td,{children:"Additional keyword arguments to pass to the model."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of HuggingFaceHub configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"ibm-watsonxai",children:"IBM watsonx.ai"}),"\n",(0,r.jsxs)(n.p,{children:["This component generates text using ",(0,r.jsx)(n.a,{href:"https://www.ibm.com/watsonx",children:"IBM watsonx.ai"})," foundation models."]}),"\n",(0,r.jsxs)(n.p,{children:["To use ",(0,r.jsx)(n.strong,{children:"IBM watsonx.ai"})," model components, replace a model component with the IBM watsonx.ai component in a flow."]}),"\n",(0,r.jsx)(n.p,{children:"An example flow looks like the following:"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"IBM watsonx model component in a basic prompting flow",src:t(68799).A+"",width:"2364",height:"1562"})}),"\n",(0,r.jsxs)(n.p,{children:["The values for ",(0,r.jsx)(n.strong,{children:"API endpoint"}),", ",(0,r.jsx)(n.strong,{children:"Project ID"}),", ",(0,r.jsx)(n.strong,{children:"API key"}),", and ",(0,r.jsx)(n.strong,{children:"Model Name"})," are found in your IBM watsonx.ai deployment.\nFor more information, see the ",(0,r.jsx)(n.a,{href:"https://python.langchain.com/docs/integrations/chat/ibm_watsonx/",children:"Langchain documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"url"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"The base URL of the watsonx API."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"project_id"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"Your watsonx Project ID."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"api_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"Your IBM watsonx API Key."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"The name of the watsonx model to use. Options are dynamically fetched from the API."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsxs)(n.td,{children:["The maximum number of tokens to generate. Default: ",(0,r.jsx)(n.code,{children:"1000"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"stop_sequence"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"The sequence where generation should stop."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Controls randomness in the output. Default: ",(0,r.jsx)(n.code,{children:"0.1"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"top_p"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Controls nucleus sampling, which limits the model to tokens whose probability is below the ",(0,r.jsx)(n.code,{children:"top_p"})," value. Range: Default: ",(0,r.jsx)(n.code,{children:"0.9"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"frequency_penalty"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Controls frequency penalty. A positive value decreases the probability of repeating tokens, and a negative value increases the probability. Range: Default: ",(0,r.jsx)(n.code,{children:"0.5"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"presence_penalty"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Controls presence penalty. A positive value increases the likelihood of new topics being introduced. Default: ",(0,r.jsx)(n.code,{children:"0.3"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"seed"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsxs)(n.td,{children:["A random seed for the model. Default: ",(0,r.jsx)(n.code,{children:"8"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"logprobs"}),(0,r.jsx)(n.td,{children:"Boolean"}),(0,r.jsxs)(n.td,{children:["Whether to return log probabilities of output tokens or not. Default: ",(0,r.jsx)(n.code,{children:"True"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"top_logprobs"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsxs)(n.td,{children:["The number of most likely tokens to return at each position. Default: ",(0,r.jsx)(n.code,{children:"3"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"logit_bias"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"A JSON string of token IDs to bias or suppress."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsxs)(n.td,{children:["An instance of ",(0,r.jsx)(n.a,{href:"https://python.langchain.com/docs/integrations/chat/ibm_watsonx/",children:"ChatWatsonx"})," configured with the specified parameters."]})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"language-model",children:"Language model"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using either OpenAI or Anthropic language models."}),"\n",(0,r.jsx)(n.p,{children:"Use this component as a drop-in replacement for LLM models to switch between different model providers and models."}),"\n",(0,r.jsx)(n.p,{children:"Instead of swapping out model components when you want to try a different provider, like switching between OpenAI and Anthropic components, change the provider dropdown in this single component. This makes it easier to experiment with and compare different models while keeping the rest of your flow intact."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see the ",(0,r.jsx)(n.a,{href:"https://platform.openai.com/docs",children:"OpenAI documentation"})," and ",(0,r.jsx)(n.a,{href:"https://docs.anthropic.com/",children:"Anthropic documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"provider"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:'The model provider to use. Options: "OpenAI", "Anthropic". Default: "OpenAI".'})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"The name of the model to use. Options depend on the selected provider."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"api_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"The API Key for authentication with the selected provider."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"input_value"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"The input text to send to the model."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"system_message"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"A system message that helps set the behavior of the assistant (advanced)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"stream"}),(0,r.jsx)(n.td,{children:"Boolean"}),(0,r.jsxs)(n.td,{children:["Whether to stream the response. Default: ",(0,r.jsx)(n.code,{children:"False"})," (advanced)."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Controls randomness in responses. Range: ",(0,r.jsx)(n.code,{children:"[0.0, 1.0]"}),". Default: ",(0,r.jsx)(n.code,{children:"0.1"})," (advanced)."]})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of ChatOpenAI or ChatAnthropic configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"lmstudio",children:"LMStudio"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using LM Studio's local language models."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see ",(0,r.jsx)(n.a,{href:"https://lmstudio.ai/",children:"LM Studio documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"base_url"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["The URL where LM Studio is running. Default: ",(0,r.jsx)(n.code,{children:'"http://localhost:1234"'}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsxs)(n.td,{children:["Maximum number of tokens to generate in the response. Default: ",(0,r.jsx)(n.code,{children:"512"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Controls randomness in the output. Range: ",(0,r.jsx)(n.code,{children:"[0.0, 2.0]"}),". Default: ",(0,r.jsx)(n.code,{children:"0.7"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"top_p"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Controls diversity via nucleus sampling. Range: ",(0,r.jsx)(n.code,{children:"[0.0, 1.0]"}),". Default: ",(0,r.jsx)(n.code,{children:"1.0"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"stop"}),(0,r.jsx)(n.td,{children:"List[String]"}),(0,r.jsx)(n.td,{children:"List of strings that stop generation when encountered."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"stream"}),(0,r.jsx)(n.td,{children:"Boolean"}),(0,r.jsxs)(n.td,{children:["Whether to stream the response. Default: ",(0,r.jsx)(n.code,{children:"False"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"presence_penalty"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Penalizes repeated tokens. Range: ",(0,r.jsx)(n.code,{children:"[-2.0, 2.0]"}),". Default: ",(0,r.jsx)(n.code,{children:"0.0"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"frequency_penalty"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Penalizes frequent tokens. Range: ",(0,r.jsx)(n.code,{children:"[-2.0, 2.0]"}),". Default: ",(0,r.jsx)(n.code,{children:"0.0"}),"."]})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of LMStudio configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"maritalk",children:"Maritalk"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using Maritalk LLMs."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see ",(0,r.jsx)(n.a,{href:"https://www.maritalk.com/",children:"Maritalk documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsxs)(n.td,{children:["The maximum number of tokens to generate. Set to ",(0,r.jsx)(n.code,{children:"0"})," for unlimited tokens. Default: ",(0,r.jsx)(n.code,{children:"512"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["The name of the Maritalk model to use. Options: ",(0,r.jsx)(n.code,{children:"sabia-2-small"}),", ",(0,r.jsx)(n.code,{children:"sabia-2-medium"}),". Default: ",(0,r.jsx)(n.code,{children:"sabia-2-small"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"api_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"The Maritalk API Key to use for authentication."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Controls randomness in the output. Range: ",(0,r.jsx)(n.code,{children:"[0.0, 1.0]"}),". Default: ",(0,r.jsx)(n.code,{children:"0.5"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"endpoint_url"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["The Maritalk API endpoint. Default: ",(0,r.jsx)(n.code,{children:"https://api.maritalk.com"}),"."]})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of ChatMaritalk configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"mistral",children:"Mistral"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using MistralAI LLMs."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see ",(0,r.jsx)(n.a,{href:"https://docs.mistral.ai/",children:"Mistral AI documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"The maximum number of tokens to generate. Set to 0 for unlimited tokens (advanced)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["The name of the Mistral AI model to use. Options include ",(0,r.jsx)(n.code,{children:"open-mixtral-8x7b"}),", ",(0,r.jsx)(n.code,{children:"open-mixtral-8x22b"}),", ",(0,r.jsx)(n.code,{children:"mistral-small-latest"}),", ",(0,r.jsx)(n.code,{children:"mistral-medium-latest"}),", ",(0,r.jsx)(n.code,{children:"mistral-large-latest"}),", and ",(0,r.jsx)(n.code,{children:"codestral-latest"}),". Default: ",(0,r.jsx)(n.code,{children:"codestral-latest"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"mistral_api_base"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["The base URL of the Mistral API. Defaults to ",(0,r.jsx)(n.code,{children:"https://api.mistral.ai/v1"})," (advanced)."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"api_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"The Mistral API Key to use for authentication."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Controls randomness in the output. Default: 0.5."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_retries"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"Maximum number of retries for API calls. Default: 5 (advanced)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"timeout"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"Timeout for API calls in seconds. Default: 60 (advanced)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_concurrent_requests"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"Maximum number of concurrent API requests. Default: 3 (advanced)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"top_p"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Nucleus sampling parameter. Default: 1 (advanced)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"random_seed"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"Seed for random number generation. Default: 1 (advanced)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"safe_mode"}),(0,r.jsx)(n.td,{children:"Boolean"}),(0,r.jsx)(n.td,{children:"Enables safe mode for content generation (advanced)."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of ChatMistralAI configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"novita-ai",children:"Novita AI"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using Novita AI's language models."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see ",(0,r.jsx)(n.a,{href:"https://novita.ai/docs/model-api/reference/llm/llm.html?utm_source=github_langflow&utm_medium=github_readme&utm_campaign=link",children:"Novita AI documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"api_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"Your Novita AI API Key."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"The id of the Novita AI model to use."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"The maximum number of tokens to generate. Set to 0 for unlimited tokens."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Controls randomness in the output. Range: [0.0, 1.0]. Default: 0.7."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"top_p"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Controls the nucleus sampling. Range: [0.0, 1.0]. Default: 1.0."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"frequency_penalty"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Controls the frequency penalty. Range: [0.0, 2.0]. Default: 0.0."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"presence_penalty"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Controls the presence penalty. Range: [0.0, 2.0]. Default: 0.0."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of Novita AI model configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"nvidia",children:"NVIDIA"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using NVIDIA LLMs."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see ",(0,r.jsx)(n.a,{href:"https://developer.nvidia.com/generative-ai",children:"NVIDIA AI documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsxs)(n.td,{children:["The maximum number of tokens to generate. Set to ",(0,r.jsx)(n.code,{children:"0"})," for unlimited tokens (advanced)."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["The name of the NVIDIA model to use. Default: ",(0,r.jsx)(n.code,{children:"mistralai/mixtral-8x7b-instruct-v0.1"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"base_url"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["The base URL of the NVIDIA API. Default: ",(0,r.jsx)(n.code,{children:"https://integrate.api.nvidia.com/v1"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"nvidia_api_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"The NVIDIA API Key for authentication."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Controls randomness in the output. Default: ",(0,r.jsx)(n.code,{children:"0.1"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"seed"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsxs)(n.td,{children:["The seed controls the reproducibility of the job (advanced). Default: ",(0,r.jsx)(n.code,{children:"1"}),"."]})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of ChatNVIDIA configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"ollama",children:"Ollama"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using Ollama's language models."}),"\n",(0,r.jsx)(n.p,{children:"To use this component in a flow, connect Langflow to your locally running Ollama server and select a model."}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["In the Ollama component, in the ",(0,r.jsx)(n.strong,{children:"Base URL"})," field, enter the address for your locally running Ollama server.\nThis value is set as the ",(0,r.jsx)(n.code,{children:"OLLAMA_HOST"})," environment variable in Ollama.\nThe default base URL is ",(0,r.jsx)(n.code,{children:"http://localhost:11434"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["To refresh the server's list of models, click ",(0,r.jsx)(l.A,{name:"RefreshCw","aria-label":"Refresh"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Model Name"})," field, select a model. This example uses ",(0,r.jsx)(n.code,{children:"llama3.2:latest"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Connect the ",(0,r.jsx)(n.strong,{children:"Ollama"})," model component to a flow. For example, this flow connects a local Ollama server running a Llama 3.2 model as the custom model for an ",(0,r.jsx)(n.a,{href:"/components-agents",children:"Agent"})," component."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Ollama model as Agent custom model",src:t(92757).A+"",width:"4000",height:"2668"})}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see the ",(0,r.jsx)(n.a,{href:"https://ollama.com/",children:"Ollama documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Base URL"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"Endpoint of the Ollama API."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Model Name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"The model name to use."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Controls the creativity of model responses."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of an Ollama model configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"openai",children:"OpenAI"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using OpenAI's language models."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see ",(0,r.jsx)(n.a,{href:"https://beta.openai.com/docs/",children:"OpenAI documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"api_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"Your OpenAI API Key."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:'The name of the OpenAI model to use. Options include "gpt-3.5-turbo" and "gpt-4".'})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"The maximum number of tokens to generate. Set to 0 for unlimited tokens."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Controls randomness in the output. Range: [0.0, 1.0]. Default: 0.7."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"top_p"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Controls the nucleus sampling. Range: [0.0, 1.0]. Default: 1.0."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"frequency_penalty"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Controls the frequency penalty. Range: [0.0, 2.0]. Default: 0.0."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"presence_penalty"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Controls the presence penalty. Range: [0.0, 2.0]. Default: 0.0."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of OpenAI model configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"openrouter",children:"OpenRouter"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using OpenRouter's unified API for multiple AI models from different providers."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see ",(0,r.jsx)(n.a,{href:"https://openrouter.ai/docs",children:"OpenRouter documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"api_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"Your OpenRouter API key for authentication."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"site_url"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"Your site URL for OpenRouter rankings (advanced)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"app_name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"Your app name for OpenRouter rankings (advanced)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"provider"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"The AI model provider to use."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"The specific model to use for chat completion."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Controls randomness in the output. Range: [0.0, 2.0]. Default: 0.7."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"The maximum number of tokens to generate (advanced)."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of ChatOpenAI configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"perplexity",children:"Perplexity"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using Perplexity's language models."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see ",(0,r.jsx)(n.a,{href:"https://perplexity.ai/",children:"Perplexity documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"The name of the Perplexity model to use. Options include various Llama 3.1 models."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_output_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"The maximum number of tokens to generate."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"api_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"The Perplexity API Key for authentication."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Controls randomness in the output. Default: 0.75."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"top_p"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"The maximum cumulative probability of tokens to consider when sampling (advanced)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"n"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"Number of chat completions to generate for each prompt (advanced)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"top_k"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"Number of top tokens to consider for top-k sampling. Must be positive (advanced)."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of ChatPerplexity configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"qianfan",children:"Qianfan"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using Qianfan's language models."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see ",(0,r.jsx)(n.a,{href:"https://github.com/baidubce/bce-qianfan-sdk",children:"Qianfan documentation"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"sambanova",children:"SambaNova"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using SambaNova LLMs."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see ",(0,r.jsx)(n.a,{href:"https://cloud.sambanova.ai/",children:"Sambanova Cloud documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"sambanova_url"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["Base URL path for API requests. Default: ",(0,r.jsx)(n.code,{children:"https://api.sambanova.ai/v1/chat/completions"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"sambanova_api_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"Your SambaNova API Key."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"The name of the Sambanova model to use. Options include various Llama models."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"The maximum number of tokens to generate. Set to 0 for unlimited tokens."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Controls randomness in the output. Range: [0.0, 1.0]. Default: 0.07."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of SambaNova model configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"vertexai",children:"VertexAI"}),"\n",(0,r.jsx)(n.p,{children:"This component generates text using Vertex AI LLMs."}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see ",(0,r.jsx)(n.a,{href:"https://cloud.google.com/vertex-ai",children:"Google Vertex AI documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"credentials"}),(0,r.jsx)(n.td,{children:"File"}),(0,r.jsx)(n.td,{children:"JSON credentials file. Leave empty to fall back to environment variables. File type: JSON."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:'The name of the Vertex AI model to use. Default: "gemini-1.5-pro".'})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"project"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:"The project ID (advanced)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"location"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsx)(n.td,{children:'The location for the Vertex AI API. Default: "us-central1" (advanced).'})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_output_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"The maximum number of tokens to generate (advanced)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_retries"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"Maximum number of retries for API calls. Default: 1 (advanced)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"Controls randomness in the output. Default: 0.0."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"top_k"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"The number of highest probability vocabulary tokens to keep for top-k-filtering (advanced)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"top_p"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsx)(n.td,{children:"The cumulative probability of parameter highest probability vocabulary tokens to keep for nucleus sampling. Default: 0.95 (advanced)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"verbose"}),(0,r.jsx)(n.td,{children:"Boolean"}),(0,r.jsx)(n.td,{children:"Whether to print verbose output. Default: False (advanced)."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of ChatVertexAI configured with the specified parameters."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"xai",children:"xAI"}),"\n",(0,r.jsxs)(n.p,{children:["This component generates text using xAI models like ",(0,r.jsx)(n.a,{href:"https://x.ai/grok",children:"Grok"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see the ",(0,r.jsx)(n.a,{href:"https://x.ai/",children:"xAI documentation"}),"."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_tokens"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsxs)(n.td,{children:["Maximum number of tokens to generate. Set to ",(0,r.jsx)(n.code,{children:"0"})," for unlimited. Range: ",(0,r.jsx)(n.code,{children:"0-128000"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_kwargs"}),(0,r.jsx)(n.td,{children:"Dictionary"}),(0,r.jsx)(n.td,{children:"Additional keyword arguments for the model."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"json_mode"}),(0,r.jsx)(n.td,{children:"Boolean"}),(0,r.jsxs)(n.td,{children:["If ",(0,r.jsx)(n.code,{children:"True"}),", outputs JSON regardless of passing a schema."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model_name"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["The xAI model to use. Default: ",(0,r.jsx)(n.code,{children:"grok-2-latest"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"base_url"}),(0,r.jsx)(n.td,{children:"String"}),(0,r.jsxs)(n.td,{children:["Base URL for API requests. Default: ",(0,r.jsx)(n.code,{children:"https://api.x.ai/v1"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"api_key"}),(0,r.jsx)(n.td,{children:"SecretString"}),(0,r.jsx)(n.td,{children:"Your xAI API key for authentication."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"temperature"}),(0,r.jsx)(n.td,{children:"Float"}),(0,r.jsxs)(n.td,{children:["Controls randomness in the output. Range: ",(0,r.jsx)(n.code,{children:"[0.0, 2.0]"}),". Default: ",(0,r.jsx)(n.code,{children:"0.1"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"seed"}),(0,r.jsx)(n.td,{children:"Integer"}),(0,r.jsx)(n.td,{children:"Controls reproducibility of the job."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"model"}),(0,r.jsx)(n.td,{children:"LanguageModel"}),(0,r.jsx)(n.td,{children:"An instance of ChatOpenAI configured with the specified parameters."})]})})]})]})]})}function p(e={}){const{wrapper:n}={...(0,d.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(m,{...e})}):m(e)}function u(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},84443:(e,n,t)=>{t.d(n,{A:()=>d});t(96540);var s=t(64058),r=t(74848);function d(e){let{name:n,...t}=e;const d=s[n];return d?(0,r.jsx)(d,{...t}):null}},90567:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/starter-flow-basic-prompting-09331815d7282bd6a3feedf84838ba20.png"},92757:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/component-ollama-model-5755eab19c67fb10ee0533b3f7ade726.png"}}]);
\ No newline at end of file
diff --git a/assets/js/0e5205b8.da2769ba.js b/assets/js/0e5205b8.68775651.js
similarity index 99%
rename from assets/js/0e5205b8.da2769ba.js
rename to assets/js/0e5205b8.68775651.js
index 72c20d4ae5..17e5b6d324 100644
--- a/assets/js/0e5205b8.da2769ba.js
+++ b/assets/js/0e5205b8.68775651.js
@@ -1 +1 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[3968],{63917:(e,n,o)=>{o.r(n),o.d(n,{CH:()=>h,assets:()=>d,chCodeConfig:()=>p,contentTitle:()=>a,default:()=>m,frontMatter:()=>l,metadata:()=>t,toc:()=>u});const t=JSON.parse('{"id":"Concepts/concepts-playground","title":"Playground","description":"The\xa0Playground\xa0is a dynamic interface designed for real-time interaction with LLMs, allowing users to chat, access memories, and monitor inputs and outputs. Here, users can directly prototype their models, making adjustments and observing different outcomes.","source":"@site/docs/Concepts/concepts-playground.md","sourceDirName":"Concepts","slug":"/concepts-playground","permalink":"/concepts-playground","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Playground","slug":"/concepts-playground"},"sidebar":"docs","previous":{"title":"Langflow overview","permalink":"/concepts-overview"},"next":{"title":"Components","permalink":"/concepts-components"}}');var s=o(74848),i=o(28453),r=o(24754),c=o(84443);const l={title:"Playground",slug:"/concepts-playground"},a=void 0,d={},h={annotations:r.hk,Code:r.Cy},p={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},u=[{value:"Run a flow in the playgound",id:"run-a-flow-in-the-playgound",level:2},{value:"View playground messages by session ID",id:"view-playground-messages-by-session-id",level:2},{value:"Use custom Session IDs for multiple user interactions",id:"use-custom-session-ids-for-multiple-user-interactions",level:2},{value:"Work with images in the Playground",id:"work-with-images-in-the-playground",level:2}];function g(e){const n={a:"a",code:"code",h2:"h2",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return h||f("CH",!1),h.Code||f("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)(n.p,{children:["The\xa0",(0,s.jsx)(n.strong,{children:"Playground"}),"\xa0is a dynamic interface designed for real-time interaction with LLMs, allowing users to chat, access memories, and monitor inputs and outputs. Here, users can directly prototype their models, making adjustments and observing different outcomes."]}),"\n",(0,s.jsxs)(n.p,{children:["As long as you have an ",(0,s.jsx)(n.a,{href:"/components-io",children:"Input or Output"})," component working, you can open it by clicking the\xa0",(0,s.jsx)(n.strong,{children:"Playground"}),"\xa0button.\nThe Playground's window arrangement changes depending on what components are being used."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{src:o(75918).A+"",width:"3244",height:"1776"})}),"\n",(0,s.jsx)(n.h2,{id:"run-a-flow-in-the-playgound",children:"Run a flow in the playgound"}),"\n",(0,s.jsxs)(n.p,{children:["When you run a flow in the ",(0,s.jsx)(n.strong,{children:"Playground"}),", Langflow calls the ",(0,s.jsx)(n.code,{children:"/build/{flow_id}/flow"})," endpoint in ",(0,s.jsx)(n.a,{href:"https://github.com/langflow-ai/langflow/blob/main/src/backend/base/langflow/api/v1/chat.py#L162",children:"chat.py"}),". This call retrieves the flow data, builds a graph, and executes the graph. As each component (or node) is executed, the ",(0,s.jsx)(n.code,{children:"build_vertex"})," function calls ",(0,s.jsx)(n.code,{children:"build_and_run"}),", which may call the individual components' ",(0,s.jsx)(n.code,{children:"def_build"})," method, if it exists. If a component doesn't have a ",(0,s.jsx)(n.code,{children:"def_build"})," function, the build still returns a component."]}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"build"})," function allows components to execute logic at runtime. For example, the ",(0,s.jsx)(n.a,{href:"https://github.com/langflow-ai/langflow/blob/main/src/backend/base/langflow/components/langchain_utilities/recursive_character.py",children:"Recursive character text splitter"})," is a child of the ",(0,s.jsx)(n.code,{children:"LCTextSplitterComponent"})," class. When text needs to be processed, the parent class's ",(0,s.jsx)(n.code,{children:"build"})," method is called, which creates a ",(0,s.jsx)(n.code,{children:"RecursiveCharacterTextSplitter"})," object and uses it to split the text according to the defined parameters. The split text is then passed on to the next component. This all occurs when the component is built."]}),"\n",(0,s.jsx)(n.h2,{id:"view-playground-messages-by-session-id",children:"View playground messages by session ID"}),"\n",(0,s.jsxs)(n.p,{children:["When you send a message from the ",(0,s.jsx)(n.strong,{children:"Playground"})," interface, the interactions are stored in the ",(0,s.jsx)(n.strong,{children:"Message Logs"})," by ",(0,s.jsx)(n.code,{children:"session_id"}),".\nA single flow can have multiple chats, and different flows can share the same chat. Each chat will have a different ",(0,s.jsx)(n.code,{children:"session_id"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["To view messages by ",(0,s.jsx)(n.code,{children:"session_id"})," within the Playground, click the ",(0,s.jsx)(c.A,{name:"Ellipsis","aria-label":"Horizontal ellipsis"})," menu of any chat session, and then select ",(0,s.jsx)(n.strong,{children:"Message Logs"}),"."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{src:o(85629).A+"",width:"3250",height:"1778"})}),"\n",(0,s.jsx)(n.p,{children:"Individual messages in chat memory can be edited or deleted. Modifying these memories influences the behavior of the chatbot responses."}),"\n",(0,s.jsxs)(n.p,{children:["To learn more about chat memories in Langflow, see\xa0",(0,s.jsx)(n.a,{href:"/components-memories",children:"Memory components"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"use-custom-session-ids-for-multiple-user-interactions",children:"Use custom Session IDs for multiple user interactions"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"session_id"})," values are used to track user interactions in a flow.\nBy default, if the ",(0,s.jsx)(n.code,{children:"session_id"})," value is empty, it is set to the same value as the ",(0,s.jsx)(n.code,{children:"flow_id"}),". In this case, every chat call uses the same ",(0,s.jsx)(n.code,{children:"session_id"}),", and you effectively have one chat session."]}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"session_id"})," value can be configured in the ",(0,s.jsx)(n.strong,{children:"Advanced Settings"})," of the ",(0,s.jsx)(n.strong,{children:"Chat Input"})," and ",(0,s.jsx)(n.strong,{children:"Chat Output"})," components."]}),"\n",(0,s.jsxs)(n.p,{children:["To have more than one session in a single flow, pass a specific Session ID to a flow with the ",(0,s.jsx)(n.code,{children:"session_id"})," parameter in the URL. All the components in the flow will automatically use this ",(0,s.jsx)(n.code,{children:"session_id"})," value."]}),"\n",(0,s.jsx)(n.p,{children:"To post a message to a flow with a specific Session ID with curl, enter the following command:"}),"\n",(0,s.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:" curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:'POST "http://127.0.0.1:7860/api/v1/run/',props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:"'Content-Type: application/json' ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "session_id": "custom_session_123",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "input_value": "message",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "input_type": "chat",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "output_type": "chat"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsxs)(n.p,{children:["Check your flow's ",(0,s.jsx)(n.strong,{children:"Playground"}),". In addition to the messages stored for the Default Session, a new session is started with your custom Session ID."]}),"\n",(0,s.jsx)(n.h2,{id:"work-with-images-in-the-playground",children:"Work with images in the Playground"}),"\n",(0,s.jsx)(n.p,{children:"The Playground supports handling images in base64 format, allowing you to work with image data directly in your flows."}),"\n",(0,s.jsx)(n.p,{children:"The Playground accepts the following image formats:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"PNG"}),"\n",(0,s.jsx)(n.li,{children:"JPG/JPEG"}),"\n",(0,s.jsx)(n.li,{children:"GIF"}),"\n",(0,s.jsx)(n.li,{children:"BMP"}),"\n",(0,s.jsx)(n.li,{children:"WebP"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"You can work with base64 images in the Playground in several ways:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Direct Upload"}),": Use the image upload button in the chat interface to upload images directly."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Drag and Drop"}),": Drag and drop image files into the chat interface."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Programmatic Input"}),": Send base64-encoded images through the API."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"This example sends a base64-encoded image to the Playground using curl:"}),"\n",(0,s.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:'POST "http://127.0.0.1:7860/api/v1/run/',props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"-H ",props:{style:{color:"#C9D1D9"}}},{content:"'Content-Type: application/json' ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"-d ",props:{style:{color:"#C9D1D9"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "session_id": "custom_session_123",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "input_value": "What is in this image?",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "input_type": "chat",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "output_type": "chat",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "files": ["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."]',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsx)(n.p,{children:"The image is displayed in the chat interface and can be processed by your flow components."})]})}function m(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(g,{...e})}):g(e)}function f(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},75918:(e,n,o)=>{o.d(n,{A:()=>t});const t=o.p+"assets/images/playground-b2c623fb6849024570bc9bd5285309f5.png"},84443:(e,n,o)=>{o.d(n,{A:()=>i});o(96540);var t=o(64058),s=o(74848);function i(e){let{name:n,...o}=e;const i=t[n];return i?(0,s.jsx)(i,{...o}):null}},85629:(e,n,o)=>{o.d(n,{A:()=>t});const t=o.p+"assets/images/messages-logs-aec5213dc668ee51c2a40eab2ba0718c.png"}}]);
\ No newline at end of file
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[3968],{63917:(e,n,o)=>{o.r(n),o.d(n,{CH:()=>h,assets:()=>d,chCodeConfig:()=>p,contentTitle:()=>a,default:()=>m,frontMatter:()=>l,metadata:()=>t,toc:()=>u});const t=JSON.parse('{"id":"Concepts/concepts-playground","title":"Playground","description":"The\xa0Playground\xa0is a dynamic interface designed for real-time interaction with LLMs, allowing users to chat, access memories, and monitor inputs and outputs. Here, users can directly prototype their models, making adjustments and observing different outcomes.","source":"@site/docs/Concepts/concepts-playground.md","sourceDirName":"Concepts","slug":"/concepts-playground","permalink":"/concepts-playground","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Playground","slug":"/concepts-playground"},"sidebar":"docs","previous":{"title":"Langflow overview","permalink":"/concepts-overview"},"next":{"title":"Components","permalink":"/concepts-components"}}');var s=o(74848),i=o(28453),r=o(24754),c=o(84443);const l={title:"Playground",slug:"/concepts-playground"},a=void 0,d={},h={annotations:r.hk,Code:r.Cy},p={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},u=[{value:"Run a flow in the playgound",id:"run-a-flow-in-the-playgound",level:2},{value:"View playground messages by session ID",id:"view-playground-messages-by-session-id",level:2},{value:"Use custom Session IDs for multiple user interactions",id:"use-custom-session-ids-for-multiple-user-interactions",level:2},{value:"Work with images in the Playground",id:"work-with-images-in-the-playground",level:2}];function g(e){const n={a:"a",code:"code",h2:"h2",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return h||f("CH",!1),h.Code||f("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)(n.p,{children:["The\xa0",(0,s.jsx)(n.strong,{children:"Playground"}),"\xa0is a dynamic interface designed for real-time interaction with LLMs, allowing users to chat, access memories, and monitor inputs and outputs. Here, users can directly prototype their models, making adjustments and observing different outcomes."]}),"\n",(0,s.jsxs)(n.p,{children:["As long as you have an ",(0,s.jsx)(n.a,{href:"/components-io",children:"Input or Output"})," component working, you can open it by clicking the\xa0",(0,s.jsx)(n.strong,{children:"Playground"}),"\xa0button.\nThe Playground's window arrangement changes depending on what components are being used."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{src:o(75918).A+"",width:"3244",height:"1776"})}),"\n",(0,s.jsx)(n.h2,{id:"run-a-flow-in-the-playgound",children:"Run a flow in the playgound"}),"\n",(0,s.jsxs)(n.p,{children:["When you run a flow in the ",(0,s.jsx)(n.strong,{children:"Playground"}),", Langflow calls the ",(0,s.jsx)(n.code,{children:"/build/{flow_id}/flow"})," endpoint in ",(0,s.jsx)(n.a,{href:"https://github.com/langflow-ai/langflow/blob/main/src/backend/base/langflow/api/v1/chat.py#L162",children:"chat.py"}),". This call retrieves the flow data, builds a graph, and executes the graph. As each component (or node) is executed, the ",(0,s.jsx)(n.code,{children:"build_vertex"})," function calls ",(0,s.jsx)(n.code,{children:"build_and_run"}),", which may call the individual components' ",(0,s.jsx)(n.code,{children:"def_build"})," method, if it exists. If a component doesn't have a ",(0,s.jsx)(n.code,{children:"def_build"})," function, the build still returns a component."]}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"build"})," function allows components to execute logic at runtime. For example, the ",(0,s.jsx)(n.a,{href:"https://github.com/langflow-ai/langflow/blob/main/src/backend/base/langflow/components/langchain_utilities/recursive_character.py",children:"Recursive character text splitter"})," is a child of the ",(0,s.jsx)(n.code,{children:"LCTextSplitterComponent"})," class. When text needs to be processed, the parent class's ",(0,s.jsx)(n.code,{children:"build"})," method is called, which creates a ",(0,s.jsx)(n.code,{children:"RecursiveCharacterTextSplitter"})," object and uses it to split the text according to the defined parameters. The split text is then passed on to the next component. This all occurs when the component is built."]}),"\n",(0,s.jsx)(n.h2,{id:"view-playground-messages-by-session-id",children:"View playground messages by session ID"}),"\n",(0,s.jsxs)(n.p,{children:["When you send a message from the ",(0,s.jsx)(n.strong,{children:"Playground"})," interface, the interactions are stored in the ",(0,s.jsx)(n.strong,{children:"Message Logs"})," by ",(0,s.jsx)(n.code,{children:"session_id"}),".\nA single flow can have multiple chats, and different flows can share the same chat. Each chat will have a different ",(0,s.jsx)(n.code,{children:"session_id"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["To view messages by ",(0,s.jsx)(n.code,{children:"session_id"})," within the Playground, click the ",(0,s.jsx)(c.A,{name:"Ellipsis","aria-label":"Horizontal ellipsis"})," menu of any chat session, and then select ",(0,s.jsx)(n.strong,{children:"Message Logs"}),"."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{src:o(85629).A+"",width:"3250",height:"1778"})}),"\n",(0,s.jsx)(n.p,{children:"Individual messages in chat memory can be edited or deleted. Modifying these memories influences the behavior of the chatbot responses."}),"\n",(0,s.jsxs)(n.p,{children:["To learn more about chat memories in Langflow, see\xa0",(0,s.jsx)(n.a,{href:"/components-memories",children:"Memory components"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"use-custom-session-ids-for-multiple-user-interactions",children:"Use custom Session IDs for multiple user interactions"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"session_id"})," values are used to track user interactions in a flow.\nBy default, if the ",(0,s.jsx)(n.code,{children:"session_id"})," value is empty, it is set to the same value as the ",(0,s.jsx)(n.code,{children:"flow_id"}),". In this case, every chat call uses the same ",(0,s.jsx)(n.code,{children:"session_id"}),", and you effectively have one chat session."]}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"session_id"})," value can be configured in the ",(0,s.jsx)(n.strong,{children:"Advanced Settings"})," of the ",(0,s.jsx)(n.strong,{children:"Chat Input"})," and ",(0,s.jsx)(n.strong,{children:"Chat Output"})," components."]}),"\n",(0,s.jsxs)(n.p,{children:["To have more than one session in a single flow, pass a specific Session ID to a flow with the ",(0,s.jsx)(n.code,{children:"session_id"})," parameter in the URL. All the components in the flow will automatically use this ",(0,s.jsx)(n.code,{children:"session_id"})," value."]}),"\n",(0,s.jsx)(n.p,{children:"To post a message to a flow with a specific Session ID with curl, enter the following command:"}),"\n",(0,s.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:" curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:'POST "http://localhost:7860/api/v1/run/',props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:"'Content-Type: application/json' ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "session_id": "custom_session_123",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "input_value": "message",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "input_type": "chat",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "output_type": "chat"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsxs)(n.p,{children:["Check your flow's ",(0,s.jsx)(n.strong,{children:"Playground"}),". In addition to the messages stored for the Default Session, a new session is started with your custom Session ID."]}),"\n",(0,s.jsx)(n.h2,{id:"work-with-images-in-the-playground",children:"Work with images in the Playground"}),"\n",(0,s.jsx)(n.p,{children:"The Playground supports handling images in base64 format, allowing you to work with image data directly in your flows."}),"\n",(0,s.jsx)(n.p,{children:"The Playground accepts the following image formats:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"PNG"}),"\n",(0,s.jsx)(n.li,{children:"JPG/JPEG"}),"\n",(0,s.jsx)(n.li,{children:"GIF"}),"\n",(0,s.jsx)(n.li,{children:"BMP"}),"\n",(0,s.jsx)(n.li,{children:"WebP"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"You can work with base64 images in the Playground in several ways:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Direct Upload"}),": Use the image upload button in the chat interface to upload images directly."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Drag and Drop"}),": Drag and drop image files into the chat interface."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Programmatic Input"}),": Send base64-encoded images through the API."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"This example sends a base64-encoded image to the Playground using curl:"}),"\n",(0,s.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:'POST "http://localhost:7860/api/v1/run/',props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"-H ",props:{style:{color:"#C9D1D9"}}},{content:"'Content-Type: application/json' ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"-d ",props:{style:{color:"#C9D1D9"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "session_id": "custom_session_123",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "input_value": "What is in this image?",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "input_type": "chat",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "output_type": "chat",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "files": ["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."]',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsx)(n.p,{children:"The image is displayed in the chat interface and can be processed by your flow components."})]})}function m(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(g,{...e})}):g(e)}function f(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},75918:(e,n,o)=>{o.d(n,{A:()=>t});const t=o.p+"assets/images/playground-b2c623fb6849024570bc9bd5285309f5.png"},84443:(e,n,o)=>{o.d(n,{A:()=>i});o(96540);var t=o(64058),s=o(74848);function i(e){let{name:n,...o}=e;const i=t[n];return i?(0,s.jsx)(i,{...o}):null}},85629:(e,n,o)=>{o.d(n,{A:()=>t});const t=o.p+"assets/images/messages-logs-aec5213dc668ee51c2a40eab2ba0718c.png"}}]);
\ No newline at end of file
diff --git a/assets/js/14f42f9e.bac6ff4f.js b/assets/js/14f42f9e.7e0c7f47.js
similarity index 99%
rename from assets/js/14f42f9e.bac6ff4f.js
rename to assets/js/14f42f9e.7e0c7f47.js
index 5e7be9aa70..2bc41b4ae2 100644
--- a/assets/js/14f42f9e.bac6ff4f.js
+++ b/assets/js/14f42f9e.7e0c7f47.js
@@ -1 +1 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[444],{41671:(o,t,e)=>{e.r(t),e.d(t,{CH:()=>D,assets:()=>y,chCodeConfig:()=>d,contentTitle:()=>i,default:()=>C,frontMatter:()=>a,metadata:()=>n,toc:()=>F});const n=JSON.parse('{"id":"API-Reference/api-reference-api-examples","title":"API examples","description":"This page provides examples and practices for managing Langflow using the Langflow API.","source":"@site/docs/API-Reference/api-reference-api-examples.md","sourceDirName":"API-Reference","slug":"/api-reference-api-examples","permalink":"/api-reference-api-examples","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"API examples","slug":"/api-reference-api-examples"},"sidebar":"docs","previous":{"title":"Render","permalink":"/deployment-render"},"next":{"title":"Apify","permalink":"/integrations-apify"}}');var s=e(74848),l=e(28453),r=e(24754),c=e(65537),p=e(79329);const a={title:"API examples",slug:"/api-reference-api-examples"},i=void 0,y={},D={annotations:r.hk,Code:r.Cy},d={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},F=[{value:"Export values",id:"export-values",level:2},{value:"Base",id:"base",level:2},{value:"Get all components",id:"get-all-components",level:3},{value:"Run flow",id:"run-flow",level:3},{value:"Run endpoint headers and parameters",id:"run-endpoint-headers-and-parameters",level:4},{value:"Webhook run flow",id:"webhook-run-flow",level:3},{value:"Process",id:"process",level:3},{value:"Predict",id:"predict",level:3},{value:"Get task status",id:"get-task-status",level:3},{value:"Create upload file (Deprecated)",id:"create-upload-file-deprecated",level:3},{value:"Get version",id:"get-version",level:3},{value:"Get config",id:"get-config",level:3},{value:"Build",id:"build",level:2},{value:"Build flow",id:"build-flow",level:3},{value:"Build endpoint headers and parameters",id:"build-endpoint-headers-and-parameters",level:3},{value:"Configure the build endpoint",id:"configure-the-build-endpoint",level:3},{value:"Files",id:"files",level:2},{value:"Files/V1 endpoints",id:"filesv1-endpoints",level:2},{value:"Upload file (v1)",id:"upload-file-v1",level:3},{value:"Upload image files (v1)",id:"upload-image-files-v1",level:3},{value:"List files (v1)",id:"list-files-v1",level:3},{value:"Download file (v1)",id:"download-file-v1",level:3},{value:"Delete file (v1)",id:"delete-file-v1",level:3},{value:"Files/V2 endpoints",id:"filesv2-endpoints",level:2},{value:"Upload file (v2)",id:"upload-file-v2",level:3},{value:"Send files to your flows (v2)",id:"send-files-to-your-flows-v2",level:3},{value:"List files (v2)",id:"list-files-v2",level:3},{value:"Download file (v2)",id:"download-file-v2",level:3},{value:"Edit file name (v2)",id:"edit-file-name-v2",level:3},{value:"Delete file (v2)",id:"delete-file-v2",level:3},{value:"Delete all files (v2)",id:"delete-all-files-v2",level:3},{value:"Flows",id:"flows",level:2},{value:"Create flow",id:"create-flow",level:3},{value:"Read flows",id:"read-flows",level:3},{value:"Read flow",id:"read-flow",level:3},{value:"Update flow",id:"update-flow",level:3},{value:"Delete flow",id:"delete-flow",level:3},{value:"Create flows",id:"create-flows",level:3},{value:"Upload flows",id:"upload-flows",level:3},{value:"Download all flows",id:"download-all-flows",level:3},{value:"Read basic examples",id:"read-basic-examples",level:3},{value:"Projects",id:"projects",level:2},{value:"Read projects",id:"read-projects",level:3},{value:"Create project",id:"create-project",level:3},{value:"Read project",id:"read-project",level:3},{value:"Update project",id:"update-project",level:3},{value:"Delete project",id:"delete-project",level:3},{value:"Download project",id:"download-project",level:3},{value:"Upload project",id:"upload-project",level:3},{value:"Logs",id:"logs",level:2},{value:"Stream logs",id:"stream-logs",level:3},{value:"Retrieve logs with optional parameters",id:"retrieve-logs-with-optional-parameters",level:3},{value:"Monitor",id:"monitor",level:2},{value:"Get Vertex builds",id:"get-vertex-builds",level:3},{value:"Delete Vertex builds",id:"delete-vertex-builds",level:3},{value:"Get messages",id:"get-messages",level:3},{value:"Delete messages",id:"delete-messages",level:3},{value:"Update message",id:"update-message",level:3},{value:"Update session ID",id:"update-session-id",level:3},{value:"Delete messages by session",id:"delete-messages-by-session",level:3},{value:"Get transactions",id:"get-transactions",level:3}];function h(o){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",h4:"h4",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,l.R)(),...o.components};return D||u("CH",!1),D.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","\n",(0,s.jsx)(t.p,{children:"This page provides examples and practices for managing Langflow using the Langflow API."}),"\n",(0,s.jsxs)(t.p,{children:["The Langflow API's OpenAPI spec can be viewed and tested at your Langflow deployment's ",(0,s.jsx)(t.code,{children:"docs"})," endpoint.\nFor example, ",(0,s.jsx)(t.code,{children:"http://127.0.0.1:7860/docs"}),"."]}),"\n",(0,s.jsx)(t.h2,{id:"export-values",children:"Export values"}),"\n",(0,s.jsx)(t.p,{children:"You might find it helpful to set the following environment variables in your terminal."}),"\n",(0,s.jsx)(t.p,{children:"The examples in this guide use environment variables for these values."}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Export your Langflow URL in your terminal.\nLangflow starts by default at ",(0,s.jsx)(t.code,{children:"http://127.0.0.1:7860"}),"."]}),"\n"]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"export",props:{style:{color:"#FF7B72"}}},{content:" LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"http://127.0.0.1:7860"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Export the ",(0,s.jsx)(t.code,{children:"flow-id"})," in your terminal.\nThe ",(0,s.jsx)(t.code,{children:"flow-id"})," is found in the ",(0,s.jsx)(t.a,{href:"/concepts-publish",children:"Publish pane"})," or in the flow's URL."]}),"\n"]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'export FLOW_ID="359cd752-07ea-46f2-9d3b-a4407ef618da"',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Export the ",(0,s.jsx)(t.code,{children:"project-id"})," in your terminal.\nTo find your project ID, call the Langflow ",(0,s.jsx)(t.a,{href:"#read-projects",children:"/api/v1/projects/"})," endpoint for a list of projects."]}),"\n"]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/projects/" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"My Projects"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "description"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Manage your own projects. Download and upload projects."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"1415de42-8f01-4f36-bf34-539f23e47466"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "parent_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"]",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Export the ",(0,s.jsx)(t.code,{children:"project-id"})," as an environment variable."]}),"\n"]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"export",props:{style:{color:"#FF7B72"}}},{content:" project_ID",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"1415de42-8f01-4f36-bf34-539f23e47466"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Export the Langflow API key as an environment variable.\nTo create a Langflow API key, run the following command in the Langflow CLI."}),"\n"]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow api-key",props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"API Key Created Successfully:",props:{}}]},{tokens:[{content:"sk-...",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.p,{children:"Export the generated API key as an environment variable."}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'export LANGFLOW_API_KEY="sk-..."',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(t.h2,{id:"base",children:"Base"}),"\n",(0,s.jsx)(t.p,{children:"Use the base Langflow API to run your flow and retrieve configuration information."}),"\n",(0,s.jsx)(t.h3,{id:"get-all-components",children:"Get all components"}),"\n",(0,s.jsx)(t.p,{children:"This operation returns a dictionary of all Langflow components."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/all" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"A dictionary of all Langflow components.",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"run-flow",children:"Run flow"}),"\n",(0,s.jsx)(t.p,{children:"Execute a specified flow by ID or name.\nThe flow is executed as a batch, but LLM responses can be streamed."}),"\n",(0,s.jsxs)(t.p,{children:["This example runs a ",(0,s.jsx)(t.a,{href:"/starter-projects-basic-prompting",children:"Basic Prompting"})," flow with a given ",(0,s.jsx)(t.code,{children:"flow_id"})," and passes a JSON object as the input value."]}),"\n",(0,s.jsx)(t.p,{children:"The parameters are passed in the request body. In this example, the values are the default values."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/run/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "input_value": "Tell me about something interesting!",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "session_id": "chat-123",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "input_type": "chat",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "output_type": "chat",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "output_component": "",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "tweaks": null',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:' "session_id": "chat-123",',props:{}}]},{tokens:[{content:' "outputs": [{',props:{}}]},{tokens:[{content:' "inputs": {',props:{}}]},{tokens:[{content:' "input_value": "Tell me about something interesting!"',props:{}}]},{tokens:[{content:" },",props:{}}]},{tokens:[{content:' "outputs": [{',props:{}}]},{tokens:[{content:' "results": {',props:{}}]},{tokens:[{content:' "message": {',props:{}}]},{tokens:[{content:' "text": "Sure! Have you ever heard of the phenomenon known as \\"bioluminescence\\"? It\'s a fascinating natural occurrence where living organisms produce and emit light. This ability is found in various species, including certain types of jellyfish, fireflies, and deep-sea creatures like anglerfish.\\n\\nBioluminescence occurs through a chemical reaction in which a light-emitting molecule called luciferin reacts with oxygen, catalyzed by an enzyme called luciferase. The result is a beautiful glow that can serve various purposes, such as attracting mates, deterring predators, or luring prey.\\n\\nOne of the most stunning displays of bioluminescence can be seen in the ocean, where certain plankton emit light when disturbed, creating a mesmerizing blue glow in the water. This phenomenon is often referred to as \\"sea sparkle\\" and can be seen in coastal areas around the world.\\n\\nBioluminescence not only captivates our imagination but also has practical applications in science and medicine, including the development of biosensors and imaging techniques. It\'s a remarkable example of nature\'s creativity and complexity!",',props:{}}]},{tokens:[{content:' "sender": "Machine",',props:{}}]},{tokens:[{content:' "sender_name": "AI",',props:{}}]},{tokens:[{content:' "session_id": "chat-123",',props:{}}]},{tokens:[{content:' "timestamp": "2025-03-03T17:17:37+00:00",',props:{}}]},{tokens:[{content:' "flow_id": "d2bbd92b-187e-4c84-b2d4-5df365704201",',props:{}}]},{tokens:[{content:' "properties": {',props:{}}]},{tokens:[{content:' "source": {',props:{}}]},{tokens:[{content:' "id": "OpenAIModel-d1wOZ",',props:{}}]},{tokens:[{content:' "display_name": "OpenAI",',props:{}}]},{tokens:[{content:' "source": "gpt-4o-mini"',props:{}}]},{tokens:[{content:" },",props:{}}]},{tokens:[{content:' "icon": "OpenAI"',props:{}}]},{tokens:[{content:" },",props:{}}]},{tokens:[{content:' "component_id": "ChatOutput-ylMzN"',props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:" }]",props:{}}]},{tokens:[{content:" }]",props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(t.p,{children:["To stream LLM token responses, append the ",(0,s.jsx)(t.code,{children:"?stream=true"})," query parameter to the request. LLM chat responses are streamed back as ",(0,s.jsx)(t.code,{children:"token"})," events until the ",(0,s.jsx)(t.code,{children:"end"})," event closes the connection."]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/run/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'?stream=true" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "message": "Tell me something interesting!",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "session_id": "chat-123"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'{"event": "add_message", "data": {"timestamp": "2025-03-03T17:20:18", "sender": "User", "sender_name": "User", "session_id": "chat-123", "text": "Tell me about something interesting!", "files": [], "error": false, "edit": false, "properties": {"text_color": "", "background_color": "", "edited": false, "source": {"id": null, "display_name": null, "source": null}, "icon": "", "allow_markdown": false, "positive_feedback": null, "state": "complete", "targets": []}, "category": "message", "content_blocks": [], "id": "0103a21b-ebf7-4c02-9d72-017fb297f812", "flow_id": "d2bbd92b-187e-4c84-b2d4-5df365704201"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "add_message", "data": {"timestamp": "2025-03-03T17:20:18", "sender": "Machine", "sender_name": "AI", "session_id": "chat-123", "text": "", "files": [], "error": false, "edit": false, "properties": {"text_color": "", "background_color": "", "edited": false, "source": {"id": "OpenAIModel-d1wOZ", "display_name": "OpenAI", "source": "gpt-4o-mini"}, "icon": "OpenAI", "allow_markdown": false, "positive_feedback": null, "state": "complete", "targets": []}, "category": "message", "content_blocks": [], "id": "27b66789-e673-4c65-9e81-021752925161", "flow_id": "d2bbd92b-187e-4c84-b2d4-5df365704201"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "token", "data": {"chunk": " Have", "id": "27b66789-e673-4c65-9e81-021752925161", "timestamp": "2025-03-03 17:20:18 UTC"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "token", "data": {"chunk": " you", "id": "27b66789-e673-4c65-9e81-021752925161", "timestamp": "2025-03-03 17:20:18 UTC"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "token", "data": {"chunk": " ever", "id": "27b66789-e673-4c65-9e81-021752925161", "timestamp": "2025-03-03 17:20:18 UTC"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "token", "data": {"chunk": " heard", "id": "27b66789-e673-4c65-9e81-021752925161", "timestamp": "2025-03-03 17:20:18 UTC"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "token", "data": {"chunk": " of", "id": "27b66789-e673-4c65-9e81-021752925161", "timestamp": "2025-03-03 17:20:18 UTC"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "token", "data": {"chunk": " the", "id": "27b66789-e673-4c65-9e81-021752925161", "timestamp": "2025-03-03 17:20:18 UTC"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "token", "data": {"chunk": " phenomenon", "id": "27b66789-e673-4c65-9e81-021752925161", "timestamp": "2025-03-03 17:20:18 UTC"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "end", "data": {"result": {"session_id": "chat-123", "message": "Sure! Have you ever heard of the phenomenon known as \\"bioluminescence\\"?..."}}}',props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(t.p,{children:["This result is abbreviated, but illustrates where the ",(0,s.jsx)(t.code,{children:"end"})," event completes the LLM's token streaming response."]}),"\n",(0,s.jsx)(t.h4,{id:"run-endpoint-headers-and-parameters",children:"Run endpoint headers and parameters"}),"\n",(0,s.jsxs)(t.p,{children:["Parameters can be passed to the ",(0,s.jsx)(t.code,{children:"/run"})," endpoint in three ways:"]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["URL path: ",(0,s.jsx)(t.code,{children:"flow_id"})," as part of the endpoint path"]}),"\n",(0,s.jsxs)(t.li,{children:["Query string: ",(0,s.jsx)(t.code,{children:"stream"})," parameter in the URL"]}),"\n",(0,s.jsx)(t.li,{children:"Request body: JSON object containing the remaining parameters"}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Headers"})}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"Header"}),(0,s.jsx)(t.th,{children:"Info"}),(0,s.jsx)(t.th,{children:"Example"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Content-Type"}),(0,s.jsx)(t.td,{children:"Required. Specifies the JSON format."}),(0,s.jsx)(t.td,{children:'"application/json"'})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"accept"}),(0,s.jsx)(t.td,{children:"Required. Specifies the response format."}),(0,s.jsx)(t.td,{children:'"application/json"'})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"x-api-key"}),(0,s.jsx)(t.td,{children:"Optional. Required only if authentication is enabled."}),(0,s.jsx)(t.td,{children:'"sk-..."'})]})]})]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Parameters"})}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"Parameter"}),(0,s.jsx)(t.th,{children:"Type"}),(0,s.jsx)(t.th,{children:"Info"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"flow_id"}),(0,s.jsx)(t.td,{children:"UUID/string"}),(0,s.jsxs)(t.td,{children:["Required. Part of URL: ",(0,s.jsx)(t.code,{children:"/run/{flow_id}"})]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"stream"}),(0,s.jsx)(t.td,{children:"boolean"}),(0,s.jsxs)(t.td,{children:["Optional. Query parameter: ",(0,s.jsx)(t.code,{children:"/run/{flow_id}?stream=true"})]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"input_value"}),(0,s.jsx)(t.td,{children:"string"}),(0,s.jsxs)(t.td,{children:["Optional. JSON body field. Main input text/prompt. Default: ",(0,s.jsx)(t.code,{children:"null"})]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"input_type"}),(0,s.jsx)(t.td,{children:"string"}),(0,s.jsxs)(t.td,{children:['Optional. JSON body field. Input type ("chat" or "text"). Default: ',(0,s.jsx)(t.code,{children:'"chat"'})]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"output_type"}),(0,s.jsx)(t.td,{children:"string"}),(0,s.jsxs)(t.td,{children:['Optional. JSON body field. Output type ("chat", "any", "debug"). Default: ',(0,s.jsx)(t.code,{children:'"chat"'})]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"output_component"}),(0,s.jsx)(t.td,{children:"string"}),(0,s.jsxs)(t.td,{children:["Optional. JSON body field. Target component for output. Default: ",(0,s.jsx)(t.code,{children:'""'})]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"tweaks"}),(0,s.jsx)(t.td,{children:"object"}),(0,s.jsxs)(t.td,{children:["Optional. JSON body field. Component adjustments. Default: ",(0,s.jsx)(t.code,{children:"null"})]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"session_id"}),(0,s.jsx)(t.td,{children:"string"}),(0,s.jsxs)(t.td,{children:["Optional. JSON body field. Conversation context ID. Default: ",(0,s.jsx)(t.code,{children:"null"})]})]})]})]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Example request"})}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "http://',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/run/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'?stream=true" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"x-api-key: sk-..." ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "input_value": "Tell me a story",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "input_type": "chat",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "output_type": "chat",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "output_component": "chat_output",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "session_id": "chat-123",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "tweaks": {',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "component_id": {',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "parameter_name": "value"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsx)(t.h3,{id:"webhook-run-flow",children:"Webhook run flow"}),"\n",(0,s.jsx)(t.p,{children:"The webhook endpoint triggers flow execution with an HTTP POST request."}),"\n",(0,s.jsxs)(t.p,{children:["When a ",(0,s.jsx)(t.strong,{children:"Webhook"})," component is added to the workspace, a new ",(0,s.jsx)(t.strong,{children:"Webhook cURL"})," tab becomes available in the ",(0,s.jsx)(t.strong,{children:"API"})," pane that contains an HTTP POST request for triggering the webhook component, similar to the call in this example."]}),"\n",(0,s.jsxs)(t.p,{children:["To test the ",(0,s.jsx)(t.strong,{children:"Webhook"})," component in your flow, see the ",(0,s.jsx)(t.a,{href:"/components-data#webhook",children:"Webhook component"}),"."]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/webhook/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:'\'{"data": "example-data"}\'',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:' {"message":"Task started in the background","status":"in progress"}',props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"process",children:"Process"}),"\n",(0,s.jsx)(t.admonition,{type:"info",children:(0,s.jsxs)(t.p,{children:["This endpoint is deprecated. Use the ",(0,s.jsx)(t.code,{children:"/run"})," endpoint instead."]})}),"\n",(0,s.jsx)(t.h3,{id:"predict",children:"Predict"}),"\n",(0,s.jsx)(t.admonition,{type:"info",children:(0,s.jsxs)(t.p,{children:["This endpoint is deprecated. Use the ",(0,s.jsx)(t.code,{children:"/run"})," endpoint instead."]})}),"\n",(0,s.jsx)(t.h3,{id:"get-task-status",children:"Get task status"}),"\n",(0,s.jsx)(t.p,{children:"Get the status of a task."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/task/TASK_ID" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:' "status": "Task status",',props:{}}]},{tokens:[{content:' "result": "Task result if completed"',props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"create-upload-file-deprecated",children:"Create upload file (Deprecated)"}),"\n",(0,s.jsx)(t.admonition,{type:"info",children:(0,s.jsxs)(t.p,{children:["This endpoint is deprecated. Use the ",(0,s.jsx)(t.code,{children:"/file"})," endpoint instead."]})}),"\n",(0,s.jsx)(t.h3,{id:"get-version",children:"Get version"}),"\n",(0,s.jsx)(t.p,{children:"Get the version of the Langflow API."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/version" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:' "version": "1.1.1",',props:{}}]},{tokens:[{content:' "main_version": "1.1.1",',props:{}}]},{tokens:[{content:' "package": "Langflow"',props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"get-config",children:"Get config"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve the Langflow configuration information."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/config" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "feature_flags"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "mvp_components"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "frontend_timeout"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"0",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "auto_saving"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "auto_saving_interval"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"1000",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "health_check_max_retries"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"5",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "max_file_size_upload"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"100",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h2,{id:"build",children:"Build"}),"\n",(0,s.jsxs)(t.p,{children:["Use the ",(0,s.jsx)(t.code,{children:"/build"})," endpoint to build vertices and flows, and execute those flows with streaming event responses."]}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"/build"})," endpoint offers additional configuration for running flows."]}),"\n",(0,s.jsxs)(t.p,{children:["For a simpler execution of your flows, use the ",(0,s.jsxs)(t.a,{href:"/api-reference-api-examples#run-flow",children:[(0,s.jsx)(t.code,{children:"/run"})," endpoint"]})," instead."]}),"\n",(0,s.jsx)(t.h3,{id:"build-flow",children:"Build flow"}),"\n",(0,s.jsx)(t.admonition,{type:"important",children:(0,s.jsxs)(t.p,{children:["This endpoint is meant to be used by the frontend and is not optimized for external use.\nTo run your flow, use the ",(0,s.jsxs)(t.a,{href:"/api-reference-api-examples#run-flow",children:[(0,s.jsx)(t.code,{children:"/run"})," endpoint"]})," instead."]})}),"\n",(0,s.jsx)(t.p,{children:"This endpoint builds and executes a flow, returning a job ID that can be used to stream execution events."}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["Send a POST request to the ",(0,s.jsx)(t.code,{children:"/build/{flow_id}/flow"})," endpoint."]}),"\n"]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/build/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'/flow" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "inputs": {',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "input_value": "Tell me a story"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "job_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"123e4567-e89b-12d3-a456-426614174000"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(t.ol,{start:"2",children:["\n",(0,s.jsxs)(t.li,{children:["After receiving a job ID from the build endpoint, use the ",(0,s.jsx)(t.code,{children:"/build/{job_id}/events"})," endpoint to stream the execution results:"]}),"\n"]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/build/123e4567-e89b-12d3-a456-426614174000/events" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}},{content:'"event"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"vertices_sorted"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"data"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}},{content:'"ids"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}},{content:'"ChatInput-XtBLx"',props:{style:{color:"#A5D6FF"}}},{content:"], ",props:{style:{color:"#C9D1D9"}}},{content:'"to_run"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}},{content:'"Prompt-x74Ze"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"ChatOutput-ylMzN"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"ChatInput-XtBLx"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"OpenAIModel-d1wOZ"',props:{style:{color:"#A5D6FF"}}},{content:"]}}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}},{content:'"event"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"add_message"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"data"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}},{content:'"timestamp"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2025-03-03T17:42:23"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"sender"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"session_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"d2bbd92b-187e-4c84-b2d4-5df365704201"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"text"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Tell me a story"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"files"',props:{style:{color:"#7EE787"}}},{content:": [], ",props:{style:{color:"#C9D1D9"}}},{content:'"error"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"edit"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"properties"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}},{content:'"text_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"background_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"edited"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"source"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}},{content:'"id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"display_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"source"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:"}, ",props:{style:{color:"#C9D1D9"}}},{content:'"icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"allow_markdown"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"positive_feedback"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"state"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"complete"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"targets"',props:{style:{color:"#7EE787"}}},{content:": []}, ",props:{style:{color:"#C9D1D9"}}},{content:'"category"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"message"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"content_blocks"',props:{style:{color:"#7EE787"}}},{content:": [], ",props:{style:{color:"#C9D1D9"}}},{content:'"id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"28879bd8-6a68-4dd5-b658-74d643a4dd92"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"flow_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"d2bbd92b-187e-4c84-b2d4-5df365704201"',props:{style:{color:"#A5D6FF"}}},{content:"}}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"// ... Additional events as the flow executes ...",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}},{content:'"event"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"end"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"data"',props:{style:{color:"#7EE787"}}},{content:": {}}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(t.p,{children:["The events endpoint accepts an optional ",(0,s.jsx)(t.code,{children:"stream"})," query parameter which defaults to ",(0,s.jsx)(t.code,{children:"true"}),".\nTo disable streaming and get all events at once, set ",(0,s.jsx)(t.code,{children:"stream"})," to ",(0,s.jsx)(t.code,{children:"false"}),"."]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/build/123e4567-e89b-12d3-a456-426614174000/events?stream=false" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(t.h3,{id:"build-endpoint-headers-and-parameters",children:"Build endpoint headers and parameters"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Headers"})}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"Header"}),(0,s.jsx)(t.th,{children:"Info"}),(0,s.jsx)(t.th,{children:"Example"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Content-Type"}),(0,s.jsx)(t.td,{children:"Required. Specifies the JSON format."}),(0,s.jsx)(t.td,{children:'"application/json"'})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"accept"}),(0,s.jsx)(t.td,{children:"Required. Specifies the response format."}),(0,s.jsx)(t.td,{children:'"application/json"'})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"x-api-key"}),(0,s.jsx)(t.td,{children:"Optional. Required only if authentication is enabled."}),(0,s.jsx)(t.td,{children:'"sk-..."'})]})]})]}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"/build/{flow_id}/flow"})," endpoint accepts the following parameters in its request body:"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Parameters"})}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"Parameter"}),(0,s.jsx)(t.th,{children:"Type"}),(0,s.jsx)(t.th,{children:"Description"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"inputs"}),(0,s.jsx)(t.td,{children:"object"}),(0,s.jsx)(t.td,{children:"Optional. Input values for flow components."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"data"}),(0,s.jsx)(t.td,{children:"object"}),(0,s.jsx)(t.td,{children:"Optional. Flow data to override stored configuration."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"files"}),(0,s.jsx)(t.td,{children:"array[string]"}),(0,s.jsx)(t.td,{children:"Optional. List of file paths to use."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"stop_component_id"}),(0,s.jsx)(t.td,{children:"string"}),(0,s.jsx)(t.td,{children:"Optional. ID of the component where the execution should stop."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"start_component_id"}),(0,s.jsx)(t.td,{children:"string"}),(0,s.jsx)(t.td,{children:"Optional. ID of the component where the execution should start."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"log_builds"}),(0,s.jsx)(t.td,{children:"boolean"}),(0,s.jsxs)(t.td,{children:["Optional. Control build logging. Default: ",(0,s.jsx)(t.code,{children:"true"}),"."]})]})]})]}),"\n",(0,s.jsx)(t.h3,{id:"configure-the-build-endpoint",children:"Configure the build endpoint"}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"/build"})," endpoint accepts optional values for ",(0,s.jsx)(t.code,{children:"start_component_id"})," and ",(0,s.jsx)(t.code,{children:"stop_component_id"})," to control where the flow run starts and stops.\nSetting ",(0,s.jsx)(t.code,{children:"stop_component_id"})," for a component triggers the same behavior as clicking the ",(0,s.jsx)(t.strong,{children:"Play"})," button on that component, where all dependent components leading up to that component are also run.\nFor example, to stop flow execution at the Open AI model component, run the following command:"]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/build/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'/flow" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"x-api-key: ',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_API_KEY",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:'\'{"stop_component_id": "OpenAIModel-Uksag"}\'',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"/build"})," endpoint also accepts inputs for ",(0,s.jsx)(t.code,{children:"data"})," directly, instead of using the values stored in the Langflow database.\nThis is useful for running flows without having to pass custom values through the UI."]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/build/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'/flow" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "data": {',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "nodes": [],',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "edges": []',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "inputs": {',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "input_value": "Your custom input here",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "session": "session_id"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{ ",props:{style:{color:"#C9D1D9"}}},{content:'"job_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"0bcc7f23-40b4-4bfa-9b8a-a44181fd1175"',props:{style:{color:"#A5D6FF"}}},{content:" }",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h2,{id:"files",children:"Files"}),"\n",(0,s.jsxs)(t.p,{children:["Use the ",(0,s.jsx)(t.code,{children:"/files"})," endpoint to add or delete files between your local machine and Langflow."]}),"\n",(0,s.jsxs)(t.p,{children:["There are ",(0,s.jsx)(t.code,{children:"/v1"})," and ",(0,s.jsx)(t.code,{children:"/v2"})," versions of the ",(0,s.jsx)(t.code,{children:"/files"})," endpoints.\nThe ",(0,s.jsx)(t.code,{children:"v2/files"})," version offers several improvements over ",(0,s.jsx)(t.code,{children:"/v1"}),":"]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["In ",(0,s.jsx)(t.code,{children:"v1"}),", files are organized by ",(0,s.jsx)(t.code,{children:"flow_id"}),". In ",(0,s.jsx)(t.code,{children:"v2"}),", files are organized by ",(0,s.jsx)(t.code,{children:"user_id"}),".\nThis means files are accessed based on user ownership, and not tied to specific flows.\nYou can upload a file to Langflow one time, and use it with multiple flows."]}),"\n",(0,s.jsxs)(t.li,{children:["In ",(0,s.jsx)(t.code,{children:"v2"}),", files are tracked in the Langflow database, and can be added or deleted in bulk, instead of one by one."]}),"\n",(0,s.jsxs)(t.li,{children:["Responses from the ",(0,s.jsx)(t.code,{children:"/v2"})," endpoint contain more descriptive metadata."]}),"\n",(0,s.jsxs)(t.li,{children:["The ",(0,s.jsx)(t.code,{children:"v2"})," endpoints require authentication by an API key or JWT."]}),"\n",(0,s.jsxs)(t.li,{children:["The ",(0,s.jsx)(t.code,{children:"/v2/files"})," endpoint does not support sending ",(0,s.jsx)(t.strong,{children:"image"})," files to flows through the API. To send ",(0,s.jsx)(t.strong,{children:"image"})," files to your flows through the API, follow the procedure in ",(0,s.jsx)(t.a,{href:"#upload-image-files-v1",children:"Upload image files (v1)"}),"."]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"filesv1-endpoints",children:"Files/V1 endpoints"}),"\n",(0,s.jsxs)(t.p,{children:["Use the ",(0,s.jsx)(t.code,{children:"/files"})," endpoint to add or delete files between your local machine and Langflow."]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["In ",(0,s.jsx)(t.code,{children:"v1"}),", files are organized by ",(0,s.jsx)(t.code,{children:"flow_id"}),"."]}),"\n",(0,s.jsxs)(t.li,{children:["In ",(0,s.jsx)(t.code,{children:"v2"}),", files are organized by ",(0,s.jsx)(t.code,{children:"user_id"})," and tracked in the Langflow database, and can be added or deleted in bulk, instead of one by one."]}),"\n"]}),"\n",(0,s.jsx)(t.h3,{id:"upload-file-v1",children:"Upload file (v1)"}),"\n",(0,s.jsxs)(t.p,{children:["Upload a file to the ",(0,s.jsx)(t.code,{children:"v1/files/upload/"})," endpoint of your flow.\nReplace ",(0,s.jsx)(t.strong,{children:"FILE_NAME"})," with the uploaded file name."]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/files/upload/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: multipart/form-data" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -F ",props:{style:{color:"#79C0FF"}}},{content:'"file=@FILE_NAME.txt"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flowId"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"92f9a4c5-cfc8-4656-ae63-1f0881163c28"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "file_path"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"92f9a4c5-cfc8-4656-ae63-1f0881163c28/2024-12-30_15-19-43_your_file.txt"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"upload-image-files-v1",children:"Upload image files (v1)"}),"\n",(0,s.jsx)(t.p,{children:"Send image files to the Langflow API for AI analysis."}),"\n",(0,s.jsxs)(t.p,{children:["The default file limit is 100 MB. To configure this value, change the ",(0,s.jsx)(t.code,{children:"LANGFLOW_MAX_FILE_SIZE_UPLOAD"})," environment variable.\nFor more information, see ",(0,s.jsx)(t.a,{href:"/environment-variables#supported-variables",children:"Supported environment variables"}),"."]}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["To send an image to your flow with the API, POST the image file to the ",(0,s.jsx)(t.code,{children:"v1/files/upload/"})," endpoint of your flow.\nReplace ",(0,s.jsx)(t.strong,{children:"FILE_NAME"})," with the uploaded file name."]}),"\n"]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:'POST "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/files/upload/a430cc57-06bb-4c11-be39-d3d4de68d2c4" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: multipart/form-data" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -F ",props:{style:{color:"#79C0FF"}}},{content:'"file=@FILE_NAME.png"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsxs)(t.p,{children:["The API returns the image file path in the format ",(0,s.jsx)(t.code,{children:'"file_path":"/_"}'}),"."]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flowId"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"a430cc57-06bb-4c11-be39-d3d4de68d2c4"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "file_path"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"a430cc57-06bb-4c11-be39-d3d4de68d2c4/2024-11-27_14-47-50_image-file.png"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]}),"\n",(0,s.jsxs)(t.ol,{start:"2",children:["\n",(0,s.jsxs)(t.li,{children:["Post the image file to the ",(0,s.jsx)(t.strong,{children:"Chat Input"})," component of a ",(0,s.jsx)(t.strong,{children:"Basic prompting"})," flow.\nPass the file path value as an input in the ",(0,s.jsx)(t.strong,{children:"Tweaks"})," section of the curl call to Langflow.\nTo find your Chat input component's ID, use the ",(0,s.jsx)(t.a,{href:"#"})]}),"\n"]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/run/a430cc57-06bb-4c11-be39-d3d4de68d2c4?stream=false" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:"'Content-Type: application/json'",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "output_type": "chat",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "input_type": "chat",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "tweaks": {',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "ChatInput-b67sL": {',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "files": "a430cc57-06bb-4c11-be39-d3d4de68d2c4/2024-11-27_14-47-50_image-file.png",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "input_value": "what do you see?"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}}'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsx)(t.p,{children:"Your chatbot describes the image file you sent."}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'"text": "This flowchart appears to represent a complex system for processing financial inquiries using various AI agents and tools. Here\'s a breakdown of its components and how they might work together..."',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(t.h3,{id:"list-files-v1",children:"List files (v1)"}),"\n",(0,s.jsx)(t.p,{children:"List all files associated with a specific flow."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/files/list/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-30_15-19-43_your_file.txt"',props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"download-file-v1",children:"Download file (v1)"}),"\n",(0,s.jsx)(t.p,{children:"Download a specific file from a flow."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/files/download/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'/2024-12-30_15-19-43_your_file.txt" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" --output ",props:{style:{color:"#79C0FF"}}},{content:"downloaded_file.txt",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"File contents downloaded to downloaded_file.txt",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"delete-file-v1",children:"Delete file (v1)"}),"\n",(0,s.jsx)(t.p,{children:"Delete a specific file from a flow."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"DELETE ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/files/delete/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'/2024-12-30_15-19-43_your_file.txt" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"File 2024-12-30_15-19-43_your_file.txt deleted successfully"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h2,{id:"filesv2-endpoints",children:"Files/V2 endpoints"}),"\n",(0,s.jsxs)(t.p,{children:["In ",(0,s.jsx)(t.code,{children:"v2"}),", files are organized by ",(0,s.jsx)(t.code,{children:"user_id"})," and tracked in the Langflow database, and can be added or deleted in bulk, instead of one by one.\nThe ",(0,s.jsx)(t.code,{children:"v2"})," endpoints require authentication by an API key or JWT.\nTo create a Langflow API key and export it as an environment variable, see ",(0,s.jsx)(t.a,{href:"#export-values",children:"Export values"}),"."]}),"\n",(0,s.jsx)(t.h3,{id:"upload-file-v2",children:"Upload file (v2)"}),"\n",(0,s.jsx)(t.p,{children:"Upload a file to your user account. The file can be used across multiple flows."}),"\n",(0,s.jsxs)(t.p,{children:["The file is uploaded in the format ",(0,s.jsx)(t.code,{children:"USER_ID/FILE_ID.FILE_EXTENSION"}),", such as ",(0,s.jsx)(t.code,{children:"07e5b864-e367-4f52-b647-a48035ae7e5e/d44dc2e1-9ae9-4cf6-9114-8d34a6126c94.pdf"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["To retrieve your current ",(0,s.jsx)(t.code,{children:"user_id"}),", call the ",(0,s.jsx)(t.code,{children:"/whoami"})," endpoint."]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/users/whoami" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsx)(t.p,{children:"Result:"}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'{"id":"07e5b864-e367-4f52-b647-a48035ae7e5e","username":"langflow","profile_image":null,"store_api_key":null,"is_active":true,"is_superuser":true,"create_at":"2025-05-08T17:59:07.855965","updated_at":"2025-05-28T19:00:42.556460","last_login_at":"2025-05-28T19:00:42.554338","optins":{"github_starred":false,"dialog_dismissed":true,"discord_clicked":false,"mcp_dialog_dismissed":true}}',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(t.p,{children:["In the POST request to ",(0,s.jsx)(t.code,{children:"v2/files"}),", replace ",(0,s.jsx)(t.strong,{children:"@FILE_NAME.EXTENSION"})," with the uploaded file name and its extension.\nYou must include the ampersand (",(0,s.jsx)(t.code,{children:"@"}),") in the request to instruct curl to upload the contents of the file, not the string ",(0,s.jsx)(t.code,{children:"FILE_NAME.EXTENSION"}),"."]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v2/files" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: multipart/form-data" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"x-api-key: ',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_API_KEY",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -F ",props:{style:{color:"#79C0FF"}}},{content:'"file=@FILE_NAME.EXTENSION"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsxs)(t.p,{children:["The file is uploaded in the format ",(0,s.jsx)(t.code,{children:"USER_ID/FILE_ID.FILE_EXTENSION"}),", and the API returns metadata about the uploaded file:"]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}},{content:'"d44dc2e1-9ae9-4cf6-9114-8d34a6126c94"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}},{content:'"engine_manual"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "path"',props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}},{content:'"07e5b864-e367-4f52-b647-a48035ae7e5e/d44dc2e1-9ae9-4cf6-9114-8d34a6126c94.pdf"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "size"',props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}},{content:"851160",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "provider"',props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]}),"\n",(0,s.jsx)(t.h3,{id:"send-files-to-your-flows-v2",children:"Send files to your flows (v2)"}),"\n",(0,s.jsx)(t.admonition,{type:"important",children:(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"/v2/files"})," endpoint does not support sending ",(0,s.jsx)(t.strong,{children:"image"})," files to flows.\nTo send ",(0,s.jsx)(t.strong,{children:"image"})," files to your flows through the API, follow the procedure in ",(0,s.jsx)(t.a,{href:"#upload-image-files-v1",children:"Upload image files (v1)"}),"."]})}),"\n",(0,s.jsxs)(t.p,{children:["Send a file to your flow for analysis using the ",(0,s.jsx)(t.a,{href:"/components-data#file",children:"File"})," component and the API.\nYour flow must contain a ",(0,s.jsx)(t.a,{href:"/components-data#file",children:"File"})," component to receive the file."]}),"\n",(0,s.jsxs)(t.p,{children:["The default file limit is 100 MB. To configure this value, change the ",(0,s.jsx)(t.code,{children:"LANGFLOW_MAX_FILE_SIZE_UPLOAD"})," environment variable.\nFor more information, see ",(0,s.jsx)(t.a,{href:"/environment-variables#supported-variables",children:"Supported environment variables"}),"."]}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["To send a file to your flow with the API, POST the file to the ",(0,s.jsx)(t.code,{children:"/api/v2/files"})," endpoint.\nReplace ",(0,s.jsx)(t.strong,{children:"FILE_NAME"})," with the uploaded file name.\nThis is the same step described in ",(0,s.jsx)(t.a,{href:"#upload-file-v2",children:"Upload file (v2)"}),", but since you need the filename to upload to your flow, it is included here."]}),"\n"]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v2/files" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: multipart/form-data" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"x-api-key: ',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_API_KEY",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -F ",props:{style:{color:"#79C0FF"}}},{content:'"file=@FILE_NAME.EXTENSION"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsxs)(t.p,{children:["The file is uploaded in the format ",(0,s.jsx)(t.code,{children:"USER_ID/FILE_ID.FILE_EXTENSION"}),", and the API returns metadata about the uploaded file:"]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}},{content:'"d44dc2e1-9ae9-4cf6-9114-8d34a6126c94"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}},{content:'"engine_manual"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "path"',props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}},{content:'"07e5b864-e367-4f52-b647-a48035ae7e5e/d44dc2e1-9ae9-4cf6-9114-8d34a6126c94.pdf"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "size"',props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}},{content:"851160",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "provider"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]}),"\n",(0,s.jsxs)(t.ol,{start:"2",children:["\n",(0,s.jsxs)(t.li,{children:["To use this file in your flow, add a ",(0,s.jsx)(t.a,{href:"/components-data#file",children:"File"})," component to load a file into the flow."]}),"\n",(0,s.jsxs)(t.li,{children:["To load the file into your flow, send it to the ",(0,s.jsx)(t.strong,{children:"File"})," component.\nTo retrieve the ",(0,s.jsx)(t.strong,{children:"File"})," component's full name with the UUID attached, call the ",(0,s.jsx)(t.a,{href:"#read-flow",children:"Read flow"})," endpoint, and then include your ",(0,s.jsx)(t.strong,{children:"File"})," component and the file path as a tweak with the ",(0,s.jsx)(t.code,{children:"/v1/run"})," POST request.\nIn this example, the file uploaded to ",(0,s.jsx)(t.code,{children:"/v2/files"})," is included with the ",(0,s.jsx)(t.code,{children:"/v1/run"})," POST request."]}),"\n"]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl --request POST \\",props:{}}]},{tokens:[{content:' --url "$LANGFLOW_URL/api/v1/run/$FLOW_ID" \\',props:{}}]},{tokens:[{content:' --header "Content-Type: application/json" \\',props:{}}]},{tokens:[{content:" --data '{",props:{}}]},{tokens:[{content:' "input_value": "what do you see?",',props:{}}]},{tokens:[{content:' "output_type": "chat",',props:{}}]},{tokens:[{content:' "input_type": "text",',props:{}}]},{tokens:[{content:' "tweaks": {',props:{}}]},{tokens:[{content:' "File-1olS3": {',props:{}}]},{tokens:[{content:' "path": [',props:{}}]},{tokens:[{content:' "07e5b864-e367-4f52-b647-a48035ae7e5e/3a290013-fe1e-4d3d-a454-cacae81288f3.pdf"',props:{}}]},{tokens:[{content:" ]",props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:"}'",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(t.p,{children:"Result:"}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'"text":"This document provides important safety information and instructions for selecting, installing, and operating Briggs & Stratton engines. It includes warnings and guidelines to prevent injury, fire, or damage, such as choosing the correct engine model, proper installation procedures, safe fuel handling, and correct engine operation. The document emphasizes following all safety precautions and using authorized parts to ensure safe and effective engine use."',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(t.h3,{id:"list-files-v2",children:"List files (v2)"}),"\n",(0,s.jsx)(t.p,{children:"List all files associated with your user account."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v2/files" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"x-api-key: ',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_API_KEY",props:{style:{color:"#C9D1D9"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"c7b22c4c-d5e0-4ec9-af97-5d85b7657a34"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"your_file"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "path"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"6f17a73e-97d7-4519-a8d9-8e4c0be411bb/c7b22c4c-d5e0-4ec9-af97-5d85b7657a34.txt"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "size"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"1234",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "provider"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"]",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"download-file-v2",children:"Download file (v2)"}),"\n",(0,s.jsx)(t.p,{children:"Download a specific file by its ID and file extension."}),"\n",(0,s.jsx)(t.admonition,{type:"tip",children:(0,s.jsxs)(t.p,{children:["You must specify the file type you expect in the ",(0,s.jsx)(t.code,{children:"--output"})," value."]})}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v2/files/c7b22c4c-d5e0-4ec9-af97-5d85b7657a34" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"x-api-key: ',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_API_KEY",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" --output ",props:{style:{color:"#79C0FF"}}},{content:"downloaded_file.txt",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"File contents downloaded to downloaded_file.txt",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"edit-file-name-v2",children:"Edit file name (v2)"}),"\n",(0,s.jsx)(t.p,{children:"Change a file name."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"PUT ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v2/files/",props:{style:{color:"#A5D6FF"}}},{content:"$FILE_ID",props:{style:{color:"#C9D1D9"}}},{content:'?name=new_file_name" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"x-api-key: ',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_API_KEY",props:{style:{color:"#C9D1D9"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"76543e40-f388-4cb3-b0ee-a1e870aca3d3"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"new_file_name"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "path"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"6f17a73e-97d7-4519-a8d9-8e4c0be411bb/76543e40-f388-4cb3-b0ee-a1e870aca3d3.png"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "size"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"2728251",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "provider"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"delete-file-v2",children:"Delete file (v2)"}),"\n",(0,s.jsx)(t.p,{children:"Delete a specific file by its ID."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"DELETE ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v2/files/",props:{style:{color:"#A5D6FF"}}},{content:"$FILE_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"x-api-key: ',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_API_KEY",props:{style:{color:"#C9D1D9"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"File deleted successfully"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"delete-all-files-v2",children:"Delete all files (v2)"}),"\n",(0,s.jsx)(t.p,{children:"Delete all files associated with your user account."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"DELETE ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v2/files" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"x-api-key: ',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_API_KEY",props:{style:{color:"#C9D1D9"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"All files deleted successfully"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h2,{id:"flows",children:"Flows"}),"\n",(0,s.jsxs)(t.p,{children:["Use the ",(0,s.jsx)(t.code,{children:"/flows"})," endpoint to create, read, update, and delete flows."]}),"\n",(0,s.jsx)(t.h3,{id:"create-flow",children:"Create flow"}),"\n",(0,s.jsx)(t.p,{children:"Create a new flow."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/flows/" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "name": "string2",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "description": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "icon": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "icon_bg_color": "#FF0000",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "gradient": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "data": {},',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "is_component": false,',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "updated_at": "2024-12-30T15:48:01.519Z",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "webhook": false,',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "endpoint_name": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "tags": [',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "string"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ]",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string2"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "description"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon_bg_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"#FF0000"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "gradient"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "data"',props:{style:{color:"#7EE787"}}},{content:": {},",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "is_component"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "updated_at"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2025-02-04T21:07:36+00:00"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "webhook"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "endpoint_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "tags"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "locked"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"e8d81c37-714b-49ae-ba82-e61141f020ee"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "user_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"f58396d4-a387-4bb8-b749-f40825c3d9f3"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "project_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"1415de42-8f01-4f36-bf34-539f23e47466"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"read-flows",children:"Read flows"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve a list of flows with pagination support."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/flows/?remove_example_flows=false&components_only=false&get_all=true&header_flows=false&page=1&size=50" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"A JSON object containing a list of flows.",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(t.p,{children:["To retrieve only the flows from a specific project, pass ",(0,s.jsx)(t.code,{children:"project_id"})," in the query string."]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/flows/?remove_example_flows=true&components_only=false&get_all=false&project_id=",props:{style:{color:"#A5D6FF"}}},{content:"$PROJECT_ID",props:{style:{color:"#C9D1D9"}}},{content:'&header_flows=false&page=1&size=1" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"A JSON object containing a list of flows.",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"read-flow",children:"Read flow"}),"\n",(0,s.jsx)(t.p,{children:"Read a specific flow by its ID."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/flows/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Basic Prompting"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "description"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Perform basic prompting with an OpenAI model."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Braces"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon_bg_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "gradient"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "data"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "nodes"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#FFA198",fontStyle:"italic"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"update-flow",children:"Update flow"}),"\n",(0,s.jsx)(t.p,{children:"Update an existing flow by its ID."}),"\n",(0,s.jsxs)(t.p,{children:["This example changes the value for ",(0,s.jsx)(t.code,{children:"endpoint_name"})," from a random UUID to ",(0,s.jsx)(t.code,{children:"my_new_endpoint_name"}),"."]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"PATCH ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/flows/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "name": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "description": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "data": {},',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "project_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "project_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "endpoint_name": "my_new_endpoint_name",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "locked": true',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "description"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Braces"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon_bg_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "gradient"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "data"',props:{style:{color:"#7EE787"}}},{content:": {},",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "is_component"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "updated_at"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-30T18:30:22+00:00"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "webhook"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "endpoint_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"my_new_endpoint_name"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "tags"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "locked"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "user_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"f58396d4-a387-4bb8-b749-f40825c3d9f3"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "project_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "project_id"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#FFA198",fontStyle:"italic"}}},{content:'"3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"delete-flow",children:"Delete flow"}),"\n",(0,s.jsx)(t.p,{children:"Delete a specific flow by its ID."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"DELETE ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/flows/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Flow deleted successfully"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"create-flows",children:"Create flows"}),"\n",(0,s.jsx)(t.p,{children:"Create multiple new flows."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/flows/batch/" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "flows": [',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" {",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "name": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "description": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "icon": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "icon_bg_color": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "gradient": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "data": {},',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "is_component": false,',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "updated_at": "2024-12-30T18:36:02.737Z",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "webhook": false,',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "endpoint_name": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "tags": [',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "string"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ],",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "locked": false,',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "user_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "project_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "project_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" {",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "name": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "description": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "icon": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "icon_bg_color": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "gradient": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "data": {},',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "is_component": false,',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "updated_at": "2024-12-30T18:36:02.737Z",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "webhook": false,',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "endpoint_name": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "tags": [',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "string"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ],",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "locked": false,',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "user_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "project_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "project_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ]",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" // FlowRead objects",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"]",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"upload-flows",children:"Upload flows"}),"\n",(0,s.jsx)(t.p,{children:"Upload flows from a file."}),"\n",(0,s.jsxs)(t.p,{children:["This example uploads a local file named ",(0,s.jsx)(t.code,{children:"agent-with-astra-db-tool.json"}),"."]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/flows/upload/?project_id=",props:{style:{color:"#A5D6FF"}}},{content:"$PROJECT_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: multipart/form-data" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -F ",props:{style:{color:"#79C0FF"}}},{content:'"file=@agent-with-astra-db-tool.json;type=application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"agent-with-astra-db-tool"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "description"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon_bg_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "gradient"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "data"',props:{style:{color:"#7EE787"}}},{content:": {}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#FFA198",fontStyle:"italic"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"]",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(t.p,{children:["To specify a target project for the flow, include the query parameter ",(0,s.jsx)(t.code,{children:"project_id"}),".\nThe target ",(0,s.jsx)(t.code,{children:"project_id"})," must already exist before uploading a flow. Call the ",(0,s.jsx)(t.a,{href:"#read-projects",children:"/api/v1/projects/"})," endpoint for a list of available projects.\nTo specify a target project for the flow, include the query parameter ",(0,s.jsx)(t.code,{children:"project_id"}),".\nThe target ",(0,s.jsx)(t.code,{children:"project_id"})," must already exist before uploading a flow. Call the ",(0,s.jsx)(t.a,{href:"#read-projects",children:"/api/v1/projects/"})," endpoint for a list of available projects."]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/flows/upload/?project_id=",props:{style:{color:"#A5D6FF"}}},{content:"$PROJECT_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: multipart/form-data" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -F ",props:{style:{color:"#79C0FF"}}},{content:'"file=@agent-with-astra-db-tool.json;type=application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsx)(t.h3,{id:"download-all-flows",children:"Download all flows"}),"\n",(0,s.jsx)(t.p,{children:"Download all flows as a ZIP file."}),"\n",(0,s.jsxs)(t.p,{children:["This endpoint downloads a ZIP file containing flows for all ",(0,s.jsx)(t.code,{children:"flow-id"})," values listed in the command's body."]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/flows/download/" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'[",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "e1e40c77-0541-41a9-88ab-ddb3419398b5",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "92f9a4c5-cfc8-4656-ae63-1f0881163c28"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"]' ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" --output ",props:{style:{color:"#79C0FF"}}},{content:"langflow-flows.zip",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:" % Total % Received % Xferd Average Speed Time Time Time Current",props:{}}]},{tokens:[{content:" Dload Upload Total Spent Left Speed",props:{}}]},{tokens:[{content:"100 76437 0 76353 100 84 4516k 5088 --:--:-- --:--:-- --:--:-- 4665k",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"read-basic-examples",children:"Read basic examples"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve a list of basic example flows."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/flows/basic_examples/" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"A list of example flows.",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h2,{id:"projects",children:"Projects"}),"\n",(0,s.jsxs)(t.p,{children:["Use the ",(0,s.jsx)(t.code,{children:"/projects"})," endpoint to create, read, update, and delete projects."]}),"\n",(0,s.jsx)(t.p,{children:"Projects store your flows and components."}),"\n",(0,s.jsx)(t.h3,{id:"read-projects",children:"Read projects"}),"\n",(0,s.jsx)(t.p,{children:"Get a list of Langflow projects."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/projects/" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"My Projects"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "description"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Manage your own projects. Download and upload projects."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"1415de42-8f01-4f36-bf34-539f23e47466"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "parent_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"]",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"create-project",children:"Create project"}),"\n",(0,s.jsx)(t.p,{children:"Create a new project."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/projects/" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "name": "new_project_name",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "description": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "components_list": [],',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "flows_list": []',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"new_project_name"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "description"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"b408ddb9-6266-4431-9be8-e04a62758331"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "parent_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(t.p,{children:["To add flows and components at project creation, retrieve the ",(0,s.jsx)(t.code,{children:"components_list"})," and ",(0,s.jsx)(t.code,{children:"flows_list"})," values from the ",(0,s.jsx)(t.a,{href:"#get-all-components",children:"/api/v1/store/components"})," and ",(0,s.jsx)(t.a,{href:"#read-flows",children:"/api/v1/flows/read"})," endpoints and add them to the request body."]}),"\n",(0,s.jsx)(t.p,{children:"Adding a flow to a project moves the flow from its previous location. The flow is not copied."}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/projects/" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "name": "new_project_name",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "description": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "components_list": [',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ],",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "flows_list": [',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ]",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsx)(t.h3,{id:"read-project",children:"Read project"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve details of a specific project."}),"\n",(0,s.jsxs)(t.p,{children:["To find the UUID of your project, call the ",(0,s.jsx)(t.a,{href:"#read-projects",children:"read projects"})," endpoint."]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/projects/",props:{style:{color:"#A5D6FF"}}},{content:"$PROJECT_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"My Projects"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "description"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Manage your own projects. Download and upload projects."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "parent_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"]",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"update-project",children:"Update project"}),"\n",(0,s.jsxs)(t.p,{children:["Update the information of a specific project with a ",(0,s.jsx)(t.code,{children:"PATCH"})," request."]}),"\n",(0,s.jsx)(t.p,{children:"Each PATCH request updates the project with the values you send.\nOnly the fields you include in your request are updated.\nIf you send the same values multiple times, the update is still processed, even if the values are unchanged."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"PATCH ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/projects/b408ddb9-6266-4431-9be8-e04a62758331" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "name": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "description": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "parent_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "components": [',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ],",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "flows": [',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ]",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "description"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"b408ddb9-6266-4431-9be8-e04a62758331"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "parent_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"delete-project",children:"Delete project"}),"\n",(0,s.jsx)(t.p,{children:"Delete a specific project."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"DELETE ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/projects/",props:{style:{color:"#A5D6FF"}}},{content:"$PROJECT_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: */*"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"204 No Content",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"download-project",children:"Download project"}),"\n",(0,s.jsx)(t.p,{children:"Download all flows from a project as a zip file."}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"--output"})," flag is optional."]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/projects/download/b408ddb9-6266-4431-9be8-e04a62758331" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" --output ",props:{style:{color:"#79C0FF"}}},{content:"langflow-project.zip",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"The project contents.",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"upload-project",children:"Upload project"}),"\n",(0,s.jsx)(t.p,{children:"Upload a project to Langflow."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/projects/upload/" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: multipart/form-data" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -F ",props:{style:{color:"#79C0FF"}}},{content:'"file=@20241230_135006_langflow_flows.zip;type=application/zip"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"The project contents are uploaded to Langflow.",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h2,{id:"logs",children:"Logs"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve logs for your Langflow flow."}),"\n",(0,s.jsx)(t.p,{children:"This endpoint requires log retrieval to be enabled in your Langflow application."}),"\n",(0,s.jsxs)(t.p,{children:["To enable log retrieval, include these values in your ",(0,s.jsx)(t.code,{children:".env"})," file:"]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW_ENABLE_LOG_RETRIEVAL=true",props:{}}]},{tokens:[{content:"LANGFLOW_LOG_RETRIEVER_BUFFER_SIZE=10000",props:{}}]},{tokens:[{content:"LANGFLOW_LOG_LEVEL=DEBUG",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(t.p,{children:["For log retrieval to function, ",(0,s.jsx)(t.code,{children:"LANGFLOW_LOG_RETRIEVER_BUFFER_SIZE"})," needs to be greater than 0. The default value is ",(0,s.jsx)(t.code,{children:"10000"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["Start Langflow with this ",(0,s.jsx)(t.code,{children:".env"}),":"]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv run langflow run --env-file .env",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(t.h3,{id:"stream-logs",children:"Stream logs"}),"\n",(0,s.jsx)(t.p,{children:"Stream logs in real-time using Server-Sent Events (SSE)."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/logs-stream" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: text/event-stream"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"keepalive",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"1736355791151": "2025-01-08T12:03:11.151218-0500 DEBUG Building Chat Input\\n"}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"1736355791485": "2025-01-08T12:03:11.485380-0500 DEBUG consumed event add_message-153bcd5d-ef4d-4ece-8cc0-47c6b6a9ef92 (time in queue, 0.0000, client 0.0001)\\n"}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"1736355791499": "2025-01-08T12:03:11.499704-0500 DEBUG consumed event end_vertex-3d7125cd-7b8a-44eb-9113-ed5b785e3cf3 (time in queue, 0.0056, client 0.0047)\\n"}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"1736355791502": "2025-01-08T12:03:11.502510-0500 DEBUG consumed event end-40d0b363-5618-4a23-bbae-487cd0b9594d (time in queue, 0.0001, client 0.0004)\\n"}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"1736355791513": "2025-01-08T12:03:11.513097-0500 DEBUG Logged vertex build: 729ff2f8-6b01-48c8-9ad0-3743c2af9e8a\\n"}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"1736355791834": "2025-01-08T12:03:11.834982-0500 DEBUG Telemetry data sent successfully.\\n"}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"1736355791941": "2025-01-08T12:03:11.941840-0500 DEBUG Telemetry data sent successfully.\\n"}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"keepalive",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"retrieve-logs-with-optional-parameters",children:"Retrieve logs with optional parameters"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve logs with optional query parameters."}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"lines_before"}),": The number of logs before the timestamp or the last log."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"lines_after"}),": The number of logs after the timestamp."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"timestamp"}),": The timestamp to start getting logs from."]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["The default values for all three parameters is ",(0,s.jsx)(t.code,{children:"0"}),".\nWith these values, the endpoint returns the last 10 lines of logs."]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/logs?lines_before=0&lines_after=0×tamp=0" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:' "1736354770500": "2025-01-08T11:46:10.500363-0500 DEBUG Creating starter project Document Q&A\\n",',props:{}}]},{tokens:[{content:' "1736354770511": "2025-01-08T11:46:10.511146-0500 DEBUG Creating starter project Image Sentiment Analysis\\n",',props:{}}]},{tokens:[{content:' "1736354770521": "2025-01-08T11:46:10.521018-0500 DEBUG Creating starter project SEO Keyword Generator\\n",',props:{}}]},{tokens:[{content:' "1736354770532": "2025-01-08T11:46:10.532677-0500 DEBUG Creating starter project Sequential Tasks Agents\\n",',props:{}}]},{tokens:[{content:' "1736354770544": "2025-01-08T11:46:10.544010-0500 DEBUG Creating starter project Custom Component Generator\\n",',props:{}}]},{tokens:[{content:' "1736354770555": "2025-01-08T11:46:10.555513-0500 DEBUG Creating starter project Prompt Chaining\\n",',props:{}}]},{tokens:[{content:' "1736354770588": "2025-01-08T11:46:10.588105-0500 DEBUG Create service ServiceType.CHAT_SERVICE\\n",',props:{}}]},{tokens:[{content:' "1736354771021": "2025-01-08T11:46:11.021817-0500 DEBUG Telemetry data sent successfully.\\n",',props:{}}]},{tokens:[{content:' "1736354775619": "2025-01-08T11:46:15.619545-0500 DEBUG Create service ServiceType.STORE_SERVICE\\n",',props:{}}]},{tokens:[{content:' "1736354775699": "2025-01-08T11:46:15.699661-0500 DEBUG File 046-rocket.svg retrieved successfully from flow /Users/mendon.kissling/Library/Caches/langflow/profile_pictures/Space.\\n"',props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h2,{id:"monitor",children:"Monitor"}),"\n",(0,s.jsxs)(t.p,{children:["Use the ",(0,s.jsx)(t.code,{children:"/monitor"})," endpoint to monitor and modify messages passed between Langflow components, vertex builds, and transactions."]}),"\n",(0,s.jsx)(t.h3,{id:"get-vertex-builds",children:"Get Vertex builds"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve Vertex builds for a specific flow."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/monitor/builds?flow_id=",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "vertex_builds"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "ChatInput-NCmix"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "data"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "results"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text_key"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"text"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "data"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timestamp"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-23 19:10:57"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "session_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Hello"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "error"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"False"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edit"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"False"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "properties"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "background_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edited"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"False"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"None"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"None"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"None"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "allow_markdown"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"False"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "positive_feedback"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"None"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "state"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"complete"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "targets"',props:{style:{color:"#7EE787"}}},{content:": []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "category"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"message"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "content_blocks"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"c95bed34-f906-4aa6-84e4-68553f6db772"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flow_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "default_value"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Hello"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "session_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timestamp"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-23 19:10:57+00:00"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flow_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "error"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"False"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edit"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"False"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "properties"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "background_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edited"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"False"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"None"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"None"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"None"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "allow_markdown"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"False"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "positive_feedback"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"None"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "state"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"complete"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "targets"',props:{style:{color:"#7EE787"}}},{content:": []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "category"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"message"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "content_blocks"',props:{style:{color:"#7EE787"}}},{content:": []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "outputs"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timestamp"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-23T19:10:57"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "session_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Hello"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "error"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edit"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "properties"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "background_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edited"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "allow_markdown"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "positive_feedback"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "state"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"complete"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "targets"',props:{style:{color:"#7EE787"}}},{content:": []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "category"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"message"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "content_blocks"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"c95bed34-f906-4aa6-84e4-68553f6db772"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flow_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"object"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "logs"',props:{style:{color:"#7EE787"}}},{content:": { ",props:{style:{color:"#C9D1D9"}}},{content:'"message"',props:{style:{color:"#7EE787"}}},{content:": [] },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Hello"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"object"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "artifacts"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Hello"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"object"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timedelta"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"0.015060124918818474",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "duration"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"15 ms"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "used_frozen_result"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "artifacts"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Hello"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"object"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "params"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"- Files: []',props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:" Message: Hello",props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:" Sender: User",props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:" Sender Name: User",props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:" Type: object",props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "valid"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "build_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"40aa200e-74db-4651-b698-f80301d2b26b"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"ChatInput-NCmix"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timestamp"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-23T19:10:58.772766Z"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flow_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Prompt-BEn9c"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "data"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "results"',props:{style:{color:"#7EE787"}}},{content:": {},",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "outputs"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "prompt"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"text"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "logs"',props:{style:{color:"#7EE787"}}},{content:": { ",props:{style:{color:"#C9D1D9"}}},{content:'"prompt"',props:{style:{color:"#7EE787"}}},{content:": [] },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "prompt"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "repr"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "raw"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"text"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "artifacts"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "prompt"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "repr"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "raw"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"text"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timedelta"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"0.0057758750626817346",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "duration"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"6 ms"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "used_frozen_result"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "artifacts"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "prompt"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "repr"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "raw"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"text"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "params"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"None"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "valid"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "build_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"39bbbfde-97fd-42a5-a9ed-d42a5c5d532b"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Prompt-BEn9c"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timestamp"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-23T19:10:58.781019Z"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flow_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "OpenAIModel-7AjrN"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "data"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "results"',props:{style:{color:"#7EE787"}}},{content:": {},",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "outputs"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text_output"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"Hello! \ud83c\udf1f I'm excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it's a project, an idea, or a concept, let's dive in and make it happen!\"",props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"text"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "model_output"',props:{style:{color:"#7EE787"}}},{content:": { ",props:{style:{color:"#C9D1D9"}}},{content:'"message"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"unknown"',props:{style:{color:"#A5D6FF"}}},{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "logs"',props:{style:{color:"#7EE787"}}},{content:": { ",props:{style:{color:"#C9D1D9"}}},{content:'"text_output"',props:{style:{color:"#7EE787"}}},{content:": [] },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text_output"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "repr"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"Hello! \ud83c\udf1f I'm excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it's a project, an idea, or a concept, let's dive in and make it happen!\"",props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "raw"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"Hello! \ud83c\udf1f I'm excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it's a project, an idea, or a concept, let's dive in and make it happen!\"",props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"text"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "artifacts"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text_output"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "repr"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"Hello! \ud83c\udf1f I'm excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it's a project, an idea, or a concept, let's dive in and make it happen!\"",props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "raw"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"Hello! \ud83c\udf1f I'm excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it's a project, an idea, or a concept, let's dive in and make it happen!\"",props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"text"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timedelta"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"1.034765167045407",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "duration"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"1.03 seconds"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "used_frozen_result"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "artifacts"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text_output"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "repr"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"Hello! \ud83c\udf1f I'm excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it's a project, an idea, or a concept, let's dive in and make it happen!\"",props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "raw"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"Hello! \ud83c\udf1f I'm excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it's a project, an idea, or a concept, let's dive in and make it happen!\"",props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"text"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "params"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"None"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "valid"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "build_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"4f0ae730-a266-4d35-b89f-7b825c620a0f"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"OpenAIModel-7AjrN"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timestamp"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-23T19:10:58.790484Z"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flow_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "ChatOutput-sfUhT"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "data"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "results"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text_key"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"text"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "data"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timestamp"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-23 19:10:58"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Machine"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"AI"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "session_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"Hello! \ud83c\udf1f I'm excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it's a project, an idea, or a concept, let's dive in and make it happen!\"",props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "error"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"False"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edit"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"False"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "properties"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "background_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edited"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"False"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"OpenAIModel-7AjrN"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"OpenAI"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"gpt-4o-mini"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"OpenAI"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "allow_markdown"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"False"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "positive_feedback"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"None"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "state"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"complete"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "targets"',props:{style:{color:"#7EE787"}}},{content:": []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "category"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"message"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "content_blocks"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"5688356d-9f30-40ca-9907-79a7a2fc16fd"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flow_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "default_value"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"Hello! \ud83c\udf1f I'm excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it's a project, an idea, or a concept, let's dive in and make it happen!\"",props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Machine"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"AI"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "session_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timestamp"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-23 19:10:58+00:00"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flow_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "error"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"False"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edit"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"False"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "properties"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "background_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edited"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"False"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"OpenAIModel-7AjrN"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"OpenAI"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"gpt-4o-mini"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"OpenAI"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "allow_markdown"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"False"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "positive_feedback"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"None"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "state"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"complete"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "targets"',props:{style:{color:"#7EE787"}}},{content:": []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "category"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"message"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "content_blocks"',props:{style:{color:"#7EE787"}}},{content:": []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "outputs"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timestamp"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-23T19:10:58"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Machine"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"AI"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "session_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"Hello! \ud83c\udf1f I'm excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it's a project, an idea, or a concept, let's dive in and make it happen!\"",props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "error"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edit"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "properties"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "background_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edited"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"OpenAIModel-7AjrN"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"OpenAI"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"gpt-4o-mini"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"OpenAI"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "allow_markdown"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "positive_feedback"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "state"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"complete"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "targets"',props:{style:{color:"#7EE787"}}},{content:": []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "category"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"message"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "content_blocks"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"5688356d-9f30-40ca-9907-79a7a2fc16fd"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flow_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"object"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "logs"',props:{style:{color:"#7EE787"}}},{content:": { ",props:{style:{color:"#C9D1D9"}}},{content:'"message"',props:{style:{color:"#7EE787"}}},{content:": [] },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"Hello! \ud83c\udf1f I'm excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it's a project, an idea, or a concept, let's dive in and make it happen!\"",props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Machine"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"AI"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"object"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "artifacts"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"Hello! \ud83c\udf1f I'm excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it's a project, an idea, or a concept, let's dive in and make it happen!\"",props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Machine"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"AI"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"object"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timedelta"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"0.017838125000707805",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "duration"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"18 ms"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "used_frozen_result"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "artifacts"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"Hello! \ud83c\udf1f I'm excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it's a project, an idea, or a concept, let's dive in and make it happen!\"",props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Machine"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"AI"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"object"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "params"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"- Files: []',props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:" Message: Hello! \ud83c\udf1f I'm excited to help you get started on your journey to building",props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:" something fresh! What do you have in mind? Whether it's a project, an idea, or",props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:" a concept, let's dive in and make it happen!",props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:" Sender: Machine",props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:" Sender Name: AI",props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:" Type: object",props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "valid"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "build_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"1e8b908b-aba7-403b-9e9b-eca92bb78668"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"ChatOutput-sfUhT"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timestamp"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-23T19:10:58.813268Z"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flow_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"delete-vertex-builds",children:"Delete Vertex builds"}),"\n",(0,s.jsx)(t.p,{children:"Delete Vertex builds for a specific flow."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"DELETE ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/monitor/builds?flow_id=",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: */*"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"204 No Content",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"get-messages",children:"Get messages"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve messages with optional filters."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/monitor/messages" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"A list of all messages.",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(t.p,{children:["You can filter messages by ",(0,s.jsx)(t.code,{children:"flow_id"}),", ",(0,s.jsx)(t.code,{children:"session_id"}),", ",(0,s.jsx)(t.code,{children:"sender"}),", and ",(0,s.jsx)(t.code,{children:"sender_name"}),".\nResults can be ordered with the ",(0,s.jsx)(t.code,{children:"order_by"})," query string."]}),"\n",(0,s.jsxs)(t.p,{children:["This example retrieves messages sent by ",(0,s.jsx)(t.code,{children:"Machine"})," and ",(0,s.jsx)(t.code,{children:"AI"})," in a given chat session (",(0,s.jsx)(t.code,{children:"session_id"}),") and orders the messages by timestamp."]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/monitor/messages?flow_id=",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'&session_id=01ce083d-748b-4b8d-97b6-33adbb6a528a&sender=Machine&sender_name=AI&order_by=timestamp" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"1c1d6134-9b8b-4079-931c-84dcaddf19ba"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flow_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timestamp"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-23 19:20:11 UTC"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Machine"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"AI"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "session_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"Hello! It's great to see you here! What exciting project or idea are you thinking about diving into today? Whether it's something fresh and innovative or a classic concept with a twist, I'm here to help you get started! Let's brainstorm together!\"",props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"[]"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edit"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "properties"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "background_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edited"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"OpenAIModel-7AjrN"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"OpenAI"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"gpt-4o-mini"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"OpenAI"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "allow_markdown"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "positive_feedback"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "state"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"complete"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "targets"',props:{style:{color:"#7EE787"}}},{content:": []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "category"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"message"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "content_blocks"',props:{style:{color:"#7EE787"}}},{content:": []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"]",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"delete-messages",children:"Delete messages"}),"\n",(0,s.jsx)(t.p,{children:"Delete specific messages by their IDs."}),"\n",(0,s.jsx)(t.p,{children:"This example deletes the message retrieved in the previous Get messages example."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-v -X ",props:{style:{color:"#79C0FF"}}},{content:"DELETE ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/monitor/messages" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: */*" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:'\'["MESSAGE_ID_1", "MESSAGE_ID_2"]\'',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"204 No Content",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"update-message",children:"Update message"}),"\n",(0,s.jsx)(t.p,{children:"Update a specific message by its ID."}),"\n",(0,s.jsxs)(t.p,{children:["This example updates the ",(0,s.jsx)(t.code,{children:"text"})," value of message ",(0,s.jsx)(t.code,{children:"3ab66cc6-c048-48f8-ab07-570f5af7b160"}),"."]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"PUT ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/monitor/messages/3ab66cc6-c048-48f8-ab07-570f5af7b160" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "text": "testing 1234"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timestamp"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-23T18:49:06"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "session_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"testing 1234"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "error"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edit"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "properties"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "background_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edited"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": { ",props:{style:{color:"#C9D1D9"}}},{content:'"id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"display_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"source"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "allow_markdown"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "positive_feedback"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "state"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"complete"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "targets"',props:{style:{color:"#7EE787"}}},{content:": []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "category"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"message"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "content_blocks"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"3ab66cc6-c048-48f8-ab07-570f5af7b160"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flow_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"update-session-id",children:"Update session ID"}),"\n",(0,s.jsx)(t.p,{children:"Update the session ID for messages."}),"\n",(0,s.jsxs)(t.p,{children:["This example updates the ",(0,s.jsx)(t.code,{children:"session_ID"})," value ",(0,s.jsx)(t.code,{children:"01ce083d-748b-4b8d-97b6-33adbb6a528a"})," to ",(0,s.jsx)(t.code,{children:"different_session_id"}),"."]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"PATCH ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/monitor/messages/session/01ce083d-748b-4b8d-97b6-33adbb6a528a?new_session_id=different_session_id" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"8dd7f064-e63a-4773-b472-ca0475249dfd"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flow_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timestamp"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-23 18:49:55 UTC"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "session_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"different_session_id"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"message"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"[]"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edit"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "properties"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "background_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edited"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "allow_markdown"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "positive_feedback"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "state"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"complete"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "targets"',props:{style:{color:"#7EE787"}}},{content:": []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "category"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"message"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "content_blocks"',props:{style:{color:"#7EE787"}}},{content:": []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"]",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"delete-messages-by-session",children:"Delete messages by session"}),"\n",(0,s.jsx)(t.p,{children:"Delete all messages for a specific session."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"DELETE ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/monitor/messages/session/different_session_id_2" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: */*"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"HTTP/1.1 204 No Content",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"get-transactions",children:"Get transactions"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve all transactions (interactions between components) for a specific flow."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/monitor/transactions?flow_id=",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'&page=1&size=50" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "items"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timestamp"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-23T20:05:01.061Z"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "vertex_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "target_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "inputs"',props:{style:{color:"#7EE787"}}},{content:": {},",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "outputs"',props:{style:{color:"#7EE787"}}},{content:": {},",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "status"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "error"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flow_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "total"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"0",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "page"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"1",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "size"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"1",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "pages"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"0",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]})]})}function C(o={}){const{wrapper:t}={...(0,l.R)(),...o.components};return t?(0,s.jsx)(t,{...o,children:(0,s.jsx)(h,{...o})}):h(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.")}},65537:(o,t,e)=>{e.d(t,{A:()=>j});var n=e(96540),s=e(18215),l=e(65627),r=e(56347),c=e(50372),p=e(30604),a=e(11861),i=e(78749);function y(o){return n.Children.toArray(o).filter((o=>"\n"!==o)).map((o=>{if(!o||(0,n.isValidElement)(o)&&function(o){const{props:t}=o;return!!t&&"object"==typeof t&&"value"in t}(o))return o;throw new Error(`Docusaurus error: Bad child <${"string"==typeof o.type?o.type:o.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function D(o){const{values:t,children:e}=o;return(0,n.useMemo)((()=>{const o=t??function(o){return y(o).map((o=>{let{props:{value:t,label:e,attributes:n,default:s}}=o;return{value:t,label:e,attributes:n,default:s}}))}(e);return function(o){const t=(0,a.XI)(o,((o,t)=>o.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((o=>o.value)).join(", ")}" found in . Every value needs to be unique.`)}(o),o}),[t,e])}function d(o){let{value:t,tabValues:e}=o;return e.some((o=>o.value===t))}function F(o){let{queryString:t=!1,groupId:e}=o;const s=(0,r.W6)(),l=function(o){let{queryString:t=!1,groupId:e}=o;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!e)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 e??null}({queryString:t,groupId:e});return[(0,p.aZ)(l),(0,n.useCallback)((o=>{if(!l)return;const t=new URLSearchParams(s.location.search);t.set(l,o),s.replace({...s.location,search:t.toString()})}),[l,s])]}function h(o){const{defaultValue:t,queryString:e=!1,groupId:s}=o,l=D(o),[r,p]=(0,n.useState)((()=>function(o){let{defaultValue:t,tabValues:e}=o;if(0===e.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!d({value:t,tabValues:e}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${e.map((o=>o.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=e.find((o=>o.default))??e[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:l}))),[a,y]=F({queryString:e,groupId:s}),[h,C]=function(o){let{groupId:t}=o;const e=function(o){return o?`docusaurus.tab.${o}`:null}(t),[s,l]=(0,i.Dv)(e);return[s,(0,n.useCallback)((o=>{e&&l.set(o)}),[e,l])]}({groupId:s}),u=(()=>{const o=a??h;return d({value:o,tabValues:l})?o:null})();(0,c.A)((()=>{u&&p(u)}),[u]);return{selectedValue:r,selectValue:(0,n.useCallback)((o=>{if(!d({value:o,tabValues:l}))throw new Error(`Can't select invalid tab value=${o}`);p(o),y(o),C(o)}),[y,C,l]),tabValues:l}}var C=e(9136);const u={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var f=e(74848);function k(o){let{className:t,block:e,selectedValue:n,selectValue:r,tabValues:c}=o;const p=[],{blockElementScrollPositionUntilNextRender:a}=(0,l.a_)(),i=o=>{const t=o.currentTarget,e=p.indexOf(t),s=c[e].value;s!==n&&(a(t),r(s))},y=o=>{let t=null;switch(o.key){case"Enter":i(o);break;case"ArrowRight":{const e=p.indexOf(o.currentTarget)+1;t=p[e]??p[0];break}case"ArrowLeft":{const e=p.indexOf(o.currentTarget)-1;t=p[e]??p[p.length-1];break}}t?.focus()};return(0,f.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":e},t),children:c.map((o=>{let{value:t,label:e,attributes:l}=o;return(0,f.jsx)("li",{role:"tab",tabIndex:n===t?0:-1,"aria-selected":n===t,ref:o=>{p.push(o)},onKeyDown:y,onClick:i,...l,className:(0,s.A)("tabs__item",u.tabItem,l?.className,{"tabs__item--active":n===t}),children:e??t},t)}))})}function E(o){let{lazy:t,children:e,selectedValue:l}=o;const r=(Array.isArray(e)?e:[e]).filter(Boolean);if(t){const o=r.find((o=>o.props.value===l));return o?(0,n.cloneElement)(o,{className:(0,s.A)("margin-top--md",o.props.className)}):null}return(0,f.jsx)("div",{className:"margin-top--md",children:r.map(((o,t)=>(0,n.cloneElement)(o,{key:t,hidden:o.props.value!==l})))})}function A(o){const t=h(o);return(0,f.jsxs)("div",{className:(0,s.A)("tabs-container",u.tabList),children:[(0,f.jsx)(k,{...t,...o}),(0,f.jsx)(E,{...t,...o})]})}function j(o){const t=(0,C.A)();return(0,f.jsx)(A,{...o,children:y(o.children)},String(t))}},79329:(o,t,e)=>{e.d(t,{A:()=>r});e(96540);var n=e(18215);const s={tabItem:"tabItem_Ymn6"};var l=e(74848);function r(o){let{children:t,hidden:e,className:r}=o;return(0,l.jsx)("div",{role:"tabpanel",className:(0,n.A)(s.tabItem,r),hidden:e,children:t})}}}]);
\ No newline at end of file
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[444],{41671:(o,t,e)=>{e.r(t),e.d(t,{CH:()=>D,assets:()=>y,chCodeConfig:()=>d,contentTitle:()=>i,default:()=>C,frontMatter:()=>a,metadata:()=>n,toc:()=>F});const n=JSON.parse('{"id":"API-Reference/api-reference-api-examples","title":"API examples","description":"This page provides examples and practices for managing Langflow using the Langflow API.","source":"@site/docs/API-Reference/api-reference-api-examples.md","sourceDirName":"API-Reference","slug":"/api-reference-api-examples","permalink":"/api-reference-api-examples","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"API examples","slug":"/api-reference-api-examples"},"sidebar":"docs","previous":{"title":"Render","permalink":"/deployment-render"},"next":{"title":"Apify","permalink":"/integrations-apify"}}');var s=e(74848),l=e(28453),r=e(24754),c=e(65537),p=e(79329);const a={title:"API examples",slug:"/api-reference-api-examples"},i=void 0,y={},D={annotations:r.hk,Code:r.Cy},d={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},F=[{value:"Export values",id:"export-values",level:2},{value:"Base",id:"base",level:2},{value:"Get all components",id:"get-all-components",level:3},{value:"Run flow",id:"run-flow",level:3},{value:"Run endpoint headers and parameters",id:"run-endpoint-headers-and-parameters",level:4},{value:"Webhook run flow",id:"webhook-run-flow",level:3},{value:"Process",id:"process",level:3},{value:"Predict",id:"predict",level:3},{value:"Get task status",id:"get-task-status",level:3},{value:"Create upload file (Deprecated)",id:"create-upload-file-deprecated",level:3},{value:"Get version",id:"get-version",level:3},{value:"Get config",id:"get-config",level:3},{value:"Build",id:"build",level:2},{value:"Build flow",id:"build-flow",level:3},{value:"Build endpoint headers and parameters",id:"build-endpoint-headers-and-parameters",level:3},{value:"Configure the build endpoint",id:"configure-the-build-endpoint",level:3},{value:"Files",id:"files",level:2},{value:"Files/V1 endpoints",id:"filesv1-endpoints",level:2},{value:"Upload file (v1)",id:"upload-file-v1",level:3},{value:"Upload image files (v1)",id:"upload-image-files-v1",level:3},{value:"List files (v1)",id:"list-files-v1",level:3},{value:"Download file (v1)",id:"download-file-v1",level:3},{value:"Delete file (v1)",id:"delete-file-v1",level:3},{value:"Files/V2 endpoints",id:"filesv2-endpoints",level:2},{value:"Upload file (v2)",id:"upload-file-v2",level:3},{value:"Send files to your flows (v2)",id:"send-files-to-your-flows-v2",level:3},{value:"List files (v2)",id:"list-files-v2",level:3},{value:"Download file (v2)",id:"download-file-v2",level:3},{value:"Edit file name (v2)",id:"edit-file-name-v2",level:3},{value:"Delete file (v2)",id:"delete-file-v2",level:3},{value:"Delete all files (v2)",id:"delete-all-files-v2",level:3},{value:"Flows",id:"flows",level:2},{value:"Create flow",id:"create-flow",level:3},{value:"Read flows",id:"read-flows",level:3},{value:"Read flow",id:"read-flow",level:3},{value:"Update flow",id:"update-flow",level:3},{value:"Delete flow",id:"delete-flow",level:3},{value:"Create flows",id:"create-flows",level:3},{value:"Upload flows",id:"upload-flows",level:3},{value:"Download all flows",id:"download-all-flows",level:3},{value:"Read basic examples",id:"read-basic-examples",level:3},{value:"Projects",id:"projects",level:2},{value:"Read projects",id:"read-projects",level:3},{value:"Create project",id:"create-project",level:3},{value:"Read project",id:"read-project",level:3},{value:"Update project",id:"update-project",level:3},{value:"Delete project",id:"delete-project",level:3},{value:"Download project",id:"download-project",level:3},{value:"Upload project",id:"upload-project",level:3},{value:"Logs",id:"logs",level:2},{value:"Stream logs",id:"stream-logs",level:3},{value:"Retrieve logs with optional parameters",id:"retrieve-logs-with-optional-parameters",level:3},{value:"Monitor",id:"monitor",level:2},{value:"Get Vertex builds",id:"get-vertex-builds",level:3},{value:"Delete Vertex builds",id:"delete-vertex-builds",level:3},{value:"Get messages",id:"get-messages",level:3},{value:"Delete messages",id:"delete-messages",level:3},{value:"Update message",id:"update-message",level:3},{value:"Update session ID",id:"update-session-id",level:3},{value:"Delete messages by session",id:"delete-messages-by-session",level:3},{value:"Get transactions",id:"get-transactions",level:3}];function h(o){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",h4:"h4",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,l.R)(),...o.components};return D||u("CH",!1),D.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","\n",(0,s.jsx)(t.p,{children:"This page provides examples and practices for managing Langflow using the Langflow API."}),"\n",(0,s.jsxs)(t.p,{children:["The Langflow API's OpenAPI spec can be viewed and tested at your Langflow deployment's ",(0,s.jsx)(t.code,{children:"docs"})," endpoint.\nFor example, ",(0,s.jsx)(t.code,{children:"http://localhost:7860/docs"}),"."]}),"\n",(0,s.jsx)(t.h2,{id:"export-values",children:"Export values"}),"\n",(0,s.jsx)(t.p,{children:"You might find it helpful to set the following environment variables in your terminal."}),"\n",(0,s.jsx)(t.p,{children:"The examples in this guide use environment variables for these values."}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Export your Langflow URL in your terminal.\nLangflow starts by default at ",(0,s.jsx)(t.code,{children:"http://localhost:7860"}),"."]}),"\n"]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"export",props:{style:{color:"#FF7B72"}}},{content:" LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"http://localhost:7860"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Export the ",(0,s.jsx)(t.code,{children:"flow-id"})," in your terminal.\nThe ",(0,s.jsx)(t.code,{children:"flow-id"})," is found in the ",(0,s.jsx)(t.a,{href:"/concepts-publish",children:"Publish pane"})," or in the flow's URL."]}),"\n"]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'export FLOW_ID="359cd752-07ea-46f2-9d3b-a4407ef618da"',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Export the ",(0,s.jsx)(t.code,{children:"project-id"})," in your terminal.\nTo find your project ID, call the Langflow ",(0,s.jsx)(t.a,{href:"#read-projects",children:"/api/v1/projects/"})," endpoint for a list of projects."]}),"\n"]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/projects/" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"My Projects"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "description"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Manage your own projects. Download and upload projects."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"1415de42-8f01-4f36-bf34-539f23e47466"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "parent_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"]",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Export the ",(0,s.jsx)(t.code,{children:"project-id"})," as an environment variable."]}),"\n"]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"export",props:{style:{color:"#FF7B72"}}},{content:" project_ID",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"1415de42-8f01-4f36-bf34-539f23e47466"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Export the Langflow API key as an environment variable.\nTo create a Langflow API key, run the following command in the Langflow CLI."}),"\n"]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow api-key",props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"API Key Created Successfully:",props:{}}]},{tokens:[{content:"sk-...",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.p,{children:"Export the generated API key as an environment variable."}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'export LANGFLOW_API_KEY="sk-..."',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(t.h2,{id:"base",children:"Base"}),"\n",(0,s.jsx)(t.p,{children:"Use the base Langflow API to run your flow and retrieve configuration information."}),"\n",(0,s.jsx)(t.h3,{id:"get-all-components",children:"Get all components"}),"\n",(0,s.jsx)(t.p,{children:"This operation returns a dictionary of all Langflow components."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/all" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"A dictionary of all Langflow components.",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"run-flow",children:"Run flow"}),"\n",(0,s.jsx)(t.p,{children:"Execute a specified flow by ID or name.\nThe flow is executed as a batch, but LLM responses can be streamed."}),"\n",(0,s.jsxs)(t.p,{children:["This example runs a ",(0,s.jsx)(t.a,{href:"/starter-projects-basic-prompting",children:"Basic Prompting"})," flow with a given ",(0,s.jsx)(t.code,{children:"flow_id"})," and passes a JSON object as the input value."]}),"\n",(0,s.jsx)(t.p,{children:"The parameters are passed in the request body. In this example, the values are the default values."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/run/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "input_value": "Tell me about something interesting!",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "session_id": "chat-123",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "input_type": "chat",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "output_type": "chat",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "output_component": "",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "tweaks": null',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:' "session_id": "chat-123",',props:{}}]},{tokens:[{content:' "outputs": [{',props:{}}]},{tokens:[{content:' "inputs": {',props:{}}]},{tokens:[{content:' "input_value": "Tell me about something interesting!"',props:{}}]},{tokens:[{content:" },",props:{}}]},{tokens:[{content:' "outputs": [{',props:{}}]},{tokens:[{content:' "results": {',props:{}}]},{tokens:[{content:' "message": {',props:{}}]},{tokens:[{content:' "text": "Sure! Have you ever heard of the phenomenon known as \\"bioluminescence\\"? It\'s a fascinating natural occurrence where living organisms produce and emit light. This ability is found in various species, including certain types of jellyfish, fireflies, and deep-sea creatures like anglerfish.\\n\\nBioluminescence occurs through a chemical reaction in which a light-emitting molecule called luciferin reacts with oxygen, catalyzed by an enzyme called luciferase. The result is a beautiful glow that can serve various purposes, such as attracting mates, deterring predators, or luring prey.\\n\\nOne of the most stunning displays of bioluminescence can be seen in the ocean, where certain plankton emit light when disturbed, creating a mesmerizing blue glow in the water. This phenomenon is often referred to as \\"sea sparkle\\" and can be seen in coastal areas around the world.\\n\\nBioluminescence not only captivates our imagination but also has practical applications in science and medicine, including the development of biosensors and imaging techniques. It\'s a remarkable example of nature\'s creativity and complexity!",',props:{}}]},{tokens:[{content:' "sender": "Machine",',props:{}}]},{tokens:[{content:' "sender_name": "AI",',props:{}}]},{tokens:[{content:' "session_id": "chat-123",',props:{}}]},{tokens:[{content:' "timestamp": "2025-03-03T17:17:37+00:00",',props:{}}]},{tokens:[{content:' "flow_id": "d2bbd92b-187e-4c84-b2d4-5df365704201",',props:{}}]},{tokens:[{content:' "properties": {',props:{}}]},{tokens:[{content:' "source": {',props:{}}]},{tokens:[{content:' "id": "OpenAIModel-d1wOZ",',props:{}}]},{tokens:[{content:' "display_name": "OpenAI",',props:{}}]},{tokens:[{content:' "source": "gpt-4o-mini"',props:{}}]},{tokens:[{content:" },",props:{}}]},{tokens:[{content:' "icon": "OpenAI"',props:{}}]},{tokens:[{content:" },",props:{}}]},{tokens:[{content:' "component_id": "ChatOutput-ylMzN"',props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:" }]",props:{}}]},{tokens:[{content:" }]",props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(t.p,{children:["To stream LLM token responses, append the ",(0,s.jsx)(t.code,{children:"?stream=true"})," query parameter to the request. LLM chat responses are streamed back as ",(0,s.jsx)(t.code,{children:"token"})," events until the ",(0,s.jsx)(t.code,{children:"end"})," event closes the connection."]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/run/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'?stream=true" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "message": "Tell me something interesting!",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "session_id": "chat-123"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'{"event": "add_message", "data": {"timestamp": "2025-03-03T17:20:18", "sender": "User", "sender_name": "User", "session_id": "chat-123", "text": "Tell me about something interesting!", "files": [], "error": false, "edit": false, "properties": {"text_color": "", "background_color": "", "edited": false, "source": {"id": null, "display_name": null, "source": null}, "icon": "", "allow_markdown": false, "positive_feedback": null, "state": "complete", "targets": []}, "category": "message", "content_blocks": [], "id": "0103a21b-ebf7-4c02-9d72-017fb297f812", "flow_id": "d2bbd92b-187e-4c84-b2d4-5df365704201"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "add_message", "data": {"timestamp": "2025-03-03T17:20:18", "sender": "Machine", "sender_name": "AI", "session_id": "chat-123", "text": "", "files": [], "error": false, "edit": false, "properties": {"text_color": "", "background_color": "", "edited": false, "source": {"id": "OpenAIModel-d1wOZ", "display_name": "OpenAI", "source": "gpt-4o-mini"}, "icon": "OpenAI", "allow_markdown": false, "positive_feedback": null, "state": "complete", "targets": []}, "category": "message", "content_blocks": [], "id": "27b66789-e673-4c65-9e81-021752925161", "flow_id": "d2bbd92b-187e-4c84-b2d4-5df365704201"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "token", "data": {"chunk": " Have", "id": "27b66789-e673-4c65-9e81-021752925161", "timestamp": "2025-03-03 17:20:18 UTC"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "token", "data": {"chunk": " you", "id": "27b66789-e673-4c65-9e81-021752925161", "timestamp": "2025-03-03 17:20:18 UTC"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "token", "data": {"chunk": " ever", "id": "27b66789-e673-4c65-9e81-021752925161", "timestamp": "2025-03-03 17:20:18 UTC"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "token", "data": {"chunk": " heard", "id": "27b66789-e673-4c65-9e81-021752925161", "timestamp": "2025-03-03 17:20:18 UTC"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "token", "data": {"chunk": " of", "id": "27b66789-e673-4c65-9e81-021752925161", "timestamp": "2025-03-03 17:20:18 UTC"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "token", "data": {"chunk": " the", "id": "27b66789-e673-4c65-9e81-021752925161", "timestamp": "2025-03-03 17:20:18 UTC"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "token", "data": {"chunk": " phenomenon", "id": "27b66789-e673-4c65-9e81-021752925161", "timestamp": "2025-03-03 17:20:18 UTC"}}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"event": "end", "data": {"result": {"session_id": "chat-123", "message": "Sure! Have you ever heard of the phenomenon known as \\"bioluminescence\\"?..."}}}',props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(t.p,{children:["This result is abbreviated, but illustrates where the ",(0,s.jsx)(t.code,{children:"end"})," event completes the LLM's token streaming response."]}),"\n",(0,s.jsx)(t.h4,{id:"run-endpoint-headers-and-parameters",children:"Run endpoint headers and parameters"}),"\n",(0,s.jsxs)(t.p,{children:["Parameters can be passed to the ",(0,s.jsx)(t.code,{children:"/run"})," endpoint in three ways:"]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["URL path: ",(0,s.jsx)(t.code,{children:"flow_id"})," as part of the endpoint path"]}),"\n",(0,s.jsxs)(t.li,{children:["Query string: ",(0,s.jsx)(t.code,{children:"stream"})," parameter in the URL"]}),"\n",(0,s.jsx)(t.li,{children:"Request body: JSON object containing the remaining parameters"}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Headers"})}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"Header"}),(0,s.jsx)(t.th,{children:"Info"}),(0,s.jsx)(t.th,{children:"Example"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Content-Type"}),(0,s.jsx)(t.td,{children:"Required. Specifies the JSON format."}),(0,s.jsx)(t.td,{children:'"application/json"'})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"accept"}),(0,s.jsx)(t.td,{children:"Required. Specifies the response format."}),(0,s.jsx)(t.td,{children:'"application/json"'})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"x-api-key"}),(0,s.jsx)(t.td,{children:"Optional. Required only if authentication is enabled."}),(0,s.jsx)(t.td,{children:'"sk-..."'})]})]})]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Parameters"})}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"Parameter"}),(0,s.jsx)(t.th,{children:"Type"}),(0,s.jsx)(t.th,{children:"Info"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"flow_id"}),(0,s.jsx)(t.td,{children:"UUID/string"}),(0,s.jsxs)(t.td,{children:["Required. Part of URL: ",(0,s.jsx)(t.code,{children:"/run/{flow_id}"})]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"stream"}),(0,s.jsx)(t.td,{children:"boolean"}),(0,s.jsxs)(t.td,{children:["Optional. Query parameter: ",(0,s.jsx)(t.code,{children:"/run/{flow_id}?stream=true"})]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"input_value"}),(0,s.jsx)(t.td,{children:"string"}),(0,s.jsxs)(t.td,{children:["Optional. JSON body field. Main input text/prompt. Default: ",(0,s.jsx)(t.code,{children:"null"})]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"input_type"}),(0,s.jsx)(t.td,{children:"string"}),(0,s.jsxs)(t.td,{children:['Optional. JSON body field. Input type ("chat" or "text"). Default: ',(0,s.jsx)(t.code,{children:'"chat"'})]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"output_type"}),(0,s.jsx)(t.td,{children:"string"}),(0,s.jsxs)(t.td,{children:['Optional. JSON body field. Output type ("chat", "any", "debug"). Default: ',(0,s.jsx)(t.code,{children:'"chat"'})]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"output_component"}),(0,s.jsx)(t.td,{children:"string"}),(0,s.jsxs)(t.td,{children:["Optional. JSON body field. Target component for output. Default: ",(0,s.jsx)(t.code,{children:'""'})]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"tweaks"}),(0,s.jsx)(t.td,{children:"object"}),(0,s.jsxs)(t.td,{children:["Optional. JSON body field. Component adjustments. Default: ",(0,s.jsx)(t.code,{children:"null"})]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"session_id"}),(0,s.jsx)(t.td,{children:"string"}),(0,s.jsxs)(t.td,{children:["Optional. JSON body field. Conversation context ID. Default: ",(0,s.jsx)(t.code,{children:"null"})]})]})]})]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Example request"})}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "http://',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/run/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'?stream=true" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"x-api-key: sk-..." ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "input_value": "Tell me a story",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "input_type": "chat",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "output_type": "chat",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "output_component": "chat_output",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "session_id": "chat-123",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "tweaks": {',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "component_id": {',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "parameter_name": "value"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsx)(t.h3,{id:"webhook-run-flow",children:"Webhook run flow"}),"\n",(0,s.jsx)(t.p,{children:"The webhook endpoint triggers flow execution with an HTTP POST request."}),"\n",(0,s.jsxs)(t.p,{children:["When a ",(0,s.jsx)(t.strong,{children:"Webhook"})," component is added to the workspace, a new ",(0,s.jsx)(t.strong,{children:"Webhook cURL"})," tab becomes available in the ",(0,s.jsx)(t.strong,{children:"API"})," pane that contains an HTTP POST request for triggering the webhook component, similar to the call in this example."]}),"\n",(0,s.jsxs)(t.p,{children:["To test the ",(0,s.jsx)(t.strong,{children:"Webhook"})," component in your flow, see the ",(0,s.jsx)(t.a,{href:"/components-data#webhook",children:"Webhook component"}),"."]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/webhook/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:'\'{"data": "example-data"}\'',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:' {"message":"Task started in the background","status":"in progress"}',props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"process",children:"Process"}),"\n",(0,s.jsx)(t.admonition,{type:"info",children:(0,s.jsxs)(t.p,{children:["This endpoint is deprecated. Use the ",(0,s.jsx)(t.code,{children:"/run"})," endpoint instead."]})}),"\n",(0,s.jsx)(t.h3,{id:"predict",children:"Predict"}),"\n",(0,s.jsx)(t.admonition,{type:"info",children:(0,s.jsxs)(t.p,{children:["This endpoint is deprecated. Use the ",(0,s.jsx)(t.code,{children:"/run"})," endpoint instead."]})}),"\n",(0,s.jsx)(t.h3,{id:"get-task-status",children:"Get task status"}),"\n",(0,s.jsx)(t.p,{children:"Get the status of a task."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/task/TASK_ID" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:' "status": "Task status",',props:{}}]},{tokens:[{content:' "result": "Task result if completed"',props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"create-upload-file-deprecated",children:"Create upload file (Deprecated)"}),"\n",(0,s.jsx)(t.admonition,{type:"info",children:(0,s.jsxs)(t.p,{children:["This endpoint is deprecated. Use the ",(0,s.jsx)(t.code,{children:"/file"})," endpoint instead."]})}),"\n",(0,s.jsx)(t.h3,{id:"get-version",children:"Get version"}),"\n",(0,s.jsx)(t.p,{children:"Get the version of the Langflow API."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/version" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:' "version": "1.1.1",',props:{}}]},{tokens:[{content:' "main_version": "1.1.1",',props:{}}]},{tokens:[{content:' "package": "Langflow"',props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"get-config",children:"Get config"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve the Langflow configuration information."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/config" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "feature_flags"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "mvp_components"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "frontend_timeout"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"0",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "auto_saving"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "auto_saving_interval"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"1000",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "health_check_max_retries"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"5",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "max_file_size_upload"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"100",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h2,{id:"build",children:"Build"}),"\n",(0,s.jsxs)(t.p,{children:["Use the ",(0,s.jsx)(t.code,{children:"/build"})," endpoint to build vertices and flows, and execute those flows with streaming event responses."]}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"/build"})," endpoint offers additional configuration for running flows."]}),"\n",(0,s.jsxs)(t.p,{children:["For a simpler execution of your flows, use the ",(0,s.jsxs)(t.a,{href:"/api-reference-api-examples#run-flow",children:[(0,s.jsx)(t.code,{children:"/run"})," endpoint"]})," instead."]}),"\n",(0,s.jsx)(t.h3,{id:"build-flow",children:"Build flow"}),"\n",(0,s.jsx)(t.admonition,{type:"important",children:(0,s.jsxs)(t.p,{children:["This endpoint is meant to be used by the frontend and is not optimized for external use.\nTo run your flow, use the ",(0,s.jsxs)(t.a,{href:"/api-reference-api-examples#run-flow",children:[(0,s.jsx)(t.code,{children:"/run"})," endpoint"]})," instead."]})}),"\n",(0,s.jsx)(t.p,{children:"This endpoint builds and executes a flow, returning a job ID that can be used to stream execution events."}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["Send a POST request to the ",(0,s.jsx)(t.code,{children:"/build/{flow_id}/flow"})," endpoint."]}),"\n"]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/build/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'/flow" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "inputs": {',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "input_value": "Tell me a story"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "job_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"123e4567-e89b-12d3-a456-426614174000"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(t.ol,{start:"2",children:["\n",(0,s.jsxs)(t.li,{children:["After receiving a job ID from the build endpoint, use the ",(0,s.jsx)(t.code,{children:"/build/{job_id}/events"})," endpoint to stream the execution results:"]}),"\n"]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/build/123e4567-e89b-12d3-a456-426614174000/events" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}},{content:'"event"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"vertices_sorted"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"data"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}},{content:'"ids"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}},{content:'"ChatInput-XtBLx"',props:{style:{color:"#A5D6FF"}}},{content:"], ",props:{style:{color:"#C9D1D9"}}},{content:'"to_run"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}},{content:'"Prompt-x74Ze"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"ChatOutput-ylMzN"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"ChatInput-XtBLx"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"OpenAIModel-d1wOZ"',props:{style:{color:"#A5D6FF"}}},{content:"]}}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}},{content:'"event"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"add_message"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"data"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}},{content:'"timestamp"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2025-03-03T17:42:23"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"sender"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"session_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"d2bbd92b-187e-4c84-b2d4-5df365704201"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"text"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Tell me a story"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"files"',props:{style:{color:"#7EE787"}}},{content:": [], ",props:{style:{color:"#C9D1D9"}}},{content:'"error"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"edit"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"properties"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}},{content:'"text_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"background_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"edited"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"source"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}},{content:'"id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"display_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"source"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:"}, ",props:{style:{color:"#C9D1D9"}}},{content:'"icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"allow_markdown"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"positive_feedback"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"state"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"complete"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"targets"',props:{style:{color:"#7EE787"}}},{content:": []}, ",props:{style:{color:"#C9D1D9"}}},{content:'"category"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"message"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"content_blocks"',props:{style:{color:"#7EE787"}}},{content:": [], ",props:{style:{color:"#C9D1D9"}}},{content:'"id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"28879bd8-6a68-4dd5-b658-74d643a4dd92"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"flow_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"d2bbd92b-187e-4c84-b2d4-5df365704201"',props:{style:{color:"#A5D6FF"}}},{content:"}}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"// ... Additional events as the flow executes ...",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}},{content:'"event"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"end"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"data"',props:{style:{color:"#7EE787"}}},{content:": {}}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(t.p,{children:["The events endpoint accepts an optional ",(0,s.jsx)(t.code,{children:"stream"})," query parameter which defaults to ",(0,s.jsx)(t.code,{children:"true"}),".\nTo disable streaming and get all events at once, set ",(0,s.jsx)(t.code,{children:"stream"})," to ",(0,s.jsx)(t.code,{children:"false"}),"."]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X GET \\",props:{}}]},{tokens:[{content:' "$LANGFLOW_URL/api/v1/build/123e4567-e89b-12d3-a456-426614174000/events?stream=false" \\',props:{}}]},{tokens:[{content:' -H "accept: application/json"',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(t.h3,{id:"build-endpoint-headers-and-parameters",children:"Build endpoint headers and parameters"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Headers"})}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"Header"}),(0,s.jsx)(t.th,{children:"Info"}),(0,s.jsx)(t.th,{children:"Example"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Content-Type"}),(0,s.jsx)(t.td,{children:"Required. Specifies the JSON format."}),(0,s.jsx)(t.td,{children:'"application/json"'})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"accept"}),(0,s.jsx)(t.td,{children:"Required. Specifies the response format."}),(0,s.jsx)(t.td,{children:'"application/json"'})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"x-api-key"}),(0,s.jsx)(t.td,{children:"Optional. Required only if authentication is enabled."}),(0,s.jsx)(t.td,{children:'"sk-..."'})]})]})]}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"/build/{flow_id}/flow"})," endpoint accepts the following parameters in its request body:"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Parameters"})}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"Parameter"}),(0,s.jsx)(t.th,{children:"Type"}),(0,s.jsx)(t.th,{children:"Description"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"inputs"}),(0,s.jsx)(t.td,{children:"object"}),(0,s.jsx)(t.td,{children:"Optional. Input values for flow components."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"data"}),(0,s.jsx)(t.td,{children:"object"}),(0,s.jsx)(t.td,{children:"Optional. Flow data to override stored configuration."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"files"}),(0,s.jsx)(t.td,{children:"array[string]"}),(0,s.jsx)(t.td,{children:"Optional. List of file paths to use."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"stop_component_id"}),(0,s.jsx)(t.td,{children:"string"}),(0,s.jsx)(t.td,{children:"Optional. ID of the component where the execution should stop."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"start_component_id"}),(0,s.jsx)(t.td,{children:"string"}),(0,s.jsx)(t.td,{children:"Optional. ID of the component where the execution should start."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"log_builds"}),(0,s.jsx)(t.td,{children:"boolean"}),(0,s.jsxs)(t.td,{children:["Optional. Control build logging. Default: ",(0,s.jsx)(t.code,{children:"true"}),"."]})]})]})]}),"\n",(0,s.jsx)(t.h3,{id:"configure-the-build-endpoint",children:"Configure the build endpoint"}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"/build"})," endpoint accepts optional values for ",(0,s.jsx)(t.code,{children:"start_component_id"})," and ",(0,s.jsx)(t.code,{children:"stop_component_id"})," to control where the flow run starts and stops.\nSetting ",(0,s.jsx)(t.code,{children:"stop_component_id"})," for a component triggers the same behavior as clicking the ",(0,s.jsx)(t.strong,{children:"Play"})," button on that component, where all dependent components leading up to that component are also run.\nFor example, to stop flow execution at the Open AI model component, run the following command:"]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/build/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'/flow" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"x-api-key: ',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_API_KEY",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:'\'{"stop_component_id": "OpenAIModel-Uksag"}\'',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"/build"})," endpoint also accepts inputs for ",(0,s.jsx)(t.code,{children:"data"})," directly, instead of using the values stored in the Langflow database.\nThis is useful for running flows without having to pass custom values through the UI."]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/build/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'/flow" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "data": {',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "nodes": [],',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "edges": []',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "inputs": {',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "input_value": "Your custom input here",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "session": "session_id"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{ ",props:{style:{color:"#C9D1D9"}}},{content:'"job_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"0bcc7f23-40b4-4bfa-9b8a-a44181fd1175"',props:{style:{color:"#A5D6FF"}}},{content:" }",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h2,{id:"files",children:"Files"}),"\n",(0,s.jsxs)(t.p,{children:["Use the ",(0,s.jsx)(t.code,{children:"/files"})," endpoint to add or delete files between your local machine and Langflow."]}),"\n",(0,s.jsxs)(t.p,{children:["There are ",(0,s.jsx)(t.code,{children:"/v1"})," and ",(0,s.jsx)(t.code,{children:"/v2"})," versions of the ",(0,s.jsx)(t.code,{children:"/files"})," endpoints.\nThe ",(0,s.jsx)(t.code,{children:"v2/files"})," version offers several improvements over ",(0,s.jsx)(t.code,{children:"/v1"}),":"]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["In ",(0,s.jsx)(t.code,{children:"v1"}),", files are organized by ",(0,s.jsx)(t.code,{children:"flow_id"}),". In ",(0,s.jsx)(t.code,{children:"v2"}),", files are organized by ",(0,s.jsx)(t.code,{children:"user_id"}),".\nThis means files are accessed based on user ownership, and not tied to specific flows.\nYou can upload a file to Langflow one time, and use it with multiple flows."]}),"\n",(0,s.jsxs)(t.li,{children:["In ",(0,s.jsx)(t.code,{children:"v2"}),", files are tracked in the Langflow database, and can be added or deleted in bulk, instead of one by one."]}),"\n",(0,s.jsxs)(t.li,{children:["Responses from the ",(0,s.jsx)(t.code,{children:"/v2"})," endpoint contain more descriptive metadata."]}),"\n",(0,s.jsxs)(t.li,{children:["The ",(0,s.jsx)(t.code,{children:"v2"})," endpoints require authentication by an API key or JWT."]}),"\n",(0,s.jsxs)(t.li,{children:["The ",(0,s.jsx)(t.code,{children:"/v2/files"})," endpoint does not support sending ",(0,s.jsx)(t.strong,{children:"image"})," files to flows through the API. To send ",(0,s.jsx)(t.strong,{children:"image"})," files to your flows through the API, follow the procedure in ",(0,s.jsx)(t.a,{href:"#upload-image-files-v1",children:"Upload image files (v1)"}),"."]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"filesv1-endpoints",children:"Files/V1 endpoints"}),"\n",(0,s.jsxs)(t.p,{children:["Use the ",(0,s.jsx)(t.code,{children:"/files"})," endpoint to add or delete files between your local machine and Langflow."]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["In ",(0,s.jsx)(t.code,{children:"v1"}),", files are organized by ",(0,s.jsx)(t.code,{children:"flow_id"}),"."]}),"\n",(0,s.jsxs)(t.li,{children:["In ",(0,s.jsx)(t.code,{children:"v2"}),", files are organized by ",(0,s.jsx)(t.code,{children:"user_id"})," and tracked in the Langflow database, and can be added or deleted in bulk, instead of one by one."]}),"\n"]}),"\n",(0,s.jsx)(t.h3,{id:"upload-file-v1",children:"Upload file (v1)"}),"\n",(0,s.jsxs)(t.p,{children:["Upload a file to the ",(0,s.jsx)(t.code,{children:"v1/files/upload/"})," endpoint of your flow.\nReplace ",(0,s.jsx)(t.strong,{children:"FILE_NAME"})," with the uploaded file name."]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/files/upload/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: multipart/form-data" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -F ",props:{style:{color:"#79C0FF"}}},{content:'"file=@FILE_NAME.txt"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flowId"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"92f9a4c5-cfc8-4656-ae63-1f0881163c28"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "file_path"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"92f9a4c5-cfc8-4656-ae63-1f0881163c28/2024-12-30_15-19-43_your_file.txt"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"upload-image-files-v1",children:"Upload image files (v1)"}),"\n",(0,s.jsx)(t.p,{children:"Send image files to the Langflow API for AI analysis."}),"\n",(0,s.jsxs)(t.p,{children:["The default file limit is 100 MB. To configure this value, change the ",(0,s.jsx)(t.code,{children:"LANGFLOW_MAX_FILE_SIZE_UPLOAD"})," environment variable.\nFor more information, see ",(0,s.jsx)(t.a,{href:"/environment-variables#supported-variables",children:"Supported environment variables"}),"."]}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["To send an image to your flow with the API, POST the image file to the ",(0,s.jsx)(t.code,{children:"v1/files/upload/"})," endpoint of your flow.\nReplace ",(0,s.jsx)(t.strong,{children:"FILE_NAME"})," with the uploaded file name."]}),"\n"]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:'POST "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/files/upload/a430cc57-06bb-4c11-be39-d3d4de68d2c4" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: multipart/form-data" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -F ",props:{style:{color:"#79C0FF"}}},{content:'"file=@FILE_NAME.png"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsxs)(t.p,{children:["The API returns the image file path in the format ",(0,s.jsx)(t.code,{children:'"file_path":"/_"}'}),"."]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flowId"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"a430cc57-06bb-4c11-be39-d3d4de68d2c4"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "file_path"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"a430cc57-06bb-4c11-be39-d3d4de68d2c4/2024-11-27_14-47-50_image-file.png"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]}),"\n",(0,s.jsxs)(t.ol,{start:"2",children:["\n",(0,s.jsxs)(t.li,{children:["Post the image file to the ",(0,s.jsx)(t.strong,{children:"Chat Input"})," component of a ",(0,s.jsx)(t.strong,{children:"Basic prompting"})," flow.\nPass the file path value as an input in the ",(0,s.jsx)(t.strong,{children:"Tweaks"})," section of the curl call to Langflow.\nTo find your Chat input component's ID, use the ",(0,s.jsx)(t.a,{href:"#"})]}),"\n"]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/run/a430cc57-06bb-4c11-be39-d3d4de68d2c4?stream=false" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:"'Content-Type: application/json'",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "output_type": "chat",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "input_type": "chat",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "tweaks": {',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "ChatInput-b67sL": {',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "files": "a430cc57-06bb-4c11-be39-d3d4de68d2c4/2024-11-27_14-47-50_image-file.png",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "input_value": "what do you see?"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}}'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsx)(t.p,{children:"Your chatbot describes the image file you sent."}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'"text": "This flowchart appears to represent a complex system for processing financial inquiries using various AI agents and tools. Here\'s a breakdown of its components and how they might work together..."',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(t.h3,{id:"list-files-v1",children:"List files (v1)"}),"\n",(0,s.jsx)(t.p,{children:"List all files associated with a specific flow."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/files/list/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-30_15-19-43_your_file.txt"',props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"download-file-v1",children:"Download file (v1)"}),"\n",(0,s.jsx)(t.p,{children:"Download a specific file from a flow."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/files/download/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'/2024-12-30_15-19-43_your_file.txt" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" --output ",props:{style:{color:"#79C0FF"}}},{content:"downloaded_file.txt",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"File contents downloaded to downloaded_file.txt",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"delete-file-v1",children:"Delete file (v1)"}),"\n",(0,s.jsx)(t.p,{children:"Delete a specific file from a flow."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"DELETE ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/files/delete/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'/2024-12-30_15-19-43_your_file.txt" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"File 2024-12-30_15-19-43_your_file.txt deleted successfully"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h2,{id:"filesv2-endpoints",children:"Files/V2 endpoints"}),"\n",(0,s.jsxs)(t.p,{children:["In ",(0,s.jsx)(t.code,{children:"v2"}),", files are organized by ",(0,s.jsx)(t.code,{children:"user_id"})," and tracked in the Langflow database, and can be added or deleted in bulk, instead of one by one.\nThe ",(0,s.jsx)(t.code,{children:"v2"})," endpoints require authentication by an API key or JWT.\nTo create a Langflow API key and export it as an environment variable, see ",(0,s.jsx)(t.a,{href:"#export-values",children:"Export values"}),"."]}),"\n",(0,s.jsx)(t.h3,{id:"upload-file-v2",children:"Upload file (v2)"}),"\n",(0,s.jsx)(t.p,{children:"Upload a file to your user account. The file can be used across multiple flows."}),"\n",(0,s.jsxs)(t.p,{children:["The file is uploaded in the format ",(0,s.jsx)(t.code,{children:"USER_ID/FILE_ID.FILE_EXTENSION"}),", such as ",(0,s.jsx)(t.code,{children:"07e5b864-e367-4f52-b647-a48035ae7e5e/d44dc2e1-9ae9-4cf6-9114-8d34a6126c94.pdf"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["To retrieve your current ",(0,s.jsx)(t.code,{children:"user_id"}),", call the ",(0,s.jsx)(t.code,{children:"/whoami"})," endpoint."]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/users/whoami" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsx)(t.p,{children:"Result:"}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'{"id":"07e5b864-e367-4f52-b647-a48035ae7e5e","username":"langflow","profile_image":null,"store_api_key":null,"is_active":true,"is_superuser":true,"create_at":"2025-05-08T17:59:07.855965","updated_at":"2025-05-28T19:00:42.556460","last_login_at":"2025-05-28T19:00:42.554338","optins":{"github_starred":false,"dialog_dismissed":true,"discord_clicked":false,"mcp_dialog_dismissed":true}}',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(t.p,{children:["In the POST request to ",(0,s.jsx)(t.code,{children:"v2/files"}),", replace ",(0,s.jsx)(t.strong,{children:"@FILE_NAME.EXTENSION"})," with the uploaded file name and its extension.\nYou must include the ampersand (",(0,s.jsx)(t.code,{children:"@"}),") in the request to instruct curl to upload the contents of the file, not the string ",(0,s.jsx)(t.code,{children:"FILE_NAME.EXTENSION"}),"."]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v2/files" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: multipart/form-data" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"x-api-key: ',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_API_KEY",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -F ",props:{style:{color:"#79C0FF"}}},{content:'"file=@FILE_NAME.EXTENSION"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsxs)(t.p,{children:["The file is uploaded in the format ",(0,s.jsx)(t.code,{children:"USER_ID/FILE_ID.FILE_EXTENSION"}),", and the API returns metadata about the uploaded file:"]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}},{content:'"d44dc2e1-9ae9-4cf6-9114-8d34a6126c94"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}},{content:'"engine_manual"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "path"',props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}},{content:'"07e5b864-e367-4f52-b647-a48035ae7e5e/d44dc2e1-9ae9-4cf6-9114-8d34a6126c94.pdf"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "size"',props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}},{content:"851160",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "provider"',props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]}),"\n",(0,s.jsx)(t.h3,{id:"send-files-to-your-flows-v2",children:"Send files to your flows (v2)"}),"\n",(0,s.jsx)(t.admonition,{type:"important",children:(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"/v2/files"})," endpoint does not support sending ",(0,s.jsx)(t.strong,{children:"image"})," files to flows.\nTo send ",(0,s.jsx)(t.strong,{children:"image"})," files to your flows through the API, follow the procedure in ",(0,s.jsx)(t.a,{href:"#upload-image-files-v1",children:"Upload image files (v1)"}),"."]})}),"\n",(0,s.jsxs)(t.p,{children:["Send a file to your flow for analysis using the ",(0,s.jsx)(t.a,{href:"/components-data#file",children:"File"})," component and the API.\nYour flow must contain a ",(0,s.jsx)(t.a,{href:"/components-data#file",children:"File"})," component to receive the file."]}),"\n",(0,s.jsxs)(t.p,{children:["The default file limit is 100 MB. To configure this value, change the ",(0,s.jsx)(t.code,{children:"LANGFLOW_MAX_FILE_SIZE_UPLOAD"})," environment variable.\nFor more information, see ",(0,s.jsx)(t.a,{href:"/environment-variables#supported-variables",children:"Supported environment variables"}),"."]}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["To send a file to your flow with the API, POST the file to the ",(0,s.jsx)(t.code,{children:"/api/v2/files"})," endpoint.\nReplace ",(0,s.jsx)(t.strong,{children:"FILE_NAME"})," with the uploaded file name.\nThis is the same step described in ",(0,s.jsx)(t.a,{href:"#upload-file-v2",children:"Upload file (v2)"}),", but since you need the filename to upload to your flow, it is included here."]}),"\n"]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v2/files" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: multipart/form-data" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"x-api-key: ',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_API_KEY",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -F ",props:{style:{color:"#79C0FF"}}},{content:'"file=@FILE_NAME.EXTENSION"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsxs)(t.p,{children:["The file is uploaded in the format ",(0,s.jsx)(t.code,{children:"USER_ID/FILE_ID.FILE_EXTENSION"}),", and the API returns metadata about the uploaded file:"]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}},{content:'"d44dc2e1-9ae9-4cf6-9114-8d34a6126c94"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}},{content:'"engine_manual"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "path"',props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}},{content:'"07e5b864-e367-4f52-b647-a48035ae7e5e/d44dc2e1-9ae9-4cf6-9114-8d34a6126c94.pdf"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "size"',props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}},{content:"851160",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "provider"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]}),"\n",(0,s.jsxs)(t.ol,{start:"2",children:["\n",(0,s.jsxs)(t.li,{children:["To use this file in your flow, add a ",(0,s.jsx)(t.a,{href:"/components-data#file",children:"File"})," component to load a file into the flow."]}),"\n",(0,s.jsxs)(t.li,{children:["To load the file into your flow, send it to the ",(0,s.jsx)(t.strong,{children:"File"})," component.\nTo retrieve the ",(0,s.jsx)(t.strong,{children:"File"})," component's full name with the UUID attached, call the ",(0,s.jsx)(t.a,{href:"#read-flow",children:"Read flow"})," endpoint, and then include your ",(0,s.jsx)(t.strong,{children:"File"})," component and the file path as a tweak with the ",(0,s.jsx)(t.code,{children:"/v1/run"})," POST request.\nIn this example, the file uploaded to ",(0,s.jsx)(t.code,{children:"/v2/files"})," is included with the ",(0,s.jsx)(t.code,{children:"/v1/run"})," POST request."]}),"\n"]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl --request POST \\",props:{}}]},{tokens:[{content:' --url "$LANGFLOW_URL/api/v1/run/$FLOW_ID" \\',props:{}}]},{tokens:[{content:' --header "Content-Type: application/json" \\',props:{}}]},{tokens:[{content:" --data '{",props:{}}]},{tokens:[{content:' "input_value": "what do you see?",',props:{}}]},{tokens:[{content:' "output_type": "chat",',props:{}}]},{tokens:[{content:' "input_type": "text",',props:{}}]},{tokens:[{content:' "tweaks": {',props:{}}]},{tokens:[{content:' "File-1olS3": {',props:{}}]},{tokens:[{content:' "path": [',props:{}}]},{tokens:[{content:' "07e5b864-e367-4f52-b647-a48035ae7e5e/3a290013-fe1e-4d3d-a454-cacae81288f3.pdf"',props:{}}]},{tokens:[{content:" ]",props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:"}'",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(t.p,{children:"Result:"}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'"text":"This document provides important safety information and instructions for selecting, installing, and operating Briggs & Stratton engines. It includes warnings and guidelines to prevent injury, fire, or damage, such as choosing the correct engine model, proper installation procedures, safe fuel handling, and correct engine operation. The document emphasizes following all safety precautions and using authorized parts to ensure safe and effective engine use."',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(t.h3,{id:"list-files-v2",children:"List files (v2)"}),"\n",(0,s.jsx)(t.p,{children:"List all files associated with your user account."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v2/files" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"x-api-key: ',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_API_KEY",props:{style:{color:"#C9D1D9"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"c7b22c4c-d5e0-4ec9-af97-5d85b7657a34"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"your_file"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "path"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"6f17a73e-97d7-4519-a8d9-8e4c0be411bb/c7b22c4c-d5e0-4ec9-af97-5d85b7657a34.txt"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "size"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"1234",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "provider"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"]",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"download-file-v2",children:"Download file (v2)"}),"\n",(0,s.jsx)(t.p,{children:"Download a specific file by its ID and file extension."}),"\n",(0,s.jsx)(t.admonition,{type:"tip",children:(0,s.jsxs)(t.p,{children:["You must specify the file type you expect in the ",(0,s.jsx)(t.code,{children:"--output"})," value."]})}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v2/files/c7b22c4c-d5e0-4ec9-af97-5d85b7657a34" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"x-api-key: ',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_API_KEY",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" --output ",props:{style:{color:"#79C0FF"}}},{content:"downloaded_file.txt",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"File contents downloaded to downloaded_file.txt",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"edit-file-name-v2",children:"Edit file name (v2)"}),"\n",(0,s.jsx)(t.p,{children:"Change a file name."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"PUT ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v2/files/",props:{style:{color:"#A5D6FF"}}},{content:"$FILE_ID",props:{style:{color:"#C9D1D9"}}},{content:'?name=new_file_name" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"x-api-key: ',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_API_KEY",props:{style:{color:"#C9D1D9"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"76543e40-f388-4cb3-b0ee-a1e870aca3d3"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"new_file_name"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "path"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"6f17a73e-97d7-4519-a8d9-8e4c0be411bb/76543e40-f388-4cb3-b0ee-a1e870aca3d3.png"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "size"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"2728251",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "provider"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"delete-file-v2",children:"Delete file (v2)"}),"\n",(0,s.jsx)(t.p,{children:"Delete a specific file by its ID."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"DELETE ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v2/files/",props:{style:{color:"#A5D6FF"}}},{content:"$FILE_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"x-api-key: ',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_API_KEY",props:{style:{color:"#C9D1D9"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"File deleted successfully"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"delete-all-files-v2",children:"Delete all files (v2)"}),"\n",(0,s.jsx)(t.p,{children:"Delete all files associated with your user account."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"DELETE ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v2/files" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"x-api-key: ',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_API_KEY",props:{style:{color:"#C9D1D9"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"All files deleted successfully"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h2,{id:"flows",children:"Flows"}),"\n",(0,s.jsxs)(t.p,{children:["Use the ",(0,s.jsx)(t.code,{children:"/flows"})," endpoint to create, read, update, and delete flows."]}),"\n",(0,s.jsx)(t.h3,{id:"create-flow",children:"Create flow"}),"\n",(0,s.jsx)(t.p,{children:"Create a new flow."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/flows/" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "name": "string2",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "description": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "icon": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "icon_bg_color": "#FF0000",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "gradient": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "data": {},',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "is_component": false,',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "updated_at": "2024-12-30T15:48:01.519Z",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "webhook": false,',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "endpoint_name": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "tags": [',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "string"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ]",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string2"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "description"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon_bg_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"#FF0000"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "gradient"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "data"',props:{style:{color:"#7EE787"}}},{content:": {},",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "is_component"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "updated_at"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2025-02-04T21:07:36+00:00"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "webhook"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "endpoint_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "tags"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "locked"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"e8d81c37-714b-49ae-ba82-e61141f020ee"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "user_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"f58396d4-a387-4bb8-b749-f40825c3d9f3"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "project_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"1415de42-8f01-4f36-bf34-539f23e47466"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"read-flows",children:"Read flows"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve a list of flows with pagination support."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/flows/?remove_example_flows=false&components_only=false&get_all=true&header_flows=false&page=1&size=50" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"A JSON object containing a list of flows.",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(t.p,{children:["To retrieve only the flows from a specific project, pass ",(0,s.jsx)(t.code,{children:"project_id"})," in the query string."]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/flows/?remove_example_flows=true&components_only=false&get_all=false&project_id=",props:{style:{color:"#A5D6FF"}}},{content:"$PROJECT_ID",props:{style:{color:"#C9D1D9"}}},{content:'&header_flows=false&page=1&size=1" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"A JSON object containing a list of flows.",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"read-flow",children:"Read flow"}),"\n",(0,s.jsx)(t.p,{children:"Read a specific flow by its ID."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/flows/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Basic Prompting"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "description"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Perform basic prompting with an OpenAI model."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Braces"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon_bg_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "gradient"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "data"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "nodes"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#FFA198",fontStyle:"italic"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"update-flow",children:"Update flow"}),"\n",(0,s.jsx)(t.p,{children:"Update an existing flow by its ID."}),"\n",(0,s.jsxs)(t.p,{children:["This example changes the value for ",(0,s.jsx)(t.code,{children:"endpoint_name"})," from a random UUID to ",(0,s.jsx)(t.code,{children:"my_new_endpoint_name"}),"."]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"PATCH ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/flows/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "name": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "description": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "data": {},',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "project_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "project_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "endpoint_name": "my_new_endpoint_name",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "locked": true',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "description"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Braces"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon_bg_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "gradient"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "data"',props:{style:{color:"#7EE787"}}},{content:": {},",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "is_component"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "updated_at"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-30T18:30:22+00:00"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "webhook"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "endpoint_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"my_new_endpoint_name"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "tags"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "locked"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "user_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"f58396d4-a387-4bb8-b749-f40825c3d9f3"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "project_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "project_id"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#FFA198",fontStyle:"italic"}}},{content:'"3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"delete-flow",children:"Delete flow"}),"\n",(0,s.jsx)(t.p,{children:"Delete a specific flow by its ID."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"DELETE ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/flows/",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Flow deleted successfully"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"create-flows",children:"Create flows"}),"\n",(0,s.jsx)(t.p,{children:"Create multiple new flows."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/flows/batch/" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "flows": [',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" {",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "name": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "description": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "icon": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "icon_bg_color": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "gradient": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "data": {},',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "is_component": false,',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "updated_at": "2024-12-30T18:36:02.737Z",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "webhook": false,',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "endpoint_name": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "tags": [',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "string"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ],",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "locked": false,',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "user_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "project_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "project_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" {",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "name": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "description": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "icon": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "icon_bg_color": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "gradient": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "data": {},',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "is_component": false,',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "updated_at": "2024-12-30T18:36:02.737Z",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "webhook": false,',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "endpoint_name": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "tags": [',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "string"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ],",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "locked": false,',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "user_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "project_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "project_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ]",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" // FlowRead objects",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"]",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"upload-flows",children:"Upload flows"}),"\n",(0,s.jsx)(t.p,{children:"Upload flows from a file."}),"\n",(0,s.jsxs)(t.p,{children:["This example uploads a local file named ",(0,s.jsx)(t.code,{children:"agent-with-astra-db-tool.json"}),"."]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/flows/upload/?project_id=",props:{style:{color:"#A5D6FF"}}},{content:"$PROJECT_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: multipart/form-data" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -F ",props:{style:{color:"#79C0FF"}}},{content:'"file=@agent-with-astra-db-tool.json;type=application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"agent-with-astra-db-tool"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "description"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon_bg_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "gradient"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "data"',props:{style:{color:"#7EE787"}}},{content:": {}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#FFA198",fontStyle:"italic"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"]",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(t.p,{children:["To specify a target project for the flow, include the query parameter ",(0,s.jsx)(t.code,{children:"project_id"}),".\nThe target ",(0,s.jsx)(t.code,{children:"project_id"})," must already exist before uploading a flow. Call the ",(0,s.jsx)(t.a,{href:"#read-projects",children:"/api/v1/projects/"})," endpoint for a list of available projects.\nTo specify a target project for the flow, include the query parameter ",(0,s.jsx)(t.code,{children:"project_id"}),".\nThe target ",(0,s.jsx)(t.code,{children:"project_id"})," must already exist before uploading a flow. Call the ",(0,s.jsx)(t.a,{href:"#read-projects",children:"/api/v1/projects/"})," endpoint for a list of available projects."]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/flows/upload/?project_id=",props:{style:{color:"#A5D6FF"}}},{content:"$PROJECT_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: multipart/form-data" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -F ",props:{style:{color:"#79C0FF"}}},{content:'"file=@agent-with-astra-db-tool.json;type=application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsx)(t.h3,{id:"download-all-flows",children:"Download all flows"}),"\n",(0,s.jsx)(t.p,{children:"Download all flows as a ZIP file."}),"\n",(0,s.jsxs)(t.p,{children:["This endpoint downloads a ZIP file containing flows for all ",(0,s.jsx)(t.code,{children:"flow-id"})," values listed in the command's body."]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/flows/download/" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'[",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "e1e40c77-0541-41a9-88ab-ddb3419398b5",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "92f9a4c5-cfc8-4656-ae63-1f0881163c28"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"]' ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" --output ",props:{style:{color:"#79C0FF"}}},{content:"langflow-flows.zip",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:" % Total % Received % Xferd Average Speed Time Time Time Current",props:{}}]},{tokens:[{content:" Dload Upload Total Spent Left Speed",props:{}}]},{tokens:[{content:"100 76437 0 76353 100 84 4516k 5088 --:--:-- --:--:-- --:--:-- 4665k",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"read-basic-examples",children:"Read basic examples"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve a list of basic example flows."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/flows/basic_examples/" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"A list of example flows.",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h2,{id:"projects",children:"Projects"}),"\n",(0,s.jsxs)(t.p,{children:["Use the ",(0,s.jsx)(t.code,{children:"/projects"})," endpoint to create, read, update, and delete projects."]}),"\n",(0,s.jsx)(t.p,{children:"Projects store your flows and components."}),"\n",(0,s.jsx)(t.h3,{id:"read-projects",children:"Read projects"}),"\n",(0,s.jsx)(t.p,{children:"Get a list of Langflow projects."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/projects/" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"My Projects"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "description"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Manage your own projects. Download and upload projects."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"1415de42-8f01-4f36-bf34-539f23e47466"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "parent_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"]",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"create-project",children:"Create project"}),"\n",(0,s.jsx)(t.p,{children:"Create a new project."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/projects/" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "name": "new_project_name",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "description": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "components_list": [],',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "flows_list": []',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"new_project_name"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "description"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"b408ddb9-6266-4431-9be8-e04a62758331"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "parent_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(t.p,{children:["To add flows and components at project creation, retrieve the ",(0,s.jsx)(t.code,{children:"components_list"})," and ",(0,s.jsx)(t.code,{children:"flows_list"})," values from the ",(0,s.jsx)(t.a,{href:"#get-all-components",children:"/api/v1/store/components"})," and ",(0,s.jsx)(t.a,{href:"#read-flows",children:"/api/v1/flows/read"})," endpoints and add them to the request body."]}),"\n",(0,s.jsx)(t.p,{children:"Adding a flow to a project moves the flow from its previous location. The flow is not copied."}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/projects/" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "name": "new_project_name",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "description": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "components_list": [',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ],",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "flows_list": [',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ]",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsx)(t.h3,{id:"read-project",children:"Read project"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve details of a specific project."}),"\n",(0,s.jsxs)(t.p,{children:["To find the UUID of your project, call the ",(0,s.jsx)(t.a,{href:"#read-projects",children:"read projects"})," endpoint."]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/projects/",props:{style:{color:"#A5D6FF"}}},{content:"$PROJECT_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"My Projects"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "description"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Manage your own projects. Download and upload projects."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "parent_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"]",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"update-project",children:"Update project"}),"\n",(0,s.jsxs)(t.p,{children:["Update the information of a specific project with a ",(0,s.jsx)(t.code,{children:"PATCH"})," request."]}),"\n",(0,s.jsx)(t.p,{children:"Each PATCH request updates the project with the values you send.\nOnly the fields you include in your request are updated.\nIf you send the same values multiple times, the update is still processed, even if the values are unchanged."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"PATCH ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/projects/b408ddb9-6266-4431-9be8-e04a62758331" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "name": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "description": "string",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "parent_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "components": [',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ],",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "flows": [',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ]",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "description"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"b408ddb9-6266-4431-9be8-e04a62758331"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "parent_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"delete-project",children:"Delete project"}),"\n",(0,s.jsx)(t.p,{children:"Delete a specific project."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"DELETE ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/projects/",props:{style:{color:"#A5D6FF"}}},{content:"$PROJECT_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: */*"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"204 No Content",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"download-project",children:"Download project"}),"\n",(0,s.jsx)(t.p,{children:"Download all flows from a project as a zip file."}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"--output"})," flag is optional."]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/projects/download/b408ddb9-6266-4431-9be8-e04a62758331" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" --output ",props:{style:{color:"#79C0FF"}}},{content:"langflow-project.zip",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"The project contents.",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"upload-project",children:"Upload project"}),"\n",(0,s.jsx)(t.p,{children:"Upload a project to Langflow."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/projects/upload/" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: multipart/form-data" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -F ",props:{style:{color:"#79C0FF"}}},{content:'"file=@20241230_135006_langflow_flows.zip;type=application/zip"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"The project contents are uploaded to Langflow.",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h2,{id:"logs",children:"Logs"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve logs for your Langflow flow."}),"\n",(0,s.jsx)(t.p,{children:"This endpoint requires log retrieval to be enabled in your Langflow application."}),"\n",(0,s.jsxs)(t.p,{children:["To enable log retrieval, include these values in your ",(0,s.jsx)(t.code,{children:".env"})," file:"]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW_ENABLE_LOG_RETRIEVAL=true",props:{}}]},{tokens:[{content:"LANGFLOW_LOG_RETRIEVER_BUFFER_SIZE=10000",props:{}}]},{tokens:[{content:"LANGFLOW_LOG_LEVEL=DEBUG",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(t.p,{children:["For log retrieval to function, ",(0,s.jsx)(t.code,{children:"LANGFLOW_LOG_RETRIEVER_BUFFER_SIZE"})," needs to be greater than 0. The default value is ",(0,s.jsx)(t.code,{children:"10000"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["Start Langflow with this ",(0,s.jsx)(t.code,{children:".env"}),":"]}),"\n",(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv run langflow run --env-file .env",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(t.h3,{id:"stream-logs",children:"Stream logs"}),"\n",(0,s.jsx)(t.p,{children:"Stream logs in real-time using Server-Sent Events (SSE)."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/logs-stream" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: text/event-stream"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"keepalive",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"1736355791151": "2025-01-08T12:03:11.151218-0500 DEBUG Building Chat Input\\n"}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"1736355791485": "2025-01-08T12:03:11.485380-0500 DEBUG consumed event add_message-153bcd5d-ef4d-4ece-8cc0-47c6b6a9ef92 (time in queue, 0.0000, client 0.0001)\\n"}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"1736355791499": "2025-01-08T12:03:11.499704-0500 DEBUG consumed event end_vertex-3d7125cd-7b8a-44eb-9113-ed5b785e3cf3 (time in queue, 0.0056, client 0.0047)\\n"}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"1736355791502": "2025-01-08T12:03:11.502510-0500 DEBUG consumed event end-40d0b363-5618-4a23-bbae-487cd0b9594d (time in queue, 0.0001, client 0.0004)\\n"}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"1736355791513": "2025-01-08T12:03:11.513097-0500 DEBUG Logged vertex build: 729ff2f8-6b01-48c8-9ad0-3743c2af9e8a\\n"}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"1736355791834": "2025-01-08T12:03:11.834982-0500 DEBUG Telemetry data sent successfully.\\n"}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:'{"1736355791941": "2025-01-08T12:03:11.941840-0500 DEBUG Telemetry data sent successfully.\\n"}',props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"keepalive",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"retrieve-logs-with-optional-parameters",children:"Retrieve logs with optional parameters"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve logs with optional query parameters."}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"lines_before"}),": The number of logs before the timestamp or the last log."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"lines_after"}),": The number of logs after the timestamp."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"timestamp"}),": The timestamp to start getting logs from."]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["The default values for all three parameters is ",(0,s.jsx)(t.code,{children:"0"}),".\nWith these values, the endpoint returns the last 10 lines of logs."]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/logs?lines_before=0&lines_after=0×tamp=0" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:' "1736354770500": "2025-01-08T11:46:10.500363-0500 DEBUG Creating starter project Document Q&A\\n",',props:{}}]},{tokens:[{content:' "1736354770511": "2025-01-08T11:46:10.511146-0500 DEBUG Creating starter project Image Sentiment Analysis\\n",',props:{}}]},{tokens:[{content:' "1736354770521": "2025-01-08T11:46:10.521018-0500 DEBUG Creating starter project SEO Keyword Generator\\n",',props:{}}]},{tokens:[{content:' "1736354770532": "2025-01-08T11:46:10.532677-0500 DEBUG Creating starter project Sequential Tasks Agents\\n",',props:{}}]},{tokens:[{content:' "1736354770544": "2025-01-08T11:46:10.544010-0500 DEBUG Creating starter project Custom Component Generator\\n",',props:{}}]},{tokens:[{content:' "1736354770555": "2025-01-08T11:46:10.555513-0500 DEBUG Creating starter project Prompt Chaining\\n",',props:{}}]},{tokens:[{content:' "1736354770588": "2025-01-08T11:46:10.588105-0500 DEBUG Create service ServiceType.CHAT_SERVICE\\n",',props:{}}]},{tokens:[{content:' "1736354771021": "2025-01-08T11:46:11.021817-0500 DEBUG Telemetry data sent successfully.\\n",',props:{}}]},{tokens:[{content:' "1736354775619": "2025-01-08T11:46:15.619545-0500 DEBUG Create service ServiceType.STORE_SERVICE\\n",',props:{}}]},{tokens:[{content:' "1736354775699": "2025-01-08T11:46:15.699661-0500 DEBUG File 046-rocket.svg retrieved successfully from flow /Users/mendon.kissling/Library/Caches/langflow/profile_pictures/Space.\\n"',props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h2,{id:"monitor",children:"Monitor"}),"\n",(0,s.jsxs)(t.p,{children:["Use the ",(0,s.jsx)(t.code,{children:"/monitor"})," endpoint to monitor and modify messages passed between Langflow components, vertex builds, and transactions."]}),"\n",(0,s.jsx)(t.h3,{id:"get-vertex-builds",children:"Get Vertex builds"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve Vertex builds for a specific flow."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/monitor/builds?flow_id=",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "vertex_builds"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "ChatInput-NCmix"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "data"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "results"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text_key"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"text"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "data"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timestamp"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-23 19:10:57"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "session_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Hello"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "error"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"False"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edit"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"False"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "properties"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "background_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edited"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"False"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"None"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"None"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"None"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "allow_markdown"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"False"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "positive_feedback"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"None"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "state"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"complete"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "targets"',props:{style:{color:"#7EE787"}}},{content:": []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "category"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"message"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "content_blocks"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"c95bed34-f906-4aa6-84e4-68553f6db772"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flow_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "default_value"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Hello"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "session_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timestamp"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-23 19:10:57+00:00"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flow_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "error"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"False"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edit"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"False"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "properties"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "background_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edited"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"False"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"None"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"None"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"None"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "allow_markdown"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"False"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "positive_feedback"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"None"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "state"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"complete"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "targets"',props:{style:{color:"#7EE787"}}},{content:": []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "category"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"message"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "content_blocks"',props:{style:{color:"#7EE787"}}},{content:": []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "outputs"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timestamp"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-23T19:10:57"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "session_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Hello"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "error"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edit"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "properties"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "background_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edited"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "allow_markdown"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "positive_feedback"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "state"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"complete"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "targets"',props:{style:{color:"#7EE787"}}},{content:": []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "category"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"message"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "content_blocks"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"c95bed34-f906-4aa6-84e4-68553f6db772"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flow_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"object"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "logs"',props:{style:{color:"#7EE787"}}},{content:": { ",props:{style:{color:"#C9D1D9"}}},{content:'"message"',props:{style:{color:"#7EE787"}}},{content:": [] },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Hello"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"object"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "artifacts"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Hello"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"object"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timedelta"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"0.015060124918818474",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "duration"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"15 ms"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "used_frozen_result"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "artifacts"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Hello"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"object"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "params"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"- Files: []',props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:" Message: Hello",props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:" Sender: User",props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:" Sender Name: User",props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:" Type: object",props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "valid"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "build_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"40aa200e-74db-4651-b698-f80301d2b26b"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"ChatInput-NCmix"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timestamp"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-23T19:10:58.772766Z"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flow_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Prompt-BEn9c"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "data"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "results"',props:{style:{color:"#7EE787"}}},{content:": {},",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "outputs"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "prompt"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"text"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "logs"',props:{style:{color:"#7EE787"}}},{content:": { ",props:{style:{color:"#C9D1D9"}}},{content:'"prompt"',props:{style:{color:"#7EE787"}}},{content:": [] },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "prompt"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "repr"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "raw"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"text"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "artifacts"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "prompt"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "repr"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "raw"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"text"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timedelta"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"0.0057758750626817346",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "duration"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"6 ms"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "used_frozen_result"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "artifacts"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "prompt"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "repr"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "raw"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Answer the user as if you were a GenAI expert, enthusiastic about helping them get started building something fresh."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"text"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "params"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"None"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "valid"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "build_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"39bbbfde-97fd-42a5-a9ed-d42a5c5d532b"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Prompt-BEn9c"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timestamp"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-23T19:10:58.781019Z"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flow_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "OpenAIModel-7AjrN"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "data"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "results"',props:{style:{color:"#7EE787"}}},{content:": {},",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "outputs"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text_output"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"Hello! \ud83c\udf1f I'm excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it's a project, an idea, or a concept, let's dive in and make it happen!\"",props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"text"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "model_output"',props:{style:{color:"#7EE787"}}},{content:": { ",props:{style:{color:"#C9D1D9"}}},{content:'"message"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"unknown"',props:{style:{color:"#A5D6FF"}}},{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "logs"',props:{style:{color:"#7EE787"}}},{content:": { ",props:{style:{color:"#C9D1D9"}}},{content:'"text_output"',props:{style:{color:"#7EE787"}}},{content:": [] },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text_output"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "repr"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"Hello! \ud83c\udf1f I'm excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it's a project, an idea, or a concept, let's dive in and make it happen!\"",props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "raw"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"Hello! \ud83c\udf1f I'm excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it's a project, an idea, or a concept, let's dive in and make it happen!\"",props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"text"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "artifacts"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text_output"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "repr"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"Hello! \ud83c\udf1f I'm excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it's a project, an idea, or a concept, let's dive in and make it happen!\"",props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "raw"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"Hello! \ud83c\udf1f I'm excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it's a project, an idea, or a concept, let's dive in and make it happen!\"",props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"text"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timedelta"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"1.034765167045407",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "duration"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"1.03 seconds"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "used_frozen_result"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "artifacts"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text_output"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "repr"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"Hello! \ud83c\udf1f I'm excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it's a project, an idea, or a concept, let's dive in and make it happen!\"",props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "raw"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"Hello! \ud83c\udf1f I'm excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it's a project, an idea, or a concept, let's dive in and make it happen!\"",props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"text"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "params"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"None"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "valid"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "build_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"4f0ae730-a266-4d35-b89f-7b825c620a0f"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"OpenAIModel-7AjrN"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timestamp"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-23T19:10:58.790484Z"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flow_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "ChatOutput-sfUhT"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "data"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "results"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text_key"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"text"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "data"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timestamp"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-23 19:10:58"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Machine"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"AI"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "session_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"Hello! \ud83c\udf1f I'm excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it's a project, an idea, or a concept, let's dive in and make it happen!\"",props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "error"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"False"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edit"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"False"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "properties"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "background_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edited"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"False"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"OpenAIModel-7AjrN"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"OpenAI"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"gpt-4o-mini"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"OpenAI"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "allow_markdown"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"False"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "positive_feedback"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"None"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "state"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"complete"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "targets"',props:{style:{color:"#7EE787"}}},{content:": []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "category"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"message"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "content_blocks"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"5688356d-9f30-40ca-9907-79a7a2fc16fd"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flow_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "default_value"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"Hello! \ud83c\udf1f I'm excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it's a project, an idea, or a concept, let's dive in and make it happen!\"",props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Machine"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"AI"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "session_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timestamp"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-23 19:10:58+00:00"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flow_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "error"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"False"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edit"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"False"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "properties"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "background_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edited"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"False"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"OpenAIModel-7AjrN"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"OpenAI"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"gpt-4o-mini"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"OpenAI"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "allow_markdown"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"False"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "positive_feedback"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"None"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "state"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"complete"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "targets"',props:{style:{color:"#7EE787"}}},{content:": []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "category"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"message"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "content_blocks"',props:{style:{color:"#7EE787"}}},{content:": []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "outputs"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timestamp"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-23T19:10:58"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Machine"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"AI"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "session_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"Hello! \ud83c\udf1f I'm excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it's a project, an idea, or a concept, let's dive in and make it happen!\"",props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "error"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edit"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "properties"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "background_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edited"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"OpenAIModel-7AjrN"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"OpenAI"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"gpt-4o-mini"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"OpenAI"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "allow_markdown"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "positive_feedback"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "state"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"complete"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "targets"',props:{style:{color:"#7EE787"}}},{content:": []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "category"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"message"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "content_blocks"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"5688356d-9f30-40ca-9907-79a7a2fc16fd"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flow_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"object"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "logs"',props:{style:{color:"#7EE787"}}},{content:": { ",props:{style:{color:"#C9D1D9"}}},{content:'"message"',props:{style:{color:"#7EE787"}}},{content:": [] },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"Hello! \ud83c\udf1f I'm excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it's a project, an idea, or a concept, let's dive in and make it happen!\"",props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Machine"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"AI"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"object"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "artifacts"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"Hello! \ud83c\udf1f I'm excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it's a project, an idea, or a concept, let's dive in and make it happen!\"",props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Machine"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"AI"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"object"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timedelta"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"0.017838125000707805",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "duration"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"18 ms"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "used_frozen_result"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "artifacts"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"Hello! \ud83c\udf1f I'm excited to help you get started on your journey to building something fresh! What do you have in mind? Whether it's a project, an idea, or a concept, let's dive in and make it happen!\"",props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Machine"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"AI"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"object"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "params"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"- Files: []',props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:" Message: Hello! \ud83c\udf1f I'm excited to help you get started on your journey to building",props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:" something fresh! What do you have in mind? Whether it's a project, an idea, or",props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:" a concept, let's dive in and make it happen!",props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:" Sender: Machine",props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:" Sender Name: AI",props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:" Type: object",props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "valid"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "build_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"1e8b908b-aba7-403b-9e9b-eca92bb78668"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"ChatOutput-sfUhT"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timestamp"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-23T19:10:58.813268Z"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flow_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"delete-vertex-builds",children:"Delete Vertex builds"}),"\n",(0,s.jsx)(t.p,{children:"Delete Vertex builds for a specific flow."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"DELETE ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/monitor/builds?flow_id=",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: */*"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"204 No Content",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"get-messages",children:"Get messages"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve messages with optional filters."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/monitor/messages" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"A list of all messages.",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(t.p,{children:["You can filter messages by ",(0,s.jsx)(t.code,{children:"flow_id"}),", ",(0,s.jsx)(t.code,{children:"session_id"}),", ",(0,s.jsx)(t.code,{children:"sender"}),", and ",(0,s.jsx)(t.code,{children:"sender_name"}),".\nResults can be ordered with the ",(0,s.jsx)(t.code,{children:"order_by"})," query string."]}),"\n",(0,s.jsxs)(t.p,{children:["This example retrieves messages sent by ",(0,s.jsx)(t.code,{children:"Machine"})," and ",(0,s.jsx)(t.code,{children:"AI"})," in a given chat session (",(0,s.jsx)(t.code,{children:"session_id"}),") and orders the messages by timestamp."]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/monitor/messages?flow_id=",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'&session_id=01ce083d-748b-4b8d-97b6-33adbb6a528a&sender=Machine&sender_name=AI&order_by=timestamp" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"1c1d6134-9b8b-4079-931c-84dcaddf19ba"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flow_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timestamp"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-23 19:20:11 UTC"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Machine"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"AI"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "session_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"Hello! It's great to see you here! What exciting project or idea are you thinking about diving into today? Whether it's something fresh and innovative or a classic concept with a twist, I'm here to help you get started! Let's brainstorm together!\"",props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"[]"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edit"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "properties"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "background_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edited"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"OpenAIModel-7AjrN"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"OpenAI"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"gpt-4o-mini"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"OpenAI"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "allow_markdown"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "positive_feedback"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "state"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"complete"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "targets"',props:{style:{color:"#7EE787"}}},{content:": []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "category"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"message"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "content_blocks"',props:{style:{color:"#7EE787"}}},{content:": []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"]",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"delete-messages",children:"Delete messages"}),"\n",(0,s.jsx)(t.p,{children:"Delete specific messages by their IDs."}),"\n",(0,s.jsx)(t.p,{children:"This example deletes the message retrieved in the previous Get messages example."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-v -X ",props:{style:{color:"#79C0FF"}}},{content:"DELETE ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/monitor/messages" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: */*" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:'\'["MESSAGE_ID_1", "MESSAGE_ID_2"]\'',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"204 No Content",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"update-message",children:"Update message"}),"\n",(0,s.jsx)(t.p,{children:"Update a specific message by its ID."}),"\n",(0,s.jsxs)(t.p,{children:["This example updates the ",(0,s.jsx)(t.code,{children:"text"})," value of message ",(0,s.jsx)(t.code,{children:"3ab66cc6-c048-48f8-ab07-570f5af7b160"}),"."]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"PUT ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/monitor/messages/3ab66cc6-c048-48f8-ab07-570f5af7b160" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"Content-Type: application/json" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "text": "testing 1234"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timestamp"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-23T18:49:06"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "session_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"testing 1234"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "error"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edit"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "properties"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "background_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edited"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": { ",props:{style:{color:"#C9D1D9"}}},{content:'"id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"display_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"source"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "allow_markdown"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "positive_feedback"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "state"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"complete"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "targets"',props:{style:{color:"#7EE787"}}},{content:": []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "category"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"message"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "content_blocks"',props:{style:{color:"#7EE787"}}},{content:": [],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"3ab66cc6-c048-48f8-ab07-570f5af7b160"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flow_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"update-session-id",children:"Update session ID"}),"\n",(0,s.jsx)(t.p,{children:"Update the session ID for messages."}),"\n",(0,s.jsxs)(t.p,{children:["This example updates the ",(0,s.jsx)(t.code,{children:"session_ID"})," value ",(0,s.jsx)(t.code,{children:"01ce083d-748b-4b8d-97b6-33adbb6a528a"})," to ",(0,s.jsx)(t.code,{children:"different_session_id"}),"."]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"PATCH ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/monitor/messages/session/01ce083d-748b-4b8d-97b6-33adbb6a528a?new_session_id=different_session_id" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"[",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"8dd7f064-e63a-4773-b472-ca0475249dfd"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flow_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"01ce083d-748b-4b8d-97b6-33adbb6a528a"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timestamp"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-23 18:49:55 UTC"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"User"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "session_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"different_session_id"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"message"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "files"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"[]"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edit"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "properties"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "background_color"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "edited"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "source"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "allow_markdown"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "positive_feedback"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "state"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"complete"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "targets"',props:{style:{color:"#7EE787"}}},{content:": []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "category"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"message"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "content_blocks"',props:{style:{color:"#7EE787"}}},{content:": []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"]",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"delete-messages-by-session",children:"Delete messages by session"}),"\n",(0,s.jsx)(t.p,{children:"Delete all messages for a specific session."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"DELETE ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:'/api/v1/monitor/messages/session/different_session_id_2" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: */*"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"HTTP/1.1 204 No Content",props:{}}]}],lang:"text"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h3,{id:"get-transactions",children:"Get transactions"}),"\n",(0,s.jsx)(t.p,{children:"Retrieve all transactions (interactions between components) for a specific flow."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(p.A,{value:"curl",label:"curl",default:!0,children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"GET ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "',props:{style:{color:"#A5D6FF"}}},{content:"$LANGFLOW_URL",props:{style:{color:"#C9D1D9"}}},{content:"/api/v1/monitor/transactions?flow_id=",props:{style:{color:"#A5D6FF"}}},{content:"$FLOW_ID",props:{style:{color:"#C9D1D9"}}},{content:'&page=1&size=50" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:'"accept: application/json"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"result",label:"Result",children:(0,s.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "items"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timestamp"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2024-12-23T20:05:01.061Z"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "vertex_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "target_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "inputs"',props:{style:{color:"#7EE787"}}},{content:": {},",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "outputs"',props:{style:{color:"#7EE787"}}},{content:": {},",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "status"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "error"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"string"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "flow_id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"3fa85f64-5717-4562-b3fc-2c963f66afa6"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "total"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"0",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "page"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"1",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "size"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"1",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "pages"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"0",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]})]})}function C(o={}){const{wrapper:t}={...(0,l.R)(),...o.components};return t?(0,s.jsx)(t,{...o,children:(0,s.jsx)(h,{...o})}):h(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.")}},65537:(o,t,e)=>{e.d(t,{A:()=>j});var n=e(96540),s=e(18215),l=e(65627),r=e(56347),c=e(50372),p=e(30604),a=e(11861),i=e(78749);function y(o){return n.Children.toArray(o).filter((o=>"\n"!==o)).map((o=>{if(!o||(0,n.isValidElement)(o)&&function(o){const{props:t}=o;return!!t&&"object"==typeof t&&"value"in t}(o))return o;throw new Error(`Docusaurus error: Bad child <${"string"==typeof o.type?o.type:o.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function D(o){const{values:t,children:e}=o;return(0,n.useMemo)((()=>{const o=t??function(o){return y(o).map((o=>{let{props:{value:t,label:e,attributes:n,default:s}}=o;return{value:t,label:e,attributes:n,default:s}}))}(e);return function(o){const t=(0,a.XI)(o,((o,t)=>o.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((o=>o.value)).join(", ")}" found in . Every value needs to be unique.`)}(o),o}),[t,e])}function d(o){let{value:t,tabValues:e}=o;return e.some((o=>o.value===t))}function F(o){let{queryString:t=!1,groupId:e}=o;const s=(0,r.W6)(),l=function(o){let{queryString:t=!1,groupId:e}=o;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!e)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 e??null}({queryString:t,groupId:e});return[(0,p.aZ)(l),(0,n.useCallback)((o=>{if(!l)return;const t=new URLSearchParams(s.location.search);t.set(l,o),s.replace({...s.location,search:t.toString()})}),[l,s])]}function h(o){const{defaultValue:t,queryString:e=!1,groupId:s}=o,l=D(o),[r,p]=(0,n.useState)((()=>function(o){let{defaultValue:t,tabValues:e}=o;if(0===e.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!d({value:t,tabValues:e}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${e.map((o=>o.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=e.find((o=>o.default))??e[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:l}))),[a,y]=F({queryString:e,groupId:s}),[h,C]=function(o){let{groupId:t}=o;const e=function(o){return o?`docusaurus.tab.${o}`:null}(t),[s,l]=(0,i.Dv)(e);return[s,(0,n.useCallback)((o=>{e&&l.set(o)}),[e,l])]}({groupId:s}),u=(()=>{const o=a??h;return d({value:o,tabValues:l})?o:null})();(0,c.A)((()=>{u&&p(u)}),[u]);return{selectedValue:r,selectValue:(0,n.useCallback)((o=>{if(!d({value:o,tabValues:l}))throw new Error(`Can't select invalid tab value=${o}`);p(o),y(o),C(o)}),[y,C,l]),tabValues:l}}var C=e(9136);const u={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var f=e(74848);function k(o){let{className:t,block:e,selectedValue:n,selectValue:r,tabValues:c}=o;const p=[],{blockElementScrollPositionUntilNextRender:a}=(0,l.a_)(),i=o=>{const t=o.currentTarget,e=p.indexOf(t),s=c[e].value;s!==n&&(a(t),r(s))},y=o=>{let t=null;switch(o.key){case"Enter":i(o);break;case"ArrowRight":{const e=p.indexOf(o.currentTarget)+1;t=p[e]??p[0];break}case"ArrowLeft":{const e=p.indexOf(o.currentTarget)-1;t=p[e]??p[p.length-1];break}}t?.focus()};return(0,f.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":e},t),children:c.map((o=>{let{value:t,label:e,attributes:l}=o;return(0,f.jsx)("li",{role:"tab",tabIndex:n===t?0:-1,"aria-selected":n===t,ref:o=>{p.push(o)},onKeyDown:y,onClick:i,...l,className:(0,s.A)("tabs__item",u.tabItem,l?.className,{"tabs__item--active":n===t}),children:e??t},t)}))})}function E(o){let{lazy:t,children:e,selectedValue:l}=o;const r=(Array.isArray(e)?e:[e]).filter(Boolean);if(t){const o=r.find((o=>o.props.value===l));return o?(0,n.cloneElement)(o,{className:(0,s.A)("margin-top--md",o.props.className)}):null}return(0,f.jsx)("div",{className:"margin-top--md",children:r.map(((o,t)=>(0,n.cloneElement)(o,{key:t,hidden:o.props.value!==l})))})}function A(o){const t=h(o);return(0,f.jsxs)("div",{className:(0,s.A)("tabs-container",u.tabList),children:[(0,f.jsx)(k,{...t,...o}),(0,f.jsx)(E,{...t,...o})]})}function j(o){const t=(0,C.A)();return(0,f.jsx)(A,{...o,children:y(o.children)},String(t))}},79329:(o,t,e)=>{e.d(t,{A:()=>r});e(96540);var n=e(18215);const s={tabItem:"tabItem_Ymn6"};var l=e(74848);function r(o){let{children:t,hidden:e,className:r}=o;return(0,l.jsx)("div",{role:"tabpanel",className:(0,n.A)(s.tabItem,r),hidden:e,children:t})}}}]);
\ No newline at end of file
diff --git a/assets/js/2ab0d4f5.3cf8d62c.js b/assets/js/2ab0d4f5.3cf8d62c.js
deleted file mode 100644
index a02156f109..0000000000
--- a/assets/js/2ab0d4f5.3cf8d62c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1845],{28453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>o});var i=t(96540);const s={},r=i.createContext(s);function a(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),i.createElement(r.Provider,{value:n},e.children)}},83640:(e,n,t)=>{t.r(n),t.d(n,{contentTitle:()=>o,default:()=>c,frontMatter:()=>a,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"type":"api","id":"simplified-run-flow","title":"Simplified Run Flow","description":"","slug":"/simplified-run-flow","frontMatter":{},"api":{"tags":["Base"],"description":"Executes a specified flow by ID with support for streaming and telemetry.\\n\\nThis endpoint executes a flow identified by ID or name, with options for streaming the response\\nand tracking execution metrics. It handles both streaming and non-streaming execution modes.\\n\\nArgs:\\n background_tasks (BackgroundTasks): FastAPI background task manager\\n flow (FlowRead | None): The flow to execute, loaded via dependency\\n input_request (SimplifiedAPIRequest | None): Input parameters for the flow\\n stream (bool): Whether to stream the response\\n api_key_user (UserRead): Authenticated user from API key\\n request (Request): The incoming HTTP request\\n\\nReturns:\\n Union[StreamingResponse, RunResponse]: Either a streaming response for real-time results\\n or a RunResponse with the complete execution results\\n\\nRaises:\\n HTTPException: For flow not found (404) or invalid input (400)\\n APIException: For internal execution errors (500)\\n\\nNotes:\\n - Supports both streaming and non-streaming execution modes\\n - Tracks execution time and success/failure via telemetry\\n - Handles graceful client disconnection in streaming mode\\n - Provides detailed error handling with appropriate HTTP status codes\\n - In streaming mode, uses EventManager to handle events:\\n - \\"add_message\\": New messages during execution\\n - \\"token\\": Individual tokens during streaming\\n - \\"end\\": Final execution result","operationId":"simplified_run_flow_api_v1_run__flow_id_or_name__post","security":[{"API key query":[]},{"API key header":[]}],"parameters":[{"name":"flow_id_or_name","in":"path","required":true,"schema":{"type":"string","title":"Flow Id Or Name"}},{"name":"stream","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Stream"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"string","format":"uuid"},{"type":"null"}],"title":"User Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"properties":{"input_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Value","description":"The input value"},"input_type":{"anyOf":[{"type":"string","enum":["chat","text","any"]},{"type":"null"}],"title":"Input Type","description":"The input type","default":"chat"},"output_type":{"anyOf":[{"type":"string","enum":["chat","text","any","debug"]},{"type":"null"}],"title":"Output Type","description":"The output type","default":"chat"},"output_component":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output Component","description":"If there are multiple output components, you can specify the component to get the output from.","default":""},"tweaks":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"object"}]},"type":"object","title":"Tweaks","description":"A dictionary of tweaks to adjust the flow\'s execution. Allows customizing flow behavior dynamically. All tweaks are overridden by the input values.","examples":[{"Component Name":{"parameter_name":"value"},"component_id":{"parameter_name":"value"},"parameter_name":"value"}]},{"type":"null"}],"description":"The tweaks"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"The session id"}},"type":"object","title":"SimplifiedAPIRequest"},{"type":"null"}],"title":"Input Request"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}},"method":"post","path":"/api/v1/run/{flow_id_or_name}","securitySchemes":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"api/v1/login"}}},"API key query":{"type":"apiKey","in":"query","name":"x-api-key"},"API key header":{"type":"apiKey","in":"header","name":"x-api-key"}},"info":{"title":"Langflow","version":"1.4.2"},"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 \\"nostrud_ad6\\": \\"\\"\\n },\\n \\"session_id\\": \\"\\"\\n}","options":{"raw":{"language":"json"}}},"auth":{"type":"apikey","apikey":[{"type":"any","value":"x-api-key","key":"key"},{"type":"any","value":"{{apiKey}}","key":"value"},{"type":"any","value":"query","key":"in"}]}}},"source":"@site/openapi.json","sourceDirName":".","permalink":"/api/simplified-run-flow","previous":{"title":"Get All","permalink":"/api/get-all"},"next":{"title":"Webhook Run Flow","permalink":"/api/webhook-run-flow"}}');var s=t(74848),r=t(28453);const a={},o="Simplified Run Flow",l=[];function d(e){const n={h1:"h1",header:"header",li:"li",p:"p",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"simplified-run-flow",children:"Simplified Run Flow"})}),"\n",(0,s.jsx)(n.p,{children:"Executes a specified flow by ID with support for streaming and telemetry."}),"\n",(0,s.jsx)(n.p,{children:"This endpoint executes a flow identified by ID or name, with options for streaming the response\nand tracking execution metrics. It handles both streaming and non-streaming execution modes."}),"\n",(0,s.jsx)(n.p,{children:"Args:\nbackground_tasks (BackgroundTasks): FastAPI background task manager\nflow (FlowRead | None): The flow to execute, loaded via dependency\ninput_request (SimplifiedAPIRequest | None): Input parameters for the flow\nstream (bool): Whether to stream the response\napi_key_user (UserRead): Authenticated user from API key\nrequest (Request): The incoming HTTP request"}),"\n",(0,s.jsx)(n.p,{children:"Returns:\nUnion[StreamingResponse, RunResponse]: Either a streaming response for real-time results\nor a RunResponse with the complete execution results"}),"\n",(0,s.jsx)(n.p,{children:"Raises:\nHTTPException: For flow not found (404) or invalid input (400)\nAPIException: For internal execution errors (500)"}),"\n",(0,s.jsx)(n.p,{children:"Notes:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Supports both streaming and non-streaming execution modes"}),"\n",(0,s.jsx)(n.li,{children:"Tracks execution time and success/failure via telemetry"}),"\n",(0,s.jsx)(n.li,{children:"Handles graceful client disconnection in streaming mode"}),"\n",(0,s.jsx)(n.li,{children:"Provides detailed error handling with appropriate HTTP status codes"}),"\n",(0,s.jsxs)(n.li,{children:["In streaming mode, uses EventManager to handle events:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:'"add_message": New messages during execution'}),"\n",(0,s.jsx)(n.li,{children:'"token": Individual tokens during streaming'}),"\n",(0,s.jsx)(n.li,{children:'"end": Final execution result'}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("th",{style:{textAlign:"left"},children:"Path Parameters"})})}),(0,s.jsx)("tbody",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"flow_id_or_name"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" Flow Id Or Name"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,s.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-required)"},children:" REQUIRED"})]})})})]}),"\n",(0,s.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("th",{style:{textAlign:"left"},children:"Query Parameters"})})}),(0,s.jsxs)("tbody",{children:[(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"stream"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" Stream"})]})}),(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"user_id"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" User Id"})]})})]})]}),"\n",(0,s.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("th",{style:{textAlign:"left"},children:[(0,s.jsx)("span",{children:"Request Body "}),(0,s.jsx)("div",{})]})})}),(0,s.jsx)("tbody",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("td",{children:(0,s.jsx)("span",{style:{opacity:"0.6"},children:" undefined"})})})})]}),"\n",(0,s.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("th",{style:{textAlign:"left"},children:"Responses"})})}),(0,s.jsxs)("tbody",{children:[(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsxs)("div",{style:{display:"flex"},children:[(0,s.jsx)("div",{style:{marginRight:"var(--ifm-table-cell-padding)"},children:(0,s.jsx)("code",{children:"200"})}),(0,s.jsx)("div",{children:(0,s.jsx)(n.p,{children:"Successful Response"})})]}),(0,s.jsx)("div",{children:(0,s.jsxs)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("th",{style:{textAlign:"left"},children:[(0,s.jsx)("span",{children:"Schema "}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,s.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,s.jsx)("div",{})]})})}),(0,s.jsx)("tbody",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("td",{children:(0,s.jsx)("span",{style:{opacity:"0.6"},children:" undefined"})})})})]})})]})}),(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsxs)("div",{style:{display:"flex"},children:[(0,s.jsx)("div",{style:{marginRight:"var(--ifm-table-cell-padding)"},children:(0,s.jsx)("code",{children:"422"})}),(0,s.jsx)("div",{children:(0,s.jsx)(n.p,{children:"Validation Error"})})]}),(0,s.jsx)("div",{children:(0,s.jsxs)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("th",{style:{textAlign:"left"},children:[(0,s.jsx)("span",{children:"Schema "}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,s.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,s.jsx)("div",{})]})})}),(0,s.jsx)("tbody",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"detail"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" object[]"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,s.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,s.jsx)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:(0,s.jsxs)("tbody",{children:[(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"loc"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" undefined[]"})]})}),(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"msg"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" Message"})]})}),(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"type"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" Error Type"})]})})]})})]})})})]})})]})})]})]})]})}function c(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}}}]);
\ No newline at end of file
diff --git a/assets/js/2ab0d4f5.785470cc.js b/assets/js/2ab0d4f5.785470cc.js
new file mode 100644
index 0000000000..861f700879
--- /dev/null
+++ b/assets/js/2ab0d4f5.785470cc.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1845],{28453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>o});var i=t(96540);const s={},r=i.createContext(s);function a(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),i.createElement(r.Provider,{value:n},e.children)}},83640:(e,n,t)=>{t.r(n),t.d(n,{contentTitle:()=>o,default:()=>c,frontMatter:()=>a,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"type":"api","id":"simplified-run-flow","title":"Simplified Run Flow","description":"","slug":"/simplified-run-flow","frontMatter":{},"api":{"tags":["Base"],"description":"Executes a specified flow by ID with support for streaming and telemetry.\\n\\nThis endpoint executes a flow identified by ID or name, with options for streaming the response\\nand tracking execution metrics. It handles both streaming and non-streaming execution modes.\\n\\nArgs:\\n background_tasks (BackgroundTasks): FastAPI background task manager\\n flow (FlowRead | None): The flow to execute, loaded via dependency\\n input_request (SimplifiedAPIRequest | None): Input parameters for the flow\\n stream (bool): Whether to stream the response\\n api_key_user (UserRead): Authenticated user from API key\\n request (Request): The incoming HTTP request\\n\\nReturns:\\n Union[StreamingResponse, RunResponse]: Either a streaming response for real-time results\\n or a RunResponse with the complete execution results\\n\\nRaises:\\n HTTPException: For flow not found (404) or invalid input (400)\\n APIException: For internal execution errors (500)\\n\\nNotes:\\n - Supports both streaming and non-streaming execution modes\\n - Tracks execution time and success/failure via telemetry\\n - Handles graceful client disconnection in streaming mode\\n - Provides detailed error handling with appropriate HTTP status codes\\n - In streaming mode, uses EventManager to handle events:\\n - \\"add_message\\": New messages during execution\\n - \\"token\\": Individual tokens during streaming\\n - \\"end\\": Final execution result","operationId":"simplified_run_flow_api_v1_run__flow_id_or_name__post","security":[{"API key query":[]},{"API key header":[]}],"parameters":[{"name":"flow_id_or_name","in":"path","required":true,"schema":{"type":"string","title":"Flow Id Or Name"}},{"name":"stream","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Stream"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"string","format":"uuid"},{"type":"null"}],"title":"User Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"properties":{"input_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Value","description":"The input value"},"input_type":{"anyOf":[{"type":"string","enum":["chat","text","any"]},{"type":"null"}],"title":"Input Type","description":"The input type","default":"chat"},"output_type":{"anyOf":[{"type":"string","enum":["chat","text","any","debug"]},{"type":"null"}],"title":"Output Type","description":"The output type","default":"chat"},"output_component":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output Component","description":"If there are multiple output components, you can specify the component to get the output from.","default":""},"tweaks":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"object"}]},"type":"object","title":"Tweaks","description":"A dictionary of tweaks to adjust the flow\'s execution. Allows customizing flow behavior dynamically. All tweaks are overridden by the input values.","examples":[{"Component Name":{"parameter_name":"value"},"component_id":{"parameter_name":"value"},"parameter_name":"value"}]},{"type":"null"}],"description":"The tweaks"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"The session id"}},"type":"object","title":"SimplifiedAPIRequest"},{"type":"null"}],"title":"Input Request"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}},"method":"post","path":"/api/v1/run/{flow_id_or_name}","securitySchemes":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"api/v1/login"}}},"API key query":{"type":"apiKey","in":"query","name":"x-api-key"},"API key header":{"type":"apiKey","in":"header","name":"x-api-key"}},"info":{"title":"Langflow","version":"1.4.2"},"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 \\"cupidatat__21\\": \\"\\",\\n \\"do_8d7\\": \\"\\",\\n \\"reprehenderit_fb6\\": \\"\\"\\n },\\n \\"session_id\\": \\"\\"\\n}","options":{"raw":{"language":"json"}}},"auth":{"type":"apikey","apikey":[{"type":"any","value":"x-api-key","key":"key"},{"type":"any","value":"{{apiKey}}","key":"value"},{"type":"any","value":"query","key":"in"}]}}},"source":"@site/openapi.json","sourceDirName":".","permalink":"/api/simplified-run-flow","previous":{"title":"Get All","permalink":"/api/get-all"},"next":{"title":"Webhook Run Flow","permalink":"/api/webhook-run-flow"}}');var s=t(74848),r=t(28453);const a={},o="Simplified Run Flow",l=[];function d(e){const n={h1:"h1",header:"header",li:"li",p:"p",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"simplified-run-flow",children:"Simplified Run Flow"})}),"\n",(0,s.jsx)(n.p,{children:"Executes a specified flow by ID with support for streaming and telemetry."}),"\n",(0,s.jsx)(n.p,{children:"This endpoint executes a flow identified by ID or name, with options for streaming the response\nand tracking execution metrics. It handles both streaming and non-streaming execution modes."}),"\n",(0,s.jsx)(n.p,{children:"Args:\nbackground_tasks (BackgroundTasks): FastAPI background task manager\nflow (FlowRead | None): The flow to execute, loaded via dependency\ninput_request (SimplifiedAPIRequest | None): Input parameters for the flow\nstream (bool): Whether to stream the response\napi_key_user (UserRead): Authenticated user from API key\nrequest (Request): The incoming HTTP request"}),"\n",(0,s.jsx)(n.p,{children:"Returns:\nUnion[StreamingResponse, RunResponse]: Either a streaming response for real-time results\nor a RunResponse with the complete execution results"}),"\n",(0,s.jsx)(n.p,{children:"Raises:\nHTTPException: For flow not found (404) or invalid input (400)\nAPIException: For internal execution errors (500)"}),"\n",(0,s.jsx)(n.p,{children:"Notes:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Supports both streaming and non-streaming execution modes"}),"\n",(0,s.jsx)(n.li,{children:"Tracks execution time and success/failure via telemetry"}),"\n",(0,s.jsx)(n.li,{children:"Handles graceful client disconnection in streaming mode"}),"\n",(0,s.jsx)(n.li,{children:"Provides detailed error handling with appropriate HTTP status codes"}),"\n",(0,s.jsxs)(n.li,{children:["In streaming mode, uses EventManager to handle events:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:'"add_message": New messages during execution'}),"\n",(0,s.jsx)(n.li,{children:'"token": Individual tokens during streaming'}),"\n",(0,s.jsx)(n.li,{children:'"end": Final execution result'}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("th",{style:{textAlign:"left"},children:"Path Parameters"})})}),(0,s.jsx)("tbody",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"flow_id_or_name"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" Flow Id Or Name"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,s.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-required)"},children:" REQUIRED"})]})})})]}),"\n",(0,s.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("th",{style:{textAlign:"left"},children:"Query Parameters"})})}),(0,s.jsxs)("tbody",{children:[(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"stream"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" Stream"})]})}),(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"user_id"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" User Id"})]})})]})]}),"\n",(0,s.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("th",{style:{textAlign:"left"},children:[(0,s.jsx)("span",{children:"Request Body "}),(0,s.jsx)("div",{})]})})}),(0,s.jsx)("tbody",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("td",{children:(0,s.jsx)("span",{style:{opacity:"0.6"},children:" undefined"})})})})]}),"\n",(0,s.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("th",{style:{textAlign:"left"},children:"Responses"})})}),(0,s.jsxs)("tbody",{children:[(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsxs)("div",{style:{display:"flex"},children:[(0,s.jsx)("div",{style:{marginRight:"var(--ifm-table-cell-padding)"},children:(0,s.jsx)("code",{children:"200"})}),(0,s.jsx)("div",{children:(0,s.jsx)(n.p,{children:"Successful Response"})})]}),(0,s.jsx)("div",{children:(0,s.jsxs)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("th",{style:{textAlign:"left"},children:[(0,s.jsx)("span",{children:"Schema "}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,s.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,s.jsx)("div",{})]})})}),(0,s.jsx)("tbody",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("td",{children:(0,s.jsx)("span",{style:{opacity:"0.6"},children:" undefined"})})})})]})})]})}),(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsxs)("div",{style:{display:"flex"},children:[(0,s.jsx)("div",{style:{marginRight:"var(--ifm-table-cell-padding)"},children:(0,s.jsx)("code",{children:"422"})}),(0,s.jsx)("div",{children:(0,s.jsx)(n.p,{children:"Validation Error"})})]}),(0,s.jsx)("div",{children:(0,s.jsxs)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("th",{style:{textAlign:"left"},children:[(0,s.jsx)("span",{children:"Schema "}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,s.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,s.jsx)("div",{})]})})}),(0,s.jsx)("tbody",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"detail"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" object[]"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,s.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,s.jsx)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:(0,s.jsxs)("tbody",{children:[(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"loc"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" undefined[]"})]})}),(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"msg"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" Message"})]})}),(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"type"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" Error Type"})]})})]})})]})})})]})})]})})]})]})]})}function c(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}}}]);
\ No newline at end of file
diff --git a/assets/js/2d2c4fcb.c4fea60c.js b/assets/js/2d2c4fcb.f60ff849.js
similarity index 99%
rename from assets/js/2d2c4fcb.c4fea60c.js
rename to assets/js/2d2c4fcb.f60ff849.js
index cfa6960186..50e875622c 100644
--- a/assets/js/2d2c4fcb.c4fea60c.js
+++ b/assets/js/2d2c4fcb.f60ff849.js
@@ -1 +1 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[4973],{3331:(e,n,o)=>{o.r(n),o.d(n,{CH:()=>p,assets:()=>h,chCodeConfig:()=>u,contentTitle:()=>d,default:()=>w,frontMatter:()=>c,metadata:()=>t,toc:()=>g});const t=JSON.parse('{"id":"Get-Started/get-started-installation","title":"Install Langflow","description":"Langflow can be installed in three ways:","source":"@site/docs/Get-Started/get-started-installation.md","sourceDirName":"Get-Started","slug":"/get-started-installation","permalink":"/get-started-installation","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Install Langflow","slug":"/get-started-installation"},"sidebar":"docs","previous":{"title":"Welcome to Langflow","permalink":"/"},"next":{"title":"Quickstart","permalink":"/get-started-quickstart"}}');var l=o(74848),s=o(28453),a=o(24754),r=o(65537),i=o(79329);const c={title:"Install Langflow",slug:"/get-started-installation"},d=void 0,h={},p={annotations:a.hk,Code:a.Cy},u={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},g=[{value:"Install and run Langflow OSS",id:"install-and-run-langflow-oss",level:2},{value:"Manage Langflow OSS versions",id:"manage-langflow-oss-versions",level:3},{value:"Install optional dependencies for Langflow OSS",id:"install-optional-dependencies-for-langflow-oss",level:3},{value:"Stop Langflow OSS",id:"stop-langflow-oss",level:3},{value:"Common OSS installation issues",id:"common-oss-installation-issues",level:3},{value:"No langflow.__main__ module",id:"no-langflow__main__-module",level:4},{value:"Langflow runTraceback",id:"langflow-runtraceback",level:4},{value:"Something went wrong running migrations",id:"something-went-wrong-running-migrations",level:4},{value:"Langflow installation freezes at pip dependency resolution",id:"langflow-installation-freezes-at-pip-dependency-resolution",level:4},{value:"Failed to build required package",id:"failed-to-build-required-package",level:4},{value:"Install and run Langflow Desktop",id:"install-and-run-langflow-desktop",level:2},{value:"Manage your Langflow version in Langflow Desktop",id:"manage-your-langflow-version-in-langflow-desktop",level:3},{value:"DataStax Langflow",id:"datastax-langflow",level:2}];function f(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",h4:"h4",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return p||x("CH",!1),p.Code||x("CH.Code",!0),(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,l.jsx)(n.p,{children:"Langflow can be installed in three ways:"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:["As a ",(0,l.jsx)(n.a,{href:"#install-and-run-langflow-oss",children:"Python package"})," with Langflow OSS"]}),"\n",(0,l.jsxs)(n.li,{children:["As a ",(0,l.jsx)(n.a,{href:"#install-and-run-langflow-desktop",children:"standalone desktop application"})," with Langflow Desktop"]}),"\n",(0,l.jsxs)(n.li,{children:["As a ",(0,l.jsx)(n.a,{href:"#datastax-langflow",children:"cloud-hosted service"})," with DataStax Langflow"]}),"\n"]}),"\n",(0,l.jsx)(n.h2,{id:"install-and-run-langflow-oss",children:"Install and run Langflow OSS"}),"\n",(0,l.jsx)(n.p,{children:"Before you install and run Langflow OSS, be sure you have the following items."}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"https://www.python.org/downloads/release/python-3100/",children:"Python 3.10 to 3.13"})}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.a,{href:"https://docs.astral.sh/uv/getting-started/installation/",children:"uv"})," or ",(0,l.jsx)(n.a,{href:"https://pypi.org/project/pip/",children:"pip"})]}),"\n",(0,l.jsxs)(n.li,{children:["A virtual environment created with ",(0,l.jsx)(n.a,{href:"https://docs.astral.sh/uv/pip/environments",children:"uv"})," or ",(0,l.jsx)(n.a,{href:"https://docs.python.org/3/library/venv.html",children:"venv"})]}),"\n",(0,l.jsx)(n.li,{children:"A dual-core CPU and at least 2 GB of RAM. More intensive use requires a multi-core CPU and at least 4 GB of RAM."}),"\n"]}),"\n",(0,l.jsxs)(n.p,{children:["Install and run Langflow OSS with ",(0,l.jsx)(n.a,{href:"https://docs.astral.sh/uv/getting-started/installation/",children:"uv (recommended)"})," or ",(0,l.jsx)(n.a,{href:"https://pypi.org/project/pip/",children:"pip"}),"."]}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsx)(n.li,{children:"To install Langflow, use one of the following commands:"}),"\n"]}),"\n",(0,l.jsxs)(r.A,{groupId:"package-manager",children:[(0,l.jsx)(i.A,{value:"uv",label:"uv",default:!0,children:(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv ",props:{style:{color:"#FFA657"}}},{content:"pip install langflow",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,l.jsx)(i.A,{value:"pip",label:"pip",children:(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"pip ",props:{style:{color:"#FFA657"}}},{content:"install langflow",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})})]}),"\n",(0,l.jsxs)(n.ol,{start:"2",children:["\n",(0,l.jsx)(n.li,{children:"To run Langflow, use one of the following commands:"}),"\n"]}),"\n",(0,l.jsxs)(r.A,{groupId:"package-manager",children:[(0,l.jsx)(i.A,{value:"uv",label:"uv",children:(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv ",props:{style:{color:"#FFA657"}}},{content:"run langflow run",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,l.jsx)(i.A,{value:"pip",label:"pip",children:(0,l.jsx)(p.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"}}}]}],lang:"bash"},annotations:[]}]})})]}),"\n",(0,l.jsxs)(n.ol,{start:"3",children:["\n",(0,l.jsxs)(n.li,{children:["To confirm that a local Langflow instance starts, go to the default Langflow URL at ",(0,l.jsx)(n.code,{children:"http://127.0.0.1:7860"}),"."]}),"\n"]}),"\n",(0,l.jsxs)(n.p,{children:["After confirming that Langflow is running, create your first flow with the ",(0,l.jsx)(n.a,{href:"/get-started-quickstart",children:"Quickstart"}),"."]}),"\n",(0,l.jsx)(n.h3,{id:"manage-langflow-oss-versions",children:"Manage Langflow OSS versions"}),"\n",(0,l.jsx)(n.p,{children:"To upgrade Langflow to the latest version, use one of the following commands:"}),"\n",(0,l.jsxs)(r.A,{groupId:"package-manager",children:[(0,l.jsx)(i.A,{value:"uv",label:"uv",default:!0,children:(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv ",props:{style:{color:"#FFA657"}}},{content:"pip install langflow ",props:{style:{color:"#A5D6FF"}}},{content:"-U",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,l.jsx)(i.A,{value:"pip",label:"pip",children:(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"pip ",props:{style:{color:"#FFA657"}}},{content:"install langflow ",props:{style:{color:"#A5D6FF"}}},{content:"-U",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]})})]}),"\n",(0,l.jsx)(n.p,{children:"To install a specific version of the Langflow package, add the required version to the command."}),"\n",(0,l.jsxs)(r.A,{groupId:"package-manager",children:[(0,l.jsx)(i.A,{value:"uv",label:"uv",default:!0,children:(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv ",props:{style:{color:"#FFA657"}}},{content:"pip install langflow==",props:{style:{color:"#A5D6FF"}}},{content:"1.3.2",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,l.jsx)(i.A,{value:"pip",label:"pip",children:(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"pip ",props:{style:{color:"#FFA657"}}},{content:"install langflow==",props:{style:{color:"#A5D6FF"}}},{content:"1.3.2",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]})})]}),"\n",(0,l.jsxs)(n.p,{children:["To reinstall Langflow and all of its dependencies, add the ",(0,l.jsx)(n.code,{children:"--force-reinstall"})," flag to the command."]}),"\n",(0,l.jsxs)(r.A,{groupId:"package-manager",children:[(0,l.jsx)(i.A,{value:"uv",label:"uv",default:!0,children:(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv ",props:{style:{color:"#FFA657"}}},{content:"pip install langflow ",props:{style:{color:"#A5D6FF"}}},{content:"--force-reinstall",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,l.jsx)(i.A,{value:"pip",label:"pip",children:(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"pip ",props:{style:{color:"#FFA657"}}},{content:"install langflow ",props:{style:{color:"#A5D6FF"}}},{content:"--force-reinstall",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]})})]}),"\n",(0,l.jsx)(n.h3,{id:"install-optional-dependencies-for-langflow-oss",children:"Install optional dependencies for Langflow OSS"}),"\n",(0,l.jsx)(n.p,{children:"Langflow OSS provides optional dependency groups that extend its functionality."}),"\n",(0,l.jsxs)(n.p,{children:["These dependencies are listed in the ",(0,l.jsx)(n.a,{href:"https://github.com/langflow-ai/langflow/blob/main/pyproject.toml#L191",children:"pyproject.toml"})," file under ",(0,l.jsx)(n.code,{children:"[project.optional-dependencies]"}),"."]}),"\n",(0,l.jsxs)(n.p,{children:["Install dependency groups using pip's ",(0,l.jsx)(n.code,{children:"[extras]"})," syntax. For example, to install Langflow with the ",(0,l.jsx)(n.code,{children:"postgresql"})," dependency group, enter one of the following commands:"]}),"\n",(0,l.jsxs)(r.A,{groupId:"package-manager",children:[(0,l.jsx)(i.A,{value:"uv",label:"uv",default:!0,children:(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv ",props:{style:{color:"#FFA657"}}},{content:'pip install "langflow[postgresql]"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,l.jsx)(i.A,{value:"pip",label:"pip",children:(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"pip ",props:{style:{color:"#FFA657"}}},{content:'install "langflow[postgresql]"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})})]}),"\n",(0,l.jsx)(n.p,{children:"To install multiple extras, enter one of the following commands:"}),"\n",(0,l.jsxs)(r.A,{groupId:"package-manager",children:[(0,l.jsx)(i.A,{value:"uv",label:"uv",default:!0,children:(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv ",props:{style:{color:"#FFA657"}}},{content:'pip install "langflow[deploy,local,postgresql]"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,l.jsx)(i.A,{value:"pip",label:"pip",children:(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"pip ",props:{style:{color:"#FFA657"}}},{content:'install "langflow[deploy,local,postgresql]"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})})]}),"\n",(0,l.jsxs)(n.p,{children:["To add your own custom dependencies, see ",(0,l.jsx)(n.a,{href:"/install-custom-dependencies",children:"Install custom dependencies"}),"."]}),"\n",(0,l.jsx)(n.h3,{id:"stop-langflow-oss",children:"Stop Langflow OSS"}),"\n",(0,l.jsxs)(n.p,{children:["To stop Langflow, in the terminal where it's running, enter ",(0,l.jsx)(n.code,{children:"Ctrl+C"}),"."]}),"\n",(0,l.jsxs)(n.p,{children:["To deactivate your virtual environment, enter ",(0,l.jsx)(n.code,{children:"deactivate"}),"."]}),"\n",(0,l.jsx)(n.h3,{id:"common-oss-installation-issues",children:"Common OSS installation issues"}),"\n",(0,l.jsx)(n.p,{children:"This is a list of possible issues that you may encounter when installing and running Langflow."}),"\n",(0,l.jsxs)(n.h4,{id:"no-langflow__main__-module",children:["No ",(0,l.jsx)(n.code,{children:"langflow.__main__"})," module"]}),"\n",(0,l.jsxs)(n.p,{children:["When you try to run Langflow with the command ",(0,l.jsx)(n.code,{children:"langflow run"}),", you encounter the following error:"]}),"\n",(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:">",props:{style:{color:"#FF7B72"}}},{content:" No module named ",props:{style:{color:"#C9D1D9"}}},{content:"'langflow.__main__'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["Run ",(0,l.jsx)(n.code,{children:"uv run langflow run"})," instead of ",(0,l.jsx)(n.code,{children:"langflow run"}),"."]}),"\n",(0,l.jsxs)(n.li,{children:["If that doesn't work, reinstall the latest Langflow version with ",(0,l.jsx)(n.code,{children:"uv pip install langflow -U"}),"."]}),"\n",(0,l.jsxs)(n.li,{children:["If that doesn't work, reinstall Langflow and its dependencies with ",(0,l.jsx)(n.code,{children:"uv pip install langflow --pre -U --force-reinstall"}),"."]}),"\n"]}),"\n",(0,l.jsx)(n.h4,{id:"langflow-runtraceback",children:"Langflow runTraceback"}),"\n",(0,l.jsxs)(n.p,{children:["When you try to run Langflow using the command ",(0,l.jsx)(n.code,{children:"langflow run"}),", you encounter the following error:"]}),"\n",(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:">",props:{style:{color:"#FF7B72"}}},{content:" langflow runTraceback (",props:{style:{color:"#C9D1D9"}}},{content:"most ",props:{style:{color:"#FFA657"}}},{content:"recent call last",props:{style:{color:"#A5D6FF"}}},{content:"): File ",props:{style:{color:"#C9D1D9"}}},{content:'".../langflow"',props:{style:{color:"#A5D6FF"}}},{content:", line 5, ",props:{style:{color:"#C9D1D9"}}},{content:"in <",props:{style:{color:"#FF7B72"}}},{content:"module",props:{style:{color:"#C9D1D9"}}},{content:">",props:{style:{color:"#FF7B72"}}},{content:" from langflow.__main__ import mainModuleNotFoundError: No module named ",props:{style:{color:"#C9D1D9"}}},{content:"'langflow.__main__'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsx)(n.p,{children:"There are two possible reasons for this error:"}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["You've installed Langflow using ",(0,l.jsx)(n.code,{children:"pip install langflow"})," but you already had a previous version of Langflow installed in your system. In this case, you might be running the wrong executable. To solve this issue, run the correct executable by running ",(0,l.jsx)(n.code,{children:"python -m langflow run"})," instead of ",(0,l.jsx)(n.code,{children:"langflow run"}),". If that doesn't work, try uninstalling and reinstalling Langflow with ",(0,l.jsx)(n.code,{children:"uv pip install langflow --pre -U"}),"."]}),"\n",(0,l.jsxs)(n.li,{children:["Some version conflicts might have occurred during the installation process. Run ",(0,l.jsx)(n.code,{children:"python -m pip install langflow --pre -U --force-reinstall"})," to reinstall Langflow and its dependencies."]}),"\n"]}),"\n",(0,l.jsx)(n.h4,{id:"something-went-wrong-running-migrations",children:"Something went wrong running migrations"}),"\n",(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:">",props:{style:{color:"#FF7B72"}}},{content:" Something went wrong running migrations. Please, run ",props:{style:{color:"#C9D1D9"}}},{content:"'langflow migration --fix'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsx)(n.p,{children:"Clear the cache by deleting the contents of the cache folder."}),"\n",(0,l.jsx)(n.p,{children:"This folder can be found at:"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Linux or WSL2 on Windows"}),": ",(0,l.jsx)(n.code,{children:"home//.cache/langflow/"})]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"MacOS"}),": ",(0,l.jsx)(n.code,{children:"/Users//Library/Caches/langflow/"})]}),"\n"]}),"\n",(0,l.jsxs)(n.p,{children:["This error can occur during Langflow upgrades when the new version can't override ",(0,l.jsx)(n.code,{children:"langflow-pre.db"})," in ",(0,l.jsx)(n.code,{children:".cache/langflow/"}),". Clearing the cache removes this file but also erases your settings."]}),"\n",(0,l.jsx)(n.p,{children:"If you wish to retain your files, back them up before clearing the folder."}),"\n",(0,l.jsx)(n.h4,{id:"langflow-installation-freezes-at-pip-dependency-resolution",children:"Langflow installation freezes at pip dependency resolution"}),"\n",(0,l.jsxs)(n.p,{children:["Installing Langflow with ",(0,l.jsx)(n.code,{children:"pip install langflow"})," slowly fails with this error message:"]}),"\n",(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"pip is looking at multiple versions of <> to determine which version is compatible with other requirements. This could take a while.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,l.jsxs)(n.p,{children:["To work around this issue, install Langflow with ",(0,l.jsx)(n.a,{href:"https://docs.astral.sh/uv/getting-started/installation/",children:(0,l.jsx)(n.code,{children:"uv"})})," instead of ",(0,l.jsx)(n.code,{children:"pip"}),"."]}),"\n",(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv pip install langflow",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,l.jsx)(n.p,{children:"To run Langflow with uv:"}),"\n",(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv run langflow run",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,l.jsx)(n.h4,{id:"failed-to-build-required-package",children:"Failed to build required package"}),"\n",(0,l.jsx)(n.p,{children:"When you try to install Langflow on Linux, installation fails because of outdated or missing packages."}),"\n",(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"Resolved ",props:{style:{color:"#FFA657"}}},{content:"455 ",props:{style:{color:"#79C0FF"}}},{content:"packages in ",props:{style:{color:"#A5D6FF"}}},{content:"18.92s",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" \xd7 ",props:{style:{color:"#FFA657"}}},{content:"Failed to build `",props:{style:{color:"#A5D6FF"}}},{content:"webrtcvad",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#A5D6FF"}}},{content:"2.0.10",props:{style:{color:"#79C0FF"}}},{content:"`",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" \u251c\u2500\u25b6",props:{style:{color:"#FFA657"}}},{content:" The build backend returned an error",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" \u2570\u2500\u25b6",props:{style:{color:"#FFA657"}}},{content:" Call to `setuptools.build_meta:__legacy__.build_wheel` ",props:{style:{color:"#A5D6FF"}}},{content:"failed",props:{style:{color:"#FFA657"}}},{content:" (exit status: ",props:{style:{color:"#A5D6FF"}}},{content:"1",props:{style:{color:"#79C0FF"}}},{content:")",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsx)(n.li,{children:"Install the required build dependencies."}),"\n"]}),"\n",(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"sudo ",props:{style:{color:"#FFA657"}}},{content:"apt-get update",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"sudo ",props:{style:{color:"#FFA657"}}},{content:"apt-get install build-essential python3-dev",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsxs)(n.ol,{start:"2",children:["\n",(0,l.jsxs)(n.li,{children:["If upgrading your packages doesn't fix the issue, install ",(0,l.jsx)(n.code,{children:"gcc"})," separately."]}),"\n"]}),"\n",(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"sudo ",props:{style:{color:"#FFA657"}}},{content:"apt-get install gcc",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsx)(n.h2,{id:"install-and-run-langflow-desktop",children:"Install and run Langflow Desktop"}),"\n",(0,l.jsx)(n.admonition,{type:"important",children:(0,l.jsxs)(n.p,{children:["Langflow Desktop is in ",(0,l.jsx)(n.strong,{children:"Alpha"}),".\nDevelopment is ongoing, and the features and functionality are subject to change."]})}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Langflow Desktop"})," is a desktop version of Langflow that includes all the features of open source Langflow, with an additional ",(0,l.jsx)(n.a,{href:"#manage-your-langflow-version-in-langflow-desktop",children:"version management"})," feature for managing your Langflow version."]}),"\n",(0,l.jsx)(n.admonition,{type:"important",children:(0,l.jsx)(n.p,{children:"Langflow Desktop is available only for macOS."})}),"\n",(0,l.jsx)(n.p,{children:"To install Langflow Desktop, follow these steps:"}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["Navigate to ",(0,l.jsx)(n.a,{href:"https://www.langflow.org/desktop",children:"Langflow Desktop"}),"."]}),"\n",(0,l.jsxs)(n.li,{children:["Enter your ",(0,l.jsx)(n.strong,{children:"Name"}),", ",(0,l.jsx)(n.strong,{children:"Email address"}),", and ",(0,l.jsx)(n.strong,{children:"Company"}),", and then click ",(0,l.jsx)(n.strong,{children:"Download"}),"."]}),"\n",(0,l.jsxs)(n.li,{children:["Open the ",(0,l.jsx)(n.strong,{children:"Finder"}),", and then navigate to ",(0,l.jsx)(n.strong,{children:"Downloads"}),"."]}),"\n",(0,l.jsxs)(n.li,{children:["Double-click the downloaded ",(0,l.jsx)(n.code,{children:"*.dmg"})," file."]}),"\n",(0,l.jsxs)(n.li,{children:["To install Langflow Desktop, drag and drop the application icon to the ",(0,l.jsx)(n.strong,{children:"Applications"})," folder."]}),"\n",(0,l.jsx)(n.li,{children:"When the installation completes, open the Langflow application."}),"\n"]}),"\n",(0,l.jsxs)(n.p,{children:["The application checks ",(0,l.jsx)(n.a,{href:"https://docs.astral.sh/uv/concepts/tools/",children:"uv"}),", your local environment, and the Langflow version, and then starts."]}),"\n",(0,l.jsx)(n.h3,{id:"manage-your-langflow-version-in-langflow-desktop",children:"Manage your Langflow version in Langflow Desktop"}),"\n",(0,l.jsx)(n.p,{children:"When a new version of Langflow is available, Langflow Desktop displays an upgrade message."}),"\n",(0,l.jsx)(n.p,{children:"To manage your Langflow version in Langflow Desktop, follow these steps:"}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["To access Langflow Desktop's ",(0,l.jsx)(n.strong,{children:"Version Management"})," pane, click your ",(0,l.jsx)(n.strong,{children:"Profile Image"}),", and then select ",(0,l.jsx)(n.strong,{children:"Version Management"}),".\nLangflow Desktop's current version is displayed, with other version options listed after it.\nThe ",(0,l.jsx)(n.strong,{children:"latest"})," version is always highlighted."]}),"\n",(0,l.jsx)(n.li,{children:"To change your Langflow version, select another version.\nA confirmation pane containing the selected version's changelog appears."}),"\n",(0,l.jsxs)(n.li,{children:["To change to the selected version, click ",(0,l.jsx)(n.strong,{children:"Confirm"}),".\nThe application restarts with the new version installed."]}),"\n"]}),"\n",(0,l.jsx)(n.h2,{id:"datastax-langflow",children:"DataStax Langflow"}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"DataStax Langflow"})," is a hosted version of Langflow integrated with ",(0,l.jsx)(n.a,{href:"https://www.datastax.com/products/datastax-astra",children:"Astra DB"}),". Be up and running in minutes with no installation or setup required. ",(0,l.jsx)(n.a,{href:"https://astra.datastax.com/signup?type=langflow",children:"Sign up for free"}),"."]})]})}function w(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,l.jsx)(n,{...e,children:(0,l.jsx)(f,{...e})}):f(e)}function x(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},65537:(e,n,o)=>{o.d(n,{A:()=>y});var t=o(96540),l=o(18215),s=o(65627),a=o(56347),r=o(50372),i=o(30604),c=o(11861),d=o(78749);function h(e){return t.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,t.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 p(e){const{values:n,children:o}=e;return(0,t.useMemo)((()=>{const e=n??function(e){return h(e).map((e=>{let{props:{value:n,label:o,attributes:t,default:l}}=e;return{value:n,label:o,attributes:t,default:l}}))}(o);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,o])}function u(e){let{value:n,tabValues:o}=e;return o.some((e=>e.value===n))}function g(e){let{queryString:n=!1,groupId:o}=e;const l=(0,a.W6)(),s=function(e){let{queryString:n=!1,groupId:o}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!o)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return o??null}({queryString:n,groupId:o});return[(0,i.aZ)(s),(0,t.useCallback)((e=>{if(!s)return;const n=new URLSearchParams(l.location.search);n.set(s,e),l.replace({...l.location,search:n.toString()})}),[s,l])]}function f(e){const{defaultValue:n,queryString:o=!1,groupId:l}=e,s=p(e),[a,i]=(0,t.useState)((()=>function(e){let{defaultValue:n,tabValues:o}=e;if(0===o.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!u({value:n,tabValues:o}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${o.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const t=o.find((e=>e.default))??o[0];if(!t)throw new Error("Unexpected error: 0 tabValues");return t.value}({defaultValue:n,tabValues:s}))),[c,h]=g({queryString:o,groupId:l}),[f,w]=function(e){let{groupId:n}=e;const o=function(e){return e?`docusaurus.tab.${e}`:null}(n),[l,s]=(0,d.Dv)(o);return[l,(0,t.useCallback)((e=>{o&&s.set(e)}),[o,s])]}({groupId:l}),x=(()=>{const e=c??f;return u({value:e,tabValues:s})?e:null})();(0,r.A)((()=>{x&&i(x)}),[x]);return{selectedValue:a,selectValue:(0,t.useCallback)((e=>{if(!u({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);i(e),h(e),w(e)}),[h,w,s]),tabValues:s}}var w=o(9136);const x={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var m=o(74848);function v(e){let{className:n,block:o,selectedValue:t,selectValue:a,tabValues:r}=e;const i=[],{blockElementScrollPositionUntilNextRender:c}=(0,s.a_)(),d=e=>{const n=e.currentTarget,o=i.indexOf(n),l=r[o].value;l!==t&&(c(n),a(l))},h=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const o=i.indexOf(e.currentTarget)+1;n=i[o]??i[0];break}case"ArrowLeft":{const o=i.indexOf(e.currentTarget)-1;n=i[o]??i[i.length-1];break}}n?.focus()};return(0,m.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.A)("tabs",{"tabs--block":o},n),children:r.map((e=>{let{value:n,label:o,attributes:s}=e;return(0,m.jsx)("li",{role:"tab",tabIndex:t===n?0:-1,"aria-selected":t===n,ref:e=>{i.push(e)},onKeyDown:h,onClick:d,...s,className:(0,l.A)("tabs__item",x.tabItem,s?.className,{"tabs__item--active":t===n}),children:o??n},n)}))})}function j(e){let{lazy:n,children:o,selectedValue:s}=e;const a=(Array.isArray(o)?o:[o]).filter(Boolean);if(n){const e=a.find((e=>e.props.value===s));return e?(0,t.cloneElement)(e,{className:(0,l.A)("margin-top--md",e.props.className)}):null}return(0,m.jsx)("div",{className:"margin-top--md",children:a.map(((e,n)=>(0,t.cloneElement)(e,{key:n,hidden:e.props.value!==s})))})}function b(e){const n=f(e);return(0,m.jsxs)("div",{className:(0,l.A)("tabs-container",x.tabList),children:[(0,m.jsx)(v,{...n,...e}),(0,m.jsx)(j,{...n,...e})]})}function y(e){const n=(0,w.A)();return(0,m.jsx)(b,{...e,children:h(e.children)},String(n))}},79329:(e,n,o)=>{o.d(n,{A:()=>a});o(96540);var t=o(18215);const l={tabItem:"tabItem_Ymn6"};var s=o(74848);function a(e){let{children:n,hidden:o,className:a}=e;return(0,s.jsx)("div",{role:"tabpanel",className:(0,t.A)(l.tabItem,a),hidden:o,children:n})}}}]);
\ No newline at end of file
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[4973],{3331:(e,n,o)=>{o.r(n),o.d(n,{CH:()=>p,assets:()=>h,chCodeConfig:()=>u,contentTitle:()=>d,default:()=>w,frontMatter:()=>c,metadata:()=>t,toc:()=>g});const t=JSON.parse('{"id":"Get-Started/get-started-installation","title":"Install Langflow","description":"Langflow can be installed in three ways:","source":"@site/docs/Get-Started/get-started-installation.md","sourceDirName":"Get-Started","slug":"/get-started-installation","permalink":"/get-started-installation","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Install Langflow","slug":"/get-started-installation"},"sidebar":"docs","previous":{"title":"Welcome to Langflow","permalink":"/"},"next":{"title":"Quickstart","permalink":"/get-started-quickstart"}}');var l=o(74848),s=o(28453),a=o(24754),r=o(65537),i=o(79329);const c={title:"Install Langflow",slug:"/get-started-installation"},d=void 0,h={},p={annotations:a.hk,Code:a.Cy},u={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},g=[{value:"Install and run Langflow OSS",id:"install-and-run-langflow-oss",level:2},{value:"Manage Langflow OSS versions",id:"manage-langflow-oss-versions",level:3},{value:"Install optional dependencies for Langflow OSS",id:"install-optional-dependencies-for-langflow-oss",level:3},{value:"Stop Langflow OSS",id:"stop-langflow-oss",level:3},{value:"Common OSS installation issues",id:"common-oss-installation-issues",level:3},{value:"No langflow.__main__ module",id:"no-langflow__main__-module",level:4},{value:"Langflow runTraceback",id:"langflow-runtraceback",level:4},{value:"Something went wrong running migrations",id:"something-went-wrong-running-migrations",level:4},{value:"Langflow installation freezes at pip dependency resolution",id:"langflow-installation-freezes-at-pip-dependency-resolution",level:4},{value:"Failed to build required package",id:"failed-to-build-required-package",level:4},{value:"Install and run Langflow Desktop",id:"install-and-run-langflow-desktop",level:2},{value:"Manage your Langflow version in Langflow Desktop",id:"manage-your-langflow-version-in-langflow-desktop",level:3},{value:"DataStax Langflow",id:"datastax-langflow",level:2}];function f(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",h4:"h4",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return p||x("CH",!1),p.Code||x("CH.Code",!0),(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,l.jsx)(n.p,{children:"Langflow can be installed in three ways:"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:["As a ",(0,l.jsx)(n.a,{href:"#install-and-run-langflow-oss",children:"Python package"})," with Langflow OSS"]}),"\n",(0,l.jsxs)(n.li,{children:["As a ",(0,l.jsx)(n.a,{href:"#install-and-run-langflow-desktop",children:"standalone desktop application"})," with Langflow Desktop"]}),"\n",(0,l.jsxs)(n.li,{children:["As a ",(0,l.jsx)(n.a,{href:"#datastax-langflow",children:"cloud-hosted service"})," with DataStax Langflow"]}),"\n"]}),"\n",(0,l.jsx)(n.h2,{id:"install-and-run-langflow-oss",children:"Install and run Langflow OSS"}),"\n",(0,l.jsx)(n.p,{children:"Before you install and run Langflow OSS, be sure you have the following items."}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"https://www.python.org/downloads/release/python-3100/",children:"Python 3.10 to 3.13"})}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.a,{href:"https://docs.astral.sh/uv/getting-started/installation/",children:"uv"})," or ",(0,l.jsx)(n.a,{href:"https://pypi.org/project/pip/",children:"pip"})]}),"\n",(0,l.jsxs)(n.li,{children:["A virtual environment created with ",(0,l.jsx)(n.a,{href:"https://docs.astral.sh/uv/pip/environments",children:"uv"})," or ",(0,l.jsx)(n.a,{href:"https://docs.python.org/3/library/venv.html",children:"venv"})]}),"\n",(0,l.jsx)(n.li,{children:"A dual-core CPU and at least 2 GB of RAM. More intensive use requires a multi-core CPU and at least 4 GB of RAM."}),"\n"]}),"\n",(0,l.jsxs)(n.p,{children:["Install and run Langflow OSS with ",(0,l.jsx)(n.a,{href:"https://docs.astral.sh/uv/getting-started/installation/",children:"uv (recommended)"})," or ",(0,l.jsx)(n.a,{href:"https://pypi.org/project/pip/",children:"pip"}),"."]}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsx)(n.li,{children:"To install Langflow, use one of the following commands:"}),"\n"]}),"\n",(0,l.jsxs)(r.A,{groupId:"package-manager",children:[(0,l.jsx)(i.A,{value:"uv",label:"uv",default:!0,children:(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv ",props:{style:{color:"#FFA657"}}},{content:"pip install langflow",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,l.jsx)(i.A,{value:"pip",label:"pip",children:(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"pip ",props:{style:{color:"#FFA657"}}},{content:"install langflow",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})})]}),"\n",(0,l.jsxs)(n.ol,{start:"2",children:["\n",(0,l.jsx)(n.li,{children:"To run Langflow, use one of the following commands:"}),"\n"]}),"\n",(0,l.jsxs)(r.A,{groupId:"package-manager",children:[(0,l.jsx)(i.A,{value:"uv",label:"uv",children:(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv ",props:{style:{color:"#FFA657"}}},{content:"run langflow run",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,l.jsx)(i.A,{value:"pip",label:"pip",children:(0,l.jsx)(p.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"}}}]}],lang:"bash"},annotations:[]}]})})]}),"\n",(0,l.jsxs)(n.ol,{start:"3",children:["\n",(0,l.jsxs)(n.li,{children:["To confirm that a local Langflow instance starts, go to the default Langflow URL at ",(0,l.jsx)(n.code,{children:"http://localhost:7860"}),"."]}),"\n"]}),"\n",(0,l.jsxs)(n.p,{children:["After confirming that Langflow is running, create your first flow with the ",(0,l.jsx)(n.a,{href:"/get-started-quickstart",children:"Quickstart"}),"."]}),"\n",(0,l.jsx)(n.h3,{id:"manage-langflow-oss-versions",children:"Manage Langflow OSS versions"}),"\n",(0,l.jsx)(n.p,{children:"To upgrade Langflow to the latest version, use one of the following commands:"}),"\n",(0,l.jsxs)(r.A,{groupId:"package-manager",children:[(0,l.jsx)(i.A,{value:"uv",label:"uv",default:!0,children:(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv ",props:{style:{color:"#FFA657"}}},{content:"pip install langflow ",props:{style:{color:"#A5D6FF"}}},{content:"-U",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,l.jsx)(i.A,{value:"pip",label:"pip",children:(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"pip ",props:{style:{color:"#FFA657"}}},{content:"install langflow ",props:{style:{color:"#A5D6FF"}}},{content:"-U",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]})})]}),"\n",(0,l.jsx)(n.p,{children:"To install a specific version of the Langflow package, add the required version to the command."}),"\n",(0,l.jsxs)(r.A,{groupId:"package-manager",children:[(0,l.jsx)(i.A,{value:"uv",label:"uv",default:!0,children:(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv ",props:{style:{color:"#FFA657"}}},{content:"pip install langflow==",props:{style:{color:"#A5D6FF"}}},{content:"1.3.2",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,l.jsx)(i.A,{value:"pip",label:"pip",children:(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"pip ",props:{style:{color:"#FFA657"}}},{content:"install langflow==",props:{style:{color:"#A5D6FF"}}},{content:"1.3.2",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]})})]}),"\n",(0,l.jsxs)(n.p,{children:["To reinstall Langflow and all of its dependencies, add the ",(0,l.jsx)(n.code,{children:"--force-reinstall"})," flag to the command."]}),"\n",(0,l.jsxs)(r.A,{groupId:"package-manager",children:[(0,l.jsx)(i.A,{value:"uv",label:"uv",default:!0,children:(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv ",props:{style:{color:"#FFA657"}}},{content:"pip install langflow ",props:{style:{color:"#A5D6FF"}}},{content:"--force-reinstall",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,l.jsx)(i.A,{value:"pip",label:"pip",children:(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"pip ",props:{style:{color:"#FFA657"}}},{content:"install langflow ",props:{style:{color:"#A5D6FF"}}},{content:"--force-reinstall",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]})})]}),"\n",(0,l.jsx)(n.h3,{id:"install-optional-dependencies-for-langflow-oss",children:"Install optional dependencies for Langflow OSS"}),"\n",(0,l.jsx)(n.p,{children:"Langflow OSS provides optional dependency groups that extend its functionality."}),"\n",(0,l.jsxs)(n.p,{children:["These dependencies are listed in the ",(0,l.jsx)(n.a,{href:"https://github.com/langflow-ai/langflow/blob/main/pyproject.toml#L191",children:"pyproject.toml"})," file under ",(0,l.jsx)(n.code,{children:"[project.optional-dependencies]"}),"."]}),"\n",(0,l.jsxs)(n.p,{children:["Install dependency groups using pip's ",(0,l.jsx)(n.code,{children:"[extras]"})," syntax. For example, to install Langflow with the ",(0,l.jsx)(n.code,{children:"postgresql"})," dependency group, enter one of the following commands:"]}),"\n",(0,l.jsxs)(r.A,{groupId:"package-manager",children:[(0,l.jsx)(i.A,{value:"uv",label:"uv",default:!0,children:(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv ",props:{style:{color:"#FFA657"}}},{content:'pip install "langflow[postgresql]"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,l.jsx)(i.A,{value:"pip",label:"pip",children:(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"pip ",props:{style:{color:"#FFA657"}}},{content:'install "langflow[postgresql]"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})})]}),"\n",(0,l.jsx)(n.p,{children:"To install multiple extras, enter one of the following commands:"}),"\n",(0,l.jsxs)(r.A,{groupId:"package-manager",children:[(0,l.jsx)(i.A,{value:"uv",label:"uv",default:!0,children:(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv ",props:{style:{color:"#FFA657"}}},{content:'pip install "langflow[deploy,local,postgresql]"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,l.jsx)(i.A,{value:"pip",label:"pip",children:(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"pip ",props:{style:{color:"#FFA657"}}},{content:'install "langflow[deploy,local,postgresql]"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})})]}),"\n",(0,l.jsxs)(n.p,{children:["To add your own custom dependencies, see ",(0,l.jsx)(n.a,{href:"/install-custom-dependencies",children:"Install custom dependencies"}),"."]}),"\n",(0,l.jsx)(n.h3,{id:"stop-langflow-oss",children:"Stop Langflow OSS"}),"\n",(0,l.jsxs)(n.p,{children:["To stop Langflow, in the terminal where it's running, enter ",(0,l.jsx)(n.code,{children:"Ctrl+C"}),"."]}),"\n",(0,l.jsxs)(n.p,{children:["To deactivate your virtual environment, enter ",(0,l.jsx)(n.code,{children:"deactivate"}),"."]}),"\n",(0,l.jsx)(n.h3,{id:"common-oss-installation-issues",children:"Common OSS installation issues"}),"\n",(0,l.jsx)(n.p,{children:"This is a list of possible issues that you may encounter when installing and running Langflow."}),"\n",(0,l.jsxs)(n.h4,{id:"no-langflow__main__-module",children:["No ",(0,l.jsx)(n.code,{children:"langflow.__main__"})," module"]}),"\n",(0,l.jsxs)(n.p,{children:["When you try to run Langflow with the command ",(0,l.jsx)(n.code,{children:"langflow run"}),", you encounter the following error:"]}),"\n",(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:">",props:{style:{color:"#FF7B72"}}},{content:" No module named ",props:{style:{color:"#C9D1D9"}}},{content:"'langflow.__main__'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["Run ",(0,l.jsx)(n.code,{children:"uv run langflow run"})," instead of ",(0,l.jsx)(n.code,{children:"langflow run"}),"."]}),"\n",(0,l.jsxs)(n.li,{children:["If that doesn't work, reinstall the latest Langflow version with ",(0,l.jsx)(n.code,{children:"uv pip install langflow -U"}),"."]}),"\n",(0,l.jsxs)(n.li,{children:["If that doesn't work, reinstall Langflow and its dependencies with ",(0,l.jsx)(n.code,{children:"uv pip install langflow --pre -U --force-reinstall"}),"."]}),"\n"]}),"\n",(0,l.jsx)(n.h4,{id:"langflow-runtraceback",children:"Langflow runTraceback"}),"\n",(0,l.jsxs)(n.p,{children:["When you try to run Langflow using the command ",(0,l.jsx)(n.code,{children:"langflow run"}),", you encounter the following error:"]}),"\n",(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:">",props:{style:{color:"#FF7B72"}}},{content:" langflow runTraceback (",props:{style:{color:"#C9D1D9"}}},{content:"most ",props:{style:{color:"#FFA657"}}},{content:"recent call last",props:{style:{color:"#A5D6FF"}}},{content:"): File ",props:{style:{color:"#C9D1D9"}}},{content:'".../langflow"',props:{style:{color:"#A5D6FF"}}},{content:", line 5, ",props:{style:{color:"#C9D1D9"}}},{content:"in <",props:{style:{color:"#FF7B72"}}},{content:"module",props:{style:{color:"#C9D1D9"}}},{content:">",props:{style:{color:"#FF7B72"}}},{content:" from langflow.__main__ import mainModuleNotFoundError: No module named ",props:{style:{color:"#C9D1D9"}}},{content:"'langflow.__main__'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsx)(n.p,{children:"There are two possible reasons for this error:"}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["You've installed Langflow using ",(0,l.jsx)(n.code,{children:"pip install langflow"})," but you already had a previous version of Langflow installed in your system. In this case, you might be running the wrong executable. To solve this issue, run the correct executable by running ",(0,l.jsx)(n.code,{children:"python -m langflow run"})," instead of ",(0,l.jsx)(n.code,{children:"langflow run"}),". If that doesn't work, try uninstalling and reinstalling Langflow with ",(0,l.jsx)(n.code,{children:"uv pip install langflow --pre -U"}),"."]}),"\n",(0,l.jsxs)(n.li,{children:["Some version conflicts might have occurred during the installation process. Run ",(0,l.jsx)(n.code,{children:"python -m pip install langflow --pre -U --force-reinstall"})," to reinstall Langflow and its dependencies."]}),"\n"]}),"\n",(0,l.jsx)(n.h4,{id:"something-went-wrong-running-migrations",children:"Something went wrong running migrations"}),"\n",(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:">",props:{style:{color:"#FF7B72"}}},{content:" Something went wrong running migrations. Please, run ",props:{style:{color:"#C9D1D9"}}},{content:"'langflow migration --fix'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsx)(n.p,{children:"Clear the cache by deleting the contents of the cache folder."}),"\n",(0,l.jsx)(n.p,{children:"This folder can be found at:"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Linux or WSL2 on Windows"}),": ",(0,l.jsx)(n.code,{children:"home//.cache/langflow/"})]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"MacOS"}),": ",(0,l.jsx)(n.code,{children:"/Users//Library/Caches/langflow/"})]}),"\n"]}),"\n",(0,l.jsxs)(n.p,{children:["This error can occur during Langflow upgrades when the new version can't override ",(0,l.jsx)(n.code,{children:"langflow-pre.db"})," in ",(0,l.jsx)(n.code,{children:".cache/langflow/"}),". Clearing the cache removes this file but also erases your settings."]}),"\n",(0,l.jsx)(n.p,{children:"If you wish to retain your files, back them up before clearing the folder."}),"\n",(0,l.jsx)(n.h4,{id:"langflow-installation-freezes-at-pip-dependency-resolution",children:"Langflow installation freezes at pip dependency resolution"}),"\n",(0,l.jsxs)(n.p,{children:["Installing Langflow with ",(0,l.jsx)(n.code,{children:"pip install langflow"})," slowly fails with this error message:"]}),"\n",(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"pip is looking at multiple versions of <> to determine which version is compatible with other requirements. This could take a while.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,l.jsxs)(n.p,{children:["To work around this issue, install Langflow with ",(0,l.jsx)(n.a,{href:"https://docs.astral.sh/uv/getting-started/installation/",children:(0,l.jsx)(n.code,{children:"uv"})})," instead of ",(0,l.jsx)(n.code,{children:"pip"}),"."]}),"\n",(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv pip install langflow",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,l.jsx)(n.p,{children:"To run Langflow with uv:"}),"\n",(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv run langflow run",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,l.jsx)(n.h4,{id:"failed-to-build-required-package",children:"Failed to build required package"}),"\n",(0,l.jsx)(n.p,{children:"When you try to install Langflow on Linux, installation fails because of outdated or missing packages."}),"\n",(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"Resolved ",props:{style:{color:"#FFA657"}}},{content:"455 ",props:{style:{color:"#79C0FF"}}},{content:"packages in ",props:{style:{color:"#A5D6FF"}}},{content:"18.92s",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" \xd7 ",props:{style:{color:"#FFA657"}}},{content:"Failed to build `",props:{style:{color:"#A5D6FF"}}},{content:"webrtcvad",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#A5D6FF"}}},{content:"2.0.10",props:{style:{color:"#79C0FF"}}},{content:"`",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" \u251c\u2500\u25b6",props:{style:{color:"#FFA657"}}},{content:" The build backend returned an error",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" \u2570\u2500\u25b6",props:{style:{color:"#FFA657"}}},{content:" Call to `setuptools.build_meta:__legacy__.build_wheel` ",props:{style:{color:"#A5D6FF"}}},{content:"failed",props:{style:{color:"#FFA657"}}},{content:" (exit status: ",props:{style:{color:"#A5D6FF"}}},{content:"1",props:{style:{color:"#79C0FF"}}},{content:")",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsx)(n.li,{children:"Install the required build dependencies."}),"\n"]}),"\n",(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"sudo ",props:{style:{color:"#FFA657"}}},{content:"apt-get update",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"sudo ",props:{style:{color:"#FFA657"}}},{content:"apt-get install build-essential python3-dev",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsxs)(n.ol,{start:"2",children:["\n",(0,l.jsxs)(n.li,{children:["If upgrading your packages doesn't fix the issue, install ",(0,l.jsx)(n.code,{children:"gcc"})," separately."]}),"\n"]}),"\n",(0,l.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"sudo ",props:{style:{color:"#FFA657"}}},{content:"apt-get install gcc",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,l.jsx)(n.h2,{id:"install-and-run-langflow-desktop",children:"Install and run Langflow Desktop"}),"\n",(0,l.jsx)(n.admonition,{type:"important",children:(0,l.jsxs)(n.p,{children:["Langflow Desktop is in ",(0,l.jsx)(n.strong,{children:"Alpha"}),".\nDevelopment is ongoing, and the features and functionality are subject to change."]})}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Langflow Desktop"})," is a desktop version of Langflow that includes all the features of open source Langflow, with an additional ",(0,l.jsx)(n.a,{href:"#manage-your-langflow-version-in-langflow-desktop",children:"version management"})," feature for managing your Langflow version."]}),"\n",(0,l.jsx)(n.admonition,{type:"important",children:(0,l.jsx)(n.p,{children:"Langflow Desktop is available only for macOS."})}),"\n",(0,l.jsx)(n.p,{children:"To install Langflow Desktop, follow these steps:"}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["Navigate to ",(0,l.jsx)(n.a,{href:"https://www.langflow.org/desktop",children:"Langflow Desktop"}),"."]}),"\n",(0,l.jsxs)(n.li,{children:["Enter your ",(0,l.jsx)(n.strong,{children:"Name"}),", ",(0,l.jsx)(n.strong,{children:"Email address"}),", and ",(0,l.jsx)(n.strong,{children:"Company"}),", and then click ",(0,l.jsx)(n.strong,{children:"Download"}),"."]}),"\n",(0,l.jsxs)(n.li,{children:["Open the ",(0,l.jsx)(n.strong,{children:"Finder"}),", and then navigate to ",(0,l.jsx)(n.strong,{children:"Downloads"}),"."]}),"\n",(0,l.jsxs)(n.li,{children:["Double-click the downloaded ",(0,l.jsx)(n.code,{children:"*.dmg"})," file."]}),"\n",(0,l.jsxs)(n.li,{children:["To install Langflow Desktop, drag and drop the application icon to the ",(0,l.jsx)(n.strong,{children:"Applications"})," folder."]}),"\n",(0,l.jsx)(n.li,{children:"When the installation completes, open the Langflow application."}),"\n"]}),"\n",(0,l.jsxs)(n.p,{children:["The application checks ",(0,l.jsx)(n.a,{href:"https://docs.astral.sh/uv/concepts/tools/",children:"uv"}),", your local environment, and the Langflow version, and then starts."]}),"\n",(0,l.jsx)(n.h3,{id:"manage-your-langflow-version-in-langflow-desktop",children:"Manage your Langflow version in Langflow Desktop"}),"\n",(0,l.jsx)(n.p,{children:"When a new version of Langflow is available, Langflow Desktop displays an upgrade message."}),"\n",(0,l.jsx)(n.p,{children:"To manage your Langflow version in Langflow Desktop, follow these steps:"}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["To access Langflow Desktop's ",(0,l.jsx)(n.strong,{children:"Version Management"})," pane, click your ",(0,l.jsx)(n.strong,{children:"Profile Image"}),", and then select ",(0,l.jsx)(n.strong,{children:"Version Management"}),".\nLangflow Desktop's current version is displayed, with other version options listed after it.\nThe ",(0,l.jsx)(n.strong,{children:"latest"})," version is always highlighted."]}),"\n",(0,l.jsx)(n.li,{children:"To change your Langflow version, select another version.\nA confirmation pane containing the selected version's changelog appears."}),"\n",(0,l.jsxs)(n.li,{children:["To change to the selected version, click ",(0,l.jsx)(n.strong,{children:"Confirm"}),".\nThe application restarts with the new version installed."]}),"\n"]}),"\n",(0,l.jsx)(n.h2,{id:"datastax-langflow",children:"DataStax Langflow"}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"DataStax Langflow"})," is a hosted version of Langflow integrated with ",(0,l.jsx)(n.a,{href:"https://www.datastax.com/products/datastax-astra",children:"Astra DB"}),". Be up and running in minutes with no installation or setup required. ",(0,l.jsx)(n.a,{href:"https://astra.datastax.com/signup?type=langflow",children:"Sign up for free"}),"."]})]})}function w(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,l.jsx)(n,{...e,children:(0,l.jsx)(f,{...e})}):f(e)}function x(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},65537:(e,n,o)=>{o.d(n,{A:()=>y});var t=o(96540),l=o(18215),s=o(65627),a=o(56347),r=o(50372),i=o(30604),c=o(11861),d=o(78749);function h(e){return t.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,t.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 p(e){const{values:n,children:o}=e;return(0,t.useMemo)((()=>{const e=n??function(e){return h(e).map((e=>{let{props:{value:n,label:o,attributes:t,default:l}}=e;return{value:n,label:o,attributes:t,default:l}}))}(o);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,o])}function u(e){let{value:n,tabValues:o}=e;return o.some((e=>e.value===n))}function g(e){let{queryString:n=!1,groupId:o}=e;const l=(0,a.W6)(),s=function(e){let{queryString:n=!1,groupId:o}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!o)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return o??null}({queryString:n,groupId:o});return[(0,i.aZ)(s),(0,t.useCallback)((e=>{if(!s)return;const n=new URLSearchParams(l.location.search);n.set(s,e),l.replace({...l.location,search:n.toString()})}),[s,l])]}function f(e){const{defaultValue:n,queryString:o=!1,groupId:l}=e,s=p(e),[a,i]=(0,t.useState)((()=>function(e){let{defaultValue:n,tabValues:o}=e;if(0===o.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!u({value:n,tabValues:o}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${o.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const t=o.find((e=>e.default))??o[0];if(!t)throw new Error("Unexpected error: 0 tabValues");return t.value}({defaultValue:n,tabValues:s}))),[c,h]=g({queryString:o,groupId:l}),[f,w]=function(e){let{groupId:n}=e;const o=function(e){return e?`docusaurus.tab.${e}`:null}(n),[l,s]=(0,d.Dv)(o);return[l,(0,t.useCallback)((e=>{o&&s.set(e)}),[o,s])]}({groupId:l}),x=(()=>{const e=c??f;return u({value:e,tabValues:s})?e:null})();(0,r.A)((()=>{x&&i(x)}),[x]);return{selectedValue:a,selectValue:(0,t.useCallback)((e=>{if(!u({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);i(e),h(e),w(e)}),[h,w,s]),tabValues:s}}var w=o(9136);const x={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var m=o(74848);function v(e){let{className:n,block:o,selectedValue:t,selectValue:a,tabValues:r}=e;const i=[],{blockElementScrollPositionUntilNextRender:c}=(0,s.a_)(),d=e=>{const n=e.currentTarget,o=i.indexOf(n),l=r[o].value;l!==t&&(c(n),a(l))},h=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const o=i.indexOf(e.currentTarget)+1;n=i[o]??i[0];break}case"ArrowLeft":{const o=i.indexOf(e.currentTarget)-1;n=i[o]??i[i.length-1];break}}n?.focus()};return(0,m.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.A)("tabs",{"tabs--block":o},n),children:r.map((e=>{let{value:n,label:o,attributes:s}=e;return(0,m.jsx)("li",{role:"tab",tabIndex:t===n?0:-1,"aria-selected":t===n,ref:e=>{i.push(e)},onKeyDown:h,onClick:d,...s,className:(0,l.A)("tabs__item",x.tabItem,s?.className,{"tabs__item--active":t===n}),children:o??n},n)}))})}function j(e){let{lazy:n,children:o,selectedValue:s}=e;const a=(Array.isArray(o)?o:[o]).filter(Boolean);if(n){const e=a.find((e=>e.props.value===s));return e?(0,t.cloneElement)(e,{className:(0,l.A)("margin-top--md",e.props.className)}):null}return(0,m.jsx)("div",{className:"margin-top--md",children:a.map(((e,n)=>(0,t.cloneElement)(e,{key:n,hidden:e.props.value!==s})))})}function b(e){const n=f(e);return(0,m.jsxs)("div",{className:(0,l.A)("tabs-container",x.tabList),children:[(0,m.jsx)(v,{...n,...e}),(0,m.jsx)(j,{...n,...e})]})}function y(e){const n=(0,w.A)();return(0,m.jsx)(b,{...e,children:h(e.children)},String(n))}},79329:(e,n,o)=>{o.d(n,{A:()=>a});o(96540);var t=o(18215);const l={tabItem:"tabItem_Ymn6"};var s=o(74848);function a(e){let{children:n,hidden:o,className:a}=e;return(0,s.jsx)("div",{role:"tabpanel",className:(0,t.A)(l.tabItem,a),hidden:o,children:n})}}}]);
\ No newline at end of file
diff --git a/assets/js/3ae94ad4.86a89076.js b/assets/js/3ae94ad4.323d8feb.js
similarity index 99%
rename from assets/js/3ae94ad4.86a89076.js
rename to assets/js/3ae94ad4.323d8feb.js
index fb59e1332e..1d64bcbaf6 100644
--- a/assets/js/3ae94ad4.86a89076.js
+++ b/assets/js/3ae94ad4.323d8feb.js
@@ -1 +1 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[7408],{6944:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/component-chat-io-9dc92d3f9e5da3722f2e4f4872e3ef59.png"},42171:(e,t,n)=>{n.r(t),n.d(t,{CH:()=>a,assets:()=>h,chCodeConfig:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>d,metadata:()=>s,toc:()=>x});const s=JSON.parse('{"id":"Components/components-io","title":"Inputs and outputs","description":"Input and output components define where data enters and exits your flow.","source":"@site/docs/Components/components-io.md","sourceDirName":"Components","slug":"/components-io","permalink":"/components-io","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Inputs and outputs","slug":"/components-io"},"sidebar":"docs","previous":{"title":"Helpers","permalink":"/components-helpers"},"next":{"title":"Logic","permalink":"/components-logic"}}');var o=n(74848),r=n(28453),c=n(24754),i=n(84443);const d={title:"Inputs and outputs",slug:"/components-io"},l="Input and output components in Langflow",h={},a={annotations:c.hk,Code:c.Cy},p={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},x=[{value:"Chat Input",id:"chat-input",level:2},{value:"Message method",id:"message-method",level:3},{value:"Text Input",id:"text-input",level:2},{value:"Chat Output",id:"chat-output",level:2},{value:"Text Output",id:"text-output",level:2},{value:"Chat components example flow",id:"chat-components-example-flow",level:2},{value:"Send chat messages with the API",id:"send-chat-messages-with-the-api",level:3}];function j(e){const t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components},{Details:s}=t;return a||g("CH",!1),a.Code||g("CH.Code",!0),s||g("Details",!0),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"input-and-output-components-in-langflow",children:"Input and output components in Langflow"})}),"\n",(0,o.jsx)(t.p,{children:"Input and output components define where data enters and exits your flow."}),"\n",(0,o.jsxs)(t.p,{children:["Both components accept user input and return a ",(0,o.jsx)(t.code,{children:"Message"})," object, but serve different purposes."]}),"\n",(0,o.jsxs)(t.p,{children:["The ",(0,o.jsx)(t.strong,{children:"Text Input"})," component accepts a text string input and returns a ",(0,o.jsx)(t.code,{children:"Message"})," object containing only the input text. The output does not appear in the ",(0,o.jsx)(t.strong,{children:"Playground"}),"."]}),"\n",(0,o.jsxs)(t.p,{children:["The ",(0,o.jsx)(t.strong,{children:"Chat Input"})," component accepts multiple input types including text, files, and metadata, and returns a ",(0,o.jsx)(t.code,{children:"Message"})," object containing the text along with sender information, session ID, and file attachments."]}),"\n",(0,o.jsxs)(t.p,{children:["The ",(0,o.jsx)(t.strong,{children:"Chat Input"})," component provides an interactive chat interface in the ",(0,o.jsx)(t.strong,{children:"Playground"}),"."]}),"\n",(0,o.jsx)(t.h2,{id:"chat-input",children:"Chat Input"}),"\n",(0,o.jsxs)(t.p,{children:["This component collects user input as ",(0,o.jsx)(t.code,{children:"Text"})," strings from the chat and wraps it in a ",(0,o.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})," object that includes the input text, sender information, session ID, file attachments, and styling properties."]}),"\n",(0,o.jsx)(t.p,{children:"It can optionally store the message in a chat history."}),"\n",(0,o.jsxs)(s,{children:[(0,o.jsx)("summary",{children:"Parameters"}),(0,o.jsx)(t.p,{children:(0,o.jsx)(t.strong,{children:"Inputs"})}),(0,o.jsxs)(t.table,{children:[(0,o.jsx)(t.thead,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.th,{children:"Name"}),(0,o.jsx)(t.th,{children:"Display Name"}),(0,o.jsx)(t.th,{children:"Info"})]})}),(0,o.jsxs)(t.tbody,{children:[(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"input_value"}),(0,o.jsx)(t.td,{children:"Text"}),(0,o.jsx)(t.td,{children:"The Message to be passed as input."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"should_store_message"}),(0,o.jsx)(t.td,{children:"Store Messages"}),(0,o.jsx)(t.td,{children:"Store the message in the history."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"sender"}),(0,o.jsx)(t.td,{children:"Sender Type"}),(0,o.jsx)(t.td,{children:"The type of sender."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"sender_name"}),(0,o.jsx)(t.td,{children:"Sender Name"}),(0,o.jsx)(t.td,{children:"The name of the sender."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"session_id"}),(0,o.jsx)(t.td,{children:"Session ID"}),(0,o.jsx)(t.td,{children:"The session ID of the chat. If empty, the current session ID parameter is used."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"files"}),(0,o.jsx)(t.td,{children:"Files"}),(0,o.jsx)(t.td,{children:"The files to be sent with the message."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"background_color"}),(0,o.jsx)(t.td,{children:"Background Color"}),(0,o.jsx)(t.td,{children:"The background color of the icon."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"chat_icon"}),(0,o.jsx)(t.td,{children:"Icon"}),(0,o.jsx)(t.td,{children:"The icon of the message."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"text_color"}),(0,o.jsx)(t.td,{children:"Text Color"}),(0,o.jsx)(t.td,{children:"The text color of the name."})]})]})]}),(0,o.jsx)(t.p,{children:(0,o.jsx)(t.strong,{children:"Outputs"})}),(0,o.jsxs)(t.table,{children:[(0,o.jsx)(t.thead,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.th,{children:"Name"}),(0,o.jsx)(t.th,{children:"Display Name"}),(0,o.jsx)(t.th,{children:"Info"})]})}),(0,o.jsx)(t.tbody,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"message"}),(0,o.jsx)(t.td,{children:"Message"}),(0,o.jsx)(t.td,{children:"The resulting chat message object with all specified properties."})]})})]})]}),"\n",(0,o.jsx)(t.h3,{id:"message-method",children:"Message method"}),"\n",(0,o.jsxs)(t.p,{children:["The ",(0,o.jsx)(t.code,{children:"ChatInput"})," class provides an asynchronous method to create and store a ",(0,o.jsx)(t.code,{children:"Message"})," object based on the input parameters.\nThe ",(0,o.jsx)(t.code,{children:"Message"})," object is created in the ",(0,o.jsx)(t.code,{children:"message_response"})," method of the ChatInput class using the ",(0,o.jsx)(t.code,{children:"Message.create()"})," factory method."]}),"\n",(0,o.jsx)(a.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"message ",props:{style:{color:"#C9D1D9"}}},{content:"= await",props:{style:{color:"#FF7B72"}}},{content:" Message.create(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" text",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".input_value,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" sender",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".sender,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" sender_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".sender_name,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" session_id",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".session_id,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" files",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".files,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" properties",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "background_color"',props:{style:{color:"#A5D6FF"}}},{content:": background_color,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text_color"',props:{style:{color:"#A5D6FF"}}},{content:": text_color,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#A5D6FF"}}},{content:": icon,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:")",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,o.jsx)(t.h2,{id:"text-input",children:"Text Input"}),"\n",(0,o.jsxs)(t.p,{children:["The ",(0,o.jsx)(t.strong,{children:"Text Input"})," component accepts a text string input and returns a ",(0,o.jsx)(t.code,{children:"Message"})," object containing only the input text."]}),"\n",(0,o.jsxs)(t.p,{children:["The output does not appear in the ",(0,o.jsx)(t.strong,{children:"Playground"}),"."]}),"\n",(0,o.jsxs)(s,{children:[(0,o.jsx)("summary",{children:"Parameters"}),(0,o.jsx)(t.p,{children:(0,o.jsx)(t.strong,{children:"Inputs"})}),(0,o.jsxs)(t.table,{children:[(0,o.jsx)(t.thead,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.th,{children:"Name"}),(0,o.jsx)(t.th,{children:"Display Name"}),(0,o.jsx)(t.th,{children:"Info"})]})}),(0,o.jsx)(t.tbody,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"input_value"}),(0,o.jsx)(t.td,{children:"Text"}),(0,o.jsx)(t.td,{children:"The text/content to be passed as output."})]})})]}),(0,o.jsx)(t.p,{children:(0,o.jsx)(t.strong,{children:"Outputs"})}),(0,o.jsxs)(t.table,{children:[(0,o.jsx)(t.thead,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.th,{children:"Name"}),(0,o.jsx)(t.th,{children:"Display Name"}),(0,o.jsx)(t.th,{children:"Info"})]})}),(0,o.jsx)(t.tbody,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"text"}),(0,o.jsx)(t.td,{children:"Text"}),(0,o.jsx)(t.td,{children:"The resulting text message."})]})})]})]}),"\n",(0,o.jsx)(t.h2,{id:"chat-output",children:"Chat Output"}),"\n",(0,o.jsxs)(t.p,{children:["The ",(0,o.jsx)(t.strong,{children:"Chat Output"})," component creates a ",(0,o.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})," object that includes the input text, sender information, session ID, and styling properties."]}),"\n",(0,o.jsx)(t.p,{children:"The component accepts the following input types."}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})}),"\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"})}),"\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})}),"\n"]}),"\n",(0,o.jsxs)(s,{children:[(0,o.jsx)("summary",{children:"Parameters"}),(0,o.jsx)(t.p,{children:(0,o.jsx)(t.strong,{children:"Inputs"})}),(0,o.jsxs)(t.table,{children:[(0,o.jsx)(t.thead,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.th,{children:"Name"}),(0,o.jsx)(t.th,{children:"Display Name"}),(0,o.jsx)(t.th,{children:"Info"})]})}),(0,o.jsxs)(t.tbody,{children:[(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"input_value"}),(0,o.jsx)(t.td,{children:"Text"}),(0,o.jsx)(t.td,{children:"The message to be passed as output."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"should_store_message"}),(0,o.jsx)(t.td,{children:"Store Messages"}),(0,o.jsx)(t.td,{children:"The flag to store the message in the history."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"sender"}),(0,o.jsx)(t.td,{children:"Sender Type"}),(0,o.jsx)(t.td,{children:"The type of sender."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"sender_name"}),(0,o.jsx)(t.td,{children:"Sender Name"}),(0,o.jsx)(t.td,{children:"The name of the sender."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"session_id"}),(0,o.jsx)(t.td,{children:"Session ID"}),(0,o.jsx)(t.td,{children:"The session ID of the chat. If empty, the current session ID parameter is used."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"data_template"}),(0,o.jsx)(t.td,{children:"Data Template"}),(0,o.jsx)(t.td,{children:"The template to convert Data to Text. If the option is left empty, it is dynamically set to the Data's text key."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"background_color"}),(0,o.jsx)(t.td,{children:"Background Color"}),(0,o.jsx)(t.td,{children:"The background color of the icon."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"chat_icon"}),(0,o.jsx)(t.td,{children:"Icon"}),(0,o.jsx)(t.td,{children:"The icon of the message."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"text_color"}),(0,o.jsx)(t.td,{children:"Text Color"}),(0,o.jsx)(t.td,{children:"The text color of the name."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"clean_data"}),(0,o.jsx)(t.td,{children:"Basic Clean Data"}),(0,o.jsxs)(t.td,{children:["When enabled, ",(0,o.jsx)(t.code,{children:"DataFrame"})," inputs are cleaned when converted to text. Cleaning removes empty rows, empty lines in cells, and multiple newlines."]})]})]})]}),(0,o.jsx)(t.p,{children:(0,o.jsx)(t.strong,{children:"Outputs"})}),(0,o.jsxs)(t.table,{children:[(0,o.jsx)(t.thead,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.th,{children:"Name"}),(0,o.jsx)(t.th,{children:"Display Name"}),(0,o.jsx)(t.th,{children:"Info"})]})}),(0,o.jsx)(t.tbody,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"message"}),(0,o.jsx)(t.td,{children:"Message"}),(0,o.jsx)(t.td,{children:"The resulting chat message object with all specified properties."})]})})]})]}),"\n",(0,o.jsx)(t.h2,{id:"text-output",children:"Text Output"}),"\n",(0,o.jsxs)(t.p,{children:["The ",(0,o.jsx)(t.strong,{children:"Text Output"})," takes a single input of text and returns a ",(0,o.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})," object containing that text."]}),"\n",(0,o.jsxs)(t.p,{children:["The output does not appear in the ",(0,o.jsx)(t.strong,{children:"Playground"}),"."]}),"\n",(0,o.jsxs)(s,{children:[(0,o.jsx)("summary",{children:"Parameters"}),(0,o.jsx)(t.p,{children:(0,o.jsx)(t.strong,{children:"Inputs"})}),(0,o.jsxs)(t.table,{children:[(0,o.jsx)(t.thead,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.th,{children:"Name"}),(0,o.jsx)(t.th,{children:"Display Name"}),(0,o.jsx)(t.th,{children:"Info"})]})}),(0,o.jsx)(t.tbody,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"input_value"}),(0,o.jsx)(t.td,{children:"Text"}),(0,o.jsx)(t.td,{children:"The text to be passed as output."})]})})]}),(0,o.jsx)(t.p,{children:(0,o.jsx)(t.strong,{children:"Outputs"})}),(0,o.jsxs)(t.table,{children:[(0,o.jsx)(t.thead,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.th,{children:"Name"}),(0,o.jsx)(t.th,{children:"Display Name"}),(0,o.jsx)(t.th,{children:"Info"})]})}),(0,o.jsx)(t.tbody,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"text"}),(0,o.jsx)(t.td,{children:"Text"}),(0,o.jsx)(t.td,{children:"The resulting text message."})]})})]})]}),"\n",(0,o.jsx)(t.h2,{id:"chat-components-example-flow",children:"Chat components example flow"}),"\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsxs)(t.li,{children:["To use the ",(0,o.jsx)(t.strong,{children:"Chat Input"})," and ",(0,o.jsx)(t.strong,{children:"Chat Output"})," components in a flow, connect them to components that accept or send the ",(0,o.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})," type."]}),"\n"]}),"\n",(0,o.jsxs)(t.p,{children:["For this example, connect a ",(0,o.jsx)(t.strong,{children:"Chat Input"})," component to an ",(0,o.jsx)(t.strong,{children:"OpenAI"})," model component's ",(0,o.jsx)(t.strong,{children:"Input"})," port, and then connect the ",(0,o.jsx)(t.strong,{children:"OpenAI"})," model component's ",(0,o.jsx)(t.strong,{children:"Message"})," port to the ",(0,o.jsx)(t.strong,{children:"Chat Output"})," component."]}),"\n",(0,o.jsxs)(t.ol,{start:"2",children:["\n",(0,o.jsxs)(t.li,{children:["In the ",(0,o.jsx)(t.strong,{children:"OpenAI"})," model component, in the ",(0,o.jsx)(t.strong,{children:"OpenAI API Key"})," field, add your ",(0,o.jsx)(t.strong,{children:"OpenAI API key"}),"."]}),"\n"]}),"\n",(0,o.jsx)(t.p,{children:"The flow looks like this:"}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"Chat input and output components connected to an OpenAI model",src:n(6944).A+"",width:"4000",height:"2574"})}),"\n",(0,o.jsxs)(t.ol,{start:"3",children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsxs)(t.p,{children:["To send a message to your flow, open the ",(0,o.jsx)(t.strong,{children:"Playground"}),", and then enter a message.\nThe ",(0,o.jsx)(t.strong,{children:"OpenAI"})," model component responds.\nOptionally, in the ",(0,o.jsx)(t.strong,{children:"OpenAI"})," model component, enter a ",(0,o.jsx)(t.strong,{children:"System Message"})," to control the model's response."]}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsxs)(t.p,{children:["In the Langflow UI, click your flow name, and then click ",(0,o.jsx)(t.strong,{children:"Logs"}),".\nThe ",(0,o.jsx)(t.strong,{children:"Logs"})," pane opens.\nHere, you can inspect your component logs.\n",(0,o.jsx)(t.img,{alt:"Logs pane",src:n(77232).A+"",width:"3200",height:"1716"})]}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsxs)(t.p,{children:["Your first message was sent by the ",(0,o.jsx)(t.strong,{children:"Chat Input"})," component to the ",(0,o.jsx)(t.strong,{children:"OpenAI"})," model component.\nClick ",(0,o.jsx)(t.strong,{children:"Outputs"})," to view the sent message:"]}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(a.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:' "messages": [',props:{}}]},{tokens:[{content:" {",props:{}}]},{tokens:[{content:' "message": "What\'s the recommended way to install Docker on Mac M1?",',props:{}}]},{tokens:[{content:' "sender": "User",',props:{}}]},{tokens:[{content:' "sender_name": "User",',props:{}}]},{tokens:[{content:' "session_id": "Session Apr 21, 17:37:04",',props:{}}]},{tokens:[{content:' "stream_url": null,',props:{}}]},{tokens:[{content:' "component_id": "ChatInput-4WKag",',props:{}}]},{tokens:[{content:' "files": [],',props:{}}]},{tokens:[{content:' "type": "text"',props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:" ],",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,o.jsxs)(t.ol,{start:"6",children:["\n",(0,o.jsxs)(t.li,{children:["Your second message was sent by the ",(0,o.jsx)(t.strong,{children:"OpenAI"})," model component to the ",(0,o.jsx)(t.strong,{children:"Chat Output"})," component.\nThis is the raw text output of the model's response.\nThe ",(0,o.jsx)(t.strong,{children:"Chat Output"})," component accepts this text as input and presents it as a formatted message.\nClick ",(0,o.jsx)(t.strong,{children:"Outputs"})," to view the sent message:"]}),"\n"]}),"\n",(0,o.jsx)(a.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:' "outputs":',props:{}}]},{tokens:[{content:' "text_output":',props:{}}]},{tokens:[{content:' "message": "To install Docker on a Mac with an M1 chip, you should use Docker Desktop for Mac, which is optimized for Apple Silicon. Here\'s a step-by-step guide to installing Docker on your M1 Mac:\\n\\n1.',props:{}}]},{tokens:[{content:" ...",props:{}}]},{tokens:[{content:' "type": "text"',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsxs)(t.p,{children:["Optionally, to view the outputs of each component in the flow, click ",(0,o.jsx)(i.A,{name:"TextSearch","aria-label":"Inspect icon"}),"."]})}),"\n",(0,o.jsx)(t.h3,{id:"send-chat-messages-with-the-api",children:"Send chat messages with the API"}),"\n",(0,o.jsxs)(t.p,{children:["The ",(0,o.jsx)(t.strong,{children:"Chat Input"})," component is often the entry point for passing messages to the Langflow API.\nTo send the same example messages programmatically to your Langflow server, do the following:"]}),"\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsxs)(t.li,{children:["To get your Langflow endpoint, click ",(0,o.jsx)(t.strong,{children:"Publish"}),", and then click ",(0,o.jsx)(t.strong,{children:"API access"}),"."]}),"\n",(0,o.jsxs)(t.li,{children:["Copy the command from the ",(0,o.jsx)(t.strong,{children:"cURL"})," tab, and then paste it in your terminal.\nIt looks similar to this:"]}),"\n"]}),"\n",(0,o.jsx)(a.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl --request POST \\",props:{}}]},{tokens:[{content:" --url 'http://127.0.0.1:7860/api/v1/run/51eed711-4530-4fdc-9bce-5db4351cc73a?stream=false' \\",props:{}}]},{tokens:[{content:" --header 'Content-Type: application/json' \\",props:{}}]},{tokens:[{content:" --data '{",props:{}}]},{tokens:[{content:' "input_value": "What\'s the recommended way to install Docker on Mac M1?",',props:{}}]},{tokens:[{content:' "output_type": "chat",',props:{}}]},{tokens:[{content:' "input_type": "chat"',props:{}}]},{tokens:[{content:"}'",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,o.jsxs)(t.ol,{start:"3",children:["\n",(0,o.jsxs)(t.li,{children:["Modify ",(0,o.jsx)(t.code,{children:"input_value"})," so it contains the question, ",(0,o.jsx)(t.code,{children:"What's the recommended way to install Docker on Mac M1?"}),"."]}),"\n"]}),"\n",(0,o.jsxs)(t.p,{children:["Note the ",(0,o.jsx)(t.code,{children:"output_type"})," and ",(0,o.jsx)(t.code,{children:"input_type"})," parameters that are passed with the message. The ",(0,o.jsx)(t.code,{children:"chat"})," type provides additional configuration options, and the messages appear in the ",(0,o.jsx)(t.strong,{children:"Playground"}),". The ",(0,o.jsx)(t.code,{children:"text"})," type returns only text strings, and does not appear in the ",(0,o.jsx)(t.strong,{children:"Playground"}),"."]}),"\n",(0,o.jsxs)(t.ol,{start:"4",children:["\n",(0,o.jsxs)(t.li,{children:["Add a custom ",(0,o.jsx)(t.code,{children:"session_id"})," to the message's ",(0,o.jsx)(t.code,{children:"data"})," object."]}),"\n"]}),"\n",(0,o.jsx)(a.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl --request POST \\",props:{}}]},{tokens:[{content:" --url 'http://127.0.0.1:7860/api/v1/run/51eed711-4530-4fdc-9bce-5db4351cc73a?stream=false' \\",props:{}}]},{tokens:[{content:" --header 'Content-Type: application/json' \\",props:{}}]},{tokens:[{content:" --data '{",props:{}}]},{tokens:[{content:' "input_value": "Whats the recommended way to install Docker on Mac M1",',props:{}}]},{tokens:[{content:' "session_id": "docker-question-on-m1",',props:{}}]},{tokens:[{content:' "output_type": "chat",',props:{}}]},{tokens:[{content:' "input_type": "chat"',props:{}}]},{tokens:[{content:"}'",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,o.jsxs)(t.p,{children:["The custom ",(0,o.jsx)(t.code,{children:"session_id"})," value starts a new chat session between your client and the Langflow server, and can be useful in keeping conversations and AI context separate."]}),"\n",(0,o.jsxs)(t.ol,{start:"5",children:["\n",(0,o.jsx)(t.li,{children:"Send the POST request.\nYour request is answered."}),"\n",(0,o.jsxs)(t.li,{children:["Navigate to the ",(0,o.jsx)(t.strong,{children:"Playground"}),".\nA new chat session called ",(0,o.jsx)(t.code,{children:"docker-question-on-m1"})," has appeared, using your unique ",(0,o.jsx)(t.code,{children:"session_id"}),"."]}),"\n",(0,o.jsxs)(t.li,{children:["To modify additional parameters with ",(0,o.jsx)(t.strong,{children:"Tweaks"})," for your ",(0,o.jsx)(t.strong,{children:"Chat Input"})," and ",(0,o.jsx)(t.strong,{children:"Chat Output"})," components, click ",(0,o.jsx)(t.strong,{children:"Publish"}),", and then click ",(0,o.jsx)(t.strong,{children:"API access"}),"."]}),"\n",(0,o.jsxs)(t.li,{children:["Click ",(0,o.jsx)(t.strong,{children:"Tweaks"})," to modify parameters in the component's ",(0,o.jsx)(t.code,{children:"data"})," object.\nFor example, disabling storing messages from the ",(0,o.jsx)(t.strong,{children:"Chat Input"})," component adds a ",(0,o.jsx)(t.strong,{children:"Tweak"})," to your command:"]}),"\n"]}),"\n",(0,o.jsx)(a.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl --request POST \\",props:{}}]},{tokens:[{content:" --url 'http://127.0.0.1:7860/api/v1/run/51eed711-4530-4fdc-9bce-5db4351cc73a?stream=false' \\",props:{}}]},{tokens:[{content:" --header 'Content-Type: application/json' \\",props:{}}]},{tokens:[{content:" --data '{",props:{}}]},{tokens:[{content:' "input_value": "Text to input to the flow",',props:{}}]},{tokens:[{content:' "output_type": "chat",',props:{}}]},{tokens:[{content:' "input_type": "chat",',props:{}}]},{tokens:[{content:' "tweaks": {',props:{}}]},{tokens:[{content:' "ChatInput-4WKag": {',props:{}}]},{tokens:[{content:' "should_store_message": false',props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:"}'",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,o.jsxs)(t.p,{children:["To confirm your command is using the tweak, navigate to the ",(0,o.jsx)(t.strong,{children:"Logs"})," pane and view the request from the ",(0,o.jsx)(t.strong,{children:"Chat Input"})," component.\nThe value for ",(0,o.jsx)(t.code,{children:"should_store_message"})," is ",(0,o.jsx)(t.code,{children:"false"}),"."]})]})}function u(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(j,{...e})}):j(e)}function g(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},77232:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/logs-6ae22cc6a87b128cbc0c7f4559b47f10.png"},84443:(e,t,n)=>{n.d(t,{A:()=>r});n(96540);var s=n(64058),o=n(74848);function r(e){let{name:t,...n}=e;const r=s[t];return r?(0,o.jsx)(r,{...n}):null}}}]);
\ No newline at end of file
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[7408],{6944:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/component-chat-io-9dc92d3f9e5da3722f2e4f4872e3ef59.png"},42171:(e,t,n)=>{n.r(t),n.d(t,{CH:()=>a,assets:()=>h,chCodeConfig:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>d,metadata:()=>s,toc:()=>x});const s=JSON.parse('{"id":"Components/components-io","title":"Inputs and outputs","description":"Input and output components define where data enters and exits your flow.","source":"@site/docs/Components/components-io.md","sourceDirName":"Components","slug":"/components-io","permalink":"/components-io","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Inputs and outputs","slug":"/components-io"},"sidebar":"docs","previous":{"title":"Helpers","permalink":"/components-helpers"},"next":{"title":"Logic","permalink":"/components-logic"}}');var o=n(74848),r=n(28453),c=n(24754),i=n(84443);const d={title:"Inputs and outputs",slug:"/components-io"},l="Input and output components in Langflow",h={},a={annotations:c.hk,Code:c.Cy},p={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},x=[{value:"Chat Input",id:"chat-input",level:2},{value:"Message method",id:"message-method",level:3},{value:"Text Input",id:"text-input",level:2},{value:"Chat Output",id:"chat-output",level:2},{value:"Text Output",id:"text-output",level:2},{value:"Chat components example flow",id:"chat-components-example-flow",level:2},{value:"Send chat messages with the API",id:"send-chat-messages-with-the-api",level:3}];function j(e){const t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components},{Details:s}=t;return a||g("CH",!1),a.Code||g("CH.Code",!0),s||g("Details",!0),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"input-and-output-components-in-langflow",children:"Input and output components in Langflow"})}),"\n",(0,o.jsx)(t.p,{children:"Input and output components define where data enters and exits your flow."}),"\n",(0,o.jsxs)(t.p,{children:["Both components accept user input and return a ",(0,o.jsx)(t.code,{children:"Message"})," object, but serve different purposes."]}),"\n",(0,o.jsxs)(t.p,{children:["The ",(0,o.jsx)(t.strong,{children:"Text Input"})," component accepts a text string input and returns a ",(0,o.jsx)(t.code,{children:"Message"})," object containing only the input text. The output does not appear in the ",(0,o.jsx)(t.strong,{children:"Playground"}),"."]}),"\n",(0,o.jsxs)(t.p,{children:["The ",(0,o.jsx)(t.strong,{children:"Chat Input"})," component accepts multiple input types including text, files, and metadata, and returns a ",(0,o.jsx)(t.code,{children:"Message"})," object containing the text along with sender information, session ID, and file attachments."]}),"\n",(0,o.jsxs)(t.p,{children:["The ",(0,o.jsx)(t.strong,{children:"Chat Input"})," component provides an interactive chat interface in the ",(0,o.jsx)(t.strong,{children:"Playground"}),"."]}),"\n",(0,o.jsx)(t.h2,{id:"chat-input",children:"Chat Input"}),"\n",(0,o.jsxs)(t.p,{children:["This component collects user input as ",(0,o.jsx)(t.code,{children:"Text"})," strings from the chat and wraps it in a ",(0,o.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})," object that includes the input text, sender information, session ID, file attachments, and styling properties."]}),"\n",(0,o.jsx)(t.p,{children:"It can optionally store the message in a chat history."}),"\n",(0,o.jsxs)(s,{children:[(0,o.jsx)("summary",{children:"Parameters"}),(0,o.jsx)(t.p,{children:(0,o.jsx)(t.strong,{children:"Inputs"})}),(0,o.jsxs)(t.table,{children:[(0,o.jsx)(t.thead,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.th,{children:"Name"}),(0,o.jsx)(t.th,{children:"Display Name"}),(0,o.jsx)(t.th,{children:"Info"})]})}),(0,o.jsxs)(t.tbody,{children:[(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"input_value"}),(0,o.jsx)(t.td,{children:"Text"}),(0,o.jsx)(t.td,{children:"The Message to be passed as input."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"should_store_message"}),(0,o.jsx)(t.td,{children:"Store Messages"}),(0,o.jsx)(t.td,{children:"Store the message in the history."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"sender"}),(0,o.jsx)(t.td,{children:"Sender Type"}),(0,o.jsx)(t.td,{children:"The type of sender."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"sender_name"}),(0,o.jsx)(t.td,{children:"Sender Name"}),(0,o.jsx)(t.td,{children:"The name of the sender."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"session_id"}),(0,o.jsx)(t.td,{children:"Session ID"}),(0,o.jsx)(t.td,{children:"The session ID of the chat. If empty, the current session ID parameter is used."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"files"}),(0,o.jsx)(t.td,{children:"Files"}),(0,o.jsx)(t.td,{children:"The files to be sent with the message."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"background_color"}),(0,o.jsx)(t.td,{children:"Background Color"}),(0,o.jsx)(t.td,{children:"The background color of the icon."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"chat_icon"}),(0,o.jsx)(t.td,{children:"Icon"}),(0,o.jsx)(t.td,{children:"The icon of the message."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"text_color"}),(0,o.jsx)(t.td,{children:"Text Color"}),(0,o.jsx)(t.td,{children:"The text color of the name."})]})]})]}),(0,o.jsx)(t.p,{children:(0,o.jsx)(t.strong,{children:"Outputs"})}),(0,o.jsxs)(t.table,{children:[(0,o.jsx)(t.thead,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.th,{children:"Name"}),(0,o.jsx)(t.th,{children:"Display Name"}),(0,o.jsx)(t.th,{children:"Info"})]})}),(0,o.jsx)(t.tbody,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"message"}),(0,o.jsx)(t.td,{children:"Message"}),(0,o.jsx)(t.td,{children:"The resulting chat message object with all specified properties."})]})})]})]}),"\n",(0,o.jsx)(t.h3,{id:"message-method",children:"Message method"}),"\n",(0,o.jsxs)(t.p,{children:["The ",(0,o.jsx)(t.code,{children:"ChatInput"})," class provides an asynchronous method to create and store a ",(0,o.jsx)(t.code,{children:"Message"})," object based on the input parameters.\nThe ",(0,o.jsx)(t.code,{children:"Message"})," object is created in the ",(0,o.jsx)(t.code,{children:"message_response"})," method of the ChatInput class using the ",(0,o.jsx)(t.code,{children:"Message.create()"})," factory method."]}),"\n",(0,o.jsx)(a.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"message ",props:{style:{color:"#C9D1D9"}}},{content:"= await",props:{style:{color:"#FF7B72"}}},{content:" Message.create(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" text",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".input_value,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" sender",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".sender,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" sender_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".sender_name,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" session_id",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".session_id,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" files",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".files,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" properties",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "background_color"',props:{style:{color:"#A5D6FF"}}},{content:": background_color,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "text_color"',props:{style:{color:"#A5D6FF"}}},{content:": text_color,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "icon"',props:{style:{color:"#A5D6FF"}}},{content:": icon,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:")",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,o.jsx)(t.h2,{id:"text-input",children:"Text Input"}),"\n",(0,o.jsxs)(t.p,{children:["The ",(0,o.jsx)(t.strong,{children:"Text Input"})," component accepts a text string input and returns a ",(0,o.jsx)(t.code,{children:"Message"})," object containing only the input text."]}),"\n",(0,o.jsxs)(t.p,{children:["The output does not appear in the ",(0,o.jsx)(t.strong,{children:"Playground"}),"."]}),"\n",(0,o.jsxs)(s,{children:[(0,o.jsx)("summary",{children:"Parameters"}),(0,o.jsx)(t.p,{children:(0,o.jsx)(t.strong,{children:"Inputs"})}),(0,o.jsxs)(t.table,{children:[(0,o.jsx)(t.thead,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.th,{children:"Name"}),(0,o.jsx)(t.th,{children:"Display Name"}),(0,o.jsx)(t.th,{children:"Info"})]})}),(0,o.jsx)(t.tbody,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"input_value"}),(0,o.jsx)(t.td,{children:"Text"}),(0,o.jsx)(t.td,{children:"The text/content to be passed as output."})]})})]}),(0,o.jsx)(t.p,{children:(0,o.jsx)(t.strong,{children:"Outputs"})}),(0,o.jsxs)(t.table,{children:[(0,o.jsx)(t.thead,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.th,{children:"Name"}),(0,o.jsx)(t.th,{children:"Display Name"}),(0,o.jsx)(t.th,{children:"Info"})]})}),(0,o.jsx)(t.tbody,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"text"}),(0,o.jsx)(t.td,{children:"Text"}),(0,o.jsx)(t.td,{children:"The resulting text message."})]})})]})]}),"\n",(0,o.jsx)(t.h2,{id:"chat-output",children:"Chat Output"}),"\n",(0,o.jsxs)(t.p,{children:["The ",(0,o.jsx)(t.strong,{children:"Chat Output"})," component creates a ",(0,o.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})," object that includes the input text, sender information, session ID, and styling properties."]}),"\n",(0,o.jsx)(t.p,{children:"The component accepts the following input types."}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})}),"\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"})}),"\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})}),"\n"]}),"\n",(0,o.jsxs)(s,{children:[(0,o.jsx)("summary",{children:"Parameters"}),(0,o.jsx)(t.p,{children:(0,o.jsx)(t.strong,{children:"Inputs"})}),(0,o.jsxs)(t.table,{children:[(0,o.jsx)(t.thead,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.th,{children:"Name"}),(0,o.jsx)(t.th,{children:"Display Name"}),(0,o.jsx)(t.th,{children:"Info"})]})}),(0,o.jsxs)(t.tbody,{children:[(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"input_value"}),(0,o.jsx)(t.td,{children:"Text"}),(0,o.jsx)(t.td,{children:"The message to be passed as output."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"should_store_message"}),(0,o.jsx)(t.td,{children:"Store Messages"}),(0,o.jsx)(t.td,{children:"The flag to store the message in the history."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"sender"}),(0,o.jsx)(t.td,{children:"Sender Type"}),(0,o.jsx)(t.td,{children:"The type of sender."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"sender_name"}),(0,o.jsx)(t.td,{children:"Sender Name"}),(0,o.jsx)(t.td,{children:"The name of the sender."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"session_id"}),(0,o.jsx)(t.td,{children:"Session ID"}),(0,o.jsx)(t.td,{children:"The session ID of the chat. If empty, the current session ID parameter is used."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"data_template"}),(0,o.jsx)(t.td,{children:"Data Template"}),(0,o.jsx)(t.td,{children:"The template to convert Data to Text. If the option is left empty, it is dynamically set to the Data's text key."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"background_color"}),(0,o.jsx)(t.td,{children:"Background Color"}),(0,o.jsx)(t.td,{children:"The background color of the icon."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"chat_icon"}),(0,o.jsx)(t.td,{children:"Icon"}),(0,o.jsx)(t.td,{children:"The icon of the message."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"text_color"}),(0,o.jsx)(t.td,{children:"Text Color"}),(0,o.jsx)(t.td,{children:"The text color of the name."})]}),(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"clean_data"}),(0,o.jsx)(t.td,{children:"Basic Clean Data"}),(0,o.jsxs)(t.td,{children:["When enabled, ",(0,o.jsx)(t.code,{children:"DataFrame"})," inputs are cleaned when converted to text. Cleaning removes empty rows, empty lines in cells, and multiple newlines."]})]})]})]}),(0,o.jsx)(t.p,{children:(0,o.jsx)(t.strong,{children:"Outputs"})}),(0,o.jsxs)(t.table,{children:[(0,o.jsx)(t.thead,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.th,{children:"Name"}),(0,o.jsx)(t.th,{children:"Display Name"}),(0,o.jsx)(t.th,{children:"Info"})]})}),(0,o.jsx)(t.tbody,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"message"}),(0,o.jsx)(t.td,{children:"Message"}),(0,o.jsx)(t.td,{children:"The resulting chat message object with all specified properties."})]})})]})]}),"\n",(0,o.jsx)(t.h2,{id:"text-output",children:"Text Output"}),"\n",(0,o.jsxs)(t.p,{children:["The ",(0,o.jsx)(t.strong,{children:"Text Output"})," takes a single input of text and returns a ",(0,o.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})," object containing that text."]}),"\n",(0,o.jsxs)(t.p,{children:["The output does not appear in the ",(0,o.jsx)(t.strong,{children:"Playground"}),"."]}),"\n",(0,o.jsxs)(s,{children:[(0,o.jsx)("summary",{children:"Parameters"}),(0,o.jsx)(t.p,{children:(0,o.jsx)(t.strong,{children:"Inputs"})}),(0,o.jsxs)(t.table,{children:[(0,o.jsx)(t.thead,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.th,{children:"Name"}),(0,o.jsx)(t.th,{children:"Display Name"}),(0,o.jsx)(t.th,{children:"Info"})]})}),(0,o.jsx)(t.tbody,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"input_value"}),(0,o.jsx)(t.td,{children:"Text"}),(0,o.jsx)(t.td,{children:"The text to be passed as output."})]})})]}),(0,o.jsx)(t.p,{children:(0,o.jsx)(t.strong,{children:"Outputs"})}),(0,o.jsxs)(t.table,{children:[(0,o.jsx)(t.thead,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.th,{children:"Name"}),(0,o.jsx)(t.th,{children:"Display Name"}),(0,o.jsx)(t.th,{children:"Info"})]})}),(0,o.jsx)(t.tbody,{children:(0,o.jsxs)(t.tr,{children:[(0,o.jsx)(t.td,{children:"text"}),(0,o.jsx)(t.td,{children:"Text"}),(0,o.jsx)(t.td,{children:"The resulting text message."})]})})]})]}),"\n",(0,o.jsx)(t.h2,{id:"chat-components-example-flow",children:"Chat components example flow"}),"\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsxs)(t.li,{children:["To use the ",(0,o.jsx)(t.strong,{children:"Chat Input"})," and ",(0,o.jsx)(t.strong,{children:"Chat Output"})," components in a flow, connect them to components that accept or send the ",(0,o.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})," type."]}),"\n"]}),"\n",(0,o.jsxs)(t.p,{children:["For this example, connect a ",(0,o.jsx)(t.strong,{children:"Chat Input"})," component to an ",(0,o.jsx)(t.strong,{children:"OpenAI"})," model component's ",(0,o.jsx)(t.strong,{children:"Input"})," port, and then connect the ",(0,o.jsx)(t.strong,{children:"OpenAI"})," model component's ",(0,o.jsx)(t.strong,{children:"Message"})," port to the ",(0,o.jsx)(t.strong,{children:"Chat Output"})," component."]}),"\n",(0,o.jsxs)(t.ol,{start:"2",children:["\n",(0,o.jsxs)(t.li,{children:["In the ",(0,o.jsx)(t.strong,{children:"OpenAI"})," model component, in the ",(0,o.jsx)(t.strong,{children:"OpenAI API Key"})," field, add your ",(0,o.jsx)(t.strong,{children:"OpenAI API key"}),"."]}),"\n"]}),"\n",(0,o.jsx)(t.p,{children:"The flow looks like this:"}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"Chat input and output components connected to an OpenAI model",src:n(6944).A+"",width:"4000",height:"2574"})}),"\n",(0,o.jsxs)(t.ol,{start:"3",children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsxs)(t.p,{children:["To send a message to your flow, open the ",(0,o.jsx)(t.strong,{children:"Playground"}),", and then enter a message.\nThe ",(0,o.jsx)(t.strong,{children:"OpenAI"})," model component responds.\nOptionally, in the ",(0,o.jsx)(t.strong,{children:"OpenAI"})," model component, enter a ",(0,o.jsx)(t.strong,{children:"System Message"})," to control the model's response."]}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsxs)(t.p,{children:["In the Langflow UI, click your flow name, and then click ",(0,o.jsx)(t.strong,{children:"Logs"}),".\nThe ",(0,o.jsx)(t.strong,{children:"Logs"})," pane opens.\nHere, you can inspect your component logs.\n",(0,o.jsx)(t.img,{alt:"Logs pane",src:n(77232).A+"",width:"3200",height:"1716"})]}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsxs)(t.p,{children:["Your first message was sent by the ",(0,o.jsx)(t.strong,{children:"Chat Input"})," component to the ",(0,o.jsx)(t.strong,{children:"OpenAI"})," model component.\nClick ",(0,o.jsx)(t.strong,{children:"Outputs"})," to view the sent message:"]}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(a.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:' "messages": [',props:{}}]},{tokens:[{content:" {",props:{}}]},{tokens:[{content:' "message": "What\'s the recommended way to install Docker on Mac M1?",',props:{}}]},{tokens:[{content:' "sender": "User",',props:{}}]},{tokens:[{content:' "sender_name": "User",',props:{}}]},{tokens:[{content:' "session_id": "Session Apr 21, 17:37:04",',props:{}}]},{tokens:[{content:' "stream_url": null,',props:{}}]},{tokens:[{content:' "component_id": "ChatInput-4WKag",',props:{}}]},{tokens:[{content:' "files": [],',props:{}}]},{tokens:[{content:' "type": "text"',props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:" ],",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,o.jsxs)(t.ol,{start:"6",children:["\n",(0,o.jsxs)(t.li,{children:["Your second message was sent by the ",(0,o.jsx)(t.strong,{children:"OpenAI"})," model component to the ",(0,o.jsx)(t.strong,{children:"Chat Output"})," component.\nThis is the raw text output of the model's response.\nThe ",(0,o.jsx)(t.strong,{children:"Chat Output"})," component accepts this text as input and presents it as a formatted message.\nClick ",(0,o.jsx)(t.strong,{children:"Outputs"})," to view the sent message:"]}),"\n"]}),"\n",(0,o.jsx)(a.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:' "outputs":',props:{}}]},{tokens:[{content:' "text_output":',props:{}}]},{tokens:[{content:' "message": "To install Docker on a Mac with an M1 chip, you should use Docker Desktop for Mac, which is optimized for Apple Silicon. Here\'s a step-by-step guide to installing Docker on your M1 Mac:\\n\\n1.',props:{}}]},{tokens:[{content:" ...",props:{}}]},{tokens:[{content:' "type": "text"',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,o.jsx)(t.admonition,{type:"tip",children:(0,o.jsxs)(t.p,{children:["Optionally, to view the outputs of each component in the flow, click ",(0,o.jsx)(i.A,{name:"TextSearch","aria-label":"Inspect icon"}),"."]})}),"\n",(0,o.jsx)(t.h3,{id:"send-chat-messages-with-the-api",children:"Send chat messages with the API"}),"\n",(0,o.jsxs)(t.p,{children:["The ",(0,o.jsx)(t.strong,{children:"Chat Input"})," component is often the entry point for passing messages to the Langflow API.\nTo send the same example messages programmatically to your Langflow server, do the following:"]}),"\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsxs)(t.li,{children:["To get your Langflow endpoint, click ",(0,o.jsx)(t.strong,{children:"Publish"}),", and then click ",(0,o.jsx)(t.strong,{children:"API access"}),"."]}),"\n",(0,o.jsxs)(t.li,{children:["Copy the command from the ",(0,o.jsx)(t.strong,{children:"cURL"})," tab, and then paste it in your terminal.\nIt looks similar to this:"]}),"\n"]}),"\n",(0,o.jsx)(a.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl --request POST \\",props:{}}]},{tokens:[{content:" --url 'http://localhost:7860/api/v1/run/51eed711-4530-4fdc-9bce-5db4351cc73a?stream=false' \\",props:{}}]},{tokens:[{content:" --header 'Content-Type: application/json' \\",props:{}}]},{tokens:[{content:" --data '{",props:{}}]},{tokens:[{content:' "input_value": "What\'s the recommended way to install Docker on Mac M1?",',props:{}}]},{tokens:[{content:' "output_type": "chat",',props:{}}]},{tokens:[{content:' "input_type": "chat"',props:{}}]},{tokens:[{content:"}'",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,o.jsxs)(t.ol,{start:"3",children:["\n",(0,o.jsxs)(t.li,{children:["Modify ",(0,o.jsx)(t.code,{children:"input_value"})," so it contains the question, ",(0,o.jsx)(t.code,{children:"What's the recommended way to install Docker on Mac M1?"}),"."]}),"\n"]}),"\n",(0,o.jsxs)(t.p,{children:["Note the ",(0,o.jsx)(t.code,{children:"output_type"})," and ",(0,o.jsx)(t.code,{children:"input_type"})," parameters that are passed with the message. The ",(0,o.jsx)(t.code,{children:"chat"})," type provides additional configuration options, and the messages appear in the ",(0,o.jsx)(t.strong,{children:"Playground"}),". The ",(0,o.jsx)(t.code,{children:"text"})," type returns only text strings, and does not appear in the ",(0,o.jsx)(t.strong,{children:"Playground"}),"."]}),"\n",(0,o.jsxs)(t.ol,{start:"4",children:["\n",(0,o.jsxs)(t.li,{children:["Add a custom ",(0,o.jsx)(t.code,{children:"session_id"})," to the message's ",(0,o.jsx)(t.code,{children:"data"})," object."]}),"\n"]}),"\n",(0,o.jsx)(a.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl --request POST \\",props:{}}]},{tokens:[{content:" --url 'http://localhost:7860/api/v1/run/51eed711-4530-4fdc-9bce-5db4351cc73a?stream=false' \\",props:{}}]},{tokens:[{content:" --header 'Content-Type: application/json' \\",props:{}}]},{tokens:[{content:" --data '{",props:{}}]},{tokens:[{content:' "input_value": "Whats the recommended way to install Docker on Mac M1",',props:{}}]},{tokens:[{content:' "session_id": "docker-question-on-m1",',props:{}}]},{tokens:[{content:' "output_type": "chat",',props:{}}]},{tokens:[{content:' "input_type": "chat"',props:{}}]},{tokens:[{content:"}'",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,o.jsxs)(t.p,{children:["The custom ",(0,o.jsx)(t.code,{children:"session_id"})," value starts a new chat session between your client and the Langflow server, and can be useful in keeping conversations and AI context separate."]}),"\n",(0,o.jsxs)(t.ol,{start:"5",children:["\n",(0,o.jsx)(t.li,{children:"Send the POST request.\nYour request is answered."}),"\n",(0,o.jsxs)(t.li,{children:["Navigate to the ",(0,o.jsx)(t.strong,{children:"Playground"}),".\nA new chat session called ",(0,o.jsx)(t.code,{children:"docker-question-on-m1"})," has appeared, using your unique ",(0,o.jsx)(t.code,{children:"session_id"}),"."]}),"\n",(0,o.jsxs)(t.li,{children:["To modify additional parameters with ",(0,o.jsx)(t.strong,{children:"Tweaks"})," for your ",(0,o.jsx)(t.strong,{children:"Chat Input"})," and ",(0,o.jsx)(t.strong,{children:"Chat Output"})," components, click ",(0,o.jsx)(t.strong,{children:"Publish"}),", and then click ",(0,o.jsx)(t.strong,{children:"API access"}),"."]}),"\n",(0,o.jsxs)(t.li,{children:["Click ",(0,o.jsx)(t.strong,{children:"Tweaks"})," to modify parameters in the component's ",(0,o.jsx)(t.code,{children:"data"})," object.\nFor example, disabling storing messages from the ",(0,o.jsx)(t.strong,{children:"Chat Input"})," component adds a ",(0,o.jsx)(t.strong,{children:"Tweak"})," to your command:"]}),"\n"]}),"\n",(0,o.jsx)(a.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl --request POST \\",props:{}}]},{tokens:[{content:" --url 'http://localhost:7860/api/v1/run/51eed711-4530-4fdc-9bce-5db4351cc73a?stream=false' \\",props:{}}]},{tokens:[{content:" --header 'Content-Type: application/json' \\",props:{}}]},{tokens:[{content:" --data '{",props:{}}]},{tokens:[{content:' "input_value": "Text to input to the flow",',props:{}}]},{tokens:[{content:' "output_type": "chat",',props:{}}]},{tokens:[{content:' "input_type": "chat",',props:{}}]},{tokens:[{content:' "tweaks": {',props:{}}]},{tokens:[{content:' "ChatInput-4WKag": {',props:{}}]},{tokens:[{content:' "should_store_message": false',props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:"}'",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,o.jsxs)(t.p,{children:["To confirm your command is using the tweak, navigate to the ",(0,o.jsx)(t.strong,{children:"Logs"})," pane and view the request from the ",(0,o.jsx)(t.strong,{children:"Chat Input"})," component.\nThe value for ",(0,o.jsx)(t.code,{children:"should_store_message"})," is ",(0,o.jsx)(t.code,{children:"false"}),"."]})]})}function u(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(j,{...e})}):j(e)}function g(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},77232:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/logs-6ae22cc6a87b128cbc0c7f4559b47f10.png"},84443:(e,t,n)=>{n.d(t,{A:()=>r});n(96540);var s=n(64058),o=n(74848);function r(e){let{name:t,...n}=e;const r=s[t];return r?(0,o.jsx)(r,{...n}):null}}}]);
\ No newline at end of file
diff --git a/assets/js/5217df3c.6f4e4983.js b/assets/js/5217df3c.fefcae38.js
similarity index 99%
rename from assets/js/5217df3c.6f4e4983.js
rename to assets/js/5217df3c.fefcae38.js
index 0998f96396..cd89705e5f 100644
--- a/assets/js/5217df3c.6f4e4983.js
+++ b/assets/js/5217df3c.fefcae38.js
@@ -1 +1 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[9914],{29411:(o,t,e)=>{e.r(t),e.d(t,{CH:()=>u,assets:()=>d,chCodeConfig:()=>y,contentTitle:()=>i,default:()=>f,frontMatter:()=>a,metadata:()=>n,toc:()=>h});const n=JSON.parse('{"id":"Develop/Clients/typescript-client","title":"Langflow TypeScript client","description":"The Langflow TypeScript client allows your TypeScript applications to programmatically interact with the Langflow API.","source":"@site/docs/Develop/Clients/typescript-client.md","sourceDirName":"Develop/Clients","slug":"/typescript-client","permalink":"/typescript-client","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Langflow TypeScript client","slug":"/typescript-client"},"sidebar":"docs","previous":{"title":"Webhook","permalink":"/webhook"},"next":{"title":"Deployment overview","permalink":"/deployment-overview"}}');var s=e(74848),r=e(28453),c=e(24754),l=e(65537),p=e(79329);const a={title:"Langflow TypeScript client",slug:"/typescript-client"},i=void 0,d={},u={annotations:c.hk,Code:c.Cy},y={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},h=[{value:"Install the Langflow TypeScript package",id:"install-the-langflow-typescript-package",level:2},{value:"Initialize the Langflow TypeScript client",id:"initialize-the-langflow-typescript-client",level:2},{value:"Langflow TypeScript client quickstart",id:"langflow-typescript-client-quickstart",level:2},{value:"Use advanced TypeScript client features",id:"use-advanced-typescript-client-features",level:2},{value:"Retrieve Langflow logs with the TypeScript client",id:"retrieve-langflow-logs-with-the-typescript-client",level:2},{value:"Langflow TypeScript project repository",id:"langflow-typescript-project-repository",level:2}];function F(o){const t={a:"a",code:"code",h2:"h2",li:"li",ol:"ol",p:"p",ul:"ul",...(0,r.R)(),...o.components},{Details:e}=t;return u||g("CH",!1),u.Code||g("CH.Code",!0),e||g("Details",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,s.jsx)(t.p,{children:"The Langflow TypeScript client allows your TypeScript applications to programmatically interact with the Langflow API."}),"\n",(0,s.jsxs)(t.p,{children:["For the client code repository, see ",(0,s.jsx)(t.a,{href:"https://github.com/datastax/langflow-client-ts/",children:"langflow-client-ts"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["For the npm package, see ",(0,s.jsx)(t.a,{href:"https://www.npmjs.com/package/@datastax/langflow-client",children:"@datastax/langflow-client"}),"."]}),"\n",(0,s.jsx)(t.h2,{id:"install-the-langflow-typescript-package",children:"Install the Langflow TypeScript package"}),"\n",(0,s.jsx)(t.p,{children:"To install the Langflow typescript client package, use one of the following commands:"}),"\n",(0,s.jsxs)(l.A,{groupId:"package-manager",children:[(0,s.jsx)(p.A,{value:"npm",label:"npm",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"npm ",props:{style:{color:"#FFA657"}}},{content:"install @datastax/langflow-client",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"yarn",label:"yarn",children:(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"yarn ",props:{style:{color:"#FFA657"}}},{content:"add @datastax/langflow-client",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"pnpm",label:"pnpm",children:(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"pnpm ",props:{style:{color:"#FFA657"}}},{content:"add @datastax/langflow-client",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h2,{id:"initialize-the-langflow-typescript-client",children:"Initialize the Langflow TypeScript client"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsx)(t.li,{children:"Import the client into your code."}),"\n"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" { LangflowClient } ",props:{style:{color:"#C9D1D9"}}},{content:"from ",props:{style:{color:"#FF7B72"}}},{content:'"@datastax/langflow-client"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]}],lang:"tsx"},annotations:[]}]}),"\n",(0,s.jsxs)(t.ol,{start:"2",children:["\n",(0,s.jsxs)(t.li,{children:["Initialize a client object to interact with your server.\nThe ",(0,s.jsx)(t.code,{children:"LangflowClient"})," object allows you to interact with the Langflow API."]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["Replace ",(0,s.jsx)(t.code,{children:"BASE_URL"})," and ",(0,s.jsx)(t.code,{children:"API_KEY"})," with values from your deployment.\nThe default Langflow base URL is ",(0,s.jsx)(t.code,{children:"http://localhost:7860"}),".\nTo create an API key, see ",(0,s.jsx)(t.a,{href:"/configuration-api-keys",children:"API keys"}),"."]}),"\n",(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"const ",props:{style:{color:"#FF7B72"}}},{content:"baseUrl ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"BASE_URL"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"const ",props:{style:{color:"#FF7B72"}}},{content:"apiKey ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"API_KEY"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"const ",props:{style:{color:"#FF7B72"}}},{content:"client ",props:{style:{color:"#79C0FF"}}},{content:"= new ",props:{style:{color:"#FF7B72"}}},{content:"LangflowClient",props:{style:{color:"#D2A8FF"}}},{content:"({ baseUrl, apiKey });",props:{style:{color:"#C9D1D9"}}}]}],lang:"tsx"},annotations:[]}]}),"\n",(0,s.jsx)(t.h2,{id:"langflow-typescript-client-quickstart",children:"Langflow TypeScript client quickstart"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["With your Langflow client initialized, submit a message to your Langflow server and receive a response.\nThis example uses the minimum values for sending a message and running your flow on a Langflow server, with no API keys.\nReplace ",(0,s.jsx)(t.code,{children:"baseUrl"})," and ",(0,s.jsx)(t.code,{children:"flowId"})," with values from your deployment.\nThe ",(0,s.jsx)(t.code,{children:"input"})," string is the message you're sending to your flow."]}),"\n"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" { LangflowClient } ",props:{style:{color:"#C9D1D9"}}},{content:"from ",props:{style:{color:"#FF7B72"}}},{content:'"@datastax/langflow-client"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"const ",props:{style:{color:"#FF7B72"}}},{content:"baseUrl ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"http://127.0.0.1:7860"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"const ",props:{style:{color:"#FF7B72"}}},{content:"client ",props:{style:{color:"#79C0FF"}}},{content:"= new ",props:{style:{color:"#FF7B72"}}},{content:"LangflowClient",props:{style:{color:"#D2A8FF"}}},{content:"({ baseUrl });",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"async function ",props:{style:{color:"#FF7B72"}}},{content:"runFlow",props:{style:{color:"#D2A8FF"}}},{content:"() {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" const ",props:{style:{color:"#FF7B72"}}},{content:"flowId ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"aa5a238b-02c0-4f03-bc5c-cc3a83335cdf"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" const ",props:{style:{color:"#FF7B72"}}},{content:"flow ",props:{style:{color:"#79C0FF"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" client.",props:{style:{color:"#C9D1D9"}}},{content:"flow",props:{style:{color:"#D2A8FF"}}},{content:"(flowId);",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" const ",props:{style:{color:"#FF7B72"}}},{content:"input ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Is anyone there?"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" const ",props:{style:{color:"#FF7B72"}}},{content:"response ",props:{style:{color:"#79C0FF"}}},{content:"= await",props:{style:{color:"#FF7B72"}}},{content:" flow.",props:{style:{color:"#C9D1D9"}}},{content:"run",props:{style:{color:"#D2A8FF"}}},{content:"(input);",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" console.",props:{style:{color:"#C9D1D9"}}},{content:"log",props:{style:{color:"#D2A8FF"}}},{content:"(response);",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"runFlow",props:{style:{color:"#D2A8FF"}}},{content:"().",props:{style:{color:"#C9D1D9"}}},{content:"catch",props:{style:{color:"#D2A8FF"}}},{content:"(console.error);",props:{style:{color:"#C9D1D9"}}}]}],lang:"tsx"},annotations:[]}]}),"\n",(0,s.jsxs)(e,{open:!0,children:[(0,s.jsx)("summary",{children:"Response"}),(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"FlowResponse {",props:{}}]},{tokens:[{content:" sessionId: 'aa5a238b-02c0-4f03-bc5c-cc3a83335cdf',",props:{}}]},{tokens:[{content:" outputs: [ { inputs: [Object], outputs: [Array] } ]",props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})]}),"\n",(0,s.jsx)(t.p,{children:"This confirms your client is connecting to Langflow."}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["The ",(0,s.jsx)(t.code,{children:"sessionID"})," value is a unique identifier for the client-server session. For more information, see ",(0,s.jsx)(t.a,{href:"/session-id",children:"Session ID"}),"."]}),"\n",(0,s.jsxs)(t.li,{children:["The ",(0,s.jsx)(t.code,{children:"outputs"})," array contains the results of your flow execution."]}),"\n"]}),"\n",(0,s.jsxs)(t.ol,{start:"2",children:["\n",(0,s.jsxs)(t.li,{children:["To get the full response objects from your server, change the ",(0,s.jsx)(t.code,{children:"console.log"})," code to stringify the returned JSON object:"]}),"\n"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"console.",props:{style:{color:"#C9D1D9"}}},{content:"log",props:{style:{color:"#D2A8FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"JSON",props:{style:{color:"#79C0FF"}}},{content:".",props:{style:{color:"#C9D1D9"}}},{content:"stringify",props:{style:{color:"#D2A8FF"}}},{content:"(response, ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"2",props:{style:{color:"#79C0FF"}}},{content:"));",props:{style:{color:"#C9D1D9"}}}]}],lang:"tsx"},annotations:[]}]}),"\n",(0,s.jsxs)(t.p,{children:["The exact structure of the returned ",(0,s.jsx)(t.code,{children:"inputs"})," and ",(0,s.jsx)(t.code,{children:"outputs"})," depends on how your flow is configured in Langflow."]}),"\n",(0,s.jsxs)(t.ol,{start:"3",children:["\n",(0,s.jsxs)(t.li,{children:["To get the first chat message returned from the chat output component, change ",(0,s.jsx)(t.code,{children:"console.log"})," to use the ",(0,s.jsx)(t.code,{children:"chatOutputText"})," convenience function."]}),"\n"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"console.",props:{style:{color:"#C9D1D9"}}},{content:"log",props:{style:{color:"#D2A8FF"}}},{content:"(response.",props:{style:{color:"#C9D1D9"}}},{content:"chatOutputText",props:{style:{color:"#D2A8FF"}}},{content:"());",props:{style:{color:"#C9D1D9"}}}]}],lang:"tsx"},annotations:[]}]}),"\n",(0,s.jsx)(t.h2,{id:"use-advanced-typescript-client-features",children:"Use advanced TypeScript client features"}),"\n",(0,s.jsx)(t.p,{children:"The TypeScript client can do more than just connect to your server and run a flow."}),"\n",(0,s.jsx)(t.p,{children:"This example builds on the quickstart with additional features for interacting with Langflow."}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["Pass tweaks to your code as an object with the request.\nTweaks change values within components for all calls to your flow.\nThis example tweaks the Open-AI model component to enforce using the ",(0,s.jsx)(t.code,{children:"gpt-4o-mini"})," model."]}),"\n"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"const ",props:{style:{color:"#FF7B72"}}},{content:"tweaks ",props:{style:{color:"#79C0FF"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" { model_name: ",props:{style:{color:"#C9D1D9"}}},{content:'"gpt-4o-mini"',props:{style:{color:"#A5D6FF"}}},{content:" };",props:{style:{color:"#C9D1D9"}}}]}],lang:"tsx"},annotations:[]}]}),"\n",(0,s.jsxs)(t.ol,{start:"2",children:["\n",(0,s.jsx)(t.li,{children:"Pass a session ID with the request to maintain the same conversation with the LLM from this application."}),"\n"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"const ",props:{style:{color:"#FF7B72"}}},{content:"session_id ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"aa5a238b-02c0-4f03-bc5c-cc3a83335cdf"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]}],lang:"tsx"},annotations:[]}]}),"\n",(0,s.jsxs)(t.ol,{start:"3",children:["\n",(0,s.jsxs)(t.li,{children:["Instead of calling ",(0,s.jsx)(t.code,{children:"run"})," on the Flow object, call ",(0,s.jsx)(t.code,{children:"stream"})," with the same arguments.\nThe response is a ",(0,s.jsx)(t.a,{href:"https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream",children:"ReadableStream"})," of objects.\nFor more information on streaming Langflow responses, see ",(0,s.jsx)(t.a,{href:"https://docs.langflow.org/api-reference-api-examples#run-flow",children:"Run flow"}),"."]}),"\n"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"const ",props:{style:{color:"#FF7B72"}}},{content:"response ",props:{style:{color:"#79C0FF"}}},{content:"= await",props:{style:{color:"#FF7B72"}}},{content:" client.",props:{style:{color:"#C9D1D9"}}},{content:"flow",props:{style:{color:"#D2A8FF"}}},{content:"(flowId).",props:{style:{color:"#C9D1D9"}}},{content:"stream",props:{style:{color:"#D2A8FF"}}},{content:"(input);",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"for await",props:{style:{color:"#FF7B72"}}},{content:" (",props:{style:{color:"#C9D1D9"}}},{content:"const ",props:{style:{color:"#FF7B72"}}},{content:"event ",props:{style:{color:"#79C0FF"}}},{content:"of",props:{style:{color:"#FF7B72"}}},{content:" response) {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" console.",props:{style:{color:"#C9D1D9"}}},{content:"log",props:{style:{color:"#D2A8FF"}}},{content:"(event);",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"tsx"},annotations:[]}]}),"\n",(0,s.jsxs)(t.ol,{start:"4",children:["\n",(0,s.jsxs)(t.li,{children:["Run the completed TypeScript application to call your server with ",(0,s.jsx)(t.code,{children:"tweaks"})," and ",(0,s.jsx)(t.code,{children:"session_id"}),", and stream the response back.\nReplace ",(0,s.jsx)(t.code,{children:"baseUrl"})," and ",(0,s.jsx)(t.code,{children:"flowId"})," with values from your deployment."]}),"\n"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" { LangflowClient } ",props:{style:{color:"#C9D1D9"}}},{content:"from ",props:{style:{color:"#FF7B72"}}},{content:'"@datastax/langflow-client"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"const ",props:{style:{color:"#FF7B72"}}},{content:"baseUrl ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"http://127.0.0.1:7860"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"const ",props:{style:{color:"#FF7B72"}}},{content:"client ",props:{style:{color:"#79C0FF"}}},{content:"= new ",props:{style:{color:"#FF7B72"}}},{content:"LangflowClient",props:{style:{color:"#D2A8FF"}}},{content:"({ baseUrl });",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"async function ",props:{style:{color:"#FF7B72"}}},{content:"runFlow",props:{style:{color:"#D2A8FF"}}},{content:"() {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" const ",props:{style:{color:"#FF7B72"}}},{content:"flowId ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"aa5a238b-02c0-4f03-bc5c-cc3a83335cdf"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" const ",props:{style:{color:"#FF7B72"}}},{content:"input ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Is anyone there?"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" const ",props:{style:{color:"#FF7B72"}}},{content:"tweaks ",props:{style:{color:"#79C0FF"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" { model_name: ",props:{style:{color:"#C9D1D9"}}},{content:'"gpt-4o-mini"',props:{style:{color:"#A5D6FF"}}},{content:" };",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" const ",props:{style:{color:"#FF7B72"}}},{content:"session_id ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"test-session"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" const ",props:{style:{color:"#FF7B72"}}},{content:"response ",props:{style:{color:"#79C0FF"}}},{content:"= await",props:{style:{color:"#FF7B72"}}},{content:" client.",props:{style:{color:"#C9D1D9"}}},{content:"flow",props:{style:{color:"#D2A8FF"}}},{content:"(flowId).",props:{style:{color:"#C9D1D9"}}},{content:"stream",props:{style:{color:"#D2A8FF"}}},{content:"(input, {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" session_id,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" tweaks,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" });",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" for await",props:{style:{color:"#FF7B72"}}},{content:" (",props:{style:{color:"#C9D1D9"}}},{content:"const ",props:{style:{color:"#FF7B72"}}},{content:"event ",props:{style:{color:"#79C0FF"}}},{content:"of",props:{style:{color:"#FF7B72"}}},{content:" response) {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" console.",props:{style:{color:"#C9D1D9"}}},{content:"log",props:{style:{color:"#D2A8FF"}}},{content:"(event);",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"runFlow",props:{style:{color:"#D2A8FF"}}},{content:"().",props:{style:{color:"#C9D1D9"}}},{content:"catch",props:{style:{color:"#D2A8FF"}}},{content:"(console.error);",props:{style:{color:"#C9D1D9"}}}]}],lang:"tsx"},annotations:[]}]}),"\n",(0,s.jsxs)(e,{children:[(0,s.jsx)("summary",{children:"Response"}),(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:" event: 'add_message',",props:{}}]},{tokens:[{content:" data: {",props:{}}]},{tokens:[{content:" timestamp: '2025-05-23 15:52:48 UTC',",props:{}}]},{tokens:[{content:" sender: 'User',",props:{}}]},{tokens:[{content:" sender_name: 'User',",props:{}}]},{tokens:[{content:" session_id: 'test-session',",props:{}}]},{tokens:[{content:" text: 'Is anyone there?',",props:{}}]},{tokens:[{content:" files: [],",props:{}}]},{tokens:[{content:" error: false,",props:{}}]},{tokens:[{content:" edit: false,",props:{}}]},{tokens:[{content:" properties: {",props:{}}]},{tokens:[{content:" text_color: '',",props:{}}]},{tokens:[{content:" background_color: '',",props:{}}]},{tokens:[{content:" edited: false,",props:{}}]},{tokens:[{content:" source: [Object],",props:{}}]},{tokens:[{content:" icon: '',",props:{}}]},{tokens:[{content:" allow_markdown: false,",props:{}}]},{tokens:[{content:" positive_feedback: null,",props:{}}]},{tokens:[{content:" state: 'complete',",props:{}}]},{tokens:[{content:" targets: []",props:{}}]},{tokens:[{content:" },",props:{}}]},{tokens:[{content:" category: 'message',",props:{}}]},{tokens:[{content:" content_blocks: [],",props:{}}]},{tokens:[{content:" id: '7f096715-3f2d-4d84-88d6-5e2f76bf3fbe',",props:{}}]},{tokens:[{content:" flow_id: 'aa5a238b-02c0-4f03-bc5c-cc3a83335cdf',",props:{}}]},{tokens:[{content:" duration: null",props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"{",props:{}}]},{tokens:[{content:" event: 'token',",props:{}}]},{tokens:[{content:" data: {",props:{}}]},{tokens:[{content:" chunk: 'Absolutely',",props:{}}]},{tokens:[{content:" id: 'c5a99314-6b23-488b-84e2-038aa3e87fb5',",props:{}}]},{tokens:[{content:" timestamp: '2025-05-23 15:52:48 UTC'",props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"{",props:{}}]},{tokens:[{content:" event: 'token',",props:{}}]},{tokens:[{content:" data: {",props:{}}]},{tokens:[{content:" chunk: ',',",props:{}}]},{tokens:[{content:" id: 'c5a99314-6b23-488b-84e2-038aa3e87fb5',",props:{}}]},{tokens:[{content:" timestamp: '2025-05-23 15:52:48 UTC'",props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"{",props:{}}]},{tokens:[{content:" event: 'token',",props:{}}]},{tokens:[{content:" data: {",props:{}}]},{tokens:[{content:' chunk: " I\'m",',props:{}}]},{tokens:[{content:" id: 'c5a99314-6b23-488b-84e2-038aa3e87fb5',",props:{}}]},{tokens:[{content:" timestamp: '2025-05-23 15:52:48 UTC'",props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"{",props:{}}]},{tokens:[{content:" event: 'token',",props:{}}]},{tokens:[{content:" data: {",props:{}}]},{tokens:[{content:" chunk: ' here',",props:{}}]},{tokens:[{content:" id: 'c5a99314-6b23-488b-84e2-038aa3e87fb5',",props:{}}]},{tokens:[{content:" timestamp: '2025-05-23 15:52:48 UTC'",props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"// this response is abbreviated",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"{",props:{}}]},{tokens:[{content:" event: 'end',",props:{}}]},{tokens:[{content:" data: { result: { session_id: 'test-session', outputs: [Array] } }",props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})]}),"\n",(0,s.jsx)(t.h2,{id:"retrieve-langflow-logs-with-the-typescript-client",children:"Retrieve Langflow logs with the TypeScript client"}),"\n",(0,s.jsxs)(t.p,{children:["To retrieve Langflow logs, you must enable log retrieval on your Langflow server by including the following values in your server's ",(0,s.jsx)(t.code,{children:".env"})," file:"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW_ENABLE_LOG_RETRIEVAL=true",props:{}}]},{tokens:[{content:"LANGFLOW_LOG_RETRIEVER_BUFFER_SIZE=10000",props:{}}]},{tokens:[{content:"LANGFLOW_LOG_LEVEL=DEBUG",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(t.p,{children:["For more information, see ",(0,s.jsx)(t.a,{href:"/api-reference-api-examples#logs",children:"API examples"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["This complete example starts streaming logs in the background, and then runs a flow so you can see how a flow executes.\nReplace ",(0,s.jsx)(t.code,{children:"baseUrl"})," and ",(0,s.jsx)(t.code,{children:"flowId"})," with values from your deployment."]}),"\n",(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" { LangflowClient } ",props:{style:{color:"#C9D1D9"}}},{content:"from ",props:{style:{color:"#FF7B72"}}},{content:'"@datastax/langflow-client"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"const ",props:{style:{color:"#FF7B72"}}},{content:"baseUrl ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"http://127.0.0.1:7863"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"const ",props:{style:{color:"#FF7B72"}}},{content:"flowId ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"86f0bf45-0544-4e88-b0b1-8e622da7a7f0"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"async function ",props:{style:{color:"#FF7B72"}}},{content:"runFlow",props:{style:{color:"#D2A8FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"client",props:{style:{color:"#FFA657"}}},{content:": ",props:{style:{color:"#FF7B72"}}},{content:"LangflowClient",props:{style:{color:"#FFA657"}}},{content:") {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" const ",props:{style:{color:"#FF7B72"}}},{content:"input ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Is anyone there?"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" const ",props:{style:{color:"#FF7B72"}}},{content:"response ",props:{style:{color:"#79C0FF"}}},{content:"= await",props:{style:{color:"#FF7B72"}}},{content:" client.",props:{style:{color:"#C9D1D9"}}},{content:"flow",props:{style:{color:"#D2A8FF"}}},{content:"(flowId).",props:{style:{color:"#C9D1D9"}}},{content:"run",props:{style:{color:"#D2A8FF"}}},{content:"(input);",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" console.",props:{style:{color:"#C9D1D9"}}},{content:"log",props:{style:{color:"#D2A8FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"'Flow response:'",props:{style:{color:"#A5D6FF"}}},{content:", response);",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"async function ",props:{style:{color:"#FF7B72"}}},{content:"main",props:{style:{color:"#D2A8FF"}}},{content:"() {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" const ",props:{style:{color:"#FF7B72"}}},{content:"client ",props:{style:{color:"#79C0FF"}}},{content:"= new ",props:{style:{color:"#FF7B72"}}},{content:"LangflowClient",props:{style:{color:"#D2A8FF"}}},{content:"({ baseUrl: baseUrl });",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" // Start streaming logs",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" console.",props:{style:{color:"#C9D1D9"}}},{content:"log",props:{style:{color:"#D2A8FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"'Starting log stream...'",props:{style:{color:"#A5D6FF"}}},{content:");",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" for await",props:{style:{color:"#FF7B72"}}},{content:" (",props:{style:{color:"#C9D1D9"}}},{content:"const ",props:{style:{color:"#FF7B72"}}},{content:"log ",props:{style:{color:"#79C0FF"}}},{content:"of await",props:{style:{color:"#FF7B72"}}},{content:" client.logs.",props:{style:{color:"#C9D1D9"}}},{content:"stream",props:{style:{color:"#D2A8FF"}}},{content:"()) {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" console.",props:{style:{color:"#C9D1D9"}}},{content:"log",props:{style:{color:"#D2A8FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"'Log:'",props:{style:{color:"#A5D6FF"}}},{content:", log);",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" // Run the flow",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" await ",props:{style:{color:"#FF7B72"}}},{content:"runFlow",props:{style:{color:"#D2A8FF"}}},{content:"(client);",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"main",props:{style:{color:"#D2A8FF"}}},{content:"().",props:{style:{color:"#C9D1D9"}}},{content:"catch",props:{style:{color:"#D2A8FF"}}},{content:"(console.error);",props:{style:{color:"#C9D1D9"}}}]}],lang:"tsx"},annotations:[]}]}),"\n",(0,s.jsx)(t.p,{children:"Logs begin streaming indefinitely, and the flow runs once."}),"\n",(0,s.jsx)(t.p,{children:"The logs below are abbreviated, but you can monitor how the flow instantiates its components, configures its model, and processes the outputs."}),"\n",(0,s.jsxs)(e,{children:[(0,s.jsx)("summary",{children:"Response"}),(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"Starting log stream...",props:{}}]},{tokens:[{content:"Log: Log {",props:{}}]},{tokens:[{content:" timestamp: 2025-05-30T11:49:16.006Z,",props:{}}]},{tokens:[{content:" message: '2025-05-30T07:49:16.006127-0400 DEBUG Instantiating ChatInput of type component\\n'",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"Log: Log {",props:{}}]},{tokens:[{content:" timestamp: 2025-05-30T11:49:16.029Z,",props:{}}]},{tokens:[{content:" message: '2025-05-30T07:49:16.029957-0400 DEBUG Instantiating Prompt of type component\\n'",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"Log: Log {",props:{}}]},{tokens:[{content:" timestamp: 2025-05-30T11:49:16.049Z,",props:{}}]},{tokens:[{content:" message: '2025-05-30T07:49:16.049520-0400 DEBUG Instantiating ChatOutput of type component\\n'",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"Log: Log {",props:{}}]},{tokens:[{content:" timestamp: 2025-05-30T11:49:16.069Z,",props:{}}]},{tokens:[{content:" message: '2025-05-30T07:49:16.069359-0400 DEBUG Instantiating OpenAIModel of type component\\n'",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"Log: Log {",props:{}}]},{tokens:[{content:" timestamp: 2025-05-30T11:49:16.086Z,",props:{}}]},{tokens:[{content:" message: \"2025-05-30T07:49:16.086426-0400 DEBUG Running layer 0 with 2 tasks, ['ChatInput-xjucM', 'Prompt-I3pxU']\\n\"",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"Log: Log {",props:{}}]},{tokens:[{content:" timestamp: 2025-05-30T11:49:16.101Z,",props:{}}]},{tokens:[{content:" message: '2025-05-30T07:49:16.101766-0400 DEBUG Building Chat Input\\n'",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"Log: Log {",props:{}}]},{tokens:[{content:" timestamp: 2025-05-30T11:49:16.113Z,",props:{}}]},{tokens:[{content:" message: '2025-05-30T07:49:16.113343-0400 DEBUG Building Prompt\\n'",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"Log: Log {",props:{}}]},{tokens:[{content:" timestamp: 2025-05-30T11:49:16.131Z,",props:{}}]},{tokens:[{content:" message: '2025-05-30T07:49:16.131423-0400 DEBUG Logged vertex build: 6bd9fe9c-5eea-4f05-a96d-f6de9dc77e3c\\n'",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"Log: Log {",props:{}}]},{tokens:[{content:" timestamp: 2025-05-30T11:49:16.143Z,",props:{}}]},{tokens:[{content:" message: '2025-05-30T07:49:16.143295-0400 DEBUG Logged vertex build: 39c68ec9-3859-4fff-9b14-80b3271f8fbf\\n'",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"Log: Log {",props:{}}]},{tokens:[{content:" timestamp: 2025-05-30T11:49:16.188Z,",props:{}}]},{tokens:[{content:" message: \"2025-05-30T07:49:16.188730-0400 DEBUG Running layer 1 with 1 tasks, ['OpenAIModel-RtlZm']\\n\"",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"Log: Log {",props:{}}]},{tokens:[{content:" timestamp: 2025-05-30T11:49:16.201Z,",props:{}}]},{tokens:[{content:" message: '2025-05-30T07:49:16.201946-0400 DEBUG Building OpenAI\\n'",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"Log: Log {",props:{}}]},{tokens:[{content:" timestamp: 2025-05-30T11:49:16.216Z,",props:{}}]},{tokens:[{content:" message: '2025-05-30T07:49:16.216622-0400 INFO Model name: gpt-4.1-mini\\n'",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"Flow response: FlowResponse {",props:{}}]},{tokens:[{content:" sessionId: '86f0bf45-0544-4e88-b0b1-8e622da7a7f0',",props:{}}]},{tokens:[{content:" outputs: [ { inputs: [Object], outputs: [Array] } ]",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"Log: Log {",props:{}}]},{tokens:[{content:" timestamp: 2025-05-30T11:49:18.094Z,",props:{}}]},{tokens:[{content:" message: `2025-05-30T07:49:18.094364-0400 DEBUG Vertex OpenAIModel-RtlZm, result: , object: {'text_output': \"Hey there! I'm here and ready to help you build something awesome with AI. What are you thinking about creating today?\"}\\n`",props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})]}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"FlowResponse"})," object is returned to the client, with the ",(0,s.jsx)(t.code,{children:"outputs"})," array including your flow result."]}),"\n",(0,s.jsx)(t.h2,{id:"langflow-typescript-project-repository",children:"Langflow TypeScript project repository"}),"\n",(0,s.jsx)(t.p,{children:"You can do even more with the Langflow TypeScript client."}),"\n",(0,s.jsxs)(t.p,{children:["For more information, see the ",(0,s.jsx)(t.a,{href:"https://github.com/datastax/langflow-client-ts/",children:"langflow-client-ts"})," repository."]})]})}function f(o={}){const{wrapper:t}={...(0,r.R)(),...o.components};return t?(0,s.jsx)(t,{...o,children:(0,s.jsx)(F,{...o})}):F(o)}function g(o,t){throw new Error("Expected "+(t?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}},65537:(o,t,e)=>{e.d(t,{A:()=>w});var n=e(96540),s=e(18215),r=e(65627),c=e(56347),l=e(50372),p=e(30604),a=e(11861),i=e(78749);function d(o){return n.Children.toArray(o).filter((o=>"\n"!==o)).map((o=>{if(!o||(0,n.isValidElement)(o)&&function(o){const{props:t}=o;return!!t&&"object"==typeof t&&"value"in t}(o))return o;throw new Error(`Docusaurus error: Bad child <${"string"==typeof o.type?o.type:o.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function u(o){const{values:t,children:e}=o;return(0,n.useMemo)((()=>{const o=t??function(o){return d(o).map((o=>{let{props:{value:t,label:e,attributes:n,default:s}}=o;return{value:t,label:e,attributes:n,default:s}}))}(e);return function(o){const t=(0,a.XI)(o,((o,t)=>o.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((o=>o.value)).join(", ")}" found in . Every value needs to be unique.`)}(o),o}),[t,e])}function y(o){let{value:t,tabValues:e}=o;return e.some((o=>o.value===t))}function h(o){let{queryString:t=!1,groupId:e}=o;const s=(0,c.W6)(),r=function(o){let{queryString:t=!1,groupId:e}=o;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!e)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 e??null}({queryString:t,groupId:e});return[(0,p.aZ)(r),(0,n.useCallback)((o=>{if(!r)return;const t=new URLSearchParams(s.location.search);t.set(r,o),s.replace({...s.location,search:t.toString()})}),[r,s])]}function F(o){const{defaultValue:t,queryString:e=!1,groupId:s}=o,r=u(o),[c,p]=(0,n.useState)((()=>function(o){let{defaultValue:t,tabValues:e}=o;if(0===e.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!y({value:t,tabValues:e}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${e.map((o=>o.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=e.find((o=>o.default))??e[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:r}))),[a,d]=h({queryString:e,groupId:s}),[F,f]=function(o){let{groupId:t}=o;const e=function(o){return o?`docusaurus.tab.${o}`:null}(t),[s,r]=(0,i.Dv)(e);return[s,(0,n.useCallback)((o=>{e&&r.set(o)}),[e,r])]}({groupId:s}),g=(()=>{const o=a??F;return y({value:o,tabValues:r})?o:null})();(0,l.A)((()=>{g&&p(g)}),[g]);return{selectedValue:c,selectValue:(0,n.useCallback)((o=>{if(!y({value:o,tabValues:r}))throw new Error(`Can't select invalid tab value=${o}`);p(o),d(o),f(o)}),[d,f,r]),tabValues:r}}var f=e(9136);const g={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var D=e(74848);function k(o){let{className:t,block:e,selectedValue:n,selectValue:c,tabValues:l}=o;const p=[],{blockElementScrollPositionUntilNextRender:a}=(0,r.a_)(),i=o=>{const t=o.currentTarget,e=p.indexOf(t),s=l[e].value;s!==n&&(a(t),c(s))},d=o=>{let t=null;switch(o.key){case"Enter":i(o);break;case"ArrowRight":{const e=p.indexOf(o.currentTarget)+1;t=p[e]??p[0];break}case"ArrowLeft":{const e=p.indexOf(o.currentTarget)-1;t=p[e]??p[p.length-1];break}}t?.focus()};return(0,D.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":e},t),children:l.map((o=>{let{value:t,label:e,attributes:r}=o;return(0,D.jsx)("li",{role:"tab",tabIndex:n===t?0:-1,"aria-selected":n===t,ref:o=>{p.push(o)},onKeyDown:d,onClick:i,...r,className:(0,s.A)("tabs__item",g.tabItem,r?.className,{"tabs__item--active":n===t}),children:e??t},t)}))})}function m(o){let{lazy:t,children:e,selectedValue:r}=o;const c=(Array.isArray(e)?e:[e]).filter(Boolean);if(t){const o=c.find((o=>o.props.value===r));return o?(0,n.cloneElement)(o,{className:(0,s.A)("margin-top--md",o.props.className)}):null}return(0,D.jsx)("div",{className:"margin-top--md",children:c.map(((o,t)=>(0,n.cloneElement)(o,{key:t,hidden:o.props.value!==r})))})}function C(o){const t=F(o);return(0,D.jsxs)("div",{className:(0,s.A)("tabs-container",g.tabList),children:[(0,D.jsx)(k,{...t,...o}),(0,D.jsx)(m,{...t,...o})]})}function w(o){const t=(0,f.A)();return(0,D.jsx)(C,{...o,children:d(o.children)},String(t))}},79329:(o,t,e)=>{e.d(t,{A:()=>c});e(96540);var n=e(18215);const s={tabItem:"tabItem_Ymn6"};var r=e(74848);function c(o){let{children:t,hidden:e,className:c}=o;return(0,r.jsx)("div",{role:"tabpanel",className:(0,n.A)(s.tabItem,c),hidden:e,children:t})}}}]);
\ No newline at end of file
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[9914],{29411:(o,t,e)=>{e.r(t),e.d(t,{CH:()=>u,assets:()=>d,chCodeConfig:()=>y,contentTitle:()=>i,default:()=>f,frontMatter:()=>a,metadata:()=>n,toc:()=>h});const n=JSON.parse('{"id":"Develop/Clients/typescript-client","title":"Langflow TypeScript client","description":"The Langflow TypeScript client allows your TypeScript applications to programmatically interact with the Langflow API.","source":"@site/docs/Develop/Clients/typescript-client.md","sourceDirName":"Develop/Clients","slug":"/typescript-client","permalink":"/typescript-client","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Langflow TypeScript client","slug":"/typescript-client"},"sidebar":"docs","previous":{"title":"Webhook","permalink":"/webhook"},"next":{"title":"Deployment overview","permalink":"/deployment-overview"}}');var s=e(74848),r=e(28453),c=e(24754),l=e(65537),p=e(79329);const a={title:"Langflow TypeScript client",slug:"/typescript-client"},i=void 0,d={},u={annotations:c.hk,Code:c.Cy},y={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},h=[{value:"Install the Langflow TypeScript package",id:"install-the-langflow-typescript-package",level:2},{value:"Initialize the Langflow TypeScript client",id:"initialize-the-langflow-typescript-client",level:2},{value:"Langflow TypeScript client quickstart",id:"langflow-typescript-client-quickstart",level:2},{value:"Use advanced TypeScript client features",id:"use-advanced-typescript-client-features",level:2},{value:"Retrieve Langflow logs with the TypeScript client",id:"retrieve-langflow-logs-with-the-typescript-client",level:2},{value:"Langflow TypeScript project repository",id:"langflow-typescript-project-repository",level:2}];function F(o){const t={a:"a",code:"code",h2:"h2",li:"li",ol:"ol",p:"p",ul:"ul",...(0,r.R)(),...o.components},{Details:e}=t;return u||g("CH",!1),u.Code||g("CH.Code",!0),e||g("Details",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,s.jsx)(t.p,{children:"The Langflow TypeScript client allows your TypeScript applications to programmatically interact with the Langflow API."}),"\n",(0,s.jsxs)(t.p,{children:["For the client code repository, see ",(0,s.jsx)(t.a,{href:"https://github.com/datastax/langflow-client-ts/",children:"langflow-client-ts"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["For the npm package, see ",(0,s.jsx)(t.a,{href:"https://www.npmjs.com/package/@datastax/langflow-client",children:"@datastax/langflow-client"}),"."]}),"\n",(0,s.jsx)(t.h2,{id:"install-the-langflow-typescript-package",children:"Install the Langflow TypeScript package"}),"\n",(0,s.jsx)(t.p,{children:"To install the Langflow typescript client package, use one of the following commands:"}),"\n",(0,s.jsxs)(l.A,{groupId:"package-manager",children:[(0,s.jsx)(p.A,{value:"npm",label:"npm",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"npm ",props:{style:{color:"#FFA657"}}},{content:"install @datastax/langflow-client",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"yarn",label:"yarn",children:(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"yarn ",props:{style:{color:"#FFA657"}}},{content:"add @datastax/langflow-client",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(p.A,{value:"pnpm",label:"pnpm",children:(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"pnpm ",props:{style:{color:"#FFA657"}}},{content:"add @datastax/langflow-client",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})})]}),"\n",(0,s.jsx)(t.h2,{id:"initialize-the-langflow-typescript-client",children:"Initialize the Langflow TypeScript client"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsx)(t.li,{children:"Import the client into your code."}),"\n"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" { LangflowClient } ",props:{style:{color:"#C9D1D9"}}},{content:"from ",props:{style:{color:"#FF7B72"}}},{content:'"@datastax/langflow-client"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]}],lang:"tsx"},annotations:[]}]}),"\n",(0,s.jsxs)(t.ol,{start:"2",children:["\n",(0,s.jsxs)(t.li,{children:["Initialize a client object to interact with your server.\nThe ",(0,s.jsx)(t.code,{children:"LangflowClient"})," object allows you to interact with the Langflow API."]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["Replace ",(0,s.jsx)(t.code,{children:"BASE_URL"})," and ",(0,s.jsx)(t.code,{children:"API_KEY"})," with values from your deployment.\nThe default Langflow base URL is ",(0,s.jsx)(t.code,{children:"http://localhost:7860"}),".\nTo create an API key, see ",(0,s.jsx)(t.a,{href:"/configuration-api-keys",children:"API keys"}),"."]}),"\n",(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"const ",props:{style:{color:"#FF7B72"}}},{content:"baseUrl ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"BASE_URL"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"const ",props:{style:{color:"#FF7B72"}}},{content:"apiKey ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"API_KEY"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"const ",props:{style:{color:"#FF7B72"}}},{content:"client ",props:{style:{color:"#79C0FF"}}},{content:"= new ",props:{style:{color:"#FF7B72"}}},{content:"LangflowClient",props:{style:{color:"#D2A8FF"}}},{content:"({ baseUrl, apiKey });",props:{style:{color:"#C9D1D9"}}}]}],lang:"tsx"},annotations:[]}]}),"\n",(0,s.jsx)(t.h2,{id:"langflow-typescript-client-quickstart",children:"Langflow TypeScript client quickstart"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["With your Langflow client initialized, submit a message to your Langflow server and receive a response.\nThis example uses the minimum values for sending a message and running your flow on a Langflow server, with no API keys.\nReplace ",(0,s.jsx)(t.code,{children:"baseUrl"})," and ",(0,s.jsx)(t.code,{children:"flowId"})," with values from your deployment.\nThe ",(0,s.jsx)(t.code,{children:"input"})," string is the message you're sending to your flow."]}),"\n"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" { LangflowClient } ",props:{style:{color:"#C9D1D9"}}},{content:"from ",props:{style:{color:"#FF7B72"}}},{content:'"@datastax/langflow-client"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"const ",props:{style:{color:"#FF7B72"}}},{content:"baseUrl ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"http://localhost:7860"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"const ",props:{style:{color:"#FF7B72"}}},{content:"client ",props:{style:{color:"#79C0FF"}}},{content:"= new ",props:{style:{color:"#FF7B72"}}},{content:"LangflowClient",props:{style:{color:"#D2A8FF"}}},{content:"({ baseUrl });",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"async function ",props:{style:{color:"#FF7B72"}}},{content:"runFlow",props:{style:{color:"#D2A8FF"}}},{content:"() {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" const ",props:{style:{color:"#FF7B72"}}},{content:"flowId ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"aa5a238b-02c0-4f03-bc5c-cc3a83335cdf"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" const ",props:{style:{color:"#FF7B72"}}},{content:"flow ",props:{style:{color:"#79C0FF"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" client.",props:{style:{color:"#C9D1D9"}}},{content:"flow",props:{style:{color:"#D2A8FF"}}},{content:"(flowId);",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" const ",props:{style:{color:"#FF7B72"}}},{content:"input ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Is anyone there?"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" const ",props:{style:{color:"#FF7B72"}}},{content:"response ",props:{style:{color:"#79C0FF"}}},{content:"= await",props:{style:{color:"#FF7B72"}}},{content:" flow.",props:{style:{color:"#C9D1D9"}}},{content:"run",props:{style:{color:"#D2A8FF"}}},{content:"(input);",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" console.",props:{style:{color:"#C9D1D9"}}},{content:"log",props:{style:{color:"#D2A8FF"}}},{content:"(response);",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"runFlow",props:{style:{color:"#D2A8FF"}}},{content:"().",props:{style:{color:"#C9D1D9"}}},{content:"catch",props:{style:{color:"#D2A8FF"}}},{content:"(console.error);",props:{style:{color:"#C9D1D9"}}}]}],lang:"tsx"},annotations:[]}]}),"\n",(0,s.jsxs)(e,{open:!0,children:[(0,s.jsx)("summary",{children:"Response"}),(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"FlowResponse {",props:{}}]},{tokens:[{content:" sessionId: 'aa5a238b-02c0-4f03-bc5c-cc3a83335cdf',",props:{}}]},{tokens:[{content:" outputs: [ { inputs: [Object], outputs: [Array] } ]",props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})]}),"\n",(0,s.jsx)(t.p,{children:"This confirms your client is connecting to Langflow."}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["The ",(0,s.jsx)(t.code,{children:"sessionID"})," value is a unique identifier for the client-server session. For more information, see ",(0,s.jsx)(t.a,{href:"/session-id",children:"Session ID"}),"."]}),"\n",(0,s.jsxs)(t.li,{children:["The ",(0,s.jsx)(t.code,{children:"outputs"})," array contains the results of your flow execution."]}),"\n"]}),"\n",(0,s.jsxs)(t.ol,{start:"2",children:["\n",(0,s.jsxs)(t.li,{children:["To get the full response objects from your server, change the ",(0,s.jsx)(t.code,{children:"console.log"})," code to stringify the returned JSON object:"]}),"\n"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"console.",props:{style:{color:"#C9D1D9"}}},{content:"log",props:{style:{color:"#D2A8FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"JSON",props:{style:{color:"#79C0FF"}}},{content:".",props:{style:{color:"#C9D1D9"}}},{content:"stringify",props:{style:{color:"#D2A8FF"}}},{content:"(response, ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"2",props:{style:{color:"#79C0FF"}}},{content:"));",props:{style:{color:"#C9D1D9"}}}]}],lang:"tsx"},annotations:[]}]}),"\n",(0,s.jsxs)(t.p,{children:["The exact structure of the returned ",(0,s.jsx)(t.code,{children:"inputs"})," and ",(0,s.jsx)(t.code,{children:"outputs"})," depends on how your flow is configured in Langflow."]}),"\n",(0,s.jsxs)(t.ol,{start:"3",children:["\n",(0,s.jsxs)(t.li,{children:["To get the first chat message returned from the chat output component, change ",(0,s.jsx)(t.code,{children:"console.log"})," to use the ",(0,s.jsx)(t.code,{children:"chatOutputText"})," convenience function."]}),"\n"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"console.",props:{style:{color:"#C9D1D9"}}},{content:"log",props:{style:{color:"#D2A8FF"}}},{content:"(response.",props:{style:{color:"#C9D1D9"}}},{content:"chatOutputText",props:{style:{color:"#D2A8FF"}}},{content:"());",props:{style:{color:"#C9D1D9"}}}]}],lang:"tsx"},annotations:[]}]}),"\n",(0,s.jsx)(t.h2,{id:"use-advanced-typescript-client-features",children:"Use advanced TypeScript client features"}),"\n",(0,s.jsx)(t.p,{children:"The TypeScript client can do more than just connect to your server and run a flow."}),"\n",(0,s.jsx)(t.p,{children:"This example builds on the quickstart with additional features for interacting with Langflow."}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["Pass tweaks to your code as an object with the request.\nTweaks change values within components for all calls to your flow.\nThis example tweaks the Open-AI model component to enforce using the ",(0,s.jsx)(t.code,{children:"gpt-4o-mini"})," model."]}),"\n"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"const ",props:{style:{color:"#FF7B72"}}},{content:"tweaks ",props:{style:{color:"#79C0FF"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" { model_name: ",props:{style:{color:"#C9D1D9"}}},{content:'"gpt-4o-mini"',props:{style:{color:"#A5D6FF"}}},{content:" };",props:{style:{color:"#C9D1D9"}}}]}],lang:"tsx"},annotations:[]}]}),"\n",(0,s.jsxs)(t.ol,{start:"2",children:["\n",(0,s.jsx)(t.li,{children:"Pass a session ID with the request to maintain the same conversation with the LLM from this application."}),"\n"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"const ",props:{style:{color:"#FF7B72"}}},{content:"session_id ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"aa5a238b-02c0-4f03-bc5c-cc3a83335cdf"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]}],lang:"tsx"},annotations:[]}]}),"\n",(0,s.jsxs)(t.ol,{start:"3",children:["\n",(0,s.jsxs)(t.li,{children:["Instead of calling ",(0,s.jsx)(t.code,{children:"run"})," on the Flow object, call ",(0,s.jsx)(t.code,{children:"stream"})," with the same arguments.\nThe response is a ",(0,s.jsx)(t.a,{href:"https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream",children:"ReadableStream"})," of objects.\nFor more information on streaming Langflow responses, see ",(0,s.jsx)(t.a,{href:"https://docs.langflow.org/api-reference-api-examples#run-flow",children:"Run flow"}),"."]}),"\n"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"const ",props:{style:{color:"#FF7B72"}}},{content:"response ",props:{style:{color:"#79C0FF"}}},{content:"= await",props:{style:{color:"#FF7B72"}}},{content:" client.",props:{style:{color:"#C9D1D9"}}},{content:"flow",props:{style:{color:"#D2A8FF"}}},{content:"(flowId).",props:{style:{color:"#C9D1D9"}}},{content:"stream",props:{style:{color:"#D2A8FF"}}},{content:"(input);",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"for await",props:{style:{color:"#FF7B72"}}},{content:" (",props:{style:{color:"#C9D1D9"}}},{content:"const ",props:{style:{color:"#FF7B72"}}},{content:"event ",props:{style:{color:"#79C0FF"}}},{content:"of",props:{style:{color:"#FF7B72"}}},{content:" response) {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" console.",props:{style:{color:"#C9D1D9"}}},{content:"log",props:{style:{color:"#D2A8FF"}}},{content:"(event);",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"tsx"},annotations:[]}]}),"\n",(0,s.jsxs)(t.ol,{start:"4",children:["\n",(0,s.jsxs)(t.li,{children:["Run the completed TypeScript application to call your server with ",(0,s.jsx)(t.code,{children:"tweaks"})," and ",(0,s.jsx)(t.code,{children:"session_id"}),", and stream the response back.\nReplace ",(0,s.jsx)(t.code,{children:"baseUrl"})," and ",(0,s.jsx)(t.code,{children:"flowId"})," with values from your deployment."]}),"\n"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" { LangflowClient } ",props:{style:{color:"#C9D1D9"}}},{content:"from ",props:{style:{color:"#FF7B72"}}},{content:'"@datastax/langflow-client"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"const ",props:{style:{color:"#FF7B72"}}},{content:"baseUrl ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"http://localhost:7860"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"const ",props:{style:{color:"#FF7B72"}}},{content:"client ",props:{style:{color:"#79C0FF"}}},{content:"= new ",props:{style:{color:"#FF7B72"}}},{content:"LangflowClient",props:{style:{color:"#D2A8FF"}}},{content:"({ baseUrl });",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"async function ",props:{style:{color:"#FF7B72"}}},{content:"runFlow",props:{style:{color:"#D2A8FF"}}},{content:"() {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" const ",props:{style:{color:"#FF7B72"}}},{content:"flowId ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"aa5a238b-02c0-4f03-bc5c-cc3a83335cdf"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" const ",props:{style:{color:"#FF7B72"}}},{content:"input ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Is anyone there?"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" const ",props:{style:{color:"#FF7B72"}}},{content:"tweaks ",props:{style:{color:"#79C0FF"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" { model_name: ",props:{style:{color:"#C9D1D9"}}},{content:'"gpt-4o-mini"',props:{style:{color:"#A5D6FF"}}},{content:" };",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" const ",props:{style:{color:"#FF7B72"}}},{content:"session_id ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"test-session"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" const ",props:{style:{color:"#FF7B72"}}},{content:"response ",props:{style:{color:"#79C0FF"}}},{content:"= await",props:{style:{color:"#FF7B72"}}},{content:" client.",props:{style:{color:"#C9D1D9"}}},{content:"flow",props:{style:{color:"#D2A8FF"}}},{content:"(flowId).",props:{style:{color:"#C9D1D9"}}},{content:"stream",props:{style:{color:"#D2A8FF"}}},{content:"(input, {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" session_id,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" tweaks,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" });",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" for await",props:{style:{color:"#FF7B72"}}},{content:" (",props:{style:{color:"#C9D1D9"}}},{content:"const ",props:{style:{color:"#FF7B72"}}},{content:"event ",props:{style:{color:"#79C0FF"}}},{content:"of",props:{style:{color:"#FF7B72"}}},{content:" response) {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" console.",props:{style:{color:"#C9D1D9"}}},{content:"log",props:{style:{color:"#D2A8FF"}}},{content:"(event);",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"runFlow",props:{style:{color:"#D2A8FF"}}},{content:"().",props:{style:{color:"#C9D1D9"}}},{content:"catch",props:{style:{color:"#D2A8FF"}}},{content:"(console.error);",props:{style:{color:"#C9D1D9"}}}]}],lang:"tsx"},annotations:[]}]}),"\n",(0,s.jsxs)(e,{children:[(0,s.jsx)("summary",{children:"Response"}),(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:" event: 'add_message',",props:{}}]},{tokens:[{content:" data: {",props:{}}]},{tokens:[{content:" timestamp: '2025-05-23 15:52:48 UTC',",props:{}}]},{tokens:[{content:" sender: 'User',",props:{}}]},{tokens:[{content:" sender_name: 'User',",props:{}}]},{tokens:[{content:" session_id: 'test-session',",props:{}}]},{tokens:[{content:" text: 'Is anyone there?',",props:{}}]},{tokens:[{content:" files: [],",props:{}}]},{tokens:[{content:" error: false,",props:{}}]},{tokens:[{content:" edit: false,",props:{}}]},{tokens:[{content:" properties: {",props:{}}]},{tokens:[{content:" text_color: '',",props:{}}]},{tokens:[{content:" background_color: '',",props:{}}]},{tokens:[{content:" edited: false,",props:{}}]},{tokens:[{content:" source: [Object],",props:{}}]},{tokens:[{content:" icon: '',",props:{}}]},{tokens:[{content:" allow_markdown: false,",props:{}}]},{tokens:[{content:" positive_feedback: null,",props:{}}]},{tokens:[{content:" state: 'complete',",props:{}}]},{tokens:[{content:" targets: []",props:{}}]},{tokens:[{content:" },",props:{}}]},{tokens:[{content:" category: 'message',",props:{}}]},{tokens:[{content:" content_blocks: [],",props:{}}]},{tokens:[{content:" id: '7f096715-3f2d-4d84-88d6-5e2f76bf3fbe',",props:{}}]},{tokens:[{content:" flow_id: 'aa5a238b-02c0-4f03-bc5c-cc3a83335cdf',",props:{}}]},{tokens:[{content:" duration: null",props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"{",props:{}}]},{tokens:[{content:" event: 'token',",props:{}}]},{tokens:[{content:" data: {",props:{}}]},{tokens:[{content:" chunk: 'Absolutely',",props:{}}]},{tokens:[{content:" id: 'c5a99314-6b23-488b-84e2-038aa3e87fb5',",props:{}}]},{tokens:[{content:" timestamp: '2025-05-23 15:52:48 UTC'",props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"{",props:{}}]},{tokens:[{content:" event: 'token',",props:{}}]},{tokens:[{content:" data: {",props:{}}]},{tokens:[{content:" chunk: ',',",props:{}}]},{tokens:[{content:" id: 'c5a99314-6b23-488b-84e2-038aa3e87fb5',",props:{}}]},{tokens:[{content:" timestamp: '2025-05-23 15:52:48 UTC'",props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"{",props:{}}]},{tokens:[{content:" event: 'token',",props:{}}]},{tokens:[{content:" data: {",props:{}}]},{tokens:[{content:' chunk: " I\'m",',props:{}}]},{tokens:[{content:" id: 'c5a99314-6b23-488b-84e2-038aa3e87fb5',",props:{}}]},{tokens:[{content:" timestamp: '2025-05-23 15:52:48 UTC'",props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"{",props:{}}]},{tokens:[{content:" event: 'token',",props:{}}]},{tokens:[{content:" data: {",props:{}}]},{tokens:[{content:" chunk: ' here',",props:{}}]},{tokens:[{content:" id: 'c5a99314-6b23-488b-84e2-038aa3e87fb5',",props:{}}]},{tokens:[{content:" timestamp: '2025-05-23 15:52:48 UTC'",props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"// this response is abbreviated",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"{",props:{}}]},{tokens:[{content:" event: 'end',",props:{}}]},{tokens:[{content:" data: { result: { session_id: 'test-session', outputs: [Array] } }",props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})]}),"\n",(0,s.jsx)(t.h2,{id:"retrieve-langflow-logs-with-the-typescript-client",children:"Retrieve Langflow logs with the TypeScript client"}),"\n",(0,s.jsxs)(t.p,{children:["To retrieve Langflow logs, you must enable log retrieval on your Langflow server by including the following values in your server's ",(0,s.jsx)(t.code,{children:".env"})," file:"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW_ENABLE_LOG_RETRIEVAL=true",props:{}}]},{tokens:[{content:"LANGFLOW_LOG_RETRIEVER_BUFFER_SIZE=10000",props:{}}]},{tokens:[{content:"LANGFLOW_LOG_LEVEL=DEBUG",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(t.p,{children:["For more information, see ",(0,s.jsx)(t.a,{href:"/api-reference-api-examples#logs",children:"API examples"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["This complete example starts streaming logs in the background, and then runs a flow so you can see how a flow executes.\nReplace ",(0,s.jsx)(t.code,{children:"baseUrl"})," and ",(0,s.jsx)(t.code,{children:"flowId"})," with values from your deployment."]}),"\n",(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" { LangflowClient } ",props:{style:{color:"#C9D1D9"}}},{content:"from ",props:{style:{color:"#FF7B72"}}},{content:'"@datastax/langflow-client"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"const ",props:{style:{color:"#FF7B72"}}},{content:"baseUrl ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"http://localhost:7863"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"const ",props:{style:{color:"#FF7B72"}}},{content:"flowId ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"86f0bf45-0544-4e88-b0b1-8e622da7a7f0"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"async function ",props:{style:{color:"#FF7B72"}}},{content:"runFlow",props:{style:{color:"#D2A8FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"client",props:{style:{color:"#FFA657"}}},{content:": ",props:{style:{color:"#FF7B72"}}},{content:"LangflowClient",props:{style:{color:"#FFA657"}}},{content:") {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" const ",props:{style:{color:"#FF7B72"}}},{content:"input ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Is anyone there?"',props:{style:{color:"#A5D6FF"}}},{content:";",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" const ",props:{style:{color:"#FF7B72"}}},{content:"response ",props:{style:{color:"#79C0FF"}}},{content:"= await",props:{style:{color:"#FF7B72"}}},{content:" client.",props:{style:{color:"#C9D1D9"}}},{content:"flow",props:{style:{color:"#D2A8FF"}}},{content:"(flowId).",props:{style:{color:"#C9D1D9"}}},{content:"run",props:{style:{color:"#D2A8FF"}}},{content:"(input);",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" console.",props:{style:{color:"#C9D1D9"}}},{content:"log",props:{style:{color:"#D2A8FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"'Flow response:'",props:{style:{color:"#A5D6FF"}}},{content:", response);",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"async function ",props:{style:{color:"#FF7B72"}}},{content:"main",props:{style:{color:"#D2A8FF"}}},{content:"() {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" const ",props:{style:{color:"#FF7B72"}}},{content:"client ",props:{style:{color:"#79C0FF"}}},{content:"= new ",props:{style:{color:"#FF7B72"}}},{content:"LangflowClient",props:{style:{color:"#D2A8FF"}}},{content:"({ baseUrl: baseUrl });",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" // Start streaming logs",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" console.",props:{style:{color:"#C9D1D9"}}},{content:"log",props:{style:{color:"#D2A8FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"'Starting log stream...'",props:{style:{color:"#A5D6FF"}}},{content:");",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" for await",props:{style:{color:"#FF7B72"}}},{content:" (",props:{style:{color:"#C9D1D9"}}},{content:"const ",props:{style:{color:"#FF7B72"}}},{content:"log ",props:{style:{color:"#79C0FF"}}},{content:"of await",props:{style:{color:"#FF7B72"}}},{content:" client.logs.",props:{style:{color:"#C9D1D9"}}},{content:"stream",props:{style:{color:"#D2A8FF"}}},{content:"()) {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" console.",props:{style:{color:"#C9D1D9"}}},{content:"log",props:{style:{color:"#D2A8FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"'Log:'",props:{style:{color:"#A5D6FF"}}},{content:", log);",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" // Run the flow",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" await ",props:{style:{color:"#FF7B72"}}},{content:"runFlow",props:{style:{color:"#D2A8FF"}}},{content:"(client);",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"main",props:{style:{color:"#D2A8FF"}}},{content:"().",props:{style:{color:"#C9D1D9"}}},{content:"catch",props:{style:{color:"#D2A8FF"}}},{content:"(console.error);",props:{style:{color:"#C9D1D9"}}}]}],lang:"tsx"},annotations:[]}]}),"\n",(0,s.jsx)(t.p,{children:"Logs begin streaming indefinitely, and the flow runs once."}),"\n",(0,s.jsx)(t.p,{children:"The logs below are abbreviated, but you can monitor how the flow instantiates its components, configures its model, and processes the outputs."}),"\n",(0,s.jsxs)(e,{children:[(0,s.jsx)("summary",{children:"Response"}),(0,s.jsx)(u.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"Starting log stream...",props:{}}]},{tokens:[{content:"Log: Log {",props:{}}]},{tokens:[{content:" timestamp: 2025-05-30T11:49:16.006Z,",props:{}}]},{tokens:[{content:" message: '2025-05-30T07:49:16.006127-0400 DEBUG Instantiating ChatInput of type component\\n'",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"Log: Log {",props:{}}]},{tokens:[{content:" timestamp: 2025-05-30T11:49:16.029Z,",props:{}}]},{tokens:[{content:" message: '2025-05-30T07:49:16.029957-0400 DEBUG Instantiating Prompt of type component\\n'",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"Log: Log {",props:{}}]},{tokens:[{content:" timestamp: 2025-05-30T11:49:16.049Z,",props:{}}]},{tokens:[{content:" message: '2025-05-30T07:49:16.049520-0400 DEBUG Instantiating ChatOutput of type component\\n'",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"Log: Log {",props:{}}]},{tokens:[{content:" timestamp: 2025-05-30T11:49:16.069Z,",props:{}}]},{tokens:[{content:" message: '2025-05-30T07:49:16.069359-0400 DEBUG Instantiating OpenAIModel of type component\\n'",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"Log: Log {",props:{}}]},{tokens:[{content:" timestamp: 2025-05-30T11:49:16.086Z,",props:{}}]},{tokens:[{content:" message: \"2025-05-30T07:49:16.086426-0400 DEBUG Running layer 0 with 2 tasks, ['ChatInput-xjucM', 'Prompt-I3pxU']\\n\"",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"Log: Log {",props:{}}]},{tokens:[{content:" timestamp: 2025-05-30T11:49:16.101Z,",props:{}}]},{tokens:[{content:" message: '2025-05-30T07:49:16.101766-0400 DEBUG Building Chat Input\\n'",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"Log: Log {",props:{}}]},{tokens:[{content:" timestamp: 2025-05-30T11:49:16.113Z,",props:{}}]},{tokens:[{content:" message: '2025-05-30T07:49:16.113343-0400 DEBUG Building Prompt\\n'",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"Log: Log {",props:{}}]},{tokens:[{content:" timestamp: 2025-05-30T11:49:16.131Z,",props:{}}]},{tokens:[{content:" message: '2025-05-30T07:49:16.131423-0400 DEBUG Logged vertex build: 6bd9fe9c-5eea-4f05-a96d-f6de9dc77e3c\\n'",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"Log: Log {",props:{}}]},{tokens:[{content:" timestamp: 2025-05-30T11:49:16.143Z,",props:{}}]},{tokens:[{content:" message: '2025-05-30T07:49:16.143295-0400 DEBUG Logged vertex build: 39c68ec9-3859-4fff-9b14-80b3271f8fbf\\n'",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"Log: Log {",props:{}}]},{tokens:[{content:" timestamp: 2025-05-30T11:49:16.188Z,",props:{}}]},{tokens:[{content:" message: \"2025-05-30T07:49:16.188730-0400 DEBUG Running layer 1 with 1 tasks, ['OpenAIModel-RtlZm']\\n\"",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"Log: Log {",props:{}}]},{tokens:[{content:" timestamp: 2025-05-30T11:49:16.201Z,",props:{}}]},{tokens:[{content:" message: '2025-05-30T07:49:16.201946-0400 DEBUG Building OpenAI\\n'",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"Log: Log {",props:{}}]},{tokens:[{content:" timestamp: 2025-05-30T11:49:16.216Z,",props:{}}]},{tokens:[{content:" message: '2025-05-30T07:49:16.216622-0400 INFO Model name: gpt-4.1-mini\\n'",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"Flow response: FlowResponse {",props:{}}]},{tokens:[{content:" sessionId: '86f0bf45-0544-4e88-b0b1-8e622da7a7f0',",props:{}}]},{tokens:[{content:" outputs: [ { inputs: [Object], outputs: [Array] } ]",props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"Log: Log {",props:{}}]},{tokens:[{content:" timestamp: 2025-05-30T11:49:18.094Z,",props:{}}]},{tokens:[{content:" message: `2025-05-30T07:49:18.094364-0400 DEBUG Vertex OpenAIModel-RtlZm, result: , object: {'text_output': \"Hey there! I'm here and ready to help you build something awesome with AI. What are you thinking about creating today?\"}\\n`",props:{}}]},{tokens:[{content:"}",props:{}}]}],lang:"text"},annotations:[]}]})]}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"FlowResponse"})," object is returned to the client, with the ",(0,s.jsx)(t.code,{children:"outputs"})," array including your flow result."]}),"\n",(0,s.jsx)(t.h2,{id:"langflow-typescript-project-repository",children:"Langflow TypeScript project repository"}),"\n",(0,s.jsx)(t.p,{children:"You can do even more with the Langflow TypeScript client."}),"\n",(0,s.jsxs)(t.p,{children:["For more information, see the ",(0,s.jsx)(t.a,{href:"https://github.com/datastax/langflow-client-ts/",children:"langflow-client-ts"})," repository."]})]})}function f(o={}){const{wrapper:t}={...(0,r.R)(),...o.components};return t?(0,s.jsx)(t,{...o,children:(0,s.jsx)(F,{...o})}):F(o)}function g(o,t){throw new Error("Expected "+(t?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}},65537:(o,t,e)=>{e.d(t,{A:()=>w});var n=e(96540),s=e(18215),r=e(65627),c=e(56347),l=e(50372),p=e(30604),a=e(11861),i=e(78749);function d(o){return n.Children.toArray(o).filter((o=>"\n"!==o)).map((o=>{if(!o||(0,n.isValidElement)(o)&&function(o){const{props:t}=o;return!!t&&"object"==typeof t&&"value"in t}(o))return o;throw new Error(`Docusaurus error: Bad child <${"string"==typeof o.type?o.type:o.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function u(o){const{values:t,children:e}=o;return(0,n.useMemo)((()=>{const o=t??function(o){return d(o).map((o=>{let{props:{value:t,label:e,attributes:n,default:s}}=o;return{value:t,label:e,attributes:n,default:s}}))}(e);return function(o){const t=(0,a.XI)(o,((o,t)=>o.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((o=>o.value)).join(", ")}" found in . Every value needs to be unique.`)}(o),o}),[t,e])}function y(o){let{value:t,tabValues:e}=o;return e.some((o=>o.value===t))}function h(o){let{queryString:t=!1,groupId:e}=o;const s=(0,c.W6)(),r=function(o){let{queryString:t=!1,groupId:e}=o;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!e)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 e??null}({queryString:t,groupId:e});return[(0,p.aZ)(r),(0,n.useCallback)((o=>{if(!r)return;const t=new URLSearchParams(s.location.search);t.set(r,o),s.replace({...s.location,search:t.toString()})}),[r,s])]}function F(o){const{defaultValue:t,queryString:e=!1,groupId:s}=o,r=u(o),[c,p]=(0,n.useState)((()=>function(o){let{defaultValue:t,tabValues:e}=o;if(0===e.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!y({value:t,tabValues:e}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${e.map((o=>o.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=e.find((o=>o.default))??e[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:r}))),[a,d]=h({queryString:e,groupId:s}),[F,f]=function(o){let{groupId:t}=o;const e=function(o){return o?`docusaurus.tab.${o}`:null}(t),[s,r]=(0,i.Dv)(e);return[s,(0,n.useCallback)((o=>{e&&r.set(o)}),[e,r])]}({groupId:s}),g=(()=>{const o=a??F;return y({value:o,tabValues:r})?o:null})();(0,l.A)((()=>{g&&p(g)}),[g]);return{selectedValue:c,selectValue:(0,n.useCallback)((o=>{if(!y({value:o,tabValues:r}))throw new Error(`Can't select invalid tab value=${o}`);p(o),d(o),f(o)}),[d,f,r]),tabValues:r}}var f=e(9136);const g={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var D=e(74848);function k(o){let{className:t,block:e,selectedValue:n,selectValue:c,tabValues:l}=o;const p=[],{blockElementScrollPositionUntilNextRender:a}=(0,r.a_)(),i=o=>{const t=o.currentTarget,e=p.indexOf(t),s=l[e].value;s!==n&&(a(t),c(s))},d=o=>{let t=null;switch(o.key){case"Enter":i(o);break;case"ArrowRight":{const e=p.indexOf(o.currentTarget)+1;t=p[e]??p[0];break}case"ArrowLeft":{const e=p.indexOf(o.currentTarget)-1;t=p[e]??p[p.length-1];break}}t?.focus()};return(0,D.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":e},t),children:l.map((o=>{let{value:t,label:e,attributes:r}=o;return(0,D.jsx)("li",{role:"tab",tabIndex:n===t?0:-1,"aria-selected":n===t,ref:o=>{p.push(o)},onKeyDown:d,onClick:i,...r,className:(0,s.A)("tabs__item",g.tabItem,r?.className,{"tabs__item--active":n===t}),children:e??t},t)}))})}function m(o){let{lazy:t,children:e,selectedValue:r}=o;const c=(Array.isArray(e)?e:[e]).filter(Boolean);if(t){const o=c.find((o=>o.props.value===r));return o?(0,n.cloneElement)(o,{className:(0,s.A)("margin-top--md",o.props.className)}):null}return(0,D.jsx)("div",{className:"margin-top--md",children:c.map(((o,t)=>(0,n.cloneElement)(o,{key:t,hidden:o.props.value!==r})))})}function C(o){const t=F(o);return(0,D.jsxs)("div",{className:(0,s.A)("tabs-container",g.tabList),children:[(0,D.jsx)(k,{...t,...o}),(0,D.jsx)(m,{...t,...o})]})}function w(o){const t=(0,f.A)();return(0,D.jsx)(C,{...o,children:d(o.children)},String(t))}},79329:(o,t,e)=>{e.d(t,{A:()=>c});e(96540);var n=e(18215);const s={tabItem:"tabItem_Ymn6"};var r=e(74848);function c(o){let{children:t,hidden:e,className:c}=o;return(0,r.jsx)("div",{role:"tabpanel",className:(0,n.A)(s.tabItem,c),hidden:e,children:t})}}}]);
\ No newline at end of file
diff --git a/assets/js/6e1a9721.9e19feac.js b/assets/js/6e1a9721.4effd225.js
similarity index 99%
rename from assets/js/6e1a9721.9e19feac.js
rename to assets/js/6e1a9721.4effd225.js
index cf31c5723e..63ddc43698 100644
--- a/assets/js/6e1a9721.9e19feac.js
+++ b/assets/js/6e1a9721.4effd225.js
@@ -1 +1 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[321],{7685:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/vector-store-document-ingestion-fce32e9be440846a2545397e3a18b7bf.png"},8886:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/component-url-regex-8cae4a8d6491d360115ad552f0c467d3.png"},13533:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/component-dataframe-operations-86f6e1111b6f414989aca7b5fe625830.png"},35073:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/component-save-to-file-67ebbb733732670897bedd9fd1b87583.png"},41502:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/component-combine-text-a73b71c22cc8099bf2a9ba22170ea701.png"},45709:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/component-data-to-dataframe-3e921379e4e86fedf0e34e3ffae46b51.png"},46445:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/component-data-operations-select-key-80bade862d29f2851b01ee26413d495f.png"},49823:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/component-split-text-741a1ac37f9a2d6591ead075acc66b65.png"},59748:(e,t,n)=>{n.r(t),n.d(t,{CH:()=>h,assets:()=>a,chCodeConfig:()=>x,contentTitle:()=>l,default:()=>m,frontMatter:()=>c,metadata:()=>s,toc:()=>j});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),o=n(24754),d=n(84443);const c={title:"Processing",slug:"/components-processing"},l=void 0,a={},h={annotations:o.hk,Code:o.Cy},x={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},j=[{value:"Use a processing component in a flow",id:"use-a-processing-component-in-a-flow",level:2},{value:"DataFrame operations",id:"dataframe-operations",level:2},{value:"Operations",id:"operations",level:3},{value:"Data operations",id:"data-operations",level:2},{value:"Operations",id:"operations-1",level:3},{value:"Data to DataFrame",id:"data-to-dataframe",level:2},{value:"Lambda filter",id:"lambda-filter",level:2},{value:"LLM router",id:"llm-router",level:2},{value:"Message to data",id:"message-to-data",level:2},{value:"Parser",id:"parser",level:2},{value:"Regex extractor",id:"regex-extractor",level:2},{value:"Save to File",id:"save-to-file",level:2},{value:"File input format options",id:"file-input-format-options",level:3},{value:"Split text",id:"split-text",level:2},{value:"Update data",id:"update-data",level:2},{value:"Legacy components",id:"legacy-components",level:2},{value:"Alter metadata",id:"alter-metadata",level:3},{value:"Combine data",id:"combine-data",level:3},{value:"Combine text",id:"combine-text",level:3},{value:"Create data",id:"create-data",level:3},{value:"Filter data",id:"filter-data",level:3},{value:"Filter values",id:"filter-values",level:3},{value:"JSON cleaner",id:"json-cleaner",level:3},{value:"Parse DataFrame",id:"parse-dataframe",level:3},{value:"Parse JSON",id:"parse-json",level:3},{value:"Select data",id:"select-data",level:3}];function p(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components},{Details:s}=t;return h||u("CH",!1),h.Code||u("CH.Code",!0),s||u("Details",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,r.jsx)(t.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:"dataframe-operations",children:"DataFrame operations"}),"\n",(0,r.jsxs)(t.p,{children:["This component performs operations on ",(0,r.jsx)(t.a,{href:"https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html",children:"DataFrame"})," rows and columns."]}),"\n",(0,r.jsxs)(t.p,{children:["To use this component in a flow, connect a component that outputs ",(0,r.jsx)(t.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"})," to the ",(0,r.jsx)(t.strong,{children:"DataFrame Operations"})," component."]}),"\n",(0,r.jsxs)(t.p,{children:["This example fetches JSON data from an API. The ",(0,r.jsx)(t.strong,{children:"Lambda filter"})," component extracts and flattens the results into a tabular DataFrame. The ",(0,r.jsx)(t.strong,{children:"DataFrame Operations"})," component can then work with the retrieved data."]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Dataframe operations with flattened dataframe",src:n(13533).A+"",width:"983",height:"696"})}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["The ",(0,r.jsx)(t.strong,{children:"API Request"})," component retrieves data with only ",(0,r.jsx)(t.code,{children:"source"})," and ",(0,r.jsx)(t.code,{children:"result"})," fields.\nFor this example, the desired data is nested within the ",(0,r.jsx)(t.code,{children:"result"})," field."]}),"\n",(0,r.jsxs)(t.li,{children:["Connect a ",(0,r.jsx)(t.strong,{children:"Lambda Filter"})," to the API request component, and a ",(0,r.jsx)(t.strong,{children:"Language model"})," to the ",(0,r.jsx)(t.strong,{children:"Lambda Filter"}),". This example connects a ",(0,r.jsx)(t.strong,{children:"Groq"})," model component."]}),"\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Groq"})," model component, add your ",(0,r.jsx)(t.strong,{children:"Groq"})," API key."]}),"\n",(0,r.jsxs)(t.li,{children:["To filter the data, in the ",(0,r.jsx)(t.strong,{children:"Lambda filter"})," component, in the ",(0,r.jsx)(t.strong,{children:"Instructions"})," field, use natural language to describe how the data should be filtered.\nFor this example, enter:"]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"I want to explode the result column out into a Data object",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(t.admonition,{type:"tip",children:(0,r.jsxs)(t.p,{children:["Avoid punctuation in the ",(0,r.jsx)(t.strong,{children:"Instructions"})," field, as it can cause errors."]})}),"\n",(0,r.jsxs)(t.ol,{start:"5",children:["\n",(0,r.jsxs)(t.li,{children:["To run the flow, in the ",(0,r.jsx)(t.strong,{children:"Lambda Filter"})," component, click ",(0,r.jsx)(d.A,{name:"Play","aria-label":"Play icon"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["To inspect the filtered data, in the ",(0,r.jsx)(t.strong,{children:"Lambda Filter"})," component, click ",(0,r.jsx)(d.A,{name:"TextSearch","aria-label":"Inspect icon"}),".\nThe result is a structured DataFrame."]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"id | name | company | username | email | address | zip",props:{}}]},{tokens:[{content:"---|------------------|----------------------|-----------------|------------------------------------|-------------------|-------",props:{}}]},{tokens:[{content:"1 | Emily Johnson | ABC Corporation | emily_johnson | emily.johnson@abccorporation.com | 123 Main St | 12345",props:{}}]},{tokens:[{content:"2 | Michael Williams | XYZ Corp | michael_williams| michael.williams@xyzcorp.com | 456 Elm Ave | 67890",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(t.ol,{start:"7",children:["\n",(0,r.jsxs)(t.li,{children:["Add the ",(0,r.jsx)(t.strong,{children:"DataFrame Operations"})," component, and a ",(0,r.jsx)(t.strong,{children:"Chat Output"})," component to the flow."]}),"\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"DataFrame Operations"})," component, in the ",(0,r.jsx)(t.strong,{children:"Operation"})," field, select ",(0,r.jsx)(t.strong,{children:"Filter"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["To apply a filter, in the ",(0,r.jsx)(t.strong,{children:"Column Name"})," field, enter a column to filter on. This example filters by ",(0,r.jsx)(t.code,{children:"name"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Click ",(0,r.jsx)(t.strong,{children:"Playground"}),", and then click ",(0,r.jsx)(t.strong,{children:"Run Flow"}),".\nThe flow extracts the values from the ",(0,r.jsx)(t.code,{children:"name"})," column."]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"name",props:{}}]},{tokens:[{content:"Emily Johnson",props:{}}]},{tokens:[{content:"Michael Williams",props:{}}]},{tokens:[{content:"John Smith",props:{}}]},{tokens:[{content:"...",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(t.h3,{id:"operations",children:"Operations"}),"\n",(0,r.jsxs)(t.p,{children:["This component can perform 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:"Required Inputs"}),(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:"Add Column"}),(0,r.jsx)(t.td,{children:"new_column_name, new_column_value"}),(0,r.jsx)(t.td,{children:"Adds a new column with a constant value."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Drop Column"}),(0,r.jsx)(t.td,{children:"column_name"}),(0,r.jsx)(t.td,{children:"Removes a specified column."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Filter"}),(0,r.jsx)(t.td,{children:"column_name, filter_value"}),(0,r.jsx)(t.td,{children:"Filters rows based on column value."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Head"}),(0,r.jsx)(t.td,{children:"num_rows"}),(0,r.jsxs)(t.td,{children:["Returns first ",(0,r.jsx)(t.code,{children:"n"})," rows."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Rename Column"}),(0,r.jsx)(t.td,{children:"column_name, new_column_name"}),(0,r.jsx)(t.td,{children:"Renames an existing column."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Replace Value"}),(0,r.jsx)(t.td,{children:"column_name, replace_value, replacement_value"}),(0,r.jsx)(t.td,{children:"Replaces values in a column."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Select Columns"}),(0,r.jsx)(t.td,{children:"columns_to_select"}),(0,r.jsx)(t.td,{children:"Selects specific columns."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Sort"}),(0,r.jsx)(t.td,{children:"column_name, ascending"}),(0,r.jsx)(t.td,{children:"Sorts DataFrame by column."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Tail"}),(0,r.jsx)(t.td,{children:"num_rows"}),(0,r.jsxs)(t.td,{children:["Returns last ",(0,r.jsx)(t.code,{children:"n"})," rows."]})]})]})]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"The DataFrame operation to perform. Options include Add Column, Drop Column, Filter, Head, Rename Column, Replace Value, Select Columns, Sort, and 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:"A 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:"The number of rows to return for head/tail operations. The default is 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."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"data-operations",children:"Data operations"}),"\n",(0,r.jsxs)(t.p,{children:["This component performs operations on ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," objects, including selecting keys, evaluating literals, combining data, filtering values, appending/updating data, removing keys, and renaming keys."]}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["To use this component in a flow, connect a component that outputs ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," to the ",(0,r.jsx)(t.strong,{children:"Data Operations"})," component's input.\nAll operations in the component require at least one ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," input."]}),"\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Operations"})," field, select the operation you want to perform.\nFor example, send this request to the ",(0,r.jsx)(t.strong,{children:"Webhook"})," component.\nReplace ",(0,r.jsx)(t.code,{children:"YOUR_FLOW_ID"})," with your flow ID."]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:'POST "http://127.0.0.1:7860/api/v1/webhook/YOUR_FLOW_ID" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"-H ",props:{style:{color:"#C9D1D9"}}},{content:"'Content-Type: application/json' ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"-d ",props:{style:{color:"#C9D1D9"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "id": 1,',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "name": "Leanne Graham",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "username": "Bret",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "email": "Sincere@april.biz",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "address": {',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "street": "Kulas Light",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "suite": "Apt. 556",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "city": "Gwenborough",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "zipcode": "92998-3874",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "geo": {',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "lat": "-37.3159",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "lng": "81.1496"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "phone": "1-770-736-8031 x56442",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "website": "hildegard.org",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "company": {',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "name": "Romaguera-Crona",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "catchPhrase": "Multi-layered client-server neural-net",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "bs": "harness real-time e-markets"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,r.jsxs)(t.ol,{start:"3",children:["\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Data Operations"})," component, select the ",(0,r.jsx)(t.strong,{children:"Select Keys"})," operation to extract specific user information.\nTo add additional keys, click ",(0,r.jsx)(d.A,{name:"Plus","aria-label":"Add"})," ",(0,r.jsx)(t.strong,{children:"Add More"}),".\n",(0,r.jsx)(t.img,{alt:"A webhook and data operations component",src:n(46445).A+"",width:"4000",height:"1920"})]}),"\n",(0,r.jsxs)(t.li,{children:["Filter by ",(0,r.jsx)(t.code,{children:"name"}),", ",(0,r.jsx)(t.code,{children:"username"}),", and ",(0,r.jsx)(t.code,{children:"email"})," to select the values from the request."]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Leanne Graham"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "username"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Bret"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "email"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Sincere@april.biz"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]}),"\n",(0,r.jsx)(t.h3,{id:"operations-1",children:"Operations"}),"\n",(0,r.jsxs)(t.p,{children:["The component supports the following operations.\nAll operations in the ",(0,r.jsx)(t.strong,{children:"Data operations"})," component require at least one ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," 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:"Operation"}),(0,r.jsx)(t.th,{children:"Required Inputs"}),(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:"Select Keys"}),(0,r.jsx)(t.td,{children:(0,r.jsx)(t.code,{children:"select_keys_input"})}),(0,r.jsx)(t.td,{children:"Selects specific keys from the data."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Literal Eval"}),(0,r.jsx)(t.td,{children:"None"}),(0,r.jsx)(t.td,{children:"Evaluates string values as Python literals."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Combine"}),(0,r.jsx)(t.td,{children:"None"}),(0,r.jsx)(t.td,{children:"Combines multiple data objects into one."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Filter Values"}),(0,r.jsxs)(t.td,{children:[(0,r.jsx)(t.code,{children:"filter_key"}),", ",(0,r.jsx)(t.code,{children:"filter_values"}),", ",(0,r.jsx)(t.code,{children:"operator"})]}),(0,r.jsx)(t.td,{children:"Filters data based on key-value pair."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Append or Update"}),(0,r.jsx)(t.td,{children:(0,r.jsx)(t.code,{children:"append_update_data"})}),(0,r.jsx)(t.td,{children:"Adds or updates key-value pairs."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Remove Keys"}),(0,r.jsx)(t.td,{children:(0,r.jsx)(t.code,{children:"remove_keys_input"})}),(0,r.jsx)(t.td,{children:"Removes specified keys from the data."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Rename Keys"}),(0,r.jsx)(t.td,{children:(0,r.jsx)(t.code,{children:"rename_keys_input"})}),(0,r.jsx)(t.td,{children:"Renames keys in the data."})]})]})]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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.jsxs)(t.td,{children:["The ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object to operate on."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"operations"}),(0,r.jsx)(t.td,{children:"Operations"}),(0,r.jsx)(t.td,{children:"The operation to perform on the data."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"select_keys_input"}),(0,r.jsx)(t.td,{children:"Select Keys"}),(0,r.jsx)(t.td,{children:"A list of keys to select from the data."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"filter_key"}),(0,r.jsx)(t.td,{children:"Filter Key"}),(0,r.jsx)(t.td,{children:"The key to filter by."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"operator"}),(0,r.jsx)(t.td,{children:"Comparison Operator"}),(0,r.jsx)(t.td,{children:"The operator to apply for comparing values."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"filter_values"}),(0,r.jsx)(t.td,{children:"Filter Values"}),(0,r.jsx)(t.td,{children:"A list of values to filter by."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"append_update_data"}),(0,r.jsx)(t.td,{children:"Append or Update"}),(0,r.jsx)(t.td,{children:"The data to append or update the existing data with."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"remove_keys_input"}),(0,r.jsx)(t.td,{children:"Remove Keys"}),(0,r.jsx)(t.td,{children:"A list of keys to remove from the data."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"rename_keys_input"}),(0,r.jsx)(t.td,{children:"Rename Keys"}),(0,r.jsx)(t.td,{children:"A list of keys to rename in the data."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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_output"}),(0,r.jsx)(t.td,{children:"Data"}),(0,r.jsx)(t.td,{children:"The resulting Data object after the operation."})]})})]})]}),"\n",(0,r.jsx)(t.h2,{id:"data-to-dataframe",children:"Data to DataFrame"}),"\n",(0,r.jsxs)(t.p,{children:["This component converts one or multiple ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," objects into a ",(0,r.jsx)(t.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"}),". Each Data object corresponds to one row in the resulting DataFrame. Fields from the ",(0,r.jsx)(t.code,{children:".data"})," attribute become columns, and the ",(0,r.jsx)(t.code,{children:".text"})," field (if present) is placed in a 'text' column."]}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["To use this component in a flow, connect a component that outputs ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," to the ",(0,r.jsx)(t.strong,{children:"Data to Dataframe"})," component's input.\nThis example connects a ",(0,r.jsx)(t.strong,{children:"Webhook"})," component to convert ",(0,r.jsx)(t.code,{children:"text"})," and ",(0,r.jsx)(t.code,{children:"data"})," into a DataFrame."]}),"\n",(0,r.jsxs)(t.li,{children:["To view the flow's output, connect a ",(0,r.jsx)(t.strong,{children:"Chat Output"})," component to the ",(0,r.jsx)(t.strong,{children:"Data to Dataframe"})," component."]}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"A webhook and data to dataframe",src:n(45709).A+"",width:"1221",height:"468"})}),"\n",(0,r.jsxs)(t.ol,{start:"3",children:["\n",(0,r.jsxs)(t.li,{children:["Send a POST request to the ",(0,r.jsx)(t.strong,{children:"Webhook"})," containing your JSON data.\nReplace ",(0,r.jsx)(t.code,{children:"YOUR_FLOW_ID"})," with your flow ID.\nThis example uses the default Langflow server address."]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'curl -X POST "http://127.0.0.1:7860/api/v1/webhook/YOUR_FLOW_ID" \\',props:{}}]},{tokens:[{content:"-H 'Content-Type: application/json' \\",props:{}}]},{tokens:[{content:"-d '{",props:{}}]},{tokens:[{content:' "text": "Alex Cruz - Employee Profile",',props:{}}]},{tokens:[{content:' "data": {',props:{}}]},{tokens:[{content:' "Name": "Alex Cruz",',props:{}}]},{tokens:[{content:' "Role": "Developer",',props:{}}]},{tokens:[{content:' "Department": "Engineering"',props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:"}'",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(t.ol,{start:"4",children:["\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Playground"}),", view the output of your flow.\nThe ",(0,r.jsx)(t.strong,{children:"Data to DataFrame"})," component converts the webhook request into a ",(0,r.jsx)(t.code,{children:"DataFrame"}),", with ",(0,r.jsx)(t.code,{children:"text"})," and ",(0,r.jsx)(t.code,{children:"data"})," fields as columns."]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"| text | data |",props:{}}]},{tokens:[{content:"|:-----------------------------|:------------------------------------------------------------------------|",props:{}}]},{tokens:[{content:"| Alex Cruz - Employee Profile | {'Name': 'Alex Cruz', 'Role': 'Developer', 'Department': 'Engineering'} |",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(t.ol,{start:"5",children:["\n",(0,r.jsx)(t.li,{children:"Send another employee data object."}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'curl -X POST "http://127.0.0.1:7860/api/v1/webhook/YOUR_FLOW_ID" \\',props:{}}]},{tokens:[{content:"-H 'Content-Type: application/json' \\",props:{}}]},{tokens:[{content:"-d '{",props:{}}]},{tokens:[{content:' "text": "Kalani Smith - Employee Profile",',props:{}}]},{tokens:[{content:' "data": {',props:{}}]},{tokens:[{content:' "Name": "Kalani Smith",',props:{}}]},{tokens:[{content:' "Role": "Designer",',props:{}}]},{tokens:[{content:' "Department": "Design"',props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:"}'",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(t.ol,{start:"6",children:["\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Playground"}),", this request is also converted to ",(0,r.jsx)(t.code,{children:"DataFrame"}),"."]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"| text | data |",props:{}}]},{tokens:[{content:"|:--------------------------------|:---------------------------------------------------------------------|",props:{}}]},{tokens:[{content:"| Kalani Smith - Employee Profile | {'Name': 'Kalani Smith', 'Role': 'Designer', 'Department': 'Design'} |",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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_list"}),(0,r.jsx)(t.td,{children:"Data or Data List"}),(0,r.jsx)(t.td,{children:"One or multiple Data objects to transform into a DataFrame."})]})})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"dataframe"}),(0,r.jsx)(t.td,{children:"DataFrame"}),(0,r.jsx)(t.td,{children:"A DataFrame built from each Data object's fields plus a text column."})]})})]})]}),"\n",(0,r.jsx)(t.h2,{id:"lambda-filter",children:"Lambda filter"}),"\n",(0,r.jsx)(t.p,{children:"This component uses an LLM to generate a Lambda function for filtering or transforming structured data."}),"\n",(0,r.jsxs)(t.p,{children:["To use the ",(0,r.jsx)(t.strong,{children:"Lambda filter"})," component, you must connect it to a ",(0,r.jsx)(t.a,{href:"/components-models#language-model",children:"Language Model"})," component, which the component uses to generate a function based on the natural language instructions in the ",(0,r.jsx)(t.strong,{children:"Instructions"})," field."]}),"\n",(0,r.jsxs)(t.p,{children:["This example gets JSON data from the ",(0,r.jsx)(t.code,{children:"https://jsonplaceholder.typicode.com/users"})," API endpoint.\nThe ",(0,r.jsx)(t.strong,{children:"Instructions"})," field in the ",(0,r.jsx)(t.strong,{children:"Lambda filter"})," component specifies the task ",(0,r.jsx)(t.code,{children:"extract emails"}),".\nThe connected LLM creates a filter based on the instructions, and successfully extracts a list of email addresses from the JSON data."]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{src:n(66539).A+"",width:"1742",height:"1622"})}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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 structured data to filter or transform using a Lambda function."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"llm"}),(0,r.jsx)(t.td,{children:"Language Model"}),(0,r.jsxs)(t.td,{children:["The connection port for a ",(0,r.jsx)(t.a,{href:"/components-models",children:"Model"})," component."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"filter_instruction"}),(0,r.jsx)(t.td,{children:"Instructions"}),(0,r.jsxs)(t.td,{children:["The natural language instructions for how to filter or transform the data using a Lambda function, such as ",(0,r.jsx)(t.code,{children:"Filter the data to only include items where the 'status' is 'active'"}),"."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"sample_size"}),(0,r.jsx)(t.td,{children:"Sample Size"}),(0,r.jsx)(t.td,{children:"For large datasets, the number of characters to sample from the dataset head and tail."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"max_size"}),(0,r.jsx)(t.td,{children:"Max Size"}),(0,r.jsxs)(t.td,{children:['The number of characters for the data to be considered "large", which triggers sampling by the ',(0,r.jsx)(t.code,{children:"sample_size"})," value."]})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"filtered_data"}),(0,r.jsx)(t.td,{children:"Filtered Data"}),(0,r.jsxs)(t.td,{children:["The filtered or transformed ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data object"}),"."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"dataframe"}),(0,r.jsx)(t.td,{children:"DataFrame"}),(0,r.jsxs)(t.td,{children:["The filtered data as a ",(0,r.jsx)(t.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"}),"."]})]})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"llm-router",children:"LLM router"}),"\n",(0,r.jsx)(t.p,{children:"This component routes requests to the most appropriate LLM based on OpenRouter model specifications."}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"models"}),(0,r.jsx)(t.td,{children:"Language Models"}),(0,r.jsx)(t.td,{children:"A list of LLMs to route between."})]}),(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 input message to be routed."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"judge_llm"}),(0,r.jsx)(t.td,{children:"Judge LLM"}),(0,r.jsx)(t.td,{children:"The LLM that evaluates and selects the most appropriate model."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"optimization"}),(0,r.jsx)(t.td,{children:"Optimization"}),(0,r.jsx)(t.td,{children:"The optimization preference between quality, speed, cost, or balanced."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"output"}),(0,r.jsx)(t.td,{children:"Output"}),(0,r.jsx)(t.td,{children:"The response from the selected model."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"selected_model"}),(0,r.jsx)(t.td,{children:"Selected Model"}),(0,r.jsx)(t.td,{children:"The name of the chosen model."})]})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"message-to-data",children:"Message to data"}),"\n",(0,r.jsxs)(t.p,{children:["This component converts ",(0,r.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})," objects to ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," objects."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"message"}),(0,r.jsx)(t.td,{children:"Message"}),(0,r.jsx)(t.td,{children:"The Message object to convert to a Data object."})]})})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"The converted Data object."})]})})]})]}),"\n",(0,r.jsx)(t.h2,{id:"parser",children:"Parser"}),"\n",(0,r.jsxs)(t.p,{children:["This component formats ",(0,r.jsx)(t.code,{children:"DataFrame"})," or ",(0,r.jsx)(t.code,{children:"Data"})," objects into text using templates, with an option to convert inputs directly to strings using ",(0,r.jsx)(t.code,{children:"stringify"}),"."]}),"\n",(0,r.jsxs)(t.p,{children:["To use this component, create variables for values in the ",(0,r.jsx)(t.code,{children:"template"})," the same way you would in a ",(0,r.jsx)(t.a,{href:"/components-prompts",children:"Prompt"})," component. For ",(0,r.jsx)(t.code,{children:"DataFrames"}),", use column names, for example ",(0,r.jsx)(t.code,{children:"Name: {Name}"}),". For ",(0,r.jsx)(t.code,{children:"Data"})," objects, use ",(0,r.jsx)(t.code,{children:"{text}"}),"."]}),"\n",(0,r.jsxs)(t.p,{children:["To use the ",(0,r.jsx)(t.strong,{children:"Parser"})," component with a ",(0,r.jsx)(t.strong,{children:"Structured Output"})," component, do the following:"]}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["Connect a ",(0,r.jsx)(t.strong,{children:"Structured Output"})," component's ",(0,r.jsx)(t.strong,{children:"DataFrame"})," output to the ",(0,r.jsx)(t.strong,{children:"Parser"})," component's ",(0,r.jsx)(t.strong,{children:"DataFrame"})," input."]}),"\n",(0,r.jsxs)(t.li,{children:["Connect the ",(0,r.jsx)(t.strong,{children:"File"})," component to the ",(0,r.jsx)(t.strong,{children:"Structured Output"})," component's ",(0,r.jsx)(t.strong,{children:"Message"})," input."]}),"\n",(0,r.jsxs)(t.li,{children:["Connect the ",(0,r.jsx)(t.strong,{children:"OpenAI"})," model component's ",(0,r.jsx)(t.strong,{children:"Language Model"})," output to the ",(0,r.jsx)(t.strong,{children:"Structured Output"})," component's ",(0,r.jsx)(t.strong,{children:"Language Model"})," input."]}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:"The flow looks like this:"}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"A parser component connected to OpenAI and structured output",src:n(96218).A+"",width:"2300",height:"1436"})}),"\n",(0,r.jsxs)(t.ol,{start:"4",children:["\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Structured Output"})," component, click ",(0,r.jsx)(t.strong,{children:"Open Table"}),".\nThis opens a pane for structuring your table.\nThe table contains the rows ",(0,r.jsx)(t.strong,{children:"Name"}),", ",(0,r.jsx)(t.strong,{children:"Description"}),", ",(0,r.jsx)(t.strong,{children:"Type"}),", and ",(0,r.jsx)(t.strong,{children:"Multiple"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Create a table that maps to the data you're loading from the ",(0,r.jsx)(t.strong,{children:"File"})," loader.\nFor example, to create a table for employees, you might have the rows ",(0,r.jsx)(t.code,{children:"id"}),", ",(0,r.jsx)(t.code,{children:"name"}),", and ",(0,r.jsx)(t.code,{children:"email"}),", all of type ",(0,r.jsx)(t.code,{children:"string"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Template"})," field of the ",(0,r.jsx)(t.strong,{children:"Parser"})," component, enter a template for parsing the ",(0,r.jsx)(t.strong,{children:"Structured Output"})," component's DataFrame output into structured text.\nCreate variables for values in the ",(0,r.jsx)(t.code,{children:"template"})," the same way you would in a ",(0,r.jsx)(t.a,{href:"/components-prompts",children:"Prompt"})," component.\nFor example, to present a table of employees in Markdown:"]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"# Employee Profile",props:{}}]},{tokens:[{content:"## Personal Information",props:{}}]},{tokens:[{content:"- **Name:** {name}",props:{}}]},{tokens:[{content:"- **ID:** {id}",props:{}}]},{tokens:[{content:"- **Email:** {email}",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(t.ol,{start:"7",children:["\n",(0,r.jsxs)(t.li,{children:["To run the flow, in the ",(0,r.jsx)(t.strong,{children:"Parser"})," component, click ",(0,r.jsx)(d.A,{name:"Play","aria-label":"Play icon"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["To view your parsed text, in the ",(0,r.jsx)(t.strong,{children:"Parser"})," component, click ",(0,r.jsx)(d.A,{name:"TextSearch","aria-label":"Inspect icon"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Optionally, connect a ",(0,r.jsx)(t.strong,{children:"Chat Output"})," component, and open the ",(0,r.jsx)(t.strong,{children:"Playground"})," to see the output."]}),"\n"]}),"\n",(0,r.jsxs)(t.p,{children:["For an additional example of using the ",(0,r.jsx)(t.strong,{children:"Parser"})," component to format a DataFrame from a ",(0,r.jsx)(t.strong,{children:"Structured Output"})," component, see the ",(0,r.jsx)(t.strong,{children:"Market Research"})," template flow."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"mode"}),(0,r.jsx)(t.td,{children:"Mode"}),(0,r.jsx)(t.td,{children:'The tab selection between "Parser" and "Stringify" modes. "Stringify" converts input to a string instead of using a template.'})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"pattern"}),(0,r.jsx)(t.td,{children:"Template"}),(0,r.jsxs)(t.td,{children:["The template for formatting using variables in curly brackets. For DataFrames, use column names, such as ",(0,r.jsx)(t.code,{children:"Name: {Name}"}),". For Data objects, use ",(0,r.jsx)(t.code,{children:"{text}"}),"."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_data"}),(0,r.jsx)(t.td,{children:"Data or DataFrame"}),(0,r.jsx)(t.td,{children:"The input to parse. Accepts either a DataFrame or Data object."})]}),(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 string used to separate rows or items. The default is a newline."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"clean_data"}),(0,r.jsx)(t.td,{children:"Clean Data"}),(0,r.jsx)(t.td,{children:"When stringify is enabled, this option cleans data by removing empty rows and lines."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"parsed_text"}),(0,r.jsx)(t.td,{children:"Parsed Text"}),(0,r.jsxs)(t.td,{children:["The resulting formatted text as a ",(0,r.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})," object."]})]})})]})]}),"\n",(0,r.jsx)(t.h2,{id:"regex-extractor",children:"Regex extractor"}),"\n",(0,r.jsx)(t.p,{children:"This component extracts patterns from text using regular expressions. It can be used to find and extract specific patterns or information from text data."}),"\n",(0,r.jsx)(t.p,{children:"To use this component in a flow:"}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["Connect the ",(0,r.jsx)(t.strong,{children:"Regex Extractor"})," to a ",(0,r.jsx)(t.strong,{children:"URL"})," component and a ",(0,r.jsx)(t.strong,{children:"Chat Output"})," component."]}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Regex extractor connected to url component",src:n(8886).A+"",width:"1606",height:"848"})}),"\n",(0,r.jsxs)(t.ol,{start:"2",children:["\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Regex Extractor"})," tool, enter a pattern to extract text from the ",(0,r.jsx)(t.strong,{children:"URL"}),' component\'s raw output.\nThis example extracts the first paragraph from the "In the News" section of ',(0,r.jsx)(t.code,{children:"https://en.wikipedia.org/wiki/Main_Page"}),":"]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"In the news\\s*\\n(.*?)(?=\\n\\n)",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(t.p,{children:"Result:"}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"Peruvian writer and Nobel Prize in Literature laureate Mario Vargas Llosa (pictured) dies at the age of 89.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(t.h2,{id:"save-to-file",children:"Save to File"}),"\n",(0,r.jsxs)(t.p,{children:["This component saves ",(0,r.jsx)(t.a,{href:"/concepts-objects",children:"DataFrames, Data, or Messages"})," to various file formats."]}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["To use this component in a flow, connect a component that outputs ",(0,r.jsx)(t.a,{href:"/concepts-objects",children:"DataFrames, Data, or Messages"})," to the ",(0,r.jsx)(t.strong,{children:"Save to File"})," component's input.\nThe following example connects a ",(0,r.jsx)(t.strong,{children:"Webhook"})," component to two ",(0,r.jsx)(t.strong,{children:"Save to File"})," components to demonstrate the different outputs."]}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Two Save-to File components connected to a webhook",src:n(35073).A+"",width:"1458",height:"1732"})}),"\n",(0,r.jsxs)(t.ol,{start:"2",children:["\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Save to File"})," component's ",(0,r.jsx)(t.strong,{children:"Input Type"})," field, select the expected input type.\nThis example expects ",(0,r.jsx)(t.strong,{children:"Data"})," from the ",(0,r.jsx)(t.strong,{children:"Webhook"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"File Format"})," field, select the file type for your saved file.\nThis example uses ",(0,r.jsx)(t.code,{children:".md"})," in one ",(0,r.jsx)(t.strong,{children:"Save to File"})," component, and ",(0,r.jsx)(t.code,{children:".xlsx"})," in another."]}),"\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"File Path"})," field, enter the path for your saved file.\nThis example uses ",(0,r.jsx)(t.code,{children:"./output/employees.xlsx"})," and ",(0,r.jsx)(t.code,{children:"./output/employees.md"})," to save the files in a directory relative to where Langflow is running.\nThe component accepts both relative and absolute paths, and creates any necessary directories if they don't exist."]}),"\n"]}),"\n",(0,r.jsx)(t.admonition,{type:"tip",children:(0,r.jsxs)(t.p,{children:["If you enter a format in the ",(0,r.jsx)(t.code,{children:"file_path"})," that is not accepted, the component appends the proper format to the file.\nFor example, if the selected ",(0,r.jsx)(t.code,{children:"file_format"})," is ",(0,r.jsx)(t.code,{children:"csv"}),", and you enter ",(0,r.jsx)(t.code,{children:"file_path"})," as ",(0,r.jsx)(t.code,{children:"./output/test.txt"}),", the file is saved as ",(0,r.jsx)(t.code,{children:"./output/test.txt.csv"})," so the file is not corrupted."]})}),"\n",(0,r.jsxs)(t.ol,{start:"5",children:["\n",(0,r.jsxs)(t.li,{children:["Send a POST request to the ",(0,r.jsx)(t.strong,{children:"Webhook"})," containing your JSON data.\nReplace ",(0,r.jsx)(t.code,{children:"YOUR_FLOW_ID"})," with your flow ID.\nThis example uses the default Langflow server address."]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'curl -X POST "http://127.0.0.1:7860/api/v1/webhook/YOUR_FLOW_ID" \\',props:{}}]},{tokens:[{content:"-H 'Content-Type: application/json' \\",props:{}}]},{tokens:[{content:"-d '{",props:{}}]},{tokens:[{content:' "Name": ["Alex Cruz", "Kalani Smith", "Noam Johnson"],',props:{}}]},{tokens:[{content:' "Role": ["Developer", "Designer", "Manager"],',props:{}}]},{tokens:[{content:' "Department": ["Engineering", "Design", "Management"]',props:{}}]},{tokens:[{content:"}'",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(t.ol,{start:"6",children:["\n",(0,r.jsxs)(t.li,{children:["In your local filesystem, open the ",(0,r.jsx)(t.code,{children:"outputs"})," directory.\nYou should see two files created from the data you've sent: one in ",(0,r.jsx)(t.code,{children:".xlsx"})," for structured spreadsheets, and one in Markdown."]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"| Name | Role | Department |",props:{}}]},{tokens:[{content:"|:-------------|:----------|:-------------|",props:{}}]},{tokens:[{content:"| Alex Cruz | Developer | Engineering |",props:{}}]},{tokens:[{content:"| Kalani Smith | Designer | Design |",props:{}}]},{tokens:[{content:"| Noam Johnson | Manager | Management |",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(t.h3,{id:"file-input-format-options",children:"File input format options"}),"\n",(0,r.jsxs)(t.p,{children:["For ",(0,r.jsx)(t.code,{children:"DataFrame"})," and ",(0,r.jsx)(t.code,{children:"Data"})," inputs, the component can create:"]}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.code,{children:"csv"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.code,{children:"excel"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.code,{children:"json"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.code,{children:"markdown"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.code,{children:"pdf"})}),"\n"]}),"\n",(0,r.jsxs)(t.p,{children:["For ",(0,r.jsx)(t.code,{children:"Message"})," inputs, the component can create:"]}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.code,{children:"txt"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.code,{children:"json"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.code,{children:"markdown"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.code,{children:"pdf"})}),"\n"]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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_text"}),(0,r.jsx)(t.td,{children:"Input Text"}),(0,r.jsx)(t.td,{children:"The text to analyze and extract patterns from."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"pattern"}),(0,r.jsx)(t.td,{children:"Regex Pattern"}),(0,r.jsx)(t.td,{children:"The regular expression pattern to match in the text."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_type"}),(0,r.jsx)(t.td,{children:"Input Type"}),(0,r.jsx)(t.td,{children:"The type of input to save."})]}),(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 DataFrame to save."})]}),(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 object to save."})]}),(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 Message to save."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"file_format"}),(0,r.jsx)(t.td,{children:"File Format"}),(0,r.jsx)(t.td,{children:"The file format to save the input in."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"file_path"}),(0,r.jsx)(t.td,{children:"File Path"}),(0,r.jsx)(t.td,{children:"The full file path including filename and extension."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"A list of extracted matches as 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 extracted matches formatted as a Message object."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"confirmation"}),(0,r.jsx)(t.td,{children:"Confirmation"}),(0,r.jsx)(t.td,{children:"The confirmation message after saving the file."})]})]})]})]}),"\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 based on specified criteria. It's ideal for chunking data to be tokenized and embedded into vector databases."}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"Split Text"})," component outputs ",(0,r.jsx)(t.strong,{children:"Chunks"})," or ",(0,r.jsx)(t.strong,{children:"DataFrame"}),".\nThe ",(0,r.jsx)(t.strong,{children:"Chunks"})," output returns a list of individual text chunks.\nThe ",(0,r.jsx)(t.strong,{children:"DataFrame"})," output returns a structured data format, with additional ",(0,r.jsx)(t.code,{children:"text"})," and ",(0,r.jsx)(t.code,{children:"metadata"})," columns applied."]}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["To use this component in a flow, connect a component that outputs ",(0,r.jsx)(t.a,{href:"/concepts-objects",children:"Data or DataFrame"})," to the ",(0,r.jsx)(t.strong,{children:"Split Text"})," component's ",(0,r.jsx)(t.strong,{children:"Data"})," port.\nThis example uses the ",(0,r.jsx)(t.strong,{children:"URL"})," component, which is fetching JSON placeholder data."]}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Split text component and chroma-db",src:n(49823).A+"",width:"2198",height:"1626"})}),"\n",(0,r.jsxs)(t.ol,{start:"2",children:["\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Split Text"})," component, define your data splitting parameters."]}),"\n"]}),"\n",(0,r.jsxs)(t.p,{children:["This example splits incoming JSON data at the separator ",(0,r.jsx)(t.code,{children:"},"}),", so each chunk contains one JSON object."]}),"\n",(0,r.jsxs)(t.p,{children:["The order of precedence is ",(0,r.jsx)(t.strong,{children:"Separator"}),", then ",(0,r.jsx)(t.strong,{children:"Chunk Size"}),", and then ",(0,r.jsx)(t.strong,{children:"Chunk Overlap"}),".\nIf any segment after separator splitting is longer than ",(0,r.jsx)(t.code,{children:"chunk_size"}),", it is split again to fit within ",(0,r.jsx)(t.code,{children:"chunk_size"}),"."]}),"\n",(0,r.jsxs)(t.p,{children:["After ",(0,r.jsx)(t.code,{children:"chunk_size"}),", ",(0,r.jsx)(t.strong,{children:"Chunk Overlap"})," is applied between chunks to maintain context."]}),"\n",(0,r.jsxs)(t.ol,{start:"3",children:["\n",(0,r.jsxs)(t.li,{children:["Connect a ",(0,r.jsx)(t.strong,{children:"Chat Output"})," component to the ",(0,r.jsx)(t.strong,{children:"Split Text"})," component's ",(0,r.jsx)(t.strong,{children:"DataFrame"})," output to view its output."]}),"\n",(0,r.jsxs)(t.li,{children:["Click ",(0,r.jsx)(t.strong,{children:"Playground"}),", and then click ",(0,r.jsx)(t.strong,{children:"Run Flow"}),".\nThe output contains a table of JSON objects split at ",(0,r.jsx)(t.code,{children:"},"}),"."]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:'"userId": 1,',props:{}}]},{tokens:[{content:'"id": 1,',props:{}}]},{tokens:[{content:'"title": "Introduction to Artificial Intelligence",',props:{}}]},{tokens:[{content:'"body": "Learn the basics of Artificial Intelligence and its applications in various industries.",',props:{}}]},{tokens:[{content:'"link": "https://example.com/article1",',props:{}}]},{tokens:[{content:'"comment_count": 8',props:{}}]},{tokens:[{content:"},",props:{}}]},{tokens:[{content:"{",props:{}}]},{tokens:[{content:'"userId": 2,',props:{}}]},{tokens:[{content:'"id": 2,',props:{}}]},{tokens:[{content:'"title": "Web Development with React",',props:{}}]},{tokens:[{content:'"body": "Build modern web applications using React.js and explore its powerful features.",',props:{}}]},{tokens:[{content:'"link": "https://example.com/article2",',props:{}}]},{tokens:[{content:'"comment_count": 12',props:{}}]},{tokens:[{content:"},",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(t.ol,{start:"5",children:["\n",(0,r.jsxs)(t.li,{children:["Clear the ",(0,r.jsx)(t.strong,{children:"Separator"})," field, and then run the flow again.\nInstead of JSON objects, the output contains 50-character lines of text with 10 characters of overlap."]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'First chunk: "title": "Introduction to Artificial Intelligence""',props:{}}]},{tokens:[{content:'Second chunk: "elligence", "body": "Learn the basics of Artif"',props:{}}]},{tokens:[{content:'Third chunk: "s of Artificial Intelligence and its applications"',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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_inputs"}),(0,r.jsx)(t.td,{children:"Input Documents"}),(0,r.jsxs)(t.td,{children:["The data to split. The component accepts ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," or ",(0,r.jsx)(t.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"})," objects."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"chunk_overlap"}),(0,r.jsx)(t.td,{children:"Chunk Overlap"}),(0,r.jsxs)(t.td,{children:["The number of characters to overlap between chunks. Default: ",(0,r.jsx)(t.code,{children:"200"}),"."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"chunk_size"}),(0,r.jsx)(t.td,{children:"Chunk Size"}),(0,r.jsxs)(t.td,{children:["The maximum number of characters in each chunk. Default: ",(0,r.jsx)(t.code,{children:"1000"}),"."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"separator"}),(0,r.jsx)(t.td,{children:"Separator"}),(0,r.jsxs)(t.td,{children:["The character to split on. Default: ",(0,r.jsx)(t.code,{children:"newline"}),"."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"text_key"}),(0,r.jsx)(t.td,{children:"Text Key"}),(0,r.jsxs)(t.td,{children:["The key to use for the text column. Default: ",(0,r.jsx)(t.code,{children:"text"}),"."]})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"chunks"}),(0,r.jsx)(t.td,{children:"Chunks"}),(0,r.jsxs)(t.td,{children:["A list of split text chunks as ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," objects."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"dataframe"}),(0,r.jsx)(t.td,{children:"DataFrame"}),(0,r.jsxs)(t.td,{children:["A list of split text chunks as ",(0,r.jsx)(t.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"})," objects."]})]})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"update-data",children:"Update data"}),"\n",(0,r.jsx)(t.p,{children:"This component dynamically updates or appends data with specified fields."}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"old_data"}),(0,r.jsx)(t.td,{children:"Data"}),(0,r.jsx)(t.td,{children:"The records to update."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"number_of_fields"}),(0,r.jsx)(t.td,{children:"Number of Fields"}),(0,r.jsx)(t.td,{children:"The number of fields to add. The maximum is 15."})]}),(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:"The key for text content."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"text_key_validator"}),(0,r.jsx)(t.td,{children:"Text Key Validator"}),(0,r.jsx)(t.td,{children:"Validates the text key presence."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"The updated Data objects."})]})})]})]}),"\n",(0,r.jsx)(t.h2,{id:"legacy-components",children:"Legacy components"}),"\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"Legacy"})," components are available for use but are no longer supported."]}),"\n",(0,r.jsx)(t.h3,{id:"alter-metadata",children:"Alter metadata"}),"\n",(0,r.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is in ",(0,r.jsx)(t.strong,{children:"Legacy"}),", which means it is available for use but no longer in active development.\nInstead, use the ",(0,r.jsx)(t.a,{href:"#data-operations",children:"Data operations"})," component."]})}),"\n",(0,r.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,r.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})," and ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," objects, and can also create a new Data object from user-provided text."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"Objects to which Metadata should be added."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"text_in"}),(0,r.jsx)(t.td,{children:"User Text"}),(0,r.jsxs)(t.td,{children:["Text input; the value is contained in the 'text' attribute of the ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object. Empty text entries are ignored."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"metadata"}),(0,r.jsx)(t.td,{children:"Metadata"}),(0,r.jsx)(t.td,{children:"Metadata to add to each object."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"remove_fields"}),(0,r.jsx)(t.td,{children:"Fields to Remove"}),(0,r.jsx)(t.td,{children:"Metadata fields to remove."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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 Input objects, each with added metadata."})]})})]})]}),"\n",(0,r.jsx)(t.h3,{id:"combine-data",children:"Combine data"}),"\n",(0,r.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is in ",(0,r.jsx)(t.strong,{children:"Legacy"}),", which means it is available for use but no longer in active development.\nPrior to Langflow version 1.1.3, this component was named ",(0,r.jsx)(t.strong,{children:"Merge Data"}),"."]})}),"\n",(0,r.jsxs)(t.p,{children:["This component combines multiple data sources into a single unified ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"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.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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."})]})})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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.jsxs)(t.td,{children:["A single ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object containing the combined information from all input data objects."]})]})})]})]}),"\n",(0,r.jsx)(t.h3,{id:"combine-text",children:"Combine text"}),"\n",(0,r.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is in ",(0,r.jsx)(t.strong,{children:"Legacy"}),", which means it is available for use but no longer in active development."]})}),"\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.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["To use this component in a flow, connect two components that output ",(0,r.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Messages"})," to the ",(0,r.jsx)(t.strong,{children:"Combine Text"})," component's ",(0,r.jsx)(t.strong,{children:"First Text"})," and ",(0,r.jsx)(t.strong,{children:"Second Text"})," inputs.\nThis example uses two ",(0,r.jsx)(t.strong,{children:"Text Input"})," components."]}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Combine text component",src:n(41502).A+"",width:"1148",height:"675"})}),"\n",(0,r.jsxs)(t.ol,{start:"2",children:["\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Combine Text"})," component, in the ",(0,r.jsx)(t.strong,{children:"Text"})," fields of both ",(0,r.jsx)(t.strong,{children:"Text Input"})," components, enter some text to combine."]}),"\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Combine Text"})," component, enter an optional ",(0,r.jsx)(t.strong,{children:"Delimiter"})," value.\nThe delimiter character separates the combined texts.\nThis example uses ",(0,r.jsx)(t.code,{children:"\\n\\n **end first text** \\n\\n **start second text** \\n\\n"})," to label the texts and create newlines between them."]}),"\n",(0,r.jsxs)(t.li,{children:["Connect a ",(0,r.jsx)(t.strong,{children:"Chat Output"})," component to view the text combination."]}),"\n",(0,r.jsxs)(t.li,{children:["Click ",(0,r.jsx)(t.strong,{children:"Playground"}),", and then click ",(0,r.jsx)(t.strong,{children:"Run Flow"}),".\nThe combined text appears in the ",(0,r.jsx)(t.strong,{children:"Playground"}),"."]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"This is the first text. Let's combine text!",props:{}}]},{tokens:[{content:"end first text",props:{}}]},{tokens:[{content:"start second text",props:{}}]},{tokens:[{content:"Here's the second part. We'll see how combining text works.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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. The default is a space."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"message"}),(0,r.jsx)(t.td,{children:"Message"}),(0,r.jsx)(t.td,{children:"A Message object containing the combined text."})]})})]})]}),"\n",(0,r.jsx)(t.h3,{id:"create-data",children:"Create data"}),"\n",(0,r.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is in ",(0,r.jsx)(t.strong,{children:"Legacy"}),", which means it is available for use but no longer in active development."]})}),"\n",(0,r.jsxs)(t.p,{children:["This component dynamically creates a ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object with a specified number of fields."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"number_of_fields"}),(0,r.jsx)(t.td,{children:"Number of Fields"}),(0,r.jsx)(t.td,{children:"The 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 that identifies the field to be used as the text content."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"text_key_validator"}),(0,r.jsx)(t.td,{children:"Text Key Validator"}),(0,r.jsxs)(t.td,{children:["If enabled, checks if the given ",(0,r.jsx)(t.code,{children:"Text Key"})," is present in the given ",(0,r.jsx)(t.code,{children:"Data"}),"."]})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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.jsxs)(t.td,{children:["A ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object created with the specified fields and text key."]})]})})]})]}),"\n",(0,r.jsx)(t.h3,{id:"filter-data",children:"Filter data"}),"\n",(0,r.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is in ",(0,r.jsx)(t.strong,{children:"Legacy"}),", which means it is available for use but no longer in active development.\nInstead, use the ",(0,r.jsx)(t.a,{href:"#data-operations",children:"Data operations"})," component."]})}),"\n",(0,r.jsxs)(t.p,{children:["This component filters a ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object based on a list of keys."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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 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:"A list of keys to filter by."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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.h3,{id:"filter-values",children:"Filter values"}),"\n",(0,r.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is in ",(0,r.jsx)(t.strong,{children:"Legacy"}),", which means it is available for use but no longer in active development.\nInstead, use the ",(0,r.jsx)(t.a,{href:"#data-operations",children:"Data operations"})," component."]})}),"\n",(0,r.jsx)(t.p,{children:"The Filter values component filters a list of data items based on a specified key, filter value, and comparison operator."}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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_data"}),(0,r.jsx)(t.td,{children:"Input data"}),(0,r.jsx)(t.td,{children:"The list of data items to filter."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"filter_key"}),(0,r.jsx)(t.td,{children:"Filter Key"}),(0,r.jsx)(t.td,{children:"The key to filter on."})]}),(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 by."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"operator"}),(0,r.jsx)(t.td,{children:"Comparison Operator"}),(0,r.jsx)(t.td,{children:"The operator to apply for comparing the values."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"The resulting list of filtered data items."})]})})]})]}),"\n",(0,r.jsx)(t.h3,{id:"json-cleaner",children:"JSON cleaner"}),"\n",(0,r.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is in ",(0,r.jsx)(t.strong,{children:"Legacy"}),", which means it is available for use but no longer in active development."]})}),"\n",(0,r.jsx)(t.p,{children:"The JSON cleaner component cleans JSON strings to ensure they are fully compliant with the JSON specification."}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"json_str"}),(0,r.jsx)(t.td,{children:"JSON String"}),(0,r.jsx)(t.td,{children:"The JSON string to be cleaned. This can be a raw, potentially malformed JSON string produced by language models or other sources that may not fully comply with JSON specifications."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"remove_control_chars"}),(0,r.jsx)(t.td,{children:"Remove Control Characters"}),(0,r.jsx)(t.td,{children:"If set to True, this option removes control characters (ASCII characters 0-31 and 127) from the JSON string. This can help eliminate invisible characters that might cause parsing issues or make the JSON invalid."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"normalize_unicode"}),(0,r.jsx)(t.td,{children:"Normalize Unicode"}),(0,r.jsx)(t.td,{children:"When enabled, this option normalizes Unicode characters in the JSON string to their canonical composition form (NFC). This ensures consistent representation of Unicode characters across different systems and prevents potential issues with character encoding."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"validate_json"}),(0,r.jsx)(t.td,{children:"Validate JSON"}),(0,r.jsx)(t.td,{children:"If set to True, this option attempts to parse the JSON string to ensure it is well-formed before applying the final repair operation. It raises a ValueError if the JSON is invalid, allowing for early detection of major structural issues in the JSON."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"Cleaned JSON String"}),(0,r.jsx)(t.td,{children:"The resulting cleaned, repaired, and validated JSON string that fully complies with the JSON specification."})]})})]})]}),"\n",(0,r.jsx)(t.h3,{id:"parse-dataframe",children:"Parse DataFrame"}),"\n",(0,r.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is in ",(0,r.jsx)(t.strong,{children:"Legacy"}),", which means it is available for use but no longer in active development.\nInstead, use the ",(0,r.jsx)(t.a,{href:"#parser",children:"Parser"})," component."]})}),"\n",(0,r.jsx)(t.p,{children:"This component converts DataFrames into plain text using templates."}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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 DataFrame to convert to text rows."})]}),(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:["Template for formatting (use ",(0,r.jsx)(t.code,{children:"{column_name}"})," placeholders)."]})]}),(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:"String to join rows in output."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"All rows combined into single text."})]})})]})]}),"\n",(0,r.jsx)(t.h3,{id:"parse-json",children:"Parse JSON"}),"\n",(0,r.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is in ",(0,r.jsx)(t.strong,{children:"Legacy"}),", which means it is available for use but no longer in active development."]})}),"\n",(0,r.jsx)(t.p,{children:"This component converts and extracts JSON fields using JQ queries."}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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.jsxs)(t.td,{children:["Data object to filter (",(0,r.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})," or ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"}),")."]})]}),(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"})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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.jsxs)(t.td,{children:["Filtered data as list of ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," objects."]})]})})]})]}),"\n",(0,r.jsx)(t.h3,{id:"select-data",children:"Select data"}),"\n",(0,r.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is in ",(0,r.jsx)(t.strong,{children:"Legacy"}),", which means it is available for use but no longer in active development."]})}),"\n",(0,r.jsxs)(t.p,{children:["This component selects a single ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," item from a list."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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_list"}),(0,r.jsx)(t.td,{children:"Data List"}),(0,r.jsx)(t.td,{children:"List of data to select from"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"data_index"}),(0,r.jsx)(t.td,{children:"Data Index"}),(0,r.jsx)(t.td,{children:"Index of the data to select"})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"selected_data"}),(0,r.jsx)(t.td,{children:"Selected Data"}),(0,r.jsxs)(t.td,{children:["The selected ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object."]})]})})]})]})]})}function m(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(p,{...e})}):p(e)}function u(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},66539:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/component-lambda-filter-c409acffcea6f80062295f4d8de4e881.png"},84443:(e,t,n)=>{n.d(t,{A:()=>i});n(96540);var s=n(64058),r=n(74848);function i(e){let{name:t,...n}=e;const i=s[t];return i?(0,r.jsx)(i,{...n}):null}},96218:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/component-parser-5f97943bbc863cee6b02c74d325a062f.png"}}]);
\ No newline at end of file
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[321],{7685:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/vector-store-document-ingestion-fce32e9be440846a2545397e3a18b7bf.png"},8886:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/component-url-regex-8cae4a8d6491d360115ad552f0c467d3.png"},13533:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/component-dataframe-operations-86f6e1111b6f414989aca7b5fe625830.png"},35073:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/component-save-to-file-67ebbb733732670897bedd9fd1b87583.png"},41502:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/component-combine-text-a73b71c22cc8099bf2a9ba22170ea701.png"},45709:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/component-data-to-dataframe-3e921379e4e86fedf0e34e3ffae46b51.png"},46445:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/component-data-operations-select-key-80bade862d29f2851b01ee26413d495f.png"},49823:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/component-split-text-741a1ac37f9a2d6591ead075acc66b65.png"},59748:(e,t,n)=>{n.r(t),n.d(t,{CH:()=>h,assets:()=>a,chCodeConfig:()=>x,contentTitle:()=>l,default:()=>m,frontMatter:()=>c,metadata:()=>s,toc:()=>j});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),o=n(24754),d=n(84443);const c={title:"Processing",slug:"/components-processing"},l=void 0,a={},h={annotations:o.hk,Code:o.Cy},x={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},j=[{value:"Use a processing component in a flow",id:"use-a-processing-component-in-a-flow",level:2},{value:"DataFrame operations",id:"dataframe-operations",level:2},{value:"Operations",id:"operations",level:3},{value:"Data operations",id:"data-operations",level:2},{value:"Operations",id:"operations-1",level:3},{value:"Data to DataFrame",id:"data-to-dataframe",level:2},{value:"Lambda filter",id:"lambda-filter",level:2},{value:"LLM router",id:"llm-router",level:2},{value:"Message to data",id:"message-to-data",level:2},{value:"Parser",id:"parser",level:2},{value:"Regex extractor",id:"regex-extractor",level:2},{value:"Save to File",id:"save-to-file",level:2},{value:"File input format options",id:"file-input-format-options",level:3},{value:"Split text",id:"split-text",level:2},{value:"Update data",id:"update-data",level:2},{value:"Legacy components",id:"legacy-components",level:2},{value:"Alter metadata",id:"alter-metadata",level:3},{value:"Combine data",id:"combine-data",level:3},{value:"Combine text",id:"combine-text",level:3},{value:"Create data",id:"create-data",level:3},{value:"Filter data",id:"filter-data",level:3},{value:"Filter values",id:"filter-values",level:3},{value:"JSON cleaner",id:"json-cleaner",level:3},{value:"Parse DataFrame",id:"parse-dataframe",level:3},{value:"Parse JSON",id:"parse-json",level:3},{value:"Select data",id:"select-data",level:3}];function p(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components},{Details:s}=t;return h||u("CH",!1),h.Code||u("CH.Code",!0),s||u("Details",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,r.jsx)(t.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:"dataframe-operations",children:"DataFrame operations"}),"\n",(0,r.jsxs)(t.p,{children:["This component performs operations on ",(0,r.jsx)(t.a,{href:"https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html",children:"DataFrame"})," rows and columns."]}),"\n",(0,r.jsxs)(t.p,{children:["To use this component in a flow, connect a component that outputs ",(0,r.jsx)(t.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"})," to the ",(0,r.jsx)(t.strong,{children:"DataFrame Operations"})," component."]}),"\n",(0,r.jsxs)(t.p,{children:["This example fetches JSON data from an API. The ",(0,r.jsx)(t.strong,{children:"Lambda filter"})," component extracts and flattens the results into a tabular DataFrame. The ",(0,r.jsx)(t.strong,{children:"DataFrame Operations"})," component can then work with the retrieved data."]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Dataframe operations with flattened dataframe",src:n(13533).A+"",width:"983",height:"696"})}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["The ",(0,r.jsx)(t.strong,{children:"API Request"})," component retrieves data with only ",(0,r.jsx)(t.code,{children:"source"})," and ",(0,r.jsx)(t.code,{children:"result"})," fields.\nFor this example, the desired data is nested within the ",(0,r.jsx)(t.code,{children:"result"})," field."]}),"\n",(0,r.jsxs)(t.li,{children:["Connect a ",(0,r.jsx)(t.strong,{children:"Lambda Filter"})," to the API request component, and a ",(0,r.jsx)(t.strong,{children:"Language model"})," to the ",(0,r.jsx)(t.strong,{children:"Lambda Filter"}),". This example connects a ",(0,r.jsx)(t.strong,{children:"Groq"})," model component."]}),"\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Groq"})," model component, add your ",(0,r.jsx)(t.strong,{children:"Groq"})," API key."]}),"\n",(0,r.jsxs)(t.li,{children:["To filter the data, in the ",(0,r.jsx)(t.strong,{children:"Lambda filter"})," component, in the ",(0,r.jsx)(t.strong,{children:"Instructions"})," field, use natural language to describe how the data should be filtered.\nFor this example, enter:"]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"I want to explode the result column out into a Data object",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(t.admonition,{type:"tip",children:(0,r.jsxs)(t.p,{children:["Avoid punctuation in the ",(0,r.jsx)(t.strong,{children:"Instructions"})," field, as it can cause errors."]})}),"\n",(0,r.jsxs)(t.ol,{start:"5",children:["\n",(0,r.jsxs)(t.li,{children:["To run the flow, in the ",(0,r.jsx)(t.strong,{children:"Lambda Filter"})," component, click ",(0,r.jsx)(d.A,{name:"Play","aria-label":"Play icon"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["To inspect the filtered data, in the ",(0,r.jsx)(t.strong,{children:"Lambda Filter"})," component, click ",(0,r.jsx)(d.A,{name:"TextSearch","aria-label":"Inspect icon"}),".\nThe result is a structured DataFrame."]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"id | name | company | username | email | address | zip",props:{}}]},{tokens:[{content:"---|------------------|----------------------|-----------------|------------------------------------|-------------------|-------",props:{}}]},{tokens:[{content:"1 | Emily Johnson | ABC Corporation | emily_johnson | emily.johnson@abccorporation.com | 123 Main St | 12345",props:{}}]},{tokens:[{content:"2 | Michael Williams | XYZ Corp | michael_williams| michael.williams@xyzcorp.com | 456 Elm Ave | 67890",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(t.ol,{start:"7",children:["\n",(0,r.jsxs)(t.li,{children:["Add the ",(0,r.jsx)(t.strong,{children:"DataFrame Operations"})," component, and a ",(0,r.jsx)(t.strong,{children:"Chat Output"})," component to the flow."]}),"\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"DataFrame Operations"})," component, in the ",(0,r.jsx)(t.strong,{children:"Operation"})," field, select ",(0,r.jsx)(t.strong,{children:"Filter"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["To apply a filter, in the ",(0,r.jsx)(t.strong,{children:"Column Name"})," field, enter a column to filter on. This example filters by ",(0,r.jsx)(t.code,{children:"name"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Click ",(0,r.jsx)(t.strong,{children:"Playground"}),", and then click ",(0,r.jsx)(t.strong,{children:"Run Flow"}),".\nThe flow extracts the values from the ",(0,r.jsx)(t.code,{children:"name"})," column."]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"name",props:{}}]},{tokens:[{content:"Emily Johnson",props:{}}]},{tokens:[{content:"Michael Williams",props:{}}]},{tokens:[{content:"John Smith",props:{}}]},{tokens:[{content:"...",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(t.h3,{id:"operations",children:"Operations"}),"\n",(0,r.jsxs)(t.p,{children:["This component can perform 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:"Required Inputs"}),(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:"Add Column"}),(0,r.jsx)(t.td,{children:"new_column_name, new_column_value"}),(0,r.jsx)(t.td,{children:"Adds a new column with a constant value."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Drop Column"}),(0,r.jsx)(t.td,{children:"column_name"}),(0,r.jsx)(t.td,{children:"Removes a specified column."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Filter"}),(0,r.jsx)(t.td,{children:"column_name, filter_value"}),(0,r.jsx)(t.td,{children:"Filters rows based on column value."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Head"}),(0,r.jsx)(t.td,{children:"num_rows"}),(0,r.jsxs)(t.td,{children:["Returns first ",(0,r.jsx)(t.code,{children:"n"})," rows."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Rename Column"}),(0,r.jsx)(t.td,{children:"column_name, new_column_name"}),(0,r.jsx)(t.td,{children:"Renames an existing column."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Replace Value"}),(0,r.jsx)(t.td,{children:"column_name, replace_value, replacement_value"}),(0,r.jsx)(t.td,{children:"Replaces values in a column."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Select Columns"}),(0,r.jsx)(t.td,{children:"columns_to_select"}),(0,r.jsx)(t.td,{children:"Selects specific columns."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Sort"}),(0,r.jsx)(t.td,{children:"column_name, ascending"}),(0,r.jsx)(t.td,{children:"Sorts DataFrame by column."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Tail"}),(0,r.jsx)(t.td,{children:"num_rows"}),(0,r.jsxs)(t.td,{children:["Returns last ",(0,r.jsx)(t.code,{children:"n"})," rows."]})]})]})]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"The DataFrame operation to perform. Options include Add Column, Drop Column, Filter, Head, Rename Column, Replace Value, Select Columns, Sort, and 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:"A 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:"The number of rows to return for head/tail operations. The default is 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."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"data-operations",children:"Data operations"}),"\n",(0,r.jsxs)(t.p,{children:["This component performs operations on ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," objects, including selecting keys, evaluating literals, combining data, filtering values, appending/updating data, removing keys, and renaming keys."]}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["To use this component in a flow, connect a component that outputs ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," to the ",(0,r.jsx)(t.strong,{children:"Data Operations"})," component's input.\nAll operations in the component require at least one ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," input."]}),"\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Operations"})," field, select the operation you want to perform.\nFor example, send this request to the ",(0,r.jsx)(t.strong,{children:"Webhook"})," component.\nReplace ",(0,r.jsx)(t.code,{children:"YOUR_FLOW_ID"})," with your flow ID."]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:'POST "http://localhost:7860/api/v1/webhook/YOUR_FLOW_ID" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"-H ",props:{style:{color:"#C9D1D9"}}},{content:"'Content-Type: application/json' ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"-d ",props:{style:{color:"#C9D1D9"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "id": 1,',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "name": "Leanne Graham",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "username": "Bret",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "email": "Sincere@april.biz",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "address": {',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "street": "Kulas Light",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "suite": "Apt. 556",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "city": "Gwenborough",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "zipcode": "92998-3874",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "geo": {',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "lat": "-37.3159",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "lng": "81.1496"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "phone": "1-770-736-8031 x56442",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "website": "hildegard.org",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "company": {',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "name": "Romaguera-Crona",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "catchPhrase": "Multi-layered client-server neural-net",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "bs": "harness real-time e-markets"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,r.jsxs)(t.ol,{start:"3",children:["\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Data Operations"})," component, select the ",(0,r.jsx)(t.strong,{children:"Select Keys"})," operation to extract specific user information.\nTo add additional keys, click ",(0,r.jsx)(d.A,{name:"Plus","aria-label":"Add"})," ",(0,r.jsx)(t.strong,{children:"Add More"}),".\n",(0,r.jsx)(t.img,{alt:"A webhook and data operations component",src:n(46445).A+"",width:"4000",height:"1920"})]}),"\n",(0,r.jsxs)(t.li,{children:["Filter by ",(0,r.jsx)(t.code,{children:"name"}),", ",(0,r.jsx)(t.code,{children:"username"}),", and ",(0,r.jsx)(t.code,{children:"email"})," to select the values from the request."]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Leanne Graham"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "username"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Bret"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "email"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Sincere@april.biz"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]}),"\n",(0,r.jsx)(t.h3,{id:"operations-1",children:"Operations"}),"\n",(0,r.jsxs)(t.p,{children:["The component supports the following operations.\nAll operations in the ",(0,r.jsx)(t.strong,{children:"Data operations"})," component require at least one ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," 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:"Operation"}),(0,r.jsx)(t.th,{children:"Required Inputs"}),(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:"Select Keys"}),(0,r.jsx)(t.td,{children:(0,r.jsx)(t.code,{children:"select_keys_input"})}),(0,r.jsx)(t.td,{children:"Selects specific keys from the data."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Literal Eval"}),(0,r.jsx)(t.td,{children:"None"}),(0,r.jsx)(t.td,{children:"Evaluates string values as Python literals."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Combine"}),(0,r.jsx)(t.td,{children:"None"}),(0,r.jsx)(t.td,{children:"Combines multiple data objects into one."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Filter Values"}),(0,r.jsxs)(t.td,{children:[(0,r.jsx)(t.code,{children:"filter_key"}),", ",(0,r.jsx)(t.code,{children:"filter_values"}),", ",(0,r.jsx)(t.code,{children:"operator"})]}),(0,r.jsx)(t.td,{children:"Filters data based on key-value pair."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Append or Update"}),(0,r.jsx)(t.td,{children:(0,r.jsx)(t.code,{children:"append_update_data"})}),(0,r.jsx)(t.td,{children:"Adds or updates key-value pairs."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Remove Keys"}),(0,r.jsx)(t.td,{children:(0,r.jsx)(t.code,{children:"remove_keys_input"})}),(0,r.jsx)(t.td,{children:"Removes specified keys from the data."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Rename Keys"}),(0,r.jsx)(t.td,{children:(0,r.jsx)(t.code,{children:"rename_keys_input"})}),(0,r.jsx)(t.td,{children:"Renames keys in the data."})]})]})]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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.jsxs)(t.td,{children:["The ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object to operate on."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"operations"}),(0,r.jsx)(t.td,{children:"Operations"}),(0,r.jsx)(t.td,{children:"The operation to perform on the data."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"select_keys_input"}),(0,r.jsx)(t.td,{children:"Select Keys"}),(0,r.jsx)(t.td,{children:"A list of keys to select from the data."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"filter_key"}),(0,r.jsx)(t.td,{children:"Filter Key"}),(0,r.jsx)(t.td,{children:"The key to filter by."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"operator"}),(0,r.jsx)(t.td,{children:"Comparison Operator"}),(0,r.jsx)(t.td,{children:"The operator to apply for comparing values."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"filter_values"}),(0,r.jsx)(t.td,{children:"Filter Values"}),(0,r.jsx)(t.td,{children:"A list of values to filter by."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"append_update_data"}),(0,r.jsx)(t.td,{children:"Append or Update"}),(0,r.jsx)(t.td,{children:"The data to append or update the existing data with."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"remove_keys_input"}),(0,r.jsx)(t.td,{children:"Remove Keys"}),(0,r.jsx)(t.td,{children:"A list of keys to remove from the data."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"rename_keys_input"}),(0,r.jsx)(t.td,{children:"Rename Keys"}),(0,r.jsx)(t.td,{children:"A list of keys to rename in the data."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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_output"}),(0,r.jsx)(t.td,{children:"Data"}),(0,r.jsx)(t.td,{children:"The resulting Data object after the operation."})]})})]})]}),"\n",(0,r.jsx)(t.h2,{id:"data-to-dataframe",children:"Data to DataFrame"}),"\n",(0,r.jsxs)(t.p,{children:["This component converts one or multiple ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," objects into a ",(0,r.jsx)(t.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"}),". Each Data object corresponds to one row in the resulting DataFrame. Fields from the ",(0,r.jsx)(t.code,{children:".data"})," attribute become columns, and the ",(0,r.jsx)(t.code,{children:".text"})," field (if present) is placed in a 'text' column."]}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["To use this component in a flow, connect a component that outputs ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," to the ",(0,r.jsx)(t.strong,{children:"Data to Dataframe"})," component's input.\nThis example connects a ",(0,r.jsx)(t.strong,{children:"Webhook"})," component to convert ",(0,r.jsx)(t.code,{children:"text"})," and ",(0,r.jsx)(t.code,{children:"data"})," into a DataFrame."]}),"\n",(0,r.jsxs)(t.li,{children:["To view the flow's output, connect a ",(0,r.jsx)(t.strong,{children:"Chat Output"})," component to the ",(0,r.jsx)(t.strong,{children:"Data to Dataframe"})," component."]}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"A webhook and data to dataframe",src:n(45709).A+"",width:"1221",height:"468"})}),"\n",(0,r.jsxs)(t.ol,{start:"3",children:["\n",(0,r.jsxs)(t.li,{children:["Send a POST request to the ",(0,r.jsx)(t.strong,{children:"Webhook"})," containing your JSON data.\nReplace ",(0,r.jsx)(t.code,{children:"YOUR_FLOW_ID"})," with your flow ID.\nThis example uses the default Langflow server address."]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'curl -X POST "http://localhost:7860/api/v1/webhook/YOUR_FLOW_ID" \\',props:{}}]},{tokens:[{content:"-H 'Content-Type: application/json' \\",props:{}}]},{tokens:[{content:"-d '{",props:{}}]},{tokens:[{content:' "text": "Alex Cruz - Employee Profile",',props:{}}]},{tokens:[{content:' "data": {',props:{}}]},{tokens:[{content:' "Name": "Alex Cruz",',props:{}}]},{tokens:[{content:' "Role": "Developer",',props:{}}]},{tokens:[{content:' "Department": "Engineering"',props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:"}'",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(t.ol,{start:"4",children:["\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Playground"}),", view the output of your flow.\nThe ",(0,r.jsx)(t.strong,{children:"Data to DataFrame"})," component converts the webhook request into a ",(0,r.jsx)(t.code,{children:"DataFrame"}),", with ",(0,r.jsx)(t.code,{children:"text"})," and ",(0,r.jsx)(t.code,{children:"data"})," fields as columns."]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"| text | data |",props:{}}]},{tokens:[{content:"|:-----------------------------|:------------------------------------------------------------------------|",props:{}}]},{tokens:[{content:"| Alex Cruz - Employee Profile | {'Name': 'Alex Cruz', 'Role': 'Developer', 'Department': 'Engineering'} |",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(t.ol,{start:"5",children:["\n",(0,r.jsx)(t.li,{children:"Send another employee data object."}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'curl -X POST "http://localhost:7860/api/v1/webhook/YOUR_FLOW_ID" \\',props:{}}]},{tokens:[{content:"-H 'Content-Type: application/json' \\",props:{}}]},{tokens:[{content:"-d '{",props:{}}]},{tokens:[{content:' "text": "Kalani Smith - Employee Profile",',props:{}}]},{tokens:[{content:' "data": {',props:{}}]},{tokens:[{content:' "Name": "Kalani Smith",',props:{}}]},{tokens:[{content:' "Role": "Designer",',props:{}}]},{tokens:[{content:' "Department": "Design"',props:{}}]},{tokens:[{content:" }",props:{}}]},{tokens:[{content:"}'",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(t.ol,{start:"6",children:["\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Playground"}),", this request is also converted to ",(0,r.jsx)(t.code,{children:"DataFrame"}),"."]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"| text | data |",props:{}}]},{tokens:[{content:"|:--------------------------------|:---------------------------------------------------------------------|",props:{}}]},{tokens:[{content:"| Kalani Smith - Employee Profile | {'Name': 'Kalani Smith', 'Role': 'Designer', 'Department': 'Design'} |",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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_list"}),(0,r.jsx)(t.td,{children:"Data or Data List"}),(0,r.jsx)(t.td,{children:"One or multiple Data objects to transform into a DataFrame."})]})})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"dataframe"}),(0,r.jsx)(t.td,{children:"DataFrame"}),(0,r.jsx)(t.td,{children:"A DataFrame built from each Data object's fields plus a text column."})]})})]})]}),"\n",(0,r.jsx)(t.h2,{id:"lambda-filter",children:"Lambda filter"}),"\n",(0,r.jsx)(t.p,{children:"This component uses an LLM to generate a Lambda function for filtering or transforming structured data."}),"\n",(0,r.jsxs)(t.p,{children:["To use the ",(0,r.jsx)(t.strong,{children:"Lambda filter"})," component, you must connect it to a ",(0,r.jsx)(t.a,{href:"/components-models#language-model",children:"Language Model"})," component, which the component uses to generate a function based on the natural language instructions in the ",(0,r.jsx)(t.strong,{children:"Instructions"})," field."]}),"\n",(0,r.jsxs)(t.p,{children:["This example gets JSON data from the ",(0,r.jsx)(t.code,{children:"https://jsonplaceholder.typicode.com/users"})," API endpoint.\nThe ",(0,r.jsx)(t.strong,{children:"Instructions"})," field in the ",(0,r.jsx)(t.strong,{children:"Lambda filter"})," component specifies the task ",(0,r.jsx)(t.code,{children:"extract emails"}),".\nThe connected LLM creates a filter based on the instructions, and successfully extracts a list of email addresses from the JSON data."]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{src:n(66539).A+"",width:"1742",height:"1622"})}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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 structured data to filter or transform using a Lambda function."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"llm"}),(0,r.jsx)(t.td,{children:"Language Model"}),(0,r.jsxs)(t.td,{children:["The connection port for a ",(0,r.jsx)(t.a,{href:"/components-models",children:"Model"})," component."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"filter_instruction"}),(0,r.jsx)(t.td,{children:"Instructions"}),(0,r.jsxs)(t.td,{children:["The natural language instructions for how to filter or transform the data using a Lambda function, such as ",(0,r.jsx)(t.code,{children:"Filter the data to only include items where the 'status' is 'active'"}),"."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"sample_size"}),(0,r.jsx)(t.td,{children:"Sample Size"}),(0,r.jsx)(t.td,{children:"For large datasets, the number of characters to sample from the dataset head and tail."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"max_size"}),(0,r.jsx)(t.td,{children:"Max Size"}),(0,r.jsxs)(t.td,{children:['The number of characters for the data to be considered "large", which triggers sampling by the ',(0,r.jsx)(t.code,{children:"sample_size"})," value."]})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"filtered_data"}),(0,r.jsx)(t.td,{children:"Filtered Data"}),(0,r.jsxs)(t.td,{children:["The filtered or transformed ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data object"}),"."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"dataframe"}),(0,r.jsx)(t.td,{children:"DataFrame"}),(0,r.jsxs)(t.td,{children:["The filtered data as a ",(0,r.jsx)(t.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"}),"."]})]})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"llm-router",children:"LLM router"}),"\n",(0,r.jsx)(t.p,{children:"This component routes requests to the most appropriate LLM based on OpenRouter model specifications."}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"models"}),(0,r.jsx)(t.td,{children:"Language Models"}),(0,r.jsx)(t.td,{children:"A list of LLMs to route between."})]}),(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 input message to be routed."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"judge_llm"}),(0,r.jsx)(t.td,{children:"Judge LLM"}),(0,r.jsx)(t.td,{children:"The LLM that evaluates and selects the most appropriate model."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"optimization"}),(0,r.jsx)(t.td,{children:"Optimization"}),(0,r.jsx)(t.td,{children:"The optimization preference between quality, speed, cost, or balanced."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"output"}),(0,r.jsx)(t.td,{children:"Output"}),(0,r.jsx)(t.td,{children:"The response from the selected model."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"selected_model"}),(0,r.jsx)(t.td,{children:"Selected Model"}),(0,r.jsx)(t.td,{children:"The name of the chosen model."})]})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"message-to-data",children:"Message to data"}),"\n",(0,r.jsxs)(t.p,{children:["This component converts ",(0,r.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})," objects to ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," objects."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"message"}),(0,r.jsx)(t.td,{children:"Message"}),(0,r.jsx)(t.td,{children:"The Message object to convert to a Data object."})]})})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"The converted Data object."})]})})]})]}),"\n",(0,r.jsx)(t.h2,{id:"parser",children:"Parser"}),"\n",(0,r.jsxs)(t.p,{children:["This component formats ",(0,r.jsx)(t.code,{children:"DataFrame"})," or ",(0,r.jsx)(t.code,{children:"Data"})," objects into text using templates, with an option to convert inputs directly to strings using ",(0,r.jsx)(t.code,{children:"stringify"}),"."]}),"\n",(0,r.jsxs)(t.p,{children:["To use this component, create variables for values in the ",(0,r.jsx)(t.code,{children:"template"})," the same way you would in a ",(0,r.jsx)(t.a,{href:"/components-prompts",children:"Prompt"})," component. For ",(0,r.jsx)(t.code,{children:"DataFrames"}),", use column names, for example ",(0,r.jsx)(t.code,{children:"Name: {Name}"}),". For ",(0,r.jsx)(t.code,{children:"Data"})," objects, use ",(0,r.jsx)(t.code,{children:"{text}"}),"."]}),"\n",(0,r.jsxs)(t.p,{children:["To use the ",(0,r.jsx)(t.strong,{children:"Parser"})," component with a ",(0,r.jsx)(t.strong,{children:"Structured Output"})," component, do the following:"]}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["Connect a ",(0,r.jsx)(t.strong,{children:"Structured Output"})," component's ",(0,r.jsx)(t.strong,{children:"DataFrame"})," output to the ",(0,r.jsx)(t.strong,{children:"Parser"})," component's ",(0,r.jsx)(t.strong,{children:"DataFrame"})," input."]}),"\n",(0,r.jsxs)(t.li,{children:["Connect the ",(0,r.jsx)(t.strong,{children:"File"})," component to the ",(0,r.jsx)(t.strong,{children:"Structured Output"})," component's ",(0,r.jsx)(t.strong,{children:"Message"})," input."]}),"\n",(0,r.jsxs)(t.li,{children:["Connect the ",(0,r.jsx)(t.strong,{children:"OpenAI"})," model component's ",(0,r.jsx)(t.strong,{children:"Language Model"})," output to the ",(0,r.jsx)(t.strong,{children:"Structured Output"})," component's ",(0,r.jsx)(t.strong,{children:"Language Model"})," input."]}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:"The flow looks like this:"}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"A parser component connected to OpenAI and structured output",src:n(96218).A+"",width:"2300",height:"1436"})}),"\n",(0,r.jsxs)(t.ol,{start:"4",children:["\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Structured Output"})," component, click ",(0,r.jsx)(t.strong,{children:"Open Table"}),".\nThis opens a pane for structuring your table.\nThe table contains the rows ",(0,r.jsx)(t.strong,{children:"Name"}),", ",(0,r.jsx)(t.strong,{children:"Description"}),", ",(0,r.jsx)(t.strong,{children:"Type"}),", and ",(0,r.jsx)(t.strong,{children:"Multiple"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Create a table that maps to the data you're loading from the ",(0,r.jsx)(t.strong,{children:"File"})," loader.\nFor example, to create a table for employees, you might have the rows ",(0,r.jsx)(t.code,{children:"id"}),", ",(0,r.jsx)(t.code,{children:"name"}),", and ",(0,r.jsx)(t.code,{children:"email"}),", all of type ",(0,r.jsx)(t.code,{children:"string"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Template"})," field of the ",(0,r.jsx)(t.strong,{children:"Parser"})," component, enter a template for parsing the ",(0,r.jsx)(t.strong,{children:"Structured Output"})," component's DataFrame output into structured text.\nCreate variables for values in the ",(0,r.jsx)(t.code,{children:"template"})," the same way you would in a ",(0,r.jsx)(t.a,{href:"/components-prompts",children:"Prompt"})," component.\nFor example, to present a table of employees in Markdown:"]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"# Employee Profile",props:{}}]},{tokens:[{content:"## Personal Information",props:{}}]},{tokens:[{content:"- **Name:** {name}",props:{}}]},{tokens:[{content:"- **ID:** {id}",props:{}}]},{tokens:[{content:"- **Email:** {email}",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(t.ol,{start:"7",children:["\n",(0,r.jsxs)(t.li,{children:["To run the flow, in the ",(0,r.jsx)(t.strong,{children:"Parser"})," component, click ",(0,r.jsx)(d.A,{name:"Play","aria-label":"Play icon"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["To view your parsed text, in the ",(0,r.jsx)(t.strong,{children:"Parser"})," component, click ",(0,r.jsx)(d.A,{name:"TextSearch","aria-label":"Inspect icon"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Optionally, connect a ",(0,r.jsx)(t.strong,{children:"Chat Output"})," component, and open the ",(0,r.jsx)(t.strong,{children:"Playground"})," to see the output."]}),"\n"]}),"\n",(0,r.jsxs)(t.p,{children:["For an additional example of using the ",(0,r.jsx)(t.strong,{children:"Parser"})," component to format a DataFrame from a ",(0,r.jsx)(t.strong,{children:"Structured Output"})," component, see the ",(0,r.jsx)(t.strong,{children:"Market Research"})," template flow."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"mode"}),(0,r.jsx)(t.td,{children:"Mode"}),(0,r.jsx)(t.td,{children:'The tab selection between "Parser" and "Stringify" modes. "Stringify" converts input to a string instead of using a template.'})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"pattern"}),(0,r.jsx)(t.td,{children:"Template"}),(0,r.jsxs)(t.td,{children:["The template for formatting using variables in curly brackets. For DataFrames, use column names, such as ",(0,r.jsx)(t.code,{children:"Name: {Name}"}),". For Data objects, use ",(0,r.jsx)(t.code,{children:"{text}"}),"."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_data"}),(0,r.jsx)(t.td,{children:"Data or DataFrame"}),(0,r.jsx)(t.td,{children:"The input to parse. Accepts either a DataFrame or Data object."})]}),(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 string used to separate rows or items. The default is a newline."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"clean_data"}),(0,r.jsx)(t.td,{children:"Clean Data"}),(0,r.jsx)(t.td,{children:"When stringify is enabled, this option cleans data by removing empty rows and lines."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"parsed_text"}),(0,r.jsx)(t.td,{children:"Parsed Text"}),(0,r.jsxs)(t.td,{children:["The resulting formatted text as a ",(0,r.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})," object."]})]})})]})]}),"\n",(0,r.jsx)(t.h2,{id:"regex-extractor",children:"Regex extractor"}),"\n",(0,r.jsx)(t.p,{children:"This component extracts patterns from text using regular expressions. It can be used to find and extract specific patterns or information from text data."}),"\n",(0,r.jsx)(t.p,{children:"To use this component in a flow:"}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["Connect the ",(0,r.jsx)(t.strong,{children:"Regex Extractor"})," to a ",(0,r.jsx)(t.strong,{children:"URL"})," component and a ",(0,r.jsx)(t.strong,{children:"Chat Output"})," component."]}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Regex extractor connected to url component",src:n(8886).A+"",width:"1606",height:"848"})}),"\n",(0,r.jsxs)(t.ol,{start:"2",children:["\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Regex Extractor"})," tool, enter a pattern to extract text from the ",(0,r.jsx)(t.strong,{children:"URL"}),' component\'s raw output.\nThis example extracts the first paragraph from the "In the News" section of ',(0,r.jsx)(t.code,{children:"https://en.wikipedia.org/wiki/Main_Page"}),":"]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"In the news\\s*\\n(.*?)(?=\\n\\n)",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(t.p,{children:"Result:"}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"Peruvian writer and Nobel Prize in Literature laureate Mario Vargas Llosa (pictured) dies at the age of 89.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(t.h2,{id:"save-to-file",children:"Save to File"}),"\n",(0,r.jsxs)(t.p,{children:["This component saves ",(0,r.jsx)(t.a,{href:"/concepts-objects",children:"DataFrames, Data, or Messages"})," to various file formats."]}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["To use this component in a flow, connect a component that outputs ",(0,r.jsx)(t.a,{href:"/concepts-objects",children:"DataFrames, Data, or Messages"})," to the ",(0,r.jsx)(t.strong,{children:"Save to File"})," component's input.\nThe following example connects a ",(0,r.jsx)(t.strong,{children:"Webhook"})," component to two ",(0,r.jsx)(t.strong,{children:"Save to File"})," components to demonstrate the different outputs."]}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Two Save-to File components connected to a webhook",src:n(35073).A+"",width:"1458",height:"1732"})}),"\n",(0,r.jsxs)(t.ol,{start:"2",children:["\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Save to File"})," component's ",(0,r.jsx)(t.strong,{children:"Input Type"})," field, select the expected input type.\nThis example expects ",(0,r.jsx)(t.strong,{children:"Data"})," from the ",(0,r.jsx)(t.strong,{children:"Webhook"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"File Format"})," field, select the file type for your saved file.\nThis example uses ",(0,r.jsx)(t.code,{children:".md"})," in one ",(0,r.jsx)(t.strong,{children:"Save to File"})," component, and ",(0,r.jsx)(t.code,{children:".xlsx"})," in another."]}),"\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"File Path"})," field, enter the path for your saved file.\nThis example uses ",(0,r.jsx)(t.code,{children:"./output/employees.xlsx"})," and ",(0,r.jsx)(t.code,{children:"./output/employees.md"})," to save the files in a directory relative to where Langflow is running.\nThe component accepts both relative and absolute paths, and creates any necessary directories if they don't exist."]}),"\n"]}),"\n",(0,r.jsx)(t.admonition,{type:"tip",children:(0,r.jsxs)(t.p,{children:["If you enter a format in the ",(0,r.jsx)(t.code,{children:"file_path"})," that is not accepted, the component appends the proper format to the file.\nFor example, if the selected ",(0,r.jsx)(t.code,{children:"file_format"})," is ",(0,r.jsx)(t.code,{children:"csv"}),", and you enter ",(0,r.jsx)(t.code,{children:"file_path"})," as ",(0,r.jsx)(t.code,{children:"./output/test.txt"}),", the file is saved as ",(0,r.jsx)(t.code,{children:"./output/test.txt.csv"})," so the file is not corrupted."]})}),"\n",(0,r.jsxs)(t.ol,{start:"5",children:["\n",(0,r.jsxs)(t.li,{children:["Send a POST request to the ",(0,r.jsx)(t.strong,{children:"Webhook"})," containing your JSON data.\nReplace ",(0,r.jsx)(t.code,{children:"YOUR_FLOW_ID"})," with your flow ID.\nThis example uses the default Langflow server address."]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'curl -X POST "http://localhost:7860/api/v1/webhook/YOUR_FLOW_ID" \\',props:{}}]},{tokens:[{content:"-H 'Content-Type: application/json' \\",props:{}}]},{tokens:[{content:"-d '{",props:{}}]},{tokens:[{content:' "Name": ["Alex Cruz", "Kalani Smith", "Noam Johnson"],',props:{}}]},{tokens:[{content:' "Role": ["Developer", "Designer", "Manager"],',props:{}}]},{tokens:[{content:' "Department": ["Engineering", "Design", "Management"]',props:{}}]},{tokens:[{content:"}'",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(t.ol,{start:"6",children:["\n",(0,r.jsxs)(t.li,{children:["In your local filesystem, open the ",(0,r.jsx)(t.code,{children:"outputs"})," directory.\nYou should see two files created from the data you've sent: one in ",(0,r.jsx)(t.code,{children:".xlsx"})," for structured spreadsheets, and one in Markdown."]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"| Name | Role | Department |",props:{}}]},{tokens:[{content:"|:-------------|:----------|:-------------|",props:{}}]},{tokens:[{content:"| Alex Cruz | Developer | Engineering |",props:{}}]},{tokens:[{content:"| Kalani Smith | Designer | Design |",props:{}}]},{tokens:[{content:"| Noam Johnson | Manager | Management |",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(t.h3,{id:"file-input-format-options",children:"File input format options"}),"\n",(0,r.jsxs)(t.p,{children:["For ",(0,r.jsx)(t.code,{children:"DataFrame"})," and ",(0,r.jsx)(t.code,{children:"Data"})," inputs, the component can create:"]}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.code,{children:"csv"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.code,{children:"excel"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.code,{children:"json"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.code,{children:"markdown"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.code,{children:"pdf"})}),"\n"]}),"\n",(0,r.jsxs)(t.p,{children:["For ",(0,r.jsx)(t.code,{children:"Message"})," inputs, the component can create:"]}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.code,{children:"txt"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.code,{children:"json"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.code,{children:"markdown"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.code,{children:"pdf"})}),"\n"]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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_text"}),(0,r.jsx)(t.td,{children:"Input Text"}),(0,r.jsx)(t.td,{children:"The text to analyze and extract patterns from."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"pattern"}),(0,r.jsx)(t.td,{children:"Regex Pattern"}),(0,r.jsx)(t.td,{children:"The regular expression pattern to match in the text."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"input_type"}),(0,r.jsx)(t.td,{children:"Input Type"}),(0,r.jsx)(t.td,{children:"The type of input to save."})]}),(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 DataFrame to save."})]}),(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 object to save."})]}),(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 Message to save."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"file_format"}),(0,r.jsx)(t.td,{children:"File Format"}),(0,r.jsx)(t.td,{children:"The file format to save the input in."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"file_path"}),(0,r.jsx)(t.td,{children:"File Path"}),(0,r.jsx)(t.td,{children:"The full file path including filename and extension."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"A list of extracted matches as 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 extracted matches formatted as a Message object."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"confirmation"}),(0,r.jsx)(t.td,{children:"Confirmation"}),(0,r.jsx)(t.td,{children:"The confirmation message after saving the file."})]})]})]})]}),"\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 based on specified criteria. It's ideal for chunking data to be tokenized and embedded into vector databases."}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"Split Text"})," component outputs ",(0,r.jsx)(t.strong,{children:"Chunks"})," or ",(0,r.jsx)(t.strong,{children:"DataFrame"}),".\nThe ",(0,r.jsx)(t.strong,{children:"Chunks"})," output returns a list of individual text chunks.\nThe ",(0,r.jsx)(t.strong,{children:"DataFrame"})," output returns a structured data format, with additional ",(0,r.jsx)(t.code,{children:"text"})," and ",(0,r.jsx)(t.code,{children:"metadata"})," columns applied."]}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["To use this component in a flow, connect a component that outputs ",(0,r.jsx)(t.a,{href:"/concepts-objects",children:"Data or DataFrame"})," to the ",(0,r.jsx)(t.strong,{children:"Split Text"})," component's ",(0,r.jsx)(t.strong,{children:"Data"})," port.\nThis example uses the ",(0,r.jsx)(t.strong,{children:"URL"})," component, which is fetching JSON placeholder data."]}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Split text component and chroma-db",src:n(49823).A+"",width:"2198",height:"1626"})}),"\n",(0,r.jsxs)(t.ol,{start:"2",children:["\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Split Text"})," component, define your data splitting parameters."]}),"\n"]}),"\n",(0,r.jsxs)(t.p,{children:["This example splits incoming JSON data at the separator ",(0,r.jsx)(t.code,{children:"},"}),", so each chunk contains one JSON object."]}),"\n",(0,r.jsxs)(t.p,{children:["The order of precedence is ",(0,r.jsx)(t.strong,{children:"Separator"}),", then ",(0,r.jsx)(t.strong,{children:"Chunk Size"}),", and then ",(0,r.jsx)(t.strong,{children:"Chunk Overlap"}),".\nIf any segment after separator splitting is longer than ",(0,r.jsx)(t.code,{children:"chunk_size"}),", it is split again to fit within ",(0,r.jsx)(t.code,{children:"chunk_size"}),"."]}),"\n",(0,r.jsxs)(t.p,{children:["After ",(0,r.jsx)(t.code,{children:"chunk_size"}),", ",(0,r.jsx)(t.strong,{children:"Chunk Overlap"})," is applied between chunks to maintain context."]}),"\n",(0,r.jsxs)(t.ol,{start:"3",children:["\n",(0,r.jsxs)(t.li,{children:["Connect a ",(0,r.jsx)(t.strong,{children:"Chat Output"})," component to the ",(0,r.jsx)(t.strong,{children:"Split Text"})," component's ",(0,r.jsx)(t.strong,{children:"DataFrame"})," output to view its output."]}),"\n",(0,r.jsxs)(t.li,{children:["Click ",(0,r.jsx)(t.strong,{children:"Playground"}),", and then click ",(0,r.jsx)(t.strong,{children:"Run Flow"}),".\nThe output contains a table of JSON objects split at ",(0,r.jsx)(t.code,{children:"},"}),"."]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:'"userId": 1,',props:{}}]},{tokens:[{content:'"id": 1,',props:{}}]},{tokens:[{content:'"title": "Introduction to Artificial Intelligence",',props:{}}]},{tokens:[{content:'"body": "Learn the basics of Artificial Intelligence and its applications in various industries.",',props:{}}]},{tokens:[{content:'"link": "https://example.com/article1",',props:{}}]},{tokens:[{content:'"comment_count": 8',props:{}}]},{tokens:[{content:"},",props:{}}]},{tokens:[{content:"{",props:{}}]},{tokens:[{content:'"userId": 2,',props:{}}]},{tokens:[{content:'"id": 2,',props:{}}]},{tokens:[{content:'"title": "Web Development with React",',props:{}}]},{tokens:[{content:'"body": "Build modern web applications using React.js and explore its powerful features.",',props:{}}]},{tokens:[{content:'"link": "https://example.com/article2",',props:{}}]},{tokens:[{content:'"comment_count": 12',props:{}}]},{tokens:[{content:"},",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(t.ol,{start:"5",children:["\n",(0,r.jsxs)(t.li,{children:["Clear the ",(0,r.jsx)(t.strong,{children:"Separator"})," field, and then run the flow again.\nInstead of JSON objects, the output contains 50-character lines of text with 10 characters of overlap."]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'First chunk: "title": "Introduction to Artificial Intelligence""',props:{}}]},{tokens:[{content:'Second chunk: "elligence", "body": "Learn the basics of Artif"',props:{}}]},{tokens:[{content:'Third chunk: "s of Artificial Intelligence and its applications"',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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_inputs"}),(0,r.jsx)(t.td,{children:"Input Documents"}),(0,r.jsxs)(t.td,{children:["The data to split. The component accepts ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," or ",(0,r.jsx)(t.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"})," objects."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"chunk_overlap"}),(0,r.jsx)(t.td,{children:"Chunk Overlap"}),(0,r.jsxs)(t.td,{children:["The number of characters to overlap between chunks. Default: ",(0,r.jsx)(t.code,{children:"200"}),"."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"chunk_size"}),(0,r.jsx)(t.td,{children:"Chunk Size"}),(0,r.jsxs)(t.td,{children:["The maximum number of characters in each chunk. Default: ",(0,r.jsx)(t.code,{children:"1000"}),"."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"separator"}),(0,r.jsx)(t.td,{children:"Separator"}),(0,r.jsxs)(t.td,{children:["The character to split on. Default: ",(0,r.jsx)(t.code,{children:"newline"}),"."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"text_key"}),(0,r.jsx)(t.td,{children:"Text Key"}),(0,r.jsxs)(t.td,{children:["The key to use for the text column. Default: ",(0,r.jsx)(t.code,{children:"text"}),"."]})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"chunks"}),(0,r.jsx)(t.td,{children:"Chunks"}),(0,r.jsxs)(t.td,{children:["A list of split text chunks as ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," objects."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"dataframe"}),(0,r.jsx)(t.td,{children:"DataFrame"}),(0,r.jsxs)(t.td,{children:["A list of split text chunks as ",(0,r.jsx)(t.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"})," objects."]})]})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"update-data",children:"Update data"}),"\n",(0,r.jsx)(t.p,{children:"This component dynamically updates or appends data with specified fields."}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"old_data"}),(0,r.jsx)(t.td,{children:"Data"}),(0,r.jsx)(t.td,{children:"The records to update."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"number_of_fields"}),(0,r.jsx)(t.td,{children:"Number of Fields"}),(0,r.jsx)(t.td,{children:"The number of fields to add. The maximum is 15."})]}),(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:"The key for text content."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"text_key_validator"}),(0,r.jsx)(t.td,{children:"Text Key Validator"}),(0,r.jsx)(t.td,{children:"Validates the text key presence."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"The updated Data objects."})]})})]})]}),"\n",(0,r.jsx)(t.h2,{id:"legacy-components",children:"Legacy components"}),"\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"Legacy"})," components are available for use but are no longer supported."]}),"\n",(0,r.jsx)(t.h3,{id:"alter-metadata",children:"Alter metadata"}),"\n",(0,r.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is in ",(0,r.jsx)(t.strong,{children:"Legacy"}),", which means it is available for use but no longer in active development.\nInstead, use the ",(0,r.jsx)(t.a,{href:"#data-operations",children:"Data operations"})," component."]})}),"\n",(0,r.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,r.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})," and ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," objects, and can also create a new Data object from user-provided text."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"Objects to which Metadata should be added."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"text_in"}),(0,r.jsx)(t.td,{children:"User Text"}),(0,r.jsxs)(t.td,{children:["Text input; the value is contained in the 'text' attribute of the ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object. Empty text entries are ignored."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"metadata"}),(0,r.jsx)(t.td,{children:"Metadata"}),(0,r.jsx)(t.td,{children:"Metadata to add to each object."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"remove_fields"}),(0,r.jsx)(t.td,{children:"Fields to Remove"}),(0,r.jsx)(t.td,{children:"Metadata fields to remove."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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 Input objects, each with added metadata."})]})})]})]}),"\n",(0,r.jsx)(t.h3,{id:"combine-data",children:"Combine data"}),"\n",(0,r.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is in ",(0,r.jsx)(t.strong,{children:"Legacy"}),", which means it is available for use but no longer in active development.\nPrior to Langflow version 1.1.3, this component was named ",(0,r.jsx)(t.strong,{children:"Merge Data"}),"."]})}),"\n",(0,r.jsxs)(t.p,{children:["This component combines multiple data sources into a single unified ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"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.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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."})]})})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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.jsxs)(t.td,{children:["A single ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object containing the combined information from all input data objects."]})]})})]})]}),"\n",(0,r.jsx)(t.h3,{id:"combine-text",children:"Combine text"}),"\n",(0,r.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is in ",(0,r.jsx)(t.strong,{children:"Legacy"}),", which means it is available for use but no longer in active development."]})}),"\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.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["To use this component in a flow, connect two components that output ",(0,r.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Messages"})," to the ",(0,r.jsx)(t.strong,{children:"Combine Text"})," component's ",(0,r.jsx)(t.strong,{children:"First Text"})," and ",(0,r.jsx)(t.strong,{children:"Second Text"})," inputs.\nThis example uses two ",(0,r.jsx)(t.strong,{children:"Text Input"})," components."]}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Combine text component",src:n(41502).A+"",width:"1148",height:"675"})}),"\n",(0,r.jsxs)(t.ol,{start:"2",children:["\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Combine Text"})," component, in the ",(0,r.jsx)(t.strong,{children:"Text"})," fields of both ",(0,r.jsx)(t.strong,{children:"Text Input"})," components, enter some text to combine."]}),"\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Combine Text"})," component, enter an optional ",(0,r.jsx)(t.strong,{children:"Delimiter"})," value.\nThe delimiter character separates the combined texts.\nThis example uses ",(0,r.jsx)(t.code,{children:"\\n\\n **end first text** \\n\\n **start second text** \\n\\n"})," to label the texts and create newlines between them."]}),"\n",(0,r.jsxs)(t.li,{children:["Connect a ",(0,r.jsx)(t.strong,{children:"Chat Output"})," component to view the text combination."]}),"\n",(0,r.jsxs)(t.li,{children:["Click ",(0,r.jsx)(t.strong,{children:"Playground"}),", and then click ",(0,r.jsx)(t.strong,{children:"Run Flow"}),".\nThe combined text appears in the ",(0,r.jsx)(t.strong,{children:"Playground"}),"."]}),"\n"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"This is the first text. Let's combine text!",props:{}}]},{tokens:[{content:"end first text",props:{}}]},{tokens:[{content:"start second text",props:{}}]},{tokens:[{content:"Here's the second part. We'll see how combining text works.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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. The default is a space."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Display Name"}),(0,r.jsx)(t.th,{children:"Info"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"message"}),(0,r.jsx)(t.td,{children:"Message"}),(0,r.jsx)(t.td,{children:"A Message object containing the combined text."})]})})]})]}),"\n",(0,r.jsx)(t.h3,{id:"create-data",children:"Create data"}),"\n",(0,r.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is in ",(0,r.jsx)(t.strong,{children:"Legacy"}),", which means it is available for use but no longer in active development."]})}),"\n",(0,r.jsxs)(t.p,{children:["This component dynamically creates a ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object with a specified number of fields."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"number_of_fields"}),(0,r.jsx)(t.td,{children:"Number of Fields"}),(0,r.jsx)(t.td,{children:"The 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 that identifies the field to be used as the text content."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"text_key_validator"}),(0,r.jsx)(t.td,{children:"Text Key Validator"}),(0,r.jsxs)(t.td,{children:["If enabled, checks if the given ",(0,r.jsx)(t.code,{children:"Text Key"})," is present in the given ",(0,r.jsx)(t.code,{children:"Data"}),"."]})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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.jsxs)(t.td,{children:["A ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object created with the specified fields and text key."]})]})})]})]}),"\n",(0,r.jsx)(t.h3,{id:"filter-data",children:"Filter data"}),"\n",(0,r.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is in ",(0,r.jsx)(t.strong,{children:"Legacy"}),", which means it is available for use but no longer in active development.\nInstead, use the ",(0,r.jsx)(t.a,{href:"#data-operations",children:"Data operations"})," component."]})}),"\n",(0,r.jsxs)(t.p,{children:["This component filters a ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object based on a list of keys."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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 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:"A list of keys to filter by."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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.h3,{id:"filter-values",children:"Filter values"}),"\n",(0,r.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is in ",(0,r.jsx)(t.strong,{children:"Legacy"}),", which means it is available for use but no longer in active development.\nInstead, use the ",(0,r.jsx)(t.a,{href:"#data-operations",children:"Data operations"})," component."]})}),"\n",(0,r.jsx)(t.p,{children:"The Filter values component filters a list of data items based on a specified key, filter value, and comparison operator."}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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_data"}),(0,r.jsx)(t.td,{children:"Input data"}),(0,r.jsx)(t.td,{children:"The list of data items to filter."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"filter_key"}),(0,r.jsx)(t.td,{children:"Filter Key"}),(0,r.jsx)(t.td,{children:"The key to filter on."})]}),(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 by."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"operator"}),(0,r.jsx)(t.td,{children:"Comparison Operator"}),(0,r.jsx)(t.td,{children:"The operator to apply for comparing the values."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"The resulting list of filtered data items."})]})})]})]}),"\n",(0,r.jsx)(t.h3,{id:"json-cleaner",children:"JSON cleaner"}),"\n",(0,r.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is in ",(0,r.jsx)(t.strong,{children:"Legacy"}),", which means it is available for use but no longer in active development."]})}),"\n",(0,r.jsx)(t.p,{children:"The JSON cleaner component cleans JSON strings to ensure they are fully compliant with the JSON specification."}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"json_str"}),(0,r.jsx)(t.td,{children:"JSON String"}),(0,r.jsx)(t.td,{children:"The JSON string to be cleaned. This can be a raw, potentially malformed JSON string produced by language models or other sources that may not fully comply with JSON specifications."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"remove_control_chars"}),(0,r.jsx)(t.td,{children:"Remove Control Characters"}),(0,r.jsx)(t.td,{children:"If set to True, this option removes control characters (ASCII characters 0-31 and 127) from the JSON string. This can help eliminate invisible characters that might cause parsing issues or make the JSON invalid."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"normalize_unicode"}),(0,r.jsx)(t.td,{children:"Normalize Unicode"}),(0,r.jsx)(t.td,{children:"When enabled, this option normalizes Unicode characters in the JSON string to their canonical composition form (NFC). This ensures consistent representation of Unicode characters across different systems and prevents potential issues with character encoding."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"validate_json"}),(0,r.jsx)(t.td,{children:"Validate JSON"}),(0,r.jsx)(t.td,{children:"If set to True, this option attempts to parse the JSON string to ensure it is well-formed before applying the final repair operation. It raises a ValueError if the JSON is invalid, allowing for early detection of major structural issues in the JSON."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"Cleaned JSON String"}),(0,r.jsx)(t.td,{children:"The resulting cleaned, repaired, and validated JSON string that fully complies with the JSON specification."})]})})]})]}),"\n",(0,r.jsx)(t.h3,{id:"parse-dataframe",children:"Parse DataFrame"}),"\n",(0,r.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is in ",(0,r.jsx)(t.strong,{children:"Legacy"}),", which means it is available for use but no longer in active development.\nInstead, use the ",(0,r.jsx)(t.a,{href:"#parser",children:"Parser"})," component."]})}),"\n",(0,r.jsx)(t.p,{children:"This component converts DataFrames into plain text using templates."}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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 DataFrame to convert to text rows."})]}),(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:["Template for formatting (use ",(0,r.jsx)(t.code,{children:"{column_name}"})," placeholders)."]})]}),(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:"String to join rows in output."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"All rows combined into single text."})]})})]})]}),"\n",(0,r.jsx)(t.h3,{id:"parse-json",children:"Parse JSON"}),"\n",(0,r.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is in ",(0,r.jsx)(t.strong,{children:"Legacy"}),", which means it is available for use but no longer in active development."]})}),"\n",(0,r.jsx)(t.p,{children:"This component converts and extracts JSON fields using JQ queries."}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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.jsxs)(t.td,{children:["Data object to filter (",(0,r.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})," or ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"}),")."]})]}),(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"})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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.jsxs)(t.td,{children:["Filtered data as list of ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," objects."]})]})})]})]}),"\n",(0,r.jsx)(t.h3,{id:"select-data",children:"Select data"}),"\n",(0,r.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is in ",(0,r.jsx)(t.strong,{children:"Legacy"}),", which means it is available for use but no longer in active development."]})}),"\n",(0,r.jsxs)(t.p,{children:["This component selects a single ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," item from a list."]}),"\n",(0,r.jsxs)(s,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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_list"}),(0,r.jsx)(t.td,{children:"Data List"}),(0,r.jsx)(t.td,{children:"List of data to select from"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"data_index"}),(0,r.jsx)(t.td,{children:"Data Index"}),(0,r.jsx)(t.td,{children:"Index of the data to select"})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"selected_data"}),(0,r.jsx)(t.td,{children:"Selected Data"}),(0,r.jsxs)(t.td,{children:["The selected ",(0,r.jsx)(t.a,{href:"/concepts-objects#data-object",children:"Data"})," object."]})]})})]})]})]})}function m(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(p,{...e})}):p(e)}function u(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},66539:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/component-lambda-filter-c409acffcea6f80062295f4d8de4e881.png"},84443:(e,t,n)=>{n.d(t,{A:()=>i});n(96540);var s=n(64058),r=n(74848);function i(e){let{name:t,...n}=e;const i=s[t];return i?(0,r.jsx)(i,{...n}):null}},96218:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/component-parser-5f97943bbc863cee6b02c74d325a062f.png"}}]);
\ No newline at end of file
diff --git a/assets/js/8311683c.6333b6ef.js b/assets/js/8311683c.f08e9c48.js
similarity index 96%
rename from assets/js/8311683c.6333b6ef.js
rename to assets/js/8311683c.f08e9c48.js
index 6a9f160faf..86ed5a9be3 100644
--- a/assets/js/8311683c.6333b6ef.js
+++ b/assets/js/8311683c.f08e9c48.js
@@ -1 +1 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[4526],{84443:(e,o,n)=>{n.d(o,{A:()=>i});n(96540);var t=n(64058),r=n(74848);function i(e){let{name:o,...n}=e;const i=t[o];return i?(0,r.jsx)(i,{...n}):null}},88048:(e,o,n)=>{n.r(o),n.d(o,{CH:()=>h,assets:()=>l,chCodeConfig:()=>p,contentTitle:()=>a,default:()=>x,frontMatter:()=>d,metadata:()=>t,toc:()=>g});const t=JSON.parse('{"id":"Develop/webhook","title":"Trigger flows with webhooks","description":"Add a Webhook component to your flow to trigger it with external requests.","source":"@site/docs/Develop/webhook.md","sourceDirName":"Develop","slug":"/webhook","permalink":"/webhook","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Trigger flows with webhooks","slug":"/webhook"},"sidebar":"docs","previous":{"title":"Logging","permalink":"/logging"},"next":{"title":"TypeScript Client","permalink":"/typescript-client"}}');var r=n(74848),i=n(28453),s=n(24754),c=n(84443);const d={title:"Trigger flows with webhooks",slug:"/webhook"},a=void 0,l={},h={annotations:s.hk,Code:s.Cy},p={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},g=[{value:"Trigger flows with Composio webhooks",id:"trigger-flows-with-composio-webhooks",level:2}];function u(e){const o={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",ol:"ol",p:"p",strong:"strong",...(0,i.R)(),...e.components};return h||m("CH",!1),h.Code||m("CH.Code",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,r.jsxs)(o.p,{children:["Add a ",(0,r.jsx)(o.strong,{children:"Webhook"})," component to your flow to trigger it with external requests."]}),"\n",(0,r.jsxs)(o.p,{children:["To connect the ",(0,r.jsx)(o.strong,{children:"Webhook"})," to a ",(0,r.jsx)(o.strong,{children:"Parser"})," component to view and parse your data payload, do the following:"]}),"\n",(0,r.jsxs)(o.ol,{children:["\n",(0,r.jsxs)(o.li,{children:["\n",(0,r.jsxs)(o.p,{children:["Add a ",(0,r.jsx)(o.strong,{children:"Webhook"})," component to your flow."]}),"\n"]}),"\n",(0,r.jsxs)(o.li,{children:["\n",(0,r.jsxs)(o.p,{children:["Add a ",(0,r.jsx)(o.a,{href:"/components-processing#parser",children:"Parser"})," component to your flow."]}),"\n"]}),"\n",(0,r.jsxs)(o.li,{children:["\n",(0,r.jsxs)(o.p,{children:["Connect the ",(0,r.jsx)(o.strong,{children:"Webhook"})," component's ",(0,r.jsx)(o.strong,{children:"Data"})," output to the ",(0,r.jsx)(o.strong,{children:"Parser"})," component's ",(0,r.jsx)(o.strong,{children:"Data"})," input."]}),"\n"]}),"\n",(0,r.jsxs)(o.li,{children:["\n",(0,r.jsxs)(o.p,{children:["In the ",(0,r.jsx)(o.strong,{children:"Template"})," field of the ",(0,r.jsx)(o.strong,{children:"Parser"})," component, enter a template for parsing the ",(0,r.jsx)(o.strong,{children:"Webhook"})," component's input into structured text."]}),"\n",(0,r.jsx)(o.admonition,{type:"important",children:(0,r.jsxs)(o.p,{children:["The component may fail to build because it needs data from the ",(0,r.jsx)(o.strong,{children:"Webhook"})," first.\nIf you experience issues, change the ",(0,r.jsx)(o.strong,{children:"Mode"})," on the ",(0,r.jsx)(o.strong,{children:"Parser"})," component to ",(0,r.jsx)(o.strong,{children:"Stringify"}),", so the component outputs a single string."]})}),"\n",(0,r.jsxs)(o.p,{children:["Create variables for values in the ",(0,r.jsx)(o.code,{children:"template"})," the same way you would in a ",(0,r.jsx)(o.a,{href:"/components-prompts",children:"Prompt"})," component.\nFor example, to parse ",(0,r.jsx)(o.code,{children:"id"}),", ",(0,r.jsx)(o.code,{children:"name"}),", and ",(0,r.jsx)(o.code,{children:"email"})," strings:"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"ID: {id} - Name: {name} - Email: {email}",props:{}}]}],lang:"text"},annotations:[]}]}),"\n"]}),"\n",(0,r.jsxs)(o.li,{children:["\n",(0,r.jsxs)(o.p,{children:["In the ",(0,r.jsx)(o.strong,{children:"Endpoint"})," field of the ",(0,r.jsx)(o.strong,{children:"Webhook"})," component, copy the API endpoint for your external requests."]}),"\n"]}),"\n",(0,r.jsxs)(o.li,{children:["\n",(0,r.jsxs)(o.p,{children:["Optionally, to retrieve a complete example request from the component, click ",(0,r.jsx)(o.strong,{children:"Controls"}),", and then copy the command from the ",(0,r.jsx)(o.strong,{children:"cURL"})," value field."]}),"\n",(0,r.jsx)(o.admonition,{type:"important",children:(0,r.jsxs)(o.p,{children:["The default curl command includes a field for ",(0,r.jsx)(o.code,{children:"x-api-key"}),". This field is ",(0,r.jsx)(o.strong,{children:"optional"})," and can be deleted from the command if you aren't using authentication."]})}),"\n"]}),"\n",(0,r.jsxs)(o.li,{children:["\n",(0,r.jsxs)(o.p,{children:["Send a POST request with any data to trigger your flow.\nThis example uses ",(0,r.jsx)(o.code,{children:"id"}),", ",(0,r.jsx)(o.code,{children:"name"}),", and ",(0,r.jsx)(o.code,{children:"email"})," strings.\nReplace ",(0,r.jsx)(o.strong,{children:"YOUR_FLOW_ID"})," with your flow ID."]}),"\n",(0,r.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'curl -X POST "http://127.0.0.1:7860/api/v1/webhook/YOUR_FLOW_ID" \\',props:{}}]},{tokens:[{content:" -H 'Content-Type: application/json' \\",props:{}}]},{tokens:[{content:' -d \'{"id": "12345", "name": "alex", "email": "alex@email.com"}\'',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(o.p,{children:"This response indicates Langflow received your request:"}),"\n",(0,r.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'{"message":"Task started in the background","status":"in progress"}',props:{}}]}],lang:"text"},annotations:[]}]}),"\n"]}),"\n",(0,r.jsxs)(o.li,{children:["\n",(0,r.jsxs)(o.p,{children:["To view the data received from your request, in the ",(0,r.jsx)(o.strong,{children:"Parser"})," component, click ",(0,r.jsx)(c.A,{name:"TextSearch","aria-label":"Inspect icon"}),"."]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(o.p,{children:["You should receive a string of parsed text, like ",(0,r.jsx)(o.code,{children:"ID: 12345 - Name: alex - Email: alex@email.com"}),"."]}),"\n",(0,r.jsx)(o.p,{children:"You have successfully parsed data out of an external JSON payload."}),"\n",(0,r.jsx)(o.p,{children:"By passing the event trigger data payload directly into a flow, you can also parse the event data with a chain of components, and use its data to trigger other events."}),"\n",(0,r.jsx)(o.h2,{id:"trigger-flows-with-composio-webhooks",children:"Trigger flows with Composio webhooks"}),"\n",(0,r.jsxs)(o.p,{children:["Now that you've triggered the webhook component manually, follow along with this step-by-step video guide for triggering flows with payloads from external applications: ",(0,r.jsx)(o.a,{href:"https://www.youtube.com/watch?v=IC1CAtzFRE0",children:"How to Use Webhooks in Langflow"}),"."]})]})}function x(e={}){const{wrapper:o}={...(0,i.R)(),...e.components};return o?(0,r.jsx)(o,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}function m(e,o){throw new Error("Expected "+(o?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[4526],{84443:(e,o,n)=>{n.d(o,{A:()=>i});n(96540);var t=n(64058),r=n(74848);function i(e){let{name:o,...n}=e;const i=t[o];return i?(0,r.jsx)(i,{...n}):null}},88048:(e,o,n)=>{n.r(o),n.d(o,{CH:()=>h,assets:()=>l,chCodeConfig:()=>p,contentTitle:()=>d,default:()=>x,frontMatter:()=>a,metadata:()=>t,toc:()=>g});const t=JSON.parse('{"id":"Develop/webhook","title":"Trigger flows with webhooks","description":"Add a Webhook component to your flow to trigger it with external requests.","source":"@site/docs/Develop/webhook.md","sourceDirName":"Develop","slug":"/webhook","permalink":"/webhook","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Trigger flows with webhooks","slug":"/webhook"},"sidebar":"docs","previous":{"title":"Logging","permalink":"/logging"},"next":{"title":"TypeScript Client","permalink":"/typescript-client"}}');var r=n(74848),i=n(28453),s=n(24754),c=n(84443);const a={title:"Trigger flows with webhooks",slug:"/webhook"},d=void 0,l={},h={annotations:s.hk,Code:s.Cy},p={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},g=[{value:"Trigger flows with Composio webhooks",id:"trigger-flows-with-composio-webhooks",level:2}];function u(e){const o={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",ol:"ol",p:"p",strong:"strong",...(0,i.R)(),...e.components};return h||m("CH",!1),h.Code||m("CH.Code",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,r.jsxs)(o.p,{children:["Add a ",(0,r.jsx)(o.strong,{children:"Webhook"})," component to your flow to trigger it with external requests."]}),"\n",(0,r.jsxs)(o.p,{children:["To connect the ",(0,r.jsx)(o.strong,{children:"Webhook"})," to a ",(0,r.jsx)(o.strong,{children:"Parser"})," component to view and parse your data payload, do the following:"]}),"\n",(0,r.jsxs)(o.ol,{children:["\n",(0,r.jsxs)(o.li,{children:["\n",(0,r.jsxs)(o.p,{children:["Add a ",(0,r.jsx)(o.strong,{children:"Webhook"})," component to your flow."]}),"\n"]}),"\n",(0,r.jsxs)(o.li,{children:["\n",(0,r.jsxs)(o.p,{children:["Add a ",(0,r.jsx)(o.a,{href:"/components-processing#parser",children:"Parser"})," component to your flow."]}),"\n"]}),"\n",(0,r.jsxs)(o.li,{children:["\n",(0,r.jsxs)(o.p,{children:["Connect the ",(0,r.jsx)(o.strong,{children:"Webhook"})," component's ",(0,r.jsx)(o.strong,{children:"Data"})," output to the ",(0,r.jsx)(o.strong,{children:"Parser"})," component's ",(0,r.jsx)(o.strong,{children:"Data"})," input."]}),"\n"]}),"\n",(0,r.jsxs)(o.li,{children:["\n",(0,r.jsxs)(o.p,{children:["In the ",(0,r.jsx)(o.strong,{children:"Template"})," field of the ",(0,r.jsx)(o.strong,{children:"Parser"})," component, enter a template for parsing the ",(0,r.jsx)(o.strong,{children:"Webhook"})," component's input into structured text."]}),"\n",(0,r.jsx)(o.admonition,{type:"important",children:(0,r.jsxs)(o.p,{children:["The component may fail to build because it needs data from the ",(0,r.jsx)(o.strong,{children:"Webhook"})," first.\nIf you experience issues, change the ",(0,r.jsx)(o.strong,{children:"Mode"})," on the ",(0,r.jsx)(o.strong,{children:"Parser"})," component to ",(0,r.jsx)(o.strong,{children:"Stringify"}),", so the component outputs a single string."]})}),"\n",(0,r.jsxs)(o.p,{children:["Create variables for values in the ",(0,r.jsx)(o.code,{children:"template"})," the same way you would in a ",(0,r.jsx)(o.a,{href:"/components-prompts",children:"Prompt"})," component.\nFor example, to parse ",(0,r.jsx)(o.code,{children:"id"}),", ",(0,r.jsx)(o.code,{children:"name"}),", and ",(0,r.jsx)(o.code,{children:"email"})," strings:"]}),"\n",(0,r.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"ID: {id} - Name: {name} - Email: {email}",props:{}}]}],lang:"text"},annotations:[]}]}),"\n"]}),"\n",(0,r.jsxs)(o.li,{children:["\n",(0,r.jsxs)(o.p,{children:["In the ",(0,r.jsx)(o.strong,{children:"Endpoint"})," field of the ",(0,r.jsx)(o.strong,{children:"Webhook"})," component, copy the API endpoint for your external requests."]}),"\n"]}),"\n",(0,r.jsxs)(o.li,{children:["\n",(0,r.jsxs)(o.p,{children:["Optionally, to retrieve a complete example request from the component, click ",(0,r.jsx)(o.strong,{children:"Controls"}),", and then copy the command from the ",(0,r.jsx)(o.strong,{children:"cURL"})," value field."]}),"\n",(0,r.jsx)(o.admonition,{type:"important",children:(0,r.jsxs)(o.p,{children:["The default curl command includes a field for ",(0,r.jsx)(o.code,{children:"x-api-key"}),". This field is ",(0,r.jsx)(o.strong,{children:"optional"})," and can be deleted from the command if you aren't using authentication."]})}),"\n"]}),"\n",(0,r.jsxs)(o.li,{children:["\n",(0,r.jsxs)(o.p,{children:["Send a POST request with any data to trigger your flow.\nThis example uses ",(0,r.jsx)(o.code,{children:"id"}),", ",(0,r.jsx)(o.code,{children:"name"}),", and ",(0,r.jsx)(o.code,{children:"email"})," strings.\nReplace ",(0,r.jsx)(o.strong,{children:"YOUR_FLOW_ID"})," with your flow ID."]}),"\n",(0,r.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'curl -X POST "http://localhost:7860/api/v1/webhook/YOUR_FLOW_ID" \\',props:{}}]},{tokens:[{content:" -H 'Content-Type: application/json' \\",props:{}}]},{tokens:[{content:' -d \'{"id": "12345", "name": "alex", "email": "alex@email.com"}\'',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(o.p,{children:"This response indicates Langflow received your request:"}),"\n",(0,r.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'{"message":"Task started in the background","status":"in progress"}',props:{}}]}],lang:"text"},annotations:[]}]}),"\n"]}),"\n",(0,r.jsxs)(o.li,{children:["\n",(0,r.jsxs)(o.p,{children:["To view the data received from your request, in the ",(0,r.jsx)(o.strong,{children:"Parser"})," component, click ",(0,r.jsx)(c.A,{name:"TextSearch","aria-label":"Inspect icon"}),"."]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(o.p,{children:["You should receive a string of parsed text, like ",(0,r.jsx)(o.code,{children:"ID: 12345 - Name: alex - Email: alex@email.com"}),"."]}),"\n",(0,r.jsx)(o.p,{children:"You have successfully parsed data out of an external JSON payload."}),"\n",(0,r.jsx)(o.p,{children:"By passing the event trigger data payload directly into a flow, you can also parse the event data with a chain of components, and use its data to trigger other events."}),"\n",(0,r.jsx)(o.h2,{id:"trigger-flows-with-composio-webhooks",children:"Trigger flows with Composio webhooks"}),"\n",(0,r.jsxs)(o.p,{children:["Now that you've triggered the webhook component manually, follow along with this step-by-step video guide for triggering flows with payloads from external applications: ",(0,r.jsx)(o.a,{href:"https://www.youtube.com/watch?v=IC1CAtzFRE0",children:"How to Use Webhooks in Langflow"}),"."]})]})}function x(e={}){const{wrapper:o}={...(0,i.R)(),...e.components};return o?(0,r.jsx)(o,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}function m(e,o){throw new Error("Expected "+(o?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/86b18dd0.263527f9.js b/assets/js/86b18dd0.e23bcfeb.js
similarity index 99%
rename from assets/js/86b18dd0.263527f9.js
rename to assets/js/86b18dd0.e23bcfeb.js
index 057e61a864..42cd25657d 100644
--- a/assets/js/86b18dd0.263527f9.js
+++ b/assets/js/86b18dd0.e23bcfeb.js
@@ -1 +1 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[730],{26382:(e,o,n)=>{n.r(o),n.d(o,{CH:()=>d,assets:()=>a,chCodeConfig:()=>p,contentTitle:()=>i,default:()=>u,frontMatter:()=>l,metadata:()=>t,toc:()=>h});const t=JSON.parse('{"id":"Develop/develop-application","title":"Develop an application in Langflow","description":"Follow this guide to learn how to build an application using Langflow.","source":"@site/docs/Develop/develop-application.md","sourceDirName":"Develop","slug":"/develop-application","permalink":"/develop-application","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Develop an application in Langflow","slug":"/develop-application"},"sidebar":"docs","previous":{"title":"Overview","permalink":"/develop-overview"},"next":{"title":"Install custom dependencies","permalink":"/install-custom-dependencies"}}');var r=n(74848),s=n(28453),c=n(24754);const l={title:"Develop an application in Langflow",slug:"/develop-application"},i=void 0,a={},d={annotations:c.hk,Code:c.Cy},p={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},h=[{value:"Create a project directory",id:"create-a-project-directory",level:2},{value:"Package management",id:"package-management",level:3},{value:"Environment variables",id:"environment-variables",level:2},{value:"Add flows and components",id:"add-flows-and-components",level:2},{value:"Package your Langflow project in a Docker image",id:"package-your-langflow-project-in-a-docker-image",level:2},{value:"Deploy to Docker Hub and Kubernetes",id:"deploy-to-docker-hub-and-kubernetes",level:2}];function f(e){const o={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",...(0,s.R)(),...e.components};return d||g("CH",!1),d.Code||g("CH.Code",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n",(0,r.jsx)(o.p,{children:"Follow this guide to learn how to build an application using Langflow.\nYou'll learn how to set up a project directory, manage dependencies, configure environment variables, and package your Langflow application in a Docker image."}),"\n",(0,r.jsxs)(o.p,{children:["To deploy your application to Docker or Kubernetes, see ",(0,r.jsx)(o.a,{href:"/deployment-docker",children:"Deployment"}),"."]}),"\n",(0,r.jsx)(o.h2,{id:"create-a-project-directory",children:"Create a project directory"}),"\n",(0,r.jsx)(o.p,{children:"Create a project directory similar to this one."}),"\n",(0,r.jsx)(d.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW-APPLICATION/",props:{}}]},{tokens:[{content:"\u251c\u2500\u2500 flows/",props:{}}]},{tokens:[{content:"\u2502 \u251c\u2500\u2500 flow1.json",props:{}}]},{tokens:[{content:"\u2502 \u2514\u2500\u2500 flow2.json",props:{}}]},{tokens:[{content:"\u251c\u2500\u2500 langflow-config-dir/",props:{}}]},{tokens:[{content:"\u251c\u2500\u2500 docker.env",props:{}}]},{tokens:[{content:"\u251c\u2500\u2500 Dockerfile",props:{}}]},{tokens:[{content:"\u251c\u2500\u2500 README.md",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(o.p,{children:["The ",(0,r.jsx)(o.code,{children:"/flows"})," folder holds the flows you want to host."]}),"\n",(0,r.jsxs)(o.p,{children:["The ",(0,r.jsx)(o.code,{children:"langflow-config-dir"})," is referenced in the Dockerfile as the location for Langflow's configuration files, database, and logs. For more information, see ",(0,r.jsx)(o.a,{href:"/environment-variables",children:"Environment variables"}),"."]}),"\n",(0,r.jsxs)(o.p,{children:["The ",(0,r.jsx)(o.code,{children:"docker.env"})," file is copied to the Docker image as a ",(0,r.jsx)(o.code,{children:".env"})," file in the container root. This file controls Langflow's behavior, holds secrets, and configures runtime settings like authentication, database storage, API keys, and server configurations."]}),"\n",(0,r.jsxs)(o.p,{children:["The ",(0,r.jsx)(o.code,{children:"Dockerfile"})," controls how your image is built. This file copies your flows and ",(0,r.jsx)(o.code,{children:"docker.env"})," files to your image."]}),"\n",(0,r.jsx)(o.h3,{id:"package-management",children:"Package management"}),"\n",(0,r.jsxs)(o.p,{children:["The base Docker image includes the Langflow core dependencies by using ",(0,r.jsx)(o.code,{children:"langflowai/langflow:latest"})," as the parent image."]}),"\n",(0,r.jsxs)(o.p,{children:["If your application requires additional dependencies, create a ",(0,r.jsx)(o.code,{children:"pyproject.toml"})," file and add the dependencies to the file. For more information, see ",(0,r.jsx)(o.a,{href:"/install-custom-dependencies",children:"Install custom dependencies"}),"."]}),"\n",(0,r.jsxs)(o.p,{children:["To deploy the application with the additional dependencies to Docker, copy the ",(0,r.jsx)(o.code,{children:"pyproject.toml"})," and ",(0,r.jsx)(o.code,{children:"uv.lock"})," files to the Docker image by adding the following to the Dockerfile."]}),"\n",(0,r.jsx)(d.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"COPY pyproject.toml uv.lock /app/",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(o.h2,{id:"environment-variables",children:"Environment variables"}),"\n",(0,r.jsxs)(o.p,{children:["The ",(0,r.jsx)(o.code,{children:"docker.env"})," file is a ",(0,r.jsx)(o.code,{children:".env"})," file loaded into your Docker image."]}),"\n",(0,r.jsxs)(o.p,{children:["The following example ",(0,r.jsx)(o.code,{children:"docker.env"})," file defines auto-login behavior and which port to expose. Your environment may vary. For more information, see ",(0,r.jsx)(o.a,{href:"/environment-variables",children:"Environment variables"}),"."]}),"\n",(0,r.jsx)(d.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW_AUTO_LOGIN=true",props:{}}]},{tokens:[{content:"LANGFLOW_SAVE_DB_IN_CONFIG_DIR=true",props:{}}]},{tokens:[{content:"LANGFLOW_BASE_URL=http://0.0.0.0:7860",props:{}}]},{tokens:[{content:"OPENAI_API_KEY=sk-...",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(o.p,{children:["This example uses Langflow's default ",(0,r.jsx)(o.a,{href:"https://www.sqlite.org/",children:"SQLite"})," database for storage, and configures no authentication."]}),"\n",(0,r.jsxs)(o.p,{children:["To modify Langflow's default memory behavior, see ",(0,r.jsx)(o.a,{href:"/memory",children:"Memory"}),"."]}),"\n",(0,r.jsxs)(o.p,{children:["To add authentication to your server, see ",(0,r.jsx)(o.a,{href:"/configuration-authentication",children:"Authentication"}),"."]}),"\n",(0,r.jsx)(o.h2,{id:"add-flows-and-components",children:"Add flows and components"}),"\n",(0,r.jsxs)(o.p,{children:["Add your flow's ",(0,r.jsx)(o.code,{children:".JSON"})," files to the ",(0,r.jsx)(o.code,{children:"/flows"})," folder."]}),"\n",(0,r.jsxs)(o.p,{children:["To export your flows from Langflow, see ",(0,r.jsx)(o.a,{href:"/concepts-flows",children:"Flows"}),"."]}),"\n",(0,r.jsxs)(o.p,{children:["Optionally, add any custom components to a ",(0,r.jsx)(o.code,{children:"/components"})," folder, and specify the path in your ",(0,r.jsx)(o.code,{children:"docker.env"}),"."]}),"\n",(0,r.jsx)(o.h2,{id:"package-your-langflow-project-in-a-docker-image",children:"Package your Langflow project in a Docker image"}),"\n",(0,r.jsxs)(o.ol,{children:["\n",(0,r.jsx)(o.li,{children:"Add the following commands to your Dockerfile."}),"\n"]}),"\n",(0,r.jsx)(d.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"# Use the latest version of langflow",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"FROM",props:{style:{color:"#FF7B72"}}},{content:" langflowai/langflow:latest",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Create accessible folders and set the working directory in the container",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"RUN",props:{style:{color:"#FF7B72"}}},{content:" mkdir /app/flows",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"RUN",props:{style:{color:"#FF7B72"}}},{content:" mkdir /app/langflow-config-dir",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"WORKDIR",props:{style:{color:"#FF7B72"}}},{content:" /app",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Copy the flows, optional components, and langflow-config-dir folders to the container",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"COPY",props:{style:{color:"#FF7B72"}}},{content:" flows /app/flows",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"COPY",props:{style:{color:"#FF7B72"}}},{content:" components /app/components",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"COPY",props:{style:{color:"#FF7B72"}}},{content:" langflow-config-dir /app/langflow-config-dir",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# copy docker.env file",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"COPY",props:{style:{color:"#FF7B72"}}},{content:" docker.env /app/.env",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Set environment variables",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"ENV",props:{style:{color:"#FF7B72"}}},{content:" PYTHONPATH=/app",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"ENV",props:{style:{color:"#FF7B72"}}},{content:" LANGFLOW_LOAD_FLOWS_PATH=/app/flows",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"ENV",props:{style:{color:"#FF7B72"}}},{content:" LANGFLOW_CONFIG_DIR=/app/langflow-config-dir",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"ENV",props:{style:{color:"#FF7B72"}}},{content:" LANGFLOW_COMPONENTS_PATH=/app/components",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"ENV",props:{style:{color:"#FF7B72"}}},{content:" LANGFLOW_LOG_ENV=container",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Command to run the server",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"EXPOSE",props:{style:{color:"#FF7B72"}}},{content:" 7860",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"CMD",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}},{content:'"langflow"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"run"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"--backend-only"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"--env-file"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}},{content:'"/app/.env"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}},{content:'"--host"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"0.0.0.0"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"--port"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"7860"',props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]}],lang:"dockerfile"},annotations:[]}]}),"\n",(0,r.jsxs)(o.p,{children:["The environment variables set in the Dockerfile specify resource paths and allow Langflow to access them. Values from ",(0,r.jsx)(o.code,{children:"docker.env"})," override the values set in the Dockerfile. Additionally, logging behavior is set here with ",(0,r.jsx)(o.code,{children:"ENV LANGFLOW_LOG_ENV=container"})," for serialized JSON to ",(0,r.jsx)(o.code,{children:"stdout"}),", for tracking your application's behavior in a containerized environment. For more information on configuring logs, see ",(0,r.jsx)(o.a,{href:"/logging",children:"Logging"}),"."]}),"\n",(0,r.jsx)(o.admonition,{type:"note",children:(0,r.jsxs)(o.p,{children:["Optionally, remove the ",(0,r.jsx)(o.code,{children:"--backend-only"})," flag from the startup command to start Langflow with the frontend enabled.\nFor more on ",(0,r.jsx)(o.code,{children:"--backend-only"})," mode and the Langflow Docker image, see ",(0,r.jsx)(o.a,{href:"/deployment-docker",children:"Docker"}),"."]})}),"\n",(0,r.jsxs)(o.ol,{start:"2",children:["\n",(0,r.jsx)(o.li,{children:"Save your Dockerfile."}),"\n",(0,r.jsx)(o.li,{children:"Build the Docker image:"}),"\n"]}),"\n",(0,r.jsx)(d.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"docker ",props:{style:{color:"#FFA657"}}},{content:"build ",props:{style:{color:"#A5D6FF"}}},{content:"-t ",props:{style:{color:"#79C0FF"}}},{content:"langflow-pokedex:",props:{style:{color:"#A5D6FF"}}},{content:"1.2.0 ",props:{style:{color:"#79C0FF"}}},{content:".",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,r.jsxs)(o.ol,{start:"4",children:["\n",(0,r.jsx)(o.li,{children:"Run the Docker container:"}),"\n"]}),"\n",(0,r.jsx)(d.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"docker ",props:{style:{color:"#FFA657"}}},{content:"run ",props:{style:{color:"#A5D6FF"}}},{content:"-p ",props:{style:{color:"#79C0FF"}}},{content:"7860:",props:{style:{color:"#A5D6FF"}}},{content:"7860 ",props:{style:{color:"#79C0FF"}}},{content:"langflow-pokedex:",props:{style:{color:"#A5D6FF"}}},{content:"1.2.0",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,r.jsx)(o.admonition,{type:"note",children:(0,r.jsxs)(o.p,{children:["For instructions on building and pushing your image to Docker Hub, see ",(0,r.jsx)(o.a,{href:"/deployment-docker",children:"Docker"}),"."]})}),"\n",(0,r.jsxs)(o.ol,{start:"5",children:["\n",(0,r.jsxs)(o.li,{children:["Confirm the server is serving your flows.\nOpen a ",(0,r.jsx)(o.code,{children:".JSON"})," file in your ",(0,r.jsx)(o.code,{children:"/flows"})," folder and find the file's ",(0,r.jsx)(o.code,{children:"id"})," value. It's the first value in the flow document."]}),"\n"]}),"\n",(0,r.jsx)(d.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'"id"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"e4167236-938f-4aca-845b-21de3f399858"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]}),"\n",(0,r.jsxs)(o.ol,{start:"6",children:["\n",(0,r.jsxs)(o.li,{children:["Add the file's ",(0,r.jsx)(o.code,{children:"id"})," value as the ",(0,r.jsx)(o.code,{children:"flow-id"})," to a POST request to the ",(0,r.jsx)(o.code,{children:"/run"})," endpoint."]}),"\n"]}),"\n",(0,r.jsxs)(o.p,{children:["This command also uses a custom ",(0,r.jsx)(o.code,{children:"session_id"})," value of ",(0,r.jsx)(o.code,{children:"charizard_test_request"}),".\nBy default, session IDs use the ",(0,r.jsx)(o.code,{children:"flow-id"})," value.\nA custom session ID maintains a unique conversation thread, which keeps LLM contexts clean and can make debugging easier.\nFor more information, see ",(0,r.jsx)(o.a,{href:"/session-id",children:"Session ID"}),"."]}),"\n",(0,r.jsx)(d.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"--request ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" --url ",props:{style:{color:"#79C0FF"}}},{content:"'http://127.0.0.1:7860/api/v1/run/e4167236-938f-4aca-845b-21de3f399858?stream=false' ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" --header ",props:{style:{color:"#79C0FF"}}},{content:"'Content-Type: application/json' ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" --data ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "input_value": "Tell me about Charizard please",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "output_type": "chat",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "input_type": "chat",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "session_id": "charizard_test_request"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,r.jsx)(o.p,{children:"If the flow streams the result back to you, your flow is being served, and can be consumed from a front-end application by submitting POST requests to this endpoint."}),"\n",(0,r.jsxs)(o.p,{children:["To trigger your application from an external event, see ",(0,r.jsx)(o.a,{href:"/webhook",children:"Webhook"}),"."]}),"\n",(0,r.jsx)(o.admonition,{type:"note",children:(0,r.jsxs)(o.p,{children:["The test application returns a large amount of text, so the example command used ",(0,r.jsx)(o.code,{children:"?stream=true"}),". If you prefer, set ",(0,r.jsx)(o.code,{children:"?stream=false"})," to use batching. For more information, see the ",(0,r.jsx)(o.a,{href:"/api-reference-api-examples#run-flow",children:"API examples"}),"."]})}),"\n",(0,r.jsx)(o.h2,{id:"deploy-to-docker-hub-and-kubernetes",children:"Deploy to Docker Hub and Kubernetes"}),"\n",(0,r.jsxs)(o.p,{children:["For instructions on building and pushing your image to Docker Hub, see ",(0,r.jsx)(o.a,{href:"/deployment-docker",children:"Docker"}),"."]}),"\n",(0,r.jsxs)(o.p,{children:["To deploy your application to Kubernetes, see ",(0,r.jsx)(o.a,{href:"/deployment-kubernetes-prod",children:"Deploy the Langflow production environment to Kubernetes"}),"."]})]})}function u(e={}){const{wrapper:o}={...(0,s.R)(),...e.components};return o?(0,r.jsx)(o,{...e,children:(0,r.jsx)(f,{...e})}):f(e)}function g(e,o){throw new Error("Expected "+(o?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[730],{26382:(e,o,n)=>{n.r(o),n.d(o,{CH:()=>d,assets:()=>a,chCodeConfig:()=>p,contentTitle:()=>i,default:()=>u,frontMatter:()=>l,metadata:()=>t,toc:()=>h});const t=JSON.parse('{"id":"Develop/develop-application","title":"Develop an application in Langflow","description":"Follow this guide to learn how to build an application using Langflow.","source":"@site/docs/Develop/develop-application.md","sourceDirName":"Develop","slug":"/develop-application","permalink":"/develop-application","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Develop an application in Langflow","slug":"/develop-application"},"sidebar":"docs","previous":{"title":"Overview","permalink":"/develop-overview"},"next":{"title":"Install custom dependencies","permalink":"/install-custom-dependencies"}}');var r=n(74848),s=n(28453),c=n(24754);const l={title:"Develop an application in Langflow",slug:"/develop-application"},i=void 0,a={},d={annotations:c.hk,Code:c.Cy},p={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},h=[{value:"Create a project directory",id:"create-a-project-directory",level:2},{value:"Package management",id:"package-management",level:3},{value:"Environment variables",id:"environment-variables",level:2},{value:"Add flows and components",id:"add-flows-and-components",level:2},{value:"Package your Langflow project in a Docker image",id:"package-your-langflow-project-in-a-docker-image",level:2},{value:"Deploy to Docker Hub and Kubernetes",id:"deploy-to-docker-hub-and-kubernetes",level:2}];function f(e){const o={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",...(0,s.R)(),...e.components};return d||g("CH",!1),d.Code||g("CH.Code",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n",(0,r.jsx)(o.p,{children:"Follow this guide to learn how to build an application using Langflow.\nYou'll learn how to set up a project directory, manage dependencies, configure environment variables, and package your Langflow application in a Docker image."}),"\n",(0,r.jsxs)(o.p,{children:["To deploy your application to Docker or Kubernetes, see ",(0,r.jsx)(o.a,{href:"/deployment-docker",children:"Deployment"}),"."]}),"\n",(0,r.jsx)(o.h2,{id:"create-a-project-directory",children:"Create a project directory"}),"\n",(0,r.jsx)(o.p,{children:"Create a project directory similar to this one."}),"\n",(0,r.jsx)(d.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW-APPLICATION/",props:{}}]},{tokens:[{content:"\u251c\u2500\u2500 flows/",props:{}}]},{tokens:[{content:"\u2502 \u251c\u2500\u2500 flow1.json",props:{}}]},{tokens:[{content:"\u2502 \u2514\u2500\u2500 flow2.json",props:{}}]},{tokens:[{content:"\u251c\u2500\u2500 langflow-config-dir/",props:{}}]},{tokens:[{content:"\u251c\u2500\u2500 docker.env",props:{}}]},{tokens:[{content:"\u251c\u2500\u2500 Dockerfile",props:{}}]},{tokens:[{content:"\u251c\u2500\u2500 README.md",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(o.p,{children:["The ",(0,r.jsx)(o.code,{children:"/flows"})," folder holds the flows you want to host."]}),"\n",(0,r.jsxs)(o.p,{children:["The ",(0,r.jsx)(o.code,{children:"langflow-config-dir"})," is referenced in the Dockerfile as the location for Langflow's configuration files, database, and logs. For more information, see ",(0,r.jsx)(o.a,{href:"/environment-variables",children:"Environment variables"}),"."]}),"\n",(0,r.jsxs)(o.p,{children:["The ",(0,r.jsx)(o.code,{children:"docker.env"})," file is copied to the Docker image as a ",(0,r.jsx)(o.code,{children:".env"})," file in the container root. This file controls Langflow's behavior, holds secrets, and configures runtime settings like authentication, database storage, API keys, and server configurations."]}),"\n",(0,r.jsxs)(o.p,{children:["The ",(0,r.jsx)(o.code,{children:"Dockerfile"})," controls how your image is built. This file copies your flows and ",(0,r.jsx)(o.code,{children:"docker.env"})," files to your image."]}),"\n",(0,r.jsx)(o.h3,{id:"package-management",children:"Package management"}),"\n",(0,r.jsxs)(o.p,{children:["The base Docker image includes the Langflow core dependencies by using ",(0,r.jsx)(o.code,{children:"langflowai/langflow:latest"})," as the parent image."]}),"\n",(0,r.jsxs)(o.p,{children:["If your application requires additional dependencies, create a ",(0,r.jsx)(o.code,{children:"pyproject.toml"})," file and add the dependencies to the file. For more information, see ",(0,r.jsx)(o.a,{href:"/install-custom-dependencies",children:"Install custom dependencies"}),"."]}),"\n",(0,r.jsxs)(o.p,{children:["To deploy the application with the additional dependencies to Docker, copy the ",(0,r.jsx)(o.code,{children:"pyproject.toml"})," and ",(0,r.jsx)(o.code,{children:"uv.lock"})," files to the Docker image by adding the following to the Dockerfile."]}),"\n",(0,r.jsx)(d.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"COPY pyproject.toml uv.lock /app/",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(o.h2,{id:"environment-variables",children:"Environment variables"}),"\n",(0,r.jsxs)(o.p,{children:["The ",(0,r.jsx)(o.code,{children:"docker.env"})," file is a ",(0,r.jsx)(o.code,{children:".env"})," file loaded into your Docker image."]}),"\n",(0,r.jsxs)(o.p,{children:["The following example ",(0,r.jsx)(o.code,{children:"docker.env"})," file defines auto-login behavior and which port to expose. Your environment may vary. For more information, see ",(0,r.jsx)(o.a,{href:"/environment-variables",children:"Environment variables"}),"."]}),"\n",(0,r.jsx)(d.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFLOW_AUTO_LOGIN=true",props:{}}]},{tokens:[{content:"LANGFLOW_SAVE_DB_IN_CONFIG_DIR=true",props:{}}]},{tokens:[{content:"LANGFLOW_BASE_URL=http://0.0.0.0:7860",props:{}}]},{tokens:[{content:"OPENAI_API_KEY=sk-...",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(o.p,{children:["This example uses Langflow's default ",(0,r.jsx)(o.a,{href:"https://www.sqlite.org/",children:"SQLite"})," database for storage, and configures no authentication."]}),"\n",(0,r.jsxs)(o.p,{children:["To modify Langflow's default memory behavior, see ",(0,r.jsx)(o.a,{href:"/memory",children:"Memory"}),"."]}),"\n",(0,r.jsxs)(o.p,{children:["To add authentication to your server, see ",(0,r.jsx)(o.a,{href:"/configuration-authentication",children:"Authentication"}),"."]}),"\n",(0,r.jsx)(o.h2,{id:"add-flows-and-components",children:"Add flows and components"}),"\n",(0,r.jsxs)(o.p,{children:["Add your flow's ",(0,r.jsx)(o.code,{children:".JSON"})," files to the ",(0,r.jsx)(o.code,{children:"/flows"})," folder."]}),"\n",(0,r.jsxs)(o.p,{children:["To export your flows from Langflow, see ",(0,r.jsx)(o.a,{href:"/concepts-flows",children:"Flows"}),"."]}),"\n",(0,r.jsxs)(o.p,{children:["Optionally, add any custom components to a ",(0,r.jsx)(o.code,{children:"/components"})," folder, and specify the path in your ",(0,r.jsx)(o.code,{children:"docker.env"}),"."]}),"\n",(0,r.jsx)(o.h2,{id:"package-your-langflow-project-in-a-docker-image",children:"Package your Langflow project in a Docker image"}),"\n",(0,r.jsxs)(o.ol,{children:["\n",(0,r.jsx)(o.li,{children:"Add the following commands to your Dockerfile."}),"\n"]}),"\n",(0,r.jsx)(d.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"# Use the latest version of langflow",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"FROM",props:{style:{color:"#FF7B72"}}},{content:" langflowai/langflow:latest",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Create accessible folders and set the working directory in the container",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"RUN",props:{style:{color:"#FF7B72"}}},{content:" mkdir /app/flows",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"RUN",props:{style:{color:"#FF7B72"}}},{content:" mkdir /app/langflow-config-dir",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"WORKDIR",props:{style:{color:"#FF7B72"}}},{content:" /app",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Copy the flows, optional components, and langflow-config-dir folders to the container",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"COPY",props:{style:{color:"#FF7B72"}}},{content:" flows /app/flows",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"COPY",props:{style:{color:"#FF7B72"}}},{content:" components /app/components",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"COPY",props:{style:{color:"#FF7B72"}}},{content:" langflow-config-dir /app/langflow-config-dir",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# copy docker.env file",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"COPY",props:{style:{color:"#FF7B72"}}},{content:" docker.env /app/.env",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Set environment variables",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"ENV",props:{style:{color:"#FF7B72"}}},{content:" PYTHONPATH=/app",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"ENV",props:{style:{color:"#FF7B72"}}},{content:" LANGFLOW_LOAD_FLOWS_PATH=/app/flows",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"ENV",props:{style:{color:"#FF7B72"}}},{content:" LANGFLOW_CONFIG_DIR=/app/langflow-config-dir",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"ENV",props:{style:{color:"#FF7B72"}}},{content:" LANGFLOW_COMPONENTS_PATH=/app/components",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"ENV",props:{style:{color:"#FF7B72"}}},{content:" LANGFLOW_LOG_ENV=container",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Command to run the server",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"EXPOSE",props:{style:{color:"#FF7B72"}}},{content:" 7860",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"CMD",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}},{content:'"langflow"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"run"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"--backend-only"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"--env-file"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}},{content:'"/app/.env"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}},{content:'"--host"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"0.0.0.0"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"--port"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"7860"',props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]}],lang:"dockerfile"},annotations:[]}]}),"\n",(0,r.jsxs)(o.p,{children:["The environment variables set in the Dockerfile specify resource paths and allow Langflow to access them. Values from ",(0,r.jsx)(o.code,{children:"docker.env"})," override the values set in the Dockerfile. Additionally, logging behavior is set here with ",(0,r.jsx)(o.code,{children:"ENV LANGFLOW_LOG_ENV=container"})," for serialized JSON to ",(0,r.jsx)(o.code,{children:"stdout"}),", for tracking your application's behavior in a containerized environment. For more information on configuring logs, see ",(0,r.jsx)(o.a,{href:"/logging",children:"Logging"}),"."]}),"\n",(0,r.jsx)(o.admonition,{type:"note",children:(0,r.jsxs)(o.p,{children:["Optionally, remove the ",(0,r.jsx)(o.code,{children:"--backend-only"})," flag from the startup command to start Langflow with the frontend enabled.\nFor more on ",(0,r.jsx)(o.code,{children:"--backend-only"})," mode and the Langflow Docker image, see ",(0,r.jsx)(o.a,{href:"/deployment-docker",children:"Docker"}),"."]})}),"\n",(0,r.jsxs)(o.ol,{start:"2",children:["\n",(0,r.jsx)(o.li,{children:"Save your Dockerfile."}),"\n",(0,r.jsx)(o.li,{children:"Build the Docker image:"}),"\n"]}),"\n",(0,r.jsx)(d.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"docker ",props:{style:{color:"#FFA657"}}},{content:"build ",props:{style:{color:"#A5D6FF"}}},{content:"-t ",props:{style:{color:"#79C0FF"}}},{content:"langflow-pokedex:",props:{style:{color:"#A5D6FF"}}},{content:"1.2.0 ",props:{style:{color:"#79C0FF"}}},{content:".",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,r.jsxs)(o.ol,{start:"4",children:["\n",(0,r.jsx)(o.li,{children:"Run the Docker container:"}),"\n"]}),"\n",(0,r.jsx)(d.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"docker ",props:{style:{color:"#FFA657"}}},{content:"run ",props:{style:{color:"#A5D6FF"}}},{content:"-p ",props:{style:{color:"#79C0FF"}}},{content:"7860:",props:{style:{color:"#A5D6FF"}}},{content:"7860 ",props:{style:{color:"#79C0FF"}}},{content:"langflow-pokedex:",props:{style:{color:"#A5D6FF"}}},{content:"1.2.0",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,r.jsx)(o.admonition,{type:"note",children:(0,r.jsxs)(o.p,{children:["For instructions on building and pushing your image to Docker Hub, see ",(0,r.jsx)(o.a,{href:"/deployment-docker",children:"Docker"}),"."]})}),"\n",(0,r.jsxs)(o.ol,{start:"5",children:["\n",(0,r.jsxs)(o.li,{children:["Confirm the server is serving your flows.\nOpen a ",(0,r.jsx)(o.code,{children:".JSON"})," file in your ",(0,r.jsx)(o.code,{children:"/flows"})," folder and find the file's ",(0,r.jsx)(o.code,{children:"id"})," value. It's the first value in the flow document."]}),"\n"]}),"\n",(0,r.jsx)(d.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'"id"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"e4167236-938f-4aca-845b-21de3f399858"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]}),"\n",(0,r.jsxs)(o.ol,{start:"6",children:["\n",(0,r.jsxs)(o.li,{children:["Add the file's ",(0,r.jsx)(o.code,{children:"id"})," value as the ",(0,r.jsx)(o.code,{children:"flow-id"})," to a POST request to the ",(0,r.jsx)(o.code,{children:"/run"})," endpoint."]}),"\n"]}),"\n",(0,r.jsxs)(o.p,{children:["This command also uses a custom ",(0,r.jsx)(o.code,{children:"session_id"})," value of ",(0,r.jsx)(o.code,{children:"charizard_test_request"}),".\nBy default, session IDs use the ",(0,r.jsx)(o.code,{children:"flow-id"})," value.\nA custom session ID maintains a unique conversation thread, which keeps LLM contexts clean and can make debugging easier.\nFor more information, see ",(0,r.jsx)(o.a,{href:"/session-id",children:"Session ID"}),"."]}),"\n",(0,r.jsx)(d.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"--request ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" --url ",props:{style:{color:"#79C0FF"}}},{content:"'http://localhost:7860/api/v1/run/e4167236-938f-4aca-845b-21de3f399858?stream=false' ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" --header ",props:{style:{color:"#79C0FF"}}},{content:"'Content-Type: application/json' ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" --data ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "input_value": "Tell me about Charizard please",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "output_type": "chat",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "input_type": "chat",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "session_id": "charizard_test_request"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,r.jsx)(o.p,{children:"If the flow streams the result back to you, your flow is being served, and can be consumed from a front-end application by submitting POST requests to this endpoint."}),"\n",(0,r.jsxs)(o.p,{children:["To trigger your application from an external event, see ",(0,r.jsx)(o.a,{href:"/webhook",children:"Webhook"}),"."]}),"\n",(0,r.jsx)(o.admonition,{type:"note",children:(0,r.jsxs)(o.p,{children:["The test application returns a large amount of text, so the example command used ",(0,r.jsx)(o.code,{children:"?stream=true"}),". If you prefer, set ",(0,r.jsx)(o.code,{children:"?stream=false"})," to use batching. For more information, see the ",(0,r.jsx)(o.a,{href:"/api-reference-api-examples#run-flow",children:"API examples"}),"."]})}),"\n",(0,r.jsx)(o.h2,{id:"deploy-to-docker-hub-and-kubernetes",children:"Deploy to Docker Hub and Kubernetes"}),"\n",(0,r.jsxs)(o.p,{children:["For instructions on building and pushing your image to Docker Hub, see ",(0,r.jsx)(o.a,{href:"/deployment-docker",children:"Docker"}),"."]}),"\n",(0,r.jsxs)(o.p,{children:["To deploy your application to Kubernetes, see ",(0,r.jsx)(o.a,{href:"/deployment-kubernetes-prod",children:"Deploy the Langflow production environment to Kubernetes"}),"."]})]})}function u(e={}){const{wrapper:o}={...(0,s.R)(),...e.components};return o?(0,r.jsx)(o,{...e,children:(0,r.jsx)(f,{...e})}):f(e)}function g(e,o){throw new Error("Expected "+(o?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/8ff68e6f.14f967ab.js b/assets/js/8ff68e6f.15d07d80.js
similarity index 99%
rename from assets/js/8ff68e6f.14f967ab.js
rename to assets/js/8ff68e6f.15d07d80.js
index eb14f06739..f4d5fd45b6 100644
--- a/assets/js/8ff68e6f.14f967ab.js
+++ b/assets/js/8ff68e6f.15d07d80.js
@@ -1 +1 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[2624],{6961:(e,t,s)=>{s.r(t),s.d(t,{CH:()=>a,assets:()=>h,chCodeConfig:()=>x,contentTitle:()=>o,default:()=>u,frontMatter:()=>c,metadata:()=>n,toc:()=>j});const n=JSON.parse('{"id":"Components/components-tools","title":"Tools","description":"Tools are typically connected to agent components at the Tools port. Agents use LLMs as a reasoning engine to decide which of the connected tool components to use to solve a problem.","source":"@site/docs/Components/components-tools.md","sourceDirName":"Components","slug":"/components-tools","permalink":"/components-tools","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Tools","slug":"/components-tools"},"sidebar":"docs","previous":{"title":"Prompts","permalink":"/components-prompts"},"next":{"title":"Vector stores","permalink":"/components-vector-stores"}}');var r=s(74848),i=s(28453),d=s(24754),l=s(84443);const c={title:"Tools",slug:"/components-tools"},o="Tool components in Langflow",h={},a={annotations:d.hk,Code:d.Cy},x={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},j=[{value:"Use a tool in a flow",id:"use-a-tool-in-a-flow",level:2},{value:"arXiv",id:"arxiv",level:2},{value:"Astra DB tool",id:"astra-db-tool",level:2},{value:"Define Astra DB tool parameters",id:"define-astra-db-tool-parameters",level:3},{value:"Astra DB CQL Tool",id:"astra-db-cql-tool",level:2},{value:"Bing Search API",id:"bing-search-api",level:2},{value:"Combinatorial Reasoner",id:"combinatorial-reasoner",level:2},{value:"DuckDuckGo search",id:"duckduckgo-search",level:2},{value:"Exa Search",id:"exa-search",level:2},{value:"Glean Search API",id:"glean-search-api",level:2},{value:"Google Serper API",id:"google-serper-api",level:2},{value:"MCP connection",id:"mcp-connection",level:2},{value:"MCP Server-Sent Events (SSE) mode",id:"mcp-sse-mode",level:3},{value:"Wikidata",id:"wikidata",level:2},{value:"Legacy components",id:"legacy-components",level:2},{value:"Calculator Tool",id:"calculator-tool",level:3},{value:"Google Search API",id:"google-search-api",level:3},{value:"Python Code Structured Tool",id:"python-code-structured-tool",level:3},{value:"Python REPL Tool",id:"python-repl-tool",level:3},{value:"Retriever Tool",id:"retriever-tool",level:3},{value:"Search API",id:"search-api",level:3},{value:"SearXNG Search Tool",id:"searxng-search-tool",level:3},{value:"Wikipedia API",id:"wikipedia-api",level:3},{value:"Deprecated components",id:"deprecated-components",level:2},{value:"MCP Tools (stdio)",id:"mcp-tools-stdio",level:3},{value:"MCP Tools (SSE)",id:"mcp-tools-sse",level:3}];function p(e){const t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components},{Details:n}=t;return a||m("CH",!1),a.Code||m("CH.Code",!0),n||m("Details",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"tool-components-in-langflow",children:"Tool components in Langflow"})}),"\n",(0,r.jsxs)(t.p,{children:["Tools are typically connected to agent components at the ",(0,r.jsx)(t.strong,{children:"Tools"})," port. Agents use LLMs as a reasoning engine to decide which of the connected tool components to use to solve a problem."]}),"\n",(0,r.jsxs)(t.p,{children:["Tools in agentic functions are, essentially, functions that the agent can call to perform tasks or access external resources.\nA function is wrapped as a ",(0,r.jsx)(t.code,{children:"Tool"})," object, with a common interface the agent understands.\nAgents become aware of tools through tool registration, where the agent is provided a list of available tools, typically at agent initialization. The ",(0,r.jsx)(t.code,{children:"Tool"})," object's description tells the agent what the tool can do."]}),"\n",(0,r.jsx)(t.p,{children:"The agent then uses a connected LLM to reason through the problem to decide which tool is best for the job."}),"\n",(0,r.jsx)(t.h2,{id:"use-a-tool-in-a-flow",children:"Use a tool in a flow"}),"\n",(0,r.jsxs)(t.p,{children:["Tools are typically connected to agent components at the ",(0,r.jsx)(t.strong,{children:"Tools"})," port."]}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.a,{href:"/starter-projects-simple-agent",children:"simple agent starter project"})," uses URL and Calculator tools connected to an ",(0,r.jsx)(t.a,{href:"/components-agents#agent-component",children:"agent component"})," to answer a user's questions. The OpenAI LLM acts as a brain for the agent to decide which tool to use."]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Simple agent starter flow",src:s(19680).A+"",width:"1732",height:"1748"})}),"\n",(0,r.jsxs)(t.p,{children:["To make a component into a tool that an agent can use, enable ",(0,r.jsx)(t.strong,{children:"Tool mode"})," in the component. Enabling ",(0,r.jsx)(t.strong,{children:"Tool mode"})," modifies a component input to accept calls from an agent.\nIf the component you want to connect to an agent doesn't have a ",(0,r.jsx)(t.strong,{children:"Tool mode"})," option, you can modify the component's inputs to become a tool.\nFor an example, see ",(0,r.jsx)(t.a,{href:"/agents-tool-calling-agent-component#make-any-component-a-tool",children:"Make any component a tool"}),"."]}),"\n",(0,r.jsx)(t.h2,{id:"arxiv",children:"arXiv"}),"\n",(0,r.jsxs)(t.p,{children:["This component searches and retrieves papers from ",(0,r.jsx)(t.a,{href:"https://arXiv.org",children:"arXiv.org"}),"."]}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"search_query"}),(0,r.jsx)(t.td,{children:"String"}),(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:"String"}),(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:"Integer"}),(0,r.jsx)(t.td,{children:"The maximum number of results to return."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"papers"}),(0,r.jsx)(t.td,{children:"List[Data]"}),(0,r.jsx)(t.td,{children:"A list of retrieved arXiv papers."})]})})]})]}),"\n",(0,r.jsx)(t.h2,{id:"astra-db-tool",children:"Astra DB tool"}),"\n",(0,r.jsx)(t.p,{children:"This component allows agents to query data from Astra DB collections."}),"\n",(0,r.jsxs)(t.p,{children:["To use this tool in a flow, connect it to an ",(0,r.jsx)(t.strong,{children:"Agent"})," component.\nThe flow looks like this:"]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Astra DB JSON tool connected to an Agent",src:s(68335).A+"",width:"4000",height:"2742"})}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"Tool Name"})," and ",(0,r.jsx)(t.strong,{children:"Tool Description"})," fields are required for the Agent to decide when to use the tool.\n",(0,r.jsx)(t.strong,{children:"Tool Name"})," cannot contain spaces."]}),"\n",(0,r.jsxs)(t.p,{children:["The values for ",(0,r.jsx)(t.strong,{children:"Collection Name"}),", ",(0,r.jsx)(t.strong,{children:"Astra DB Application Token"}),", and ",(0,r.jsx)(t.strong,{children:"Astra DB API Endpoint"})," are found in your Astra DB deployment. For more information, see the ",(0,r.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/databases/create-database.html",children:"DataStax documentation"}),"."]}),"\n",(0,r.jsxs)(t.p,{children:["In this example, an ",(0,r.jsx)(t.strong,{children:"OpenAI"})," embeddings component is connected to use the Astra DB tool component's ",(0,r.jsx)(t.strong,{children:"Semantic Search"})," capability.\nTo use ",(0,r.jsx)(t.strong,{children:"Semantic Search"}),", you must have an embedding model or Astra DB Vectorize enabled.\nIf you try to run the flow without an embedding model, you will get an error."]}),"\n",(0,r.jsxs)(t.p,{children:["Open the ",(0,r.jsx)(t.strong,{children:"Playground"})," and ask a question about your data.\nThe Agent uses the ",(0,r.jsx)(t.strong,{children:"Astra DB Tool"})," to return information about your collection."]}),"\n",(0,r.jsx)(t.h3,{id:"define-astra-db-tool-parameters",children:"Define Astra DB tool parameters"}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"Tool Parameters"})," configuration pane allows you to define parameters for ",(0,r.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/api-reference/document-methods/find-many.html#parameters",children:"filter conditions"})," for the component's ",(0,r.jsx)(t.strong,{children:"Find"})," command."]}),"\n",(0,r.jsxs)(t.p,{children:["These filters become available as parameters that the LLM can use when calling the tool, with a better understanding of each parameter provided by the ",(0,r.jsx)(t.strong,{children:"Description"})," field."]}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["To define a parameter for your query, in the ",(0,r.jsx)(t.strong,{children:"Tool Parameters"})," pane, click ",(0,r.jsx)(l.A,{name:"Plus","aria-label":"Add"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Complete the fields based on your data. For example, with this filter, the LLM can filter by unique ",(0,r.jsx)(t.code,{children:"customer_id"})," values."]}),"\n"]}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:["Name: ",(0,r.jsx)(t.code,{children:"customer_id"})]}),"\n",(0,r.jsx)(t.li,{children:"Attribute Name: Leave empty if the attribute matches the field name in the database."}),"\n",(0,r.jsxs)(t.li,{children:["Description: ",(0,r.jsx)(t.code,{children:'"The unique identifier of the customer to filter by"'}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Is Metadata: ",(0,r.jsx)(t.code,{children:"False"})," unless the value stored in the metadata field."]}),"\n",(0,r.jsxs)(t.li,{children:["Is Mandatory: ",(0,r.jsx)(t.code,{children:"True"})," to require this filter."]}),"\n",(0,r.jsxs)(t.li,{children:["Is Timestamp: ",(0,r.jsx)(t.code,{children:"False"})," since the value is an ID, not a timestamp."]}),"\n",(0,r.jsxs)(t.li,{children:["Operator: ",(0,r.jsx)(t.code,{children:"$eq"})," to look for an exact match."]}),"\n"]}),"\n",(0,r.jsxs)(t.p,{children:["If you want to apply filters regardless of the LLM's input, use the ",(0,r.jsx)(t.strong,{children:"Static Filters"})," option, which is available in the component's ",(0,r.jsx)(t.strong,{children:"Controls"})," pane."]}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Parameter"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Name"}),(0,r.jsx)(t.td,{children:"The name of the parameter that is exposed to the LLM. It can be the same as the underlying field name or a more descriptive label. The LLM uses this name, along with the description, to infer what value to provide during execution."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Attribute Name"}),(0,r.jsxs)(t.td,{children:["When the parameter name shown to the LLM differs from the actual field or property in the database, use this setting to map the user-facing name to the correct attribute. For example, to apply a range filter to the timestamp field, define two separate parameters, such as ",(0,r.jsx)(t.code,{children:"start_date"})," and ",(0,r.jsx)(t.code,{children:"end_date"}),", that both reference the same timestamp attribute."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Description"}),(0,r.jsxs)(t.td,{children:["Provides instructions to the LLM on how the parameter should be used. Clear and specific guidance helps the LLM provide valid input. For example, if a field such as ",(0,r.jsx)(t.code,{children:"specialty"})," is stored in lowercase, the description should indicate that the input must be lowercase."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Is Metadata"}),(0,r.jsxs)(t.td,{children:["When loading data using LangChain or Langflow, additional attributes may be stored under a metadata object. If the target attribute is stored this way, enable this option. It adjusts the query by generating a filter in the format: ",(0,r.jsx)(t.code,{children:'{"metadata.": ""}'})]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Is Timestamp"}),(0,r.jsx)(t.td,{children:"For date or time-based filters, enable this option to automatically convert values to the timestamp format that the Astrapy client expects. This ensures compatibility with the underlying API without requiring manual formatting."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Operator"}),(0,r.jsxs)(t.td,{children:["Defines the filtering logic applied to the attribute. You can use any valid ",(0,r.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/api-reference/filter-operator-collections.html",children:"Data API filter operator"}),". For example, to filter a time range on the timestamp attribute, use two parameters: one with the ",(0,r.jsx)(t.code,{children:"$gt"}),' operator for "greater than", and another with the ',(0,r.jsx)(t.code,{children:"$lt"}),' operator for "less than".']})]})]})]}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Tool Name"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The name used to reference the tool in the agent's prompt."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Tool Description"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"A brief description of the tool. This helps the model decide when to use it."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Collection Name"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The name of the Astra DB collection to query."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Token"}),(0,r.jsx)(t.td,{children:"SecretString"}),(0,r.jsx)(t.td,{children:"The authentication token for accessing Astra DB."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"API Endpoint"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The Astra DB API endpoint."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Projection Fields"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsxs)(t.td,{children:["The attributes to return, separated by commas. The default is ",(0,r.jsx)(t.code,{children:"*"}),"."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Tool Parameters"}),(0,r.jsx)(t.td,{children:"Dict"}),(0,r.jsxs)(t.td,{children:["Parameters the model needs to fill to execute the tool. For required parameters, use an exclamation mark, for example ",(0,r.jsx)(t.code,{children:"!customer_id"}),"."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Static Filters"}),(0,r.jsx)(t.td,{children:"Dict"}),(0,r.jsx)(t.td,{children:"Attribute-value pairs used to filter query results."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Limit"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The number of documents to return."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"Data"})," output is used when directly querying Astra DB, while the ",(0,r.jsx)(t.strong,{children:"Tool"})," output is used when integrating with agents."]}),(0,r.jsxs)(t.table,{children:[(0,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 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)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"A 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:"The 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:"A custom Bing Search URL."})]}),(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:"The number of search results to return."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"A 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:"A Bing Search tool for use in LangChain."})]})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"combinatorial-reasoner",children:"Combinatorial Reasoner"}),"\n",(0,r.jsxs)(t.p,{children:["This component runs Icosa's Combinatorial Reasoning (CR) pipeline on an input to create an optimized prompt with embedded reasons. For more information, see ",(0,r.jsx)(t.a,{href:"https://www.icosacomputing.com/",children:"Icosa computing"}),"."]}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"prompt"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The 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:"SecretString"}),(0,r.jsx)(t.td,{children:"An OpenAI API key for authentication."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"username"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"A username for Icosa API authentication."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"password"}),(0,r.jsx)(t.td,{children:"SecretString"}),(0,r.jsx)(t.td,{children:"A 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:"String"}),(0,r.jsx)(t.td,{children:"The OpenAI LLM to use for reason generation."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"optimized_prompt"}),(0,r.jsx)(t.td,{children:"Message"}),(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:"List[String]"}),(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.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"The search query to execute with DuckDuckGo."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"max_results"}),(0,r.jsx)(t.td,{children:"Integer"}),(0,r.jsx)(t.td,{children:"The maximum number of search results to return. Default: 5."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"max_snippet_length"}),(0,r.jsx)(t.td,{children:"Integer"}),(0,r.jsx)(t.td,{children:"The maximum length of each result snippet. Default: 100."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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.jsx)(t.td,{children:"A list of search results as Data objects containing snippets and full content."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"text"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The search results formatted as a single text string."})]})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"exa-search",children:"Exa Search"}),"\n",(0,r.jsxs)(t.p,{children:["This component provides an ",(0,r.jsx)(t.a,{href:"https://exa.ai/",children:"Exa Search"})," toolkit for search and content retrieval."]}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"metaphor_api_key"}),(0,r.jsx)(t.td,{children:"SecretString"}),(0,r.jsx)(t.td,{children:"An API key for Exa Search."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"use_autoprompt"}),(0,r.jsx)(t.td,{children:"Boolean"}),(0,r.jsx)(t.td,{children:"Whether to use the 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:"Integer"}),(0,r.jsx)(t.td,{children:"The 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:"Integer"}),(0,r.jsx)(t.td,{children:"The number of similar results to return. Default: 5."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"A 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.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"The 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:"An 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:"The 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:"The 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."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"A 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:"A Glean 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.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"An 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:"The 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:"The number of search results to return."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"A 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:"A Google Serper search tool for use in LangChain."})]})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"mcp-connection",children:"MCP connection"}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"MCP connection"})," component connects to a ",(0,r.jsx)(t.a,{href:"https://modelcontextprotocol.io/introduction",children:"Model Context Protocol (MCP)"})," server and exposes the MCP server's tools as tools for Langflow agents."]}),"\n",(0,r.jsxs)(t.p,{children:["In addition to being an MCP client that can leverage MCP servers, the ",(0,r.jsx)(t.strong,{children:"MCP connection"})," component's ",(0,r.jsx)(t.a,{href:"#mcp-sse-mode",children:"SSE mode"})," allows you to connect your flow to the Langflow MCP server at the ",(0,r.jsx)(t.code,{children:"/api/v1/mcp/sse"})," API endpoint, exposing all flows within your ",(0,r.jsx)(t.a,{href:"/concepts-overview#projects",children:"project"})," as tools within a flow."]}),"\n",(0,r.jsxs)(t.p,{children:["To use the ",(0,r.jsx)(t.strong,{children:"MCP connection"})," component with an agent component, follow these steps:"]}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Add the ",(0,r.jsx)(t.strong,{children:"MCP connection"})," component to your workflow."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["In the ",(0,r.jsx)(t.strong,{children:"MCP connection"})," component, in the ",(0,r.jsx)(t.strong,{children:"MCP Command"})," field, enter the command to start your MCP server. For example, to start a ",(0,r.jsx)(t.a,{href:"https://github.com/modelcontextprotocol/servers/tree/main/src/fetch",children:"Fetch"})," server, the command is:"]}),"\n",(0,r.jsx)(a.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uvx ",props:{style:{color:"#FFA657"}}},{content:"mcp-server-fetch",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.code,{children:"uvx"})," is included with ",(0,r.jsx)(t.code,{children:"uv"})," in the Langflow package.\nTo use ",(0,r.jsx)(t.code,{children:"npx"})," server commands, you must first install an LTS release of ",(0,r.jsx)(t.a,{href:"https://docs.npmjs.com/downloading-and-installing-node-js-and-npm",children:"Node.js"}),".\nFor an example of starting ",(0,r.jsx)(t.code,{children:"npx"})," MCP servers, see ",(0,r.jsx)(t.a,{href:"/mcp-component-astra",children:"Connect an Astra DB MCP server to Langflow"}),"."]}),"\n",(0,r.jsxs)(t.p,{children:["To include environment variables with your server command, add them to the ",(0,r.jsx)(t.strong,{children:"Env"})," field like this:"]}),"\n",(0,r.jsx)(a.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"ASTRA_DB_APPLICATION_TOKEN",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"AstraCS:...",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,r.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["Langflow passes environment variables from the ",(0,r.jsx)(t.code,{children:".env"})," file to MCP, but not global variables declared in the UI.\nTo add a value for an environment variable as a global variable, add it to Langflow's ",(0,r.jsx)(t.code,{children:".env"})," file at startup.\nFor more information, see ",(0,r.jsx)(t.a,{href:"/configuration-global-variables",children:"global variables"}),"."]})}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Click ",(0,r.jsx)(l.A,{name:"RefreshCw","aria-label":"Refresh"})," to get the server's list of ",(0,r.jsx)(t.strong,{children:"Tools"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["In the ",(0,r.jsx)(t.strong,{children:"Tool"})," field, select the server tool you want the component to use.\nThe available fields change based on the selected tool.\nFor information on the parameters, see the MCP server's documentation."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["In the ",(0,r.jsx)(t.strong,{children:"MCP connection"})," component, enable ",(0,r.jsx)(t.strong,{children:"Tool mode"}),".\nConnect the ",(0,r.jsx)(t.strong,{children:"MCP connection"})," component's ",(0,r.jsx)(t.strong,{children:"Toolset"})," port to an ",(0,r.jsx)(t.strong,{children:"Agent"})," component's ",(0,r.jsx)(t.strong,{children:"Tools"})," port."]}),"\n",(0,r.jsxs)(t.p,{children:["The flow looks similar to this:\n",(0,r.jsx)(t.img,{alt:"MCP connection component",src:s(63963).A+"",width:"4000",height:"2354"})]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Open the ",(0,r.jsx)(t.strong,{children:"Playground"}),".\nAsk the agent to summarize recent tech news. The agent calls the MCP server function ",(0,r.jsx)(t.code,{children:"fetch"})," and returns the summary.\nThis confirms the MCP server is connected, and its tools are being used in Langflow."]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(t.p,{children:["For more information, see ",(0,r.jsx)(t.a,{href:"/mcp-server",children:"MCP server"}),"."]}),"\n",(0,r.jsx)(t.h3,{id:"mcp-sse-mode",children:"MCP Server-Sent Events (SSE) mode"}),"\n",(0,r.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["If you're using ",(0,r.jsx)(t.strong,{children:"Langflow for Desktop"}),", the default address is ",(0,r.jsx)(t.code,{children:"http://127.0.0.1:7868/"}),"."]})}),"\n",(0,r.jsxs)(t.p,{children:["The MCP component's SSE mode connects your flow to the Langflow MCP server through the component.\nThis allows you to use all flows within your ",(0,r.jsx)(t.a,{href:"/concepts-overview#projects",children:"project"})," as tools within a flow."]}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"MCP connection"})," component, select ",(0,r.jsx)(t.strong,{children:"SSE"}),".\nA default address appears in the ",(0,r.jsx)(t.strong,{children:"MCP SSE URL"})," field."]}),"\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"MCP SSE URL"})," field, modify the default address to point at the SSE endpoint of the Langflow server you're currently running.\nThe default value is ",(0,r.jsx)(t.code,{children:"http://localhost:7860/api/v1/mcp/sse"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"MCP connection"})," component, click ",(0,r.jsx)(l.A,{name:"RefreshCw","aria-label":"Refresh"})," to retrieve the server's list of ",(0,r.jsx)(t.strong,{children:"Tools"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Click the ",(0,r.jsx)(t.strong,{children:"Tools"})," field.\nAll of your flows are listed as tools."]}),"\n",(0,r.jsxs)(t.li,{children:["Enable ",(0,r.jsx)(t.strong,{children:"Tool Mode"}),", and then connect the ",(0,r.jsx)(t.strong,{children:"MCP connection"})," component to an agent component's tool port.\nThe flow looks like this:\n",(0,r.jsx)(t.img,{alt:"MCP component with SSE mode enabled",src:s(68347).A+"",width:"4000",height:"2348"})]}),"\n",(0,r.jsxs)(t.li,{children:["Open the ",(0,r.jsx)(t.strong,{children:"Playground"})," and chat with your tool.\nThe agent chooses the correct tool based on your query."]}),"\n"]}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:["The MCP command. Default: ",(0,r.jsx)(t.code,{children:"uvx mcp-sse-shim@latest"}),"."]})]})})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"A list of tools exposed by the MCP server."})]})})]})]}),"\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.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"query"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The text query for similarity search on Wikidata."})]})})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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.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:"legacy-components",children:"Legacy components"}),"\n",(0,r.jsx)(t.p,{children:"Legacy components are available for use but are no longer supported."}),"\n",(0,r.jsx)(t.h3,{id:"calculator-tool",children:"Calculator Tool"}),"\n",(0,r.jsx)(t.p,{children:"This component allows you to evaluate basic arithmetic expressions. It supports addition, subtraction, multiplication, division, and exponentiation."}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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"}),"."]})]})})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"A calculator tool for use in LangChain."})]})})]})]}),"\n",(0,r.jsx)(t.h3,{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.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"A 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:"A 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:"The 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:"The number of search results to return."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"A 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:"A Google Search tool for use in LangChain."})]})]})]})]}),"\n",(0,r.jsx)(t.h3,{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.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"The 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:"The 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:"The 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:"The 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."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"A structured tool created from the Python code."})]})})]})]}),"\n",(0,r.jsx)(t.h3,{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.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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.jsxs)(t.td,{children:["The name of the tool. Default: ",(0,r.jsx)(t.code,{children:"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.jsxs)(t.td,{children:["A list of modules to import globally. Default: ",(0,r.jsx)(t.code,{children:"math"}),"."]})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"A Python REPL tool for use in LangChain."})]})})]})]}),"\n",(0,r.jsx)(t.h3,{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.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"A retriever tool for use in LangChain."})]})})]})]}),"\n",(0,r.jsx)(t.h3,{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.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"engine"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsxs)(t.td,{children:["The search engine to use. Default: ",(0,r.jsx)(t.code,{children:"google"}),"."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"api_key"}),(0,r.jsx)(t.td,{children:"SecretString"}),(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:"String"}),(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:"Dict"}),(0,r.jsx)(t.td,{children:"Additional parameters for customizing the search."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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.jsx)(t.td,{children:"A 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:"Tool"}),(0,r.jsx)(t.td,{children:"A Tool object for use in LangChain workflows."})]})]})]})]}),"\n",(0,r.jsx)(t.h3,{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.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"The 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:"The 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:"The language for the search results."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"A SearXNG search tool for use in LangChain."})]})})]})]}),"\n",(0,r.jsx)(t.h3,{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.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"The 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.jsxs)(t.td,{children:["The language code for Wikipedia. Default: ",(0,r.jsx)(t.code,{children:"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:"The 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."})]}),(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:"The maximum number of characters for document content."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"A 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:"A Wikipedia search tool for use in LangChain."})]})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"deprecated-components",children:"Deprecated components"}),"\n",(0,r.jsx)(t.p,{children:"Deprecated components have been replaced by newer alternatives and should not be used in new projects."}),"\n",(0,r.jsx)(t.h3,{id:"mcp-tools-stdio",children:"MCP Tools (stdio)"}),"\n",(0,r.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is deprecated as of Langflow version 1.3.\nInstead, use the ",(0,r.jsx)(t.a,{href:"/components-tools#mcp-connection",children:"MCP connection component"})]})}),"\n",(0,r.jsx)(t.h3,{id:"mcp-tools-sse",children:"MCP Tools (SSE)"}),"\n",(0,r.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is deprecated as of Langflow version 1.3.\nInstead, use the ",(0,r.jsx)(t.a,{href:"/components-tools#mcp-connection",children:"MCP connection component"})]})})]})}function u(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(p,{...e})}):p(e)}function m(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},19680:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/starter-flow-simple-agent-71d0dec218a5da8e3110c51716f1c91e.png"},63963:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/component-mcp-stdio-636cfeb73567d12b0a0761c8738cad17.png"},68335:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/component-astra-db-json-tool-117aff566c0df01a555264bb128b3693.png"},68347:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/component-mcp-sse-mode-a9f0716d810589ea26be2805bc4ec9dd.png"},84443:(e,t,s)=>{s.d(t,{A:()=>i});s(96540);var n=s(64058),r=s(74848);function i(e){let{name:t,...s}=e;const i=n[t];return i?(0,r.jsx)(i,{...s}):null}}}]);
\ No newline at end of file
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[2624],{6961:(e,t,s)=>{s.r(t),s.d(t,{CH:()=>a,assets:()=>h,chCodeConfig:()=>x,contentTitle:()=>c,default:()=>u,frontMatter:()=>o,metadata:()=>n,toc:()=>j});const n=JSON.parse('{"id":"Components/components-tools","title":"Tools","description":"Tools are typically connected to agent components at the Tools port. Agents use LLMs as a reasoning engine to decide which of the connected tool components to use to solve a problem.","source":"@site/docs/Components/components-tools.md","sourceDirName":"Components","slug":"/components-tools","permalink":"/components-tools","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Tools","slug":"/components-tools"},"sidebar":"docs","previous":{"title":"Prompts","permalink":"/components-prompts"},"next":{"title":"Vector stores","permalink":"/components-vector-stores"}}');var r=s(74848),i=s(28453),d=s(24754),l=s(84443);const o={title:"Tools",slug:"/components-tools"},c="Tool components in Langflow",h={},a={annotations:d.hk,Code:d.Cy},x={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},j=[{value:"Use a tool in a flow",id:"use-a-tool-in-a-flow",level:2},{value:"arXiv",id:"arxiv",level:2},{value:"Astra DB tool",id:"astra-db-tool",level:2},{value:"Define Astra DB tool parameters",id:"define-astra-db-tool-parameters",level:3},{value:"Astra DB CQL Tool",id:"astra-db-cql-tool",level:2},{value:"Bing Search API",id:"bing-search-api",level:2},{value:"Combinatorial Reasoner",id:"combinatorial-reasoner",level:2},{value:"DuckDuckGo search",id:"duckduckgo-search",level:2},{value:"Exa Search",id:"exa-search",level:2},{value:"Glean Search API",id:"glean-search-api",level:2},{value:"Google Serper API",id:"google-serper-api",level:2},{value:"MCP connection",id:"mcp-connection",level:2},{value:"MCP Server-Sent Events (SSE) mode",id:"mcp-sse-mode",level:3},{value:"Wikidata",id:"wikidata",level:2},{value:"Legacy components",id:"legacy-components",level:2},{value:"Calculator Tool",id:"calculator-tool",level:3},{value:"Google Search API",id:"google-search-api",level:3},{value:"Python Code Structured Tool",id:"python-code-structured-tool",level:3},{value:"Python REPL Tool",id:"python-repl-tool",level:3},{value:"Retriever Tool",id:"retriever-tool",level:3},{value:"Search API",id:"search-api",level:3},{value:"SearXNG Search Tool",id:"searxng-search-tool",level:3},{value:"Wikipedia API",id:"wikipedia-api",level:3},{value:"Deprecated components",id:"deprecated-components",level:2},{value:"MCP Tools (stdio)",id:"mcp-tools-stdio",level:3},{value:"MCP Tools (SSE)",id:"mcp-tools-sse",level:3}];function p(e){const t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components},{Details:n}=t;return a||m("CH",!1),a.Code||m("CH.Code",!0),n||m("Details",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"tool-components-in-langflow",children:"Tool components in Langflow"})}),"\n",(0,r.jsxs)(t.p,{children:["Tools are typically connected to agent components at the ",(0,r.jsx)(t.strong,{children:"Tools"})," port. Agents use LLMs as a reasoning engine to decide which of the connected tool components to use to solve a problem."]}),"\n",(0,r.jsxs)(t.p,{children:["Tools in agentic functions are, essentially, functions that the agent can call to perform tasks or access external resources.\nA function is wrapped as a ",(0,r.jsx)(t.code,{children:"Tool"})," object, with a common interface the agent understands.\nAgents become aware of tools through tool registration, where the agent is provided a list of available tools, typically at agent initialization. The ",(0,r.jsx)(t.code,{children:"Tool"})," object's description tells the agent what the tool can do."]}),"\n",(0,r.jsx)(t.p,{children:"The agent then uses a connected LLM to reason through the problem to decide which tool is best for the job."}),"\n",(0,r.jsx)(t.h2,{id:"use-a-tool-in-a-flow",children:"Use a tool in a flow"}),"\n",(0,r.jsxs)(t.p,{children:["Tools are typically connected to agent components at the ",(0,r.jsx)(t.strong,{children:"Tools"})," port."]}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.a,{href:"/starter-projects-simple-agent",children:"simple agent starter project"})," uses URL and Calculator tools connected to an ",(0,r.jsx)(t.a,{href:"/components-agents#agent-component",children:"agent component"})," to answer a user's questions. The OpenAI LLM acts as a brain for the agent to decide which tool to use."]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Simple agent starter flow",src:s(19680).A+"",width:"1732",height:"1748"})}),"\n",(0,r.jsxs)(t.p,{children:["To make a component into a tool that an agent can use, enable ",(0,r.jsx)(t.strong,{children:"Tool mode"})," in the component. Enabling ",(0,r.jsx)(t.strong,{children:"Tool mode"})," modifies a component input to accept calls from an agent.\nIf the component you want to connect to an agent doesn't have a ",(0,r.jsx)(t.strong,{children:"Tool mode"})," option, you can modify the component's inputs to become a tool.\nFor an example, see ",(0,r.jsx)(t.a,{href:"/agents-tool-calling-agent-component#make-any-component-a-tool",children:"Make any component a tool"}),"."]}),"\n",(0,r.jsx)(t.h2,{id:"arxiv",children:"arXiv"}),"\n",(0,r.jsxs)(t.p,{children:["This component searches and retrieves papers from ",(0,r.jsx)(t.a,{href:"https://arXiv.org",children:"arXiv.org"}),"."]}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"search_query"}),(0,r.jsx)(t.td,{children:"String"}),(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:"String"}),(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:"Integer"}),(0,r.jsx)(t.td,{children:"The maximum number of results to return."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"papers"}),(0,r.jsx)(t.td,{children:"List[Data]"}),(0,r.jsx)(t.td,{children:"A list of retrieved arXiv papers."})]})})]})]}),"\n",(0,r.jsx)(t.h2,{id:"astra-db-tool",children:"Astra DB tool"}),"\n",(0,r.jsx)(t.p,{children:"This component allows agents to query data from Astra DB collections."}),"\n",(0,r.jsxs)(t.p,{children:["To use this tool in a flow, connect it to an ",(0,r.jsx)(t.strong,{children:"Agent"})," component.\nThe flow looks like this:"]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Astra DB JSON tool connected to an Agent",src:s(68335).A+"",width:"4000",height:"2742"})}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"Tool Name"})," and ",(0,r.jsx)(t.strong,{children:"Tool Description"})," fields are required for the Agent to decide when to use the tool.\n",(0,r.jsx)(t.strong,{children:"Tool Name"})," cannot contain spaces."]}),"\n",(0,r.jsxs)(t.p,{children:["The values for ",(0,r.jsx)(t.strong,{children:"Collection Name"}),", ",(0,r.jsx)(t.strong,{children:"Astra DB Application Token"}),", and ",(0,r.jsx)(t.strong,{children:"Astra DB API Endpoint"})," are found in your Astra DB deployment. For more information, see the ",(0,r.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/databases/create-database.html",children:"DataStax documentation"}),"."]}),"\n",(0,r.jsxs)(t.p,{children:["In this example, an ",(0,r.jsx)(t.strong,{children:"OpenAI"})," embeddings component is connected to use the Astra DB tool component's ",(0,r.jsx)(t.strong,{children:"Semantic Search"})," capability.\nTo use ",(0,r.jsx)(t.strong,{children:"Semantic Search"}),", you must have an embedding model or Astra DB Vectorize enabled.\nIf you try to run the flow without an embedding model, you will get an error."]}),"\n",(0,r.jsxs)(t.p,{children:["Open the ",(0,r.jsx)(t.strong,{children:"Playground"})," and ask a question about your data.\nThe Agent uses the ",(0,r.jsx)(t.strong,{children:"Astra DB Tool"})," to return information about your collection."]}),"\n",(0,r.jsx)(t.h3,{id:"define-astra-db-tool-parameters",children:"Define Astra DB tool parameters"}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"Tool Parameters"})," configuration pane allows you to define parameters for ",(0,r.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/api-reference/document-methods/find-many.html#parameters",children:"filter conditions"})," for the component's ",(0,r.jsx)(t.strong,{children:"Find"})," command."]}),"\n",(0,r.jsxs)(t.p,{children:["These filters become available as parameters that the LLM can use when calling the tool, with a better understanding of each parameter provided by the ",(0,r.jsx)(t.strong,{children:"Description"})," field."]}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["To define a parameter for your query, in the ",(0,r.jsx)(t.strong,{children:"Tool Parameters"})," pane, click ",(0,r.jsx)(l.A,{name:"Plus","aria-label":"Add"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Complete the fields based on your data. For example, with this filter, the LLM can filter by unique ",(0,r.jsx)(t.code,{children:"customer_id"})," values."]}),"\n"]}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:["Name: ",(0,r.jsx)(t.code,{children:"customer_id"})]}),"\n",(0,r.jsx)(t.li,{children:"Attribute Name: Leave empty if the attribute matches the field name in the database."}),"\n",(0,r.jsxs)(t.li,{children:["Description: ",(0,r.jsx)(t.code,{children:'"The unique identifier of the customer to filter by"'}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Is Metadata: ",(0,r.jsx)(t.code,{children:"False"})," unless the value stored in the metadata field."]}),"\n",(0,r.jsxs)(t.li,{children:["Is Mandatory: ",(0,r.jsx)(t.code,{children:"True"})," to require this filter."]}),"\n",(0,r.jsxs)(t.li,{children:["Is Timestamp: ",(0,r.jsx)(t.code,{children:"False"})," since the value is an ID, not a timestamp."]}),"\n",(0,r.jsxs)(t.li,{children:["Operator: ",(0,r.jsx)(t.code,{children:"$eq"})," to look for an exact match."]}),"\n"]}),"\n",(0,r.jsxs)(t.p,{children:["If you want to apply filters regardless of the LLM's input, use the ",(0,r.jsx)(t.strong,{children:"Static Filters"})," option, which is available in the component's ",(0,r.jsx)(t.strong,{children:"Controls"})," pane."]}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Parameter"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Name"}),(0,r.jsx)(t.td,{children:"The name of the parameter that is exposed to the LLM. It can be the same as the underlying field name or a more descriptive label. The LLM uses this name, along with the description, to infer what value to provide during execution."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Attribute Name"}),(0,r.jsxs)(t.td,{children:["When the parameter name shown to the LLM differs from the actual field or property in the database, use this setting to map the user-facing name to the correct attribute. For example, to apply a range filter to the timestamp field, define two separate parameters, such as ",(0,r.jsx)(t.code,{children:"start_date"})," and ",(0,r.jsx)(t.code,{children:"end_date"}),", that both reference the same timestamp attribute."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Description"}),(0,r.jsxs)(t.td,{children:["Provides instructions to the LLM on how the parameter should be used. Clear and specific guidance helps the LLM provide valid input. For example, if a field such as ",(0,r.jsx)(t.code,{children:"specialty"})," is stored in lowercase, the description should indicate that the input must be lowercase."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Is Metadata"}),(0,r.jsxs)(t.td,{children:["When loading data using LangChain or Langflow, additional attributes may be stored under a metadata object. If the target attribute is stored this way, enable this option. It adjusts the query by generating a filter in the format: ",(0,r.jsx)(t.code,{children:'{"metadata.": ""}'})]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Is Timestamp"}),(0,r.jsx)(t.td,{children:"For date or time-based filters, enable this option to automatically convert values to the timestamp format that the Astrapy client expects. This ensures compatibility with the underlying API without requiring manual formatting."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Operator"}),(0,r.jsxs)(t.td,{children:["Defines the filtering logic applied to the attribute. You can use any valid ",(0,r.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/api-reference/filter-operator-collections.html",children:"Data API filter operator"}),". For example, to filter a time range on the timestamp attribute, use two parameters: one with the ",(0,r.jsx)(t.code,{children:"$gt"}),' operator for "greater than", and another with the ',(0,r.jsx)(t.code,{children:"$lt"}),' operator for "less than".']})]})]})]}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Tool Name"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The name used to reference the tool in the agent's prompt."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Tool Description"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"A brief description of the tool. This helps the model decide when to use it."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Collection Name"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The name of the Astra DB collection to query."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Token"}),(0,r.jsx)(t.td,{children:"SecretString"}),(0,r.jsx)(t.td,{children:"The authentication token for accessing Astra DB."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"API Endpoint"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The Astra DB API endpoint."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Projection Fields"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsxs)(t.td,{children:["The attributes to return, separated by commas. The default is ",(0,r.jsx)(t.code,{children:"*"}),"."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Tool Parameters"}),(0,r.jsx)(t.td,{children:"Dict"}),(0,r.jsxs)(t.td,{children:["Parameters the model needs to fill to execute the tool. For required parameters, use an exclamation mark, for example ",(0,r.jsx)(t.code,{children:"!customer_id"}),"."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Static Filters"}),(0,r.jsx)(t.td,{children:"Dict"}),(0,r.jsx)(t.td,{children:"Attribute-value pairs used to filter query results."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Limit"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The number of documents to return."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"Data"})," output is used when directly querying Astra DB, while the ",(0,r.jsx)(t.strong,{children:"Tool"})," output is used when integrating with agents."]}),(0,r.jsxs)(t.table,{children:[(0,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 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)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"A 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:"The 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:"A custom Bing Search URL."})]}),(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:"The number of search results to return."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"A 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:"A Bing Search tool for use in LangChain."})]})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"combinatorial-reasoner",children:"Combinatorial Reasoner"}),"\n",(0,r.jsxs)(t.p,{children:["This component runs Icosa's Combinatorial Reasoning (CR) pipeline on an input to create an optimized prompt with embedded reasons. For more information, see ",(0,r.jsx)(t.a,{href:"https://www.icosacomputing.com/",children:"Icosa computing"}),"."]}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"prompt"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The 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:"SecretString"}),(0,r.jsx)(t.td,{children:"An OpenAI API key for authentication."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"username"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"A username for Icosa API authentication."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"password"}),(0,r.jsx)(t.td,{children:"SecretString"}),(0,r.jsx)(t.td,{children:"A 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:"String"}),(0,r.jsx)(t.td,{children:"The OpenAI LLM to use for reason generation."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"optimized_prompt"}),(0,r.jsx)(t.td,{children:"Message"}),(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:"List[String]"}),(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.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"The search query to execute with DuckDuckGo."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"max_results"}),(0,r.jsx)(t.td,{children:"Integer"}),(0,r.jsx)(t.td,{children:"The maximum number of search results to return. Default: 5."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"max_snippet_length"}),(0,r.jsx)(t.td,{children:"Integer"}),(0,r.jsx)(t.td,{children:"The maximum length of each result snippet. Default: 100."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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.jsx)(t.td,{children:"A list of search results as Data objects containing snippets and full content."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"text"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The search results formatted as a single text string."})]})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"exa-search",children:"Exa Search"}),"\n",(0,r.jsxs)(t.p,{children:["This component provides an ",(0,r.jsx)(t.a,{href:"https://exa.ai/",children:"Exa Search"})," toolkit for search and content retrieval."]}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"metaphor_api_key"}),(0,r.jsx)(t.td,{children:"SecretString"}),(0,r.jsx)(t.td,{children:"An API key for Exa Search."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"use_autoprompt"}),(0,r.jsx)(t.td,{children:"Boolean"}),(0,r.jsx)(t.td,{children:"Whether to use the 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:"Integer"}),(0,r.jsx)(t.td,{children:"The 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:"Integer"}),(0,r.jsx)(t.td,{children:"The number of similar results to return. Default: 5."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"A 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.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"The 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:"An 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:"The 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:"The 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."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"A 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:"A Glean 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.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"An 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:"The 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:"The number of search results to return."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"A 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:"A Google Serper search tool for use in LangChain."})]})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"mcp-connection",children:"MCP connection"}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"MCP connection"})," component connects to a ",(0,r.jsx)(t.a,{href:"https://modelcontextprotocol.io/introduction",children:"Model Context Protocol (MCP)"})," server and exposes the MCP server's tools as tools for Langflow agents."]}),"\n",(0,r.jsxs)(t.p,{children:["In addition to being an MCP client that can leverage MCP servers, the ",(0,r.jsx)(t.strong,{children:"MCP connection"})," component's ",(0,r.jsx)(t.a,{href:"#mcp-sse-mode",children:"SSE mode"})," allows you to connect your flow to the Langflow MCP server at the ",(0,r.jsx)(t.code,{children:"/api/v1/mcp/sse"})," API endpoint, exposing all flows within your ",(0,r.jsx)(t.a,{href:"/concepts-overview#projects",children:"project"})," as tools within a flow."]}),"\n",(0,r.jsxs)(t.p,{children:["To use the ",(0,r.jsx)(t.strong,{children:"MCP connection"})," component with an agent component, follow these steps:"]}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Add the ",(0,r.jsx)(t.strong,{children:"MCP connection"})," component to your workflow."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["In the ",(0,r.jsx)(t.strong,{children:"MCP connection"})," component, in the ",(0,r.jsx)(t.strong,{children:"MCP Command"})," field, enter the command to start your MCP server. For example, to start a ",(0,r.jsx)(t.a,{href:"https://github.com/modelcontextprotocol/servers/tree/main/src/fetch",children:"Fetch"})," server, the command is:"]}),"\n",(0,r.jsx)(a.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uvx ",props:{style:{color:"#FFA657"}}},{content:"mcp-server-fetch",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.code,{children:"uvx"})," is included with ",(0,r.jsx)(t.code,{children:"uv"})," in the Langflow package.\nTo use ",(0,r.jsx)(t.code,{children:"npx"})," server commands, you must first install an LTS release of ",(0,r.jsx)(t.a,{href:"https://docs.npmjs.com/downloading-and-installing-node-js-and-npm",children:"Node.js"}),".\nFor an example of starting ",(0,r.jsx)(t.code,{children:"npx"})," MCP servers, see ",(0,r.jsx)(t.a,{href:"/mcp-component-astra",children:"Connect an Astra DB MCP server to Langflow"}),"."]}),"\n",(0,r.jsxs)(t.p,{children:["To include environment variables with your server command, add them to the ",(0,r.jsx)(t.strong,{children:"Env"})," field like this:"]}),"\n",(0,r.jsx)(a.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"ASTRA_DB_APPLICATION_TOKEN",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"AstraCS:...",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,r.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["Langflow passes environment variables from the ",(0,r.jsx)(t.code,{children:".env"})," file to MCP, but not global variables declared in the UI.\nTo add a value for an environment variable as a global variable, add it to Langflow's ",(0,r.jsx)(t.code,{children:".env"})," file at startup.\nFor more information, see ",(0,r.jsx)(t.a,{href:"/configuration-global-variables",children:"global variables"}),"."]})}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Click ",(0,r.jsx)(l.A,{name:"RefreshCw","aria-label":"Refresh"})," to get the server's list of ",(0,r.jsx)(t.strong,{children:"Tools"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["In the ",(0,r.jsx)(t.strong,{children:"Tool"})," field, select the server tool you want the component to use.\nThe available fields change based on the selected tool.\nFor information on the parameters, see the MCP server's documentation."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["In the ",(0,r.jsx)(t.strong,{children:"MCP connection"})," component, enable ",(0,r.jsx)(t.strong,{children:"Tool mode"}),".\nConnect the ",(0,r.jsx)(t.strong,{children:"MCP connection"})," component's ",(0,r.jsx)(t.strong,{children:"Toolset"})," port to an ",(0,r.jsx)(t.strong,{children:"Agent"})," component's ",(0,r.jsx)(t.strong,{children:"Tools"})," port."]}),"\n",(0,r.jsxs)(t.p,{children:["The flow looks similar to this:\n",(0,r.jsx)(t.img,{alt:"MCP connection component",src:s(63963).A+"",width:"4000",height:"2354"})]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Open the ",(0,r.jsx)(t.strong,{children:"Playground"}),".\nAsk the agent to summarize recent tech news. The agent calls the MCP server function ",(0,r.jsx)(t.code,{children:"fetch"})," and returns the summary.\nThis confirms the MCP server is connected, and its tools are being used in Langflow."]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(t.p,{children:["For more information, see ",(0,r.jsx)(t.a,{href:"/mcp-server",children:"MCP server"}),"."]}),"\n",(0,r.jsx)(t.h3,{id:"mcp-sse-mode",children:"MCP Server-Sent Events (SSE) mode"}),"\n",(0,r.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["If you're using ",(0,r.jsx)(t.strong,{children:"Langflow for Desktop"}),", the default address is ",(0,r.jsx)(t.code,{children:"http://localhost:7868/"}),"."]})}),"\n",(0,r.jsxs)(t.p,{children:["The MCP component's SSE mode connects your flow to the Langflow MCP server through the component.\nThis allows you to use all flows within your ",(0,r.jsx)(t.a,{href:"/concepts-overview#projects",children:"project"})," as tools within a flow."]}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"MCP connection"})," component, select ",(0,r.jsx)(t.strong,{children:"SSE"}),".\nA default address appears in the ",(0,r.jsx)(t.strong,{children:"MCP SSE URL"})," field."]}),"\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"MCP SSE URL"})," field, modify the default address to point at the SSE endpoint of the Langflow server you're currently running.\nThe default value is ",(0,r.jsx)(t.code,{children:"http://localhost:7860/api/v1/mcp/sse"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"MCP connection"})," component, click ",(0,r.jsx)(l.A,{name:"RefreshCw","aria-label":"Refresh"})," to retrieve the server's list of ",(0,r.jsx)(t.strong,{children:"Tools"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Click the ",(0,r.jsx)(t.strong,{children:"Tools"})," field.\nAll of your flows are listed as tools."]}),"\n",(0,r.jsxs)(t.li,{children:["Enable ",(0,r.jsx)(t.strong,{children:"Tool Mode"}),", and then connect the ",(0,r.jsx)(t.strong,{children:"MCP connection"})," component to an agent component's tool port.\nThe flow looks like this:\n",(0,r.jsx)(t.img,{alt:"MCP component with SSE mode enabled",src:s(68347).A+"",width:"4000",height:"2348"})]}),"\n",(0,r.jsxs)(t.li,{children:["Open the ",(0,r.jsx)(t.strong,{children:"Playground"})," and chat with your tool.\nThe agent chooses the correct tool based on your query."]}),"\n"]}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:["The MCP command. Default: ",(0,r.jsx)(t.code,{children:"uvx mcp-sse-shim@latest"}),"."]})]})})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"A list of tools exposed by the MCP server."})]})})]})]}),"\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.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"query"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsx)(t.td,{children:"The text query for similarity search on Wikidata."})]})})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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.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:"legacy-components",children:"Legacy components"}),"\n",(0,r.jsx)(t.p,{children:"Legacy components are available for use but are no longer supported."}),"\n",(0,r.jsx)(t.h3,{id:"calculator-tool",children:"Calculator Tool"}),"\n",(0,r.jsx)(t.p,{children:"This component allows you to evaluate basic arithmetic expressions. It supports addition, subtraction, multiplication, division, and exponentiation."}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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"}),"."]})]})})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"A calculator tool for use in LangChain."})]})})]})]}),"\n",(0,r.jsx)(t.h3,{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.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"A 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:"A 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:"The 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:"The number of search results to return."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"A 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:"A Google Search tool for use in LangChain."})]})]})]})]}),"\n",(0,r.jsx)(t.h3,{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.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"The 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:"The 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:"The 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:"The 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."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"A structured tool created from the Python code."})]})})]})]}),"\n",(0,r.jsx)(t.h3,{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.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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.jsxs)(t.td,{children:["The name of the tool. Default: ",(0,r.jsx)(t.code,{children:"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.jsxs)(t.td,{children:["A list of modules to import globally. Default: ",(0,r.jsx)(t.code,{children:"math"}),"."]})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"A Python REPL tool for use in LangChain."})]})})]})]}),"\n",(0,r.jsx)(t.h3,{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.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"A retriever tool for use in LangChain."})]})})]})]}),"\n",(0,r.jsx)(t.h3,{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.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"engine"}),(0,r.jsx)(t.td,{children:"String"}),(0,r.jsxs)(t.td,{children:["The search engine to use. Default: ",(0,r.jsx)(t.code,{children:"google"}),"."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"api_key"}),(0,r.jsx)(t.td,{children:"SecretString"}),(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:"String"}),(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:"Dict"}),(0,r.jsx)(t.td,{children:"Additional parameters for customizing the search."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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.jsx)(t.td,{children:"A 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:"Tool"}),(0,r.jsx)(t.td,{children:"A Tool object for use in LangChain workflows."})]})]})]})]}),"\n",(0,r.jsx)(t.h3,{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.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"The 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:"The 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:"The language for the search results."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"A SearXNG search tool for use in LangChain."})]})})]})]}),"\n",(0,r.jsx)(t.h3,{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.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"The 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.jsxs)(t.td,{children:["The language code for Wikipedia. Default: ",(0,r.jsx)(t.code,{children:"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:"The 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."})]}),(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:"The maximum number of characters for document content."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"A 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:"A Wikipedia search tool for use in LangChain."})]})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"deprecated-components",children:"Deprecated components"}),"\n",(0,r.jsx)(t.p,{children:"Deprecated components have been replaced by newer alternatives and should not be used in new projects."}),"\n",(0,r.jsx)(t.h3,{id:"mcp-tools-stdio",children:"MCP Tools (stdio)"}),"\n",(0,r.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is deprecated as of Langflow version 1.3.\nInstead, use the ",(0,r.jsx)(t.a,{href:"/components-tools#mcp-connection",children:"MCP connection component"})]})}),"\n",(0,r.jsx)(t.h3,{id:"mcp-tools-sse",children:"MCP Tools (SSE)"}),"\n",(0,r.jsx)(t.admonition,{type:"important",children:(0,r.jsxs)(t.p,{children:["This component is deprecated as of Langflow version 1.3.\nInstead, use the ",(0,r.jsx)(t.a,{href:"/components-tools#mcp-connection",children:"MCP connection component"})]})})]})}function u(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(p,{...e})}):p(e)}function m(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},19680:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/starter-flow-simple-agent-71d0dec218a5da8e3110c51716f1c91e.png"},63963:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/component-mcp-stdio-636cfeb73567d12b0a0761c8738cad17.png"},68335:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/component-astra-db-json-tool-117aff566c0df01a555264bb128b3693.png"},68347:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/component-mcp-sse-mode-a9f0716d810589ea26be2805bc4ec9dd.png"},84443:(e,t,s)=>{s.d(t,{A:()=>i});s(96540);var n=s(64058),r=s(74848);function i(e){let{name:t,...s}=e;const i=n[t];return i?(0,r.jsx)(i,{...s}):null}}}]);
\ No newline at end of file
diff --git a/assets/js/921b5fc1.4fa35110.js b/assets/js/921b5fc1.6a7731e4.js
similarity index 99%
rename from assets/js/921b5fc1.4fa35110.js
rename to assets/js/921b5fc1.6a7731e4.js
index 9a4d6a0f94..268d2a3863 100644
--- a/assets/js/921b5fc1.4fa35110.js
+++ b/assets/js/921b5fc1.6a7731e4.js
@@ -1 +1 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[7462],{7369:(e,n,s)=>{s.d(n,{A:()=>d});const d=s.p+"assets/images/component-ollama-embeddings-chromadb-c02d6ef9e753b61c274778d90f2a6eec.png"},28453:(e,n,s)=>{s.d(n,{R:()=>r,x:()=>l});var d=s(96540);const t={},i=d.createContext(t);function r(e){const n=d.useContext(i);return d.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),d.createElement(i.Provider,{value:n},e.children)}},56088:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>h,default:()=>x,frontMatter:()=>l,metadata:()=>d,toc:()=>o});const d=JSON.parse('{"id":"Components/components-embedding-models","title":"Embeddings","description":"Embeddings models convert text into numerical vectors. These embeddings capture the 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),r=s(84443);const l={title:"Embeddings",slug:"/components-embedding-models"},h="Embeddings models in Langflow",c={},o=[{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:"Amazon Bedrock Embeddings",id:"amazon-bedrock-embeddings",level:2},{value:"Astra DB vectorize",id:"astra-db-vectorize",level:2},{value:"Azure OpenAI Embeddings",id:"azure-openai-embeddings",level:2},{value:"Cloudflare Workers AI Embeddings",id:"cloudflare-workers-ai-embeddings",level:2},{value:"Cohere Embeddings",id:"cohere-embeddings",level:2},{value:"Embedding similarity",id:"embedding-similarity",level:2},{value:"Google generative AI embeddings",id:"google-generative-ai-embeddings",level:2},{value:"Hugging Face Embeddings",id:"hugging-face-embeddings",level:2},{value:"Hugging Face embeddings inference",id:"hugging-face-embeddings-inference",level:2},{value:"Connect the Hugging Face component to a local embeddings model",id:"connect-the-hugging-face-component-to-a-local-embeddings-model",level:3},{value:"IBM watsonx embeddings",id:"ibm-watsonx-embeddings",level:2},{value:"Default models",id:"default-models",level:3},{value:"LM Studio Embeddings",id:"lm-studio-embeddings",level:2},{value:"MistralAI",id:"mistralai",level:2},{value:"NVIDIA",id:"nvidia",level:2},{value:"Ollama embeddings",id:"ollama-embeddings",level:2},{value:"OpenAI Embeddings",id:"openai-embeddings",level:2},{value:"Text embedder",id:"text-embedder",level:2},{value:"VertexAI Embeddings",id:"vertexai-embeddings",level:2}];function a(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components},{Details:d}=n;return d||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"embeddings-models-in-langflow",children:"Embeddings models in Langflow"})}),"\n",(0,t.jsx)(n.p,{children:"Embeddings models convert text into numerical vectors. These embeddings capture the semantic meaning of the input text, and allow LLMs to understand context."}),"\n",(0,t.jsx)(n.p,{children:"Refer to your specific component's documentation for more information on parameters."}),"\n",(0,t.jsx)(n.h2,{id:"use-an-embeddings-model-component-in-a-flow",children:"Use an embeddings model component in a flow"}),"\n",(0,t.jsxs)(n.p,{children:["In this example of a document ingestion pipeline, the ",(0,t.jsx)(n.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)(n.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)(n.p,{children:(0,t.jsx)(n.img,{alt:"URL component in a data ingestion pipeline",src:s(80352).A+"",width:"2306",height:"1632"})}),"\n",(0,t.jsx)(n.h2,{id:"aiml",children:"AI/ML"}),"\n",(0,t.jsxs)(n.p,{children:["This component generates embeddings using the ",(0,t.jsx)(n.a,{href:"https://docs.aimlapi.com/api-overview/embeddings",children:"AI/ML API"}),"."]}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"model_name"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"The name of the AI/ML embedding model to use."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"aiml_api_key"}),(0,t.jsx)(n.td,{children:"SecretString"}),(0,t.jsx)(n.td,{children:"The API key required for authenticating with the AI/ML service."})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embeddings"}),(0,t.jsxs)(n.td,{children:["An instance of ",(0,t.jsx)(n.code,{children:"AIMLEmbeddingsImpl"})," for generating embeddings."]})]})})]})]}),"\n",(0,t.jsx)(n.h2,{id:"amazon-bedrock-embeddings",children:"Amazon Bedrock Embeddings"}),"\n",(0,t.jsxs)(n.p,{children:["This component is used to load embedding models from ",(0,t.jsx)(n.a,{href:"https://aws.amazon.com/bedrock/",children:"Amazon Bedrock"}),"."]}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"credentials_profile_name"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:["The name of the AWS credentials profile in ",(0,t.jsx)(n.code,{children:"~/.aws/credentials"})," or ",(0,t.jsx)(n.code,{children:"~/.aws/config"}),", which has access keys or role information."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"model_id"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:["The ID of the model to call, such as ",(0,t.jsx)(n.code,{children:"amazon.titan-embed-text-v1"}),". This is equivalent to the ",(0,t.jsx)(n.code,{children:"modelId"})," property in the ",(0,t.jsx)(n.code,{children:"list-foundation-models"})," API."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"endpoint_url"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"The URL to set a specific service endpoint other than the default AWS endpoint."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"region_name"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:["The AWS region to use, such as ",(0,t.jsx)(n.code,{children:"us-west-2"}),". Falls back to the ",(0,t.jsx)(n.code,{children:"AWS_DEFAULT_REGION"})," environment variable or region specified in ",(0,t.jsx)(n.code,{children:"~/.aws/config"})," if not provided."]})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embeddings"}),(0,t.jsx)(n.td,{children:"An instance for generating embeddings using Amazon Bedrock."})]})})]})]}),"\n",(0,t.jsx)(n.h2,{id:"astra-db-vectorize",children:"Astra DB vectorize"}),"\n",(0,t.jsx)(n.admonition,{type:"important",children:(0,t.jsxs)(n.p,{children:["This component is deprecated as of Langflow version 1.1.2.\nInstead, use the ",(0,t.jsx)(n.a,{href:"/components-vector-stores#astra-db-vector-store",children:"Astra DB vector store component"}),"."]})}),"\n",(0,t.jsxs)(n.p,{children:["Connect this component to the ",(0,t.jsx)(n.strong,{children:"Embeddings"})," port of the ",(0,t.jsx)(n.a,{href:"/components-vector-stores#astra-db-vector-store",children:"Astra DB vector store component"})," to generate embeddings."]}),"\n",(0,t.jsxs)(n.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)(n.a,{href:"https://docs.datastax.com/en/astra-db-serverless/databases/embedding-generation.html",children:"Embedding Generation"}),"."]}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"provider"}),(0,t.jsx)(n.td,{children:"Embedding Provider"}),(0,t.jsx)(n.td,{children:"The embedding provider to use."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"model_name"}),(0,t.jsx)(n.td,{children:"Model Name"}),(0,t.jsx)(n.td,{children:"The embedding model to use."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"authentication"}),(0,t.jsx)(n.td,{children:"Authentication"}),(0,t.jsxs)(n.td,{children:["The name of the API key in Astra that stores your ",(0,t.jsx)(n.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)(n.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)(n.tr,{children:[(0,t.jsx)(n.td,{children:"provider_api_key"}),(0,t.jsx)(n.td,{children:"Provider API Key"}),(0,t.jsxs)(n.td,{children:["As an alternative to ",(0,t.jsx)(n.code,{children:"authentication"}),", directly provide your embedding provider credentials."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"model_parameters"}),(0,t.jsx)(n.td,{children:"Model Parameters"}),(0,t.jsx)(n.td,{children:"Additional model parameters."})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embeddings"}),(0,t.jsx)(n.td,{children:"An instance for generating embeddings using Astra vectorize."})]})})]})]}),"\n",(0,t.jsx)(n.h2,{id:"azure-openai-embeddings",children:"Azure OpenAI Embeddings"}),"\n",(0,t.jsx)(n.p,{children:"This component generates embeddings using Azure OpenAI models."}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Model"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:["The name of the model to use. Default: ",(0,t.jsx)(n.code,{children:"text-embedding-3-small"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Azure Endpoint"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:["Your Azure endpoint, including the resource, such as ",(0,t.jsx)(n.code,{children:"https://example-resource.azure.openai.com/"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Deployment Name"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"The name of the deployment."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"API Version"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"The API version to use, with options including various dates."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"API Key"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"The API key required to access the Azure OpenAI service."})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embeddings"}),(0,t.jsx)(n.td,{children:"An instance for generating embeddings using Azure OpenAI."})]})})]})]}),"\n",(0,t.jsx)(n.h2,{id:"cloudflare-workers-ai-embeddings",children:"Cloudflare Workers AI Embeddings"}),"\n",(0,t.jsxs)(n.p,{children:["This component generates embeddings using ",(0,t.jsx)(n.a,{href:"https://developers.cloudflare.com/workers-ai/",children:"Cloudflare Workers AI models"}),"."]}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"account_id"}),(0,t.jsx)(n.td,{children:"Cloudflare account ID"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.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)(n.tr,{children:[(0,t.jsx)(n.td,{children:"api_token"}),(0,t.jsx)(n.td,{children:"Cloudflare API token"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.a,{href:"https://developers.cloudflare.com/fundamentals/api/get-started/create-token/",children:"Create an API token"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"model_name"}),(0,t.jsx)(n.td,{children:"Model Name"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.a,{href:"https://developers.cloudflare.com/workers-ai/models/#text-embeddings",children:"List of supported models"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"strip_new_lines"}),(0,t.jsx)(n.td,{children:"Strip New Lines"}),(0,t.jsx)(n.td,{children:"Whether to strip new lines from the input text."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"batch_size"}),(0,t.jsx)(n.td,{children:"Batch Size"}),(0,t.jsx)(n.td,{children:"The number of texts to embed in each batch."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"api_base_url"}),(0,t.jsx)(n.td,{children:"Cloudflare API base URL"}),(0,t.jsx)(n.td,{children:"The base URL for the Cloudflare API."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"headers"}),(0,t.jsx)(n.td,{children:"Headers"}),(0,t.jsx)(n.td,{children:"Additional request headers."})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embeddings"}),(0,t.jsx)(n.td,{children:"An instance for generating embeddings using Cloudflare Workers."})]})})]})]}),"\n",(0,t.jsx)(n.h2,{id:"cohere-embeddings",children:"Cohere Embeddings"}),"\n",(0,t.jsxs)(n.p,{children:["This component is used to load embedding models from ",(0,t.jsx)(n.a,{href:"https://cohere.com/",children:"Cohere"}),"."]}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"cohere_api_key"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"The API key required to authenticate with the Cohere service."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"model"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:["The language model used for embedding text documents and performing queries. Default: ",(0,t.jsx)(n.code,{children:"embed-english-v2.0"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"truncate"}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsxs)(n.td,{children:["Whether to truncate the input text to fit within the model's constraints. Default: ",(0,t.jsx)(n.code,{children:"False"}),"."]})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embeddings"}),(0,t.jsx)(n.td,{children:"An instance for generating embeddings using Cohere."})]})})]})]}),"\n",(0,t.jsx)(n.h2,{id:"embedding-similarity",children:"Embedding similarity"}),"\n",(0,t.jsx)(n.p,{children:"This component computes selected forms of similarity between two embedding vectors."}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embedding_vectors"}),(0,t.jsx)(n.td,{children:"Embedding Vectors"}),(0,t.jsx)(n.td,{children:"A list containing exactly two data objects with embedding vectors to compare."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"similarity_metric"}),(0,t.jsx)(n.td,{children:"Similarity Metric"}),(0,t.jsx)(n.td,{children:'Select the similarity metric to use. Options: "Cosine Similarity", "Euclidean Distance", "Manhattan Distance".'})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"similarity_data"}),(0,t.jsx)(n.td,{children:"Similarity Data"}),(0,t.jsx)(n.td,{children:"A data object containing the computed similarity score and additional information."})]})})]})]}),"\n",(0,t.jsx)(n.h2,{id:"google-generative-ai-embeddings",children:"Google generative AI embeddings"}),"\n",(0,t.jsxs)(n.p,{children:["This component connects to Google's generative AI embedding service using the GoogleGenerativeAIEmbeddings class from the ",(0,t.jsx)(n.code,{children:"langchain-google-genai"})," package."]}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"api_key"}),(0,t.jsx)(n.td,{children:"API Key"}),(0,t.jsx)(n.td,{children:"The secret API key for accessing Google's generative AI service. Required."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"model_name"}),(0,t.jsx)(n.td,{children:"Model Name"}),(0,t.jsx)(n.td,{children:'The name of the embedding model to use. Default: "models/text-embedding-004".'})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embeddings"}),(0,t.jsx)(n.td,{children:"The built GoogleGenerativeAIEmbeddings object."})]})})]})]}),"\n",(0,t.jsx)(n.h2,{id:"hugging-face-embeddings",children:"Hugging Face Embeddings"}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsxs)(n.p,{children:["This component is deprecated as of Langflow version 1.0.18.\nInstead, use the ",(0,t.jsx)(n.a,{href:"#hugging-face-embeddings-inference",children:"Hugging Face Embeddings Inference component"}),"."]})}),"\n",(0,t.jsx)(n.p,{children:"This component loads embedding models from HuggingFace."}),"\n",(0,t.jsx)(n.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.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Cache Folder"}),(0,t.jsx)(n.td,{children:"Cache Folder"}),(0,t.jsx)(n.td,{children:"The folder path to cache HuggingFace models."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Encode Kwargs"}),(0,t.jsx)(n.td,{children:"Encoding Arguments"}),(0,t.jsx)(n.td,{children:"Additional arguments for the encoding process."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Model Kwargs"}),(0,t.jsx)(n.td,{children:"Model Arguments"}),(0,t.jsx)(n.td,{children:"Additional arguments for the model."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Model Name"}),(0,t.jsx)(n.td,{children:"Model Name"}),(0,t.jsx)(n.td,{children:"The name of the HuggingFace model to use."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Multi Process"}),(0,t.jsx)(n.td,{children:"Multi-Process"}),(0,t.jsx)(n.td,{children:"Whether to use multiple processes."})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embeddings"}),(0,t.jsx)(n.td,{children:"The generated embeddings."})]})})]})]}),"\n",(0,t.jsx)(n.h2,{id:"hugging-face-embeddings-inference",children:"Hugging Face embeddings inference"}),"\n",(0,t.jsxs)(n.p,{children:["This component generates embeddings using ",(0,t.jsx)(n.a,{href:"https://huggingface.co/",children:"Hugging Face Inference API models"})," and requires a ",(0,t.jsx)(n.a,{href:"https://huggingface.co/docs/hub/security-tokens",children:"Hugging Face API token"})," to authenticate. Local inference models do not require an API key."]}),"\n",(0,t.jsx)(n.p,{children:"Use this component to create embeddings with Hugging Face's hosted models, or to connect to your own locally hosted models."}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"API Key"}),(0,t.jsx)(n.td,{children:"API Key"}),(0,t.jsx)(n.td,{children:"The API key for accessing the Hugging Face Inference API."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"API URL"}),(0,t.jsx)(n.td,{children:"API URL"}),(0,t.jsx)(n.td,{children:"The URL of the Hugging Face Inference API."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Model Name"}),(0,t.jsx)(n.td,{children:"Model Name"}),(0,t.jsx)(n.td,{children:"The name of the model to use for embeddings."})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embeddings"}),(0,t.jsx)(n.td,{children:"The generated embeddings."})]})})]})]}),"\n",(0,t.jsx)(n.h3,{id:"connect-the-hugging-face-component-to-a-local-embeddings-model",children:"Connect the Hugging Face component to a local embeddings model"}),"\n",(0,t.jsxs)(n.p,{children:["To run an embeddings inference locally, see the ",(0,t.jsx)(n.a,{href:"https://huggingface.co/docs/text-embeddings-inference/local_cpu",children:"HuggingFace documentation"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["To connect the local Hugging Face model to the ",(0,t.jsx)(n.strong,{children:"Hugging Face embeddings inference"})," component and use it in a flow, follow these steps:"]}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Create a ",(0,t.jsx)(n.a,{href:"/starter-projects-vector-store-rag",children:"Vector store RAG flow"}),".\nThere are two embeddings models in this flow that you can replace with ",(0,t.jsx)(n.strong,{children:"Hugging Face"})," embeddings inference components."]}),"\n",(0,t.jsxs)(n.li,{children:["Replace both ",(0,t.jsx)(n.strong,{children:"OpenAI"})," embeddings model components with ",(0,t.jsx)(n.strong,{children:"Hugging Face"})," model components."]}),"\n",(0,t.jsxs)(n.li,{children:["Connect both ",(0,t.jsx)(n.strong,{children:"Hugging Face"})," components to the ",(0,t.jsx)(n.strong,{children:"Embeddings"})," ports of the ",(0,t.jsx)(n.strong,{children:"Astra DB vector store"})," components."]}),"\n",(0,t.jsxs)(n.li,{children:["In the ",(0,t.jsx)(n.strong,{children:"Hugging Face"})," components, set the ",(0,t.jsx)(n.strong,{children:"Inference Endpoint"})," field to the URL of your local inference model. ",(0,t.jsxs)(n.strong,{children:["The ",(0,t.jsx)(n.strong,{children:"API Key"})," field is not required for local inference."]})]}),"\n",(0,t.jsx)(n.li,{children:"Run the flow. The local inference models generate embeddings for the input text."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"ibm-watsonx-embeddings",children:"IBM watsonx embeddings"}),"\n",(0,t.jsxs)(n.p,{children:["This component generates text using ",(0,t.jsx)(n.a,{href:"https://www.ibm.com/watsonx",children:"IBM watsonx.ai"})," foundation models."]}),"\n",(0,t.jsxs)(n.p,{children:["To use ",(0,t.jsx)(n.strong,{children:"IBM watsonx.ai"})," embeddings components, replace an embeddings component with the IBM watsonx.ai component in a flow."]}),"\n",(0,t.jsx)(n.p,{children:"An example document processing flow looks like the following:"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"IBM watsonx embeddings model loading a chroma-db with split text",src:s(96425).A+"",width:"1714",height:"1486"})}),"\n",(0,t.jsx)(n.p,{children:"This flow loads a PDF file from local storage and splits the text into chunks."}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.strong,{children:"IBM watsonx"})," embeddings component converts the text chunks into embeddings, which are then stored in a Chroma DB vector store."]}),"\n",(0,t.jsxs)(n.p,{children:["The values for ",(0,t.jsx)(n.strong,{children:"API endpoint"}),", ",(0,t.jsx)(n.strong,{children:"Project ID"}),", ",(0,t.jsx)(n.strong,{children:"API key"}),", and ",(0,t.jsx)(n.strong,{children:"Model Name"})," are found in your IBM watsonx.ai deployment.\nFor more information, see the ",(0,t.jsx)(n.a,{href:"https://python.langchain.com/docs/integrations/text_embedding/ibm_watsonx/",children:"Langchain documentation"}),"."]}),"\n",(0,t.jsx)(n.h3,{id:"default-models",children:"Default models"}),"\n",(0,t.jsx)(n.p,{children:"The component supports several default models with the following vector dimensions:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"sentence-transformers/all-minilm-l12-v2"}),": 384-dimensional embeddings"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"ibm/slate-125m-english-rtrvr-v2"}),": 768-dimensional embeddings"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"ibm/slate-30m-english-rtrvr-v2"}),": 768-dimensional embeddings"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"intfloat/multilingual-e5-large"}),": 1024-dimensional embeddings"]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"The component automatically fetches and updates the list of available models from your watsonx.ai instance when you provide your API endpoint and credentials."}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"url"}),(0,t.jsx)(n.td,{children:"watsonx API Endpoint"}),(0,t.jsx)(n.td,{children:"The base URL of the API."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"project_id"}),(0,t.jsx)(n.td,{children:"watsonx project id"}),(0,t.jsx)(n.td,{children:"The project ID for your watsonx.ai instance."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"api_key"}),(0,t.jsx)(n.td,{children:"API Key"}),(0,t.jsx)(n.td,{children:"The API Key to use for the model."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"model_name"}),(0,t.jsx)(n.td,{children:"Model Name"}),(0,t.jsx)(n.td,{children:"The name of the embedding model to use."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"truncate_input_tokens"}),(0,t.jsx)(n.td,{children:"Truncate Input Tokens"}),(0,t.jsxs)(n.td,{children:["The maximum number of tokens to process. Default: ",(0,t.jsx)(n.code,{children:"200"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"input_text"}),(0,t.jsx)(n.td,{children:"Include the original text in the output"}),(0,t.jsxs)(n.td,{children:["Determines if the original text is included in the output. Default: ",(0,t.jsx)(n.code,{children:"True"}),"."]})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embeddings"}),(0,t.jsx)(n.td,{children:"An instance for generating embeddings using watsonx.ai."})]})})]})]}),"\n",(0,t.jsx)(n.h2,{id:"lm-studio-embeddings",children:"LM Studio Embeddings"}),"\n",(0,t.jsxs)(n.p,{children:["This component generates embeddings using ",(0,t.jsx)(n.a,{href:"https://lmstudio.ai/docs",children:"LM Studio"})," models."]}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"model"}),(0,t.jsx)(n.td,{children:"Model"}),(0,t.jsx)(n.td,{children:"The LM Studio model to use for generating embeddings."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"base_url"}),(0,t.jsx)(n.td,{children:"LM Studio Base URL"}),(0,t.jsx)(n.td,{children:"The base URL for the LM Studio API."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"api_key"}),(0,t.jsx)(n.td,{children:"LM Studio API Key"}),(0,t.jsx)(n.td,{children:"The API key for authentication with LM Studio."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"temperature"}),(0,t.jsx)(n.td,{children:"Model Temperature"}),(0,t.jsx)(n.td,{children:"The temperature setting for the model."})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embeddings"}),(0,t.jsx)(n.td,{children:"The generated embeddings."})]})})]})]}),"\n",(0,t.jsx)(n.h2,{id:"mistralai",children:"MistralAI"}),"\n",(0,t.jsxs)(n.p,{children:["This component generates embeddings using ",(0,t.jsx)(n.a,{href:"https://docs.mistral.ai/",children:"MistralAI"})," models."]}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"model"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:'The MistralAI model to use. Default: "mistral-embed".'})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"mistral_api_key"}),(0,t.jsx)(n.td,{children:"SecretString"}),(0,t.jsx)(n.td,{children:"The API key for authenticating with MistralAI."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"max_concurrent_requests"}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsx)(n.td,{children:"The maximum number of concurrent API requests. Default: 64."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"max_retries"}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsx)(n.td,{children:"The maximum number of retry attempts for failed requests. Default: 5."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"timeout"}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsx)(n.td,{children:"The request timeout in seconds. Default: 120."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"endpoint"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:["The custom API endpoint URL. Default: ",(0,t.jsx)(n.code,{children:"https://api.mistral.ai/v1/"}),")."]})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embeddings"}),(0,t.jsx)(n.td,{children:"A MistralAIEmbeddings instance for generating embeddings."})]})})]})]}),"\n",(0,t.jsx)(n.h2,{id:"nvidia",children:"NVIDIA"}),"\n",(0,t.jsxs)(n.p,{children:["This component generates embeddings using ",(0,t.jsx)(n.a,{href:"https://docs.nvidia.com",children:"NVIDIA models"}),"."]}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"model"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:["The NVIDIA model to use for embeddings, such as ",(0,t.jsx)(n.code,{children:"nvidia/nv-embed-v1"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"base_url"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:["The base URL for the NVIDIA API. Default: ",(0,t.jsx)(n.code,{children:"https://integrate.api.nvidia.com/v1"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"nvidia_api_key"}),(0,t.jsx)(n.td,{children:"SecretString"}),(0,t.jsx)(n.td,{children:"The API key for authenticating with NVIDIA's service."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"temperature"}),(0,t.jsx)(n.td,{children:"Float"}),(0,t.jsxs)(n.td,{children:["The model temperature for embedding generation. Default: ",(0,t.jsx)(n.code,{children:"0.1"}),"."]})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embeddings"}),(0,t.jsx)(n.td,{children:"A NVIDIAEmbeddings instance for generating embeddings."})]})})]})]}),"\n",(0,t.jsx)(n.h2,{id:"ollama-embeddings",children:"Ollama embeddings"}),"\n",(0,t.jsxs)(n.p,{children:["This component generates embeddings using ",(0,t.jsx)(n.a,{href:"https://ollama.com/",children:"Ollama models"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["For a list of Ollama embeddings models, see the ",(0,t.jsx)(n.a,{href:"https://ollama.com/search?c=embedding",children:"Ollama documentation"}),"."]}),"\n",(0,t.jsx)(n.p,{children:"To use this component in a flow, connect Langflow to your locally running Ollama server and select an embeddings model."}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["In the Ollama component, in the ",(0,t.jsx)(n.strong,{children:"Ollama Base URL"})," field, enter the address for your locally running Ollama server.\nThis value is set as the ",(0,t.jsx)(n.code,{children:"OLLAMA_HOST"})," environment variable in Ollama. The default base URL is ",(0,t.jsx)(n.code,{children:"http://127.0.0.1:11434"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["To refresh the server's list of models, click ",(0,t.jsx)(r.A,{name:"RefreshCw","aria-label":"Refresh"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["In the ",(0,t.jsx)(n.strong,{children:"Ollama Model"})," field, select an embeddings model. This example uses ",(0,t.jsx)(n.code,{children:"all-minilm:latest"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Connect the ",(0,t.jsx)(n.strong,{children:"Ollama"})," embeddings component to a flow.\nFor example, this flow connects a local Ollama server running a ",(0,t.jsx)(n.code,{children:"all-minilm:latest"})," embeddings model to a ",(0,t.jsx)(n.a,{href:"/components-vector-stores#chroma-db",children:"Chroma DB"})," vector store to generate embeddings for split text."]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"Ollama embeddings connected to Chroma DB",src:s(7369).A+"",width:"1098",height:"811"})}),"\n",(0,t.jsxs)(n.p,{children:["For more information, see the ",(0,t.jsx)(n.a,{href:"https://ollama.com/",children:"Ollama documentation"}),"."]}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Ollama Model"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:["The name of the Ollama model to use. Default: ",(0,t.jsx)(n.code,{children:"llama2"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Ollama Base URL"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:["The base URL of the Ollama API. Default: ",(0,t.jsx)(n.code,{children:"http://localhost:11434"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Model Temperature"}),(0,t.jsx)(n.td,{children:"Float"}),(0,t.jsx)(n.td,{children:"The temperature parameter for the model. Adjusts the randomness in the generated embeddings."})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embeddings"}),(0,t.jsx)(n.td,{children:"An instance for generating embeddings using Ollama."})]})})]})]}),"\n",(0,t.jsx)(n.h2,{id:"openai-embeddings",children:"OpenAI Embeddings"}),"\n",(0,t.jsxs)(n.p,{children:["This component is used to load embedding models from ",(0,t.jsx)(n.a,{href:"https://openai.com/",children:"OpenAI"}),"."]}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"OpenAI API Key"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"The API key to use for accessing the OpenAI API."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Default Headers"}),(0,t.jsx)(n.td,{children:"Dict"}),(0,t.jsx)(n.td,{children:"The default headers for the HTTP requests."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Default Query"}),(0,t.jsx)(n.td,{children:"NestedDict"}),(0,t.jsx)(n.td,{children:"The default query parameters for the HTTP requests."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Allowed Special"}),(0,t.jsx)(n.td,{children:"List"}),(0,t.jsxs)(n.td,{children:["The special tokens allowed for processing. Default: ",(0,t.jsx)(n.code,{children:"[]"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Disallowed Special"}),(0,t.jsx)(n.td,{children:"List"}),(0,t.jsxs)(n.td,{children:["The special tokens disallowed for processing. Default: ",(0,t.jsx)(n.code,{children:'["all"]'}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Chunk Size"}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsxs)(n.td,{children:["The chunk size for processing. Default: ",(0,t.jsx)(n.code,{children:"1000"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Client"}),(0,t.jsx)(n.td,{children:"Any"}),(0,t.jsx)(n.td,{children:"The HTTP client for making requests."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Deployment"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:["The deployment name for the model. Default: ",(0,t.jsx)(n.code,{children:"text-embedding-3-small"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Embedding Context Length"}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsxs)(n.td,{children:["The length of embedding context. Default: ",(0,t.jsx)(n.code,{children:"8191"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Max Retries"}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsxs)(n.td,{children:["The maximum number of retries for failed requests. Default: ",(0,t.jsx)(n.code,{children:"6"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Model"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:["The name of the model to use. Default: ",(0,t.jsx)(n.code,{children:"text-embedding-3-small"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Model Kwargs"}),(0,t.jsx)(n.td,{children:"NestedDict"}),(0,t.jsx)(n.td,{children:"Additional keyword arguments for the model."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"OpenAI API Base"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"The base URL of the OpenAI API."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"OpenAI API Type"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"The type of the OpenAI API."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"OpenAI API Version"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"The version of the OpenAI API."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"OpenAI Organization"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"The organization associated with the API key."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"OpenAI Proxy"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"The proxy server for the requests."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Request Timeout"}),(0,t.jsx)(n.td,{children:"Float"}),(0,t.jsx)(n.td,{children:"The timeout for the HTTP requests."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Show Progress Bar"}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsxs)(n.td,{children:["Whether to show a progress bar for processing. Default: ",(0,t.jsx)(n.code,{children:"False"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Skip Empty"}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsxs)(n.td,{children:["Whether to skip empty inputs. Default: ",(0,t.jsx)(n.code,{children:"False"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"TikToken Enable"}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsxs)(n.td,{children:["Whether to enable TikToken. Default: ",(0,t.jsx)(n.code,{children:"True"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"TikToken Model Name"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"The name of the TikToken model."})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embeddings"}),(0,t.jsx)(n.td,{children:"An instance for generating embeddings using OpenAI."})]})})]})]}),"\n",(0,t.jsx)(n.h2,{id:"text-embedder",children:"Text embedder"}),"\n",(0,t.jsx)(n.p,{children:"This component generates embeddings for a given message using a specified embedding model."}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embedding_model"}),(0,t.jsx)(n.td,{children:"Embedding Model"}),(0,t.jsx)(n.td,{children:"The embedding model to use for generating embeddings."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"message"}),(0,t.jsx)(n.td,{children:"Message"}),(0,t.jsx)(n.td,{children:"The message for which to generate embeddings."})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embedding Data"}),(0,t.jsx)(n.td,{children:"A data object containing the original text and its embedding vector."})]})})]})]}),"\n",(0,t.jsx)(n.h2,{id:"vertexai-embeddings",children:"VertexAI Embeddings"}),"\n",(0,t.jsxs)(n.p,{children:["This component is a wrapper around ",(0,t.jsx)(n.a,{href:"https://cloud.google.com/vertex-ai",children:"Google Vertex AI"})," ",(0,t.jsx)(n.a,{href:"https://cloud.google.com/vertex-ai/docs/generative-ai/embeddings/get-text-embeddings",children:"Embeddings API"}),"."]}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"credentials"}),(0,t.jsx)(n.td,{children:"Credentials"}),(0,t.jsx)(n.td,{children:"The default custom credentials to use."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"location"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:["The default location to use when making API calls. Default: ",(0,t.jsx)(n.code,{children:"us-central1"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"max_output_tokens"}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsxs)(n.td,{children:["The token limit determines the maximum amount of text output from one prompt. Default: ",(0,t.jsx)(n.code,{children:"128"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"model_name"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:["The name of the Vertex AI large language model. Default: ",(0,t.jsx)(n.code,{children:"text-bison"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"project"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"The default GCP project to use when making Vertex API calls."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"request_parallelism"}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsxs)(n.td,{children:["The amount of parallelism allowed for requests issued to VertexAI models. Default: ",(0,t.jsx)(n.code,{children:"5"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"temperature"}),(0,t.jsx)(n.td,{children:"Float"}),(0,t.jsxs)(n.td,{children:["Tunes the degree of randomness in text generations. Should be a non-negative value. Default: ",(0,t.jsx)(n.code,{children:"0"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"top_k"}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsxs)(n.td,{children:["How the model selects tokens for output. The next token is selected from the top ",(0,t.jsx)(n.code,{children:"k"})," tokens. Default: ",(0,t.jsx)(n.code,{children:"40"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"top_p"}),(0,t.jsx)(n.td,{children:"Float"}),(0,t.jsxs)(n.td,{children:["Tokens are selected from the most probable to least until the sum of their probabilities exceeds the top ",(0,t.jsx)(n.code,{children:"p"})," value. Default: ",(0,t.jsx)(n.code,{children:"0.95"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"tuned_model_name"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:["The name of a tuned model. If provided, ",(0,t.jsx)(n.code,{children:"model_name"})," is ignored."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"verbose"}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsxs)(n.td,{children:["This parameter controls the level of detail in the output. When set to ",(0,t.jsx)(n.code,{children:"True"}),", it prints internal states of the chain to help debug. Default: ",(0,t.jsx)(n.code,{children:"False"}),"."]})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embeddings"}),(0,t.jsx)(n.td,{children:"An instance for generating embeddings using VertexAI."})]})})]})]})]})}function x(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(a,{...e})}):a(e)}},80352:(e,n,s)=>{s.d(n,{A:()=>d});const d=s.p+"assets/images/url-component-fb712df73581345c0f344013ce6ff2fd.png"},84443:(e,n,s)=>{s.d(n,{A:()=>i});s(96540);var d=s(64058),t=s(74848);function i(e){let{name:n,...s}=e;const i=d[n];return i?(0,t.jsx)(i,{...s}):null}},96425:(e,n,s)=>{s.d(n,{A:()=>d});const d=s.p+"assets/images/component-watsonx-embeddings-chroma-591e45d59ab635d1e1e68ab8036cfed7.png"}}]);
\ No newline at end of file
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[7462],{7369:(e,n,s)=>{s.d(n,{A:()=>d});const d=s.p+"assets/images/component-ollama-embeddings-chromadb-c02d6ef9e753b61c274778d90f2a6eec.png"},28453:(e,n,s)=>{s.d(n,{R:()=>r,x:()=>l});var d=s(96540);const t={},i=d.createContext(t);function r(e){const n=d.useContext(i);return d.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),d.createElement(i.Provider,{value:n},e.children)}},56088:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>h,default:()=>x,frontMatter:()=>l,metadata:()=>d,toc:()=>o});const d=JSON.parse('{"id":"Components/components-embedding-models","title":"Embeddings","description":"Embeddings models convert text into numerical vectors. These embeddings capture the 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),r=s(84443);const l={title:"Embeddings",slug:"/components-embedding-models"},h="Embeddings models in Langflow",c={},o=[{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:"Amazon Bedrock Embeddings",id:"amazon-bedrock-embeddings",level:2},{value:"Astra DB vectorize",id:"astra-db-vectorize",level:2},{value:"Azure OpenAI Embeddings",id:"azure-openai-embeddings",level:2},{value:"Cloudflare Workers AI Embeddings",id:"cloudflare-workers-ai-embeddings",level:2},{value:"Cohere Embeddings",id:"cohere-embeddings",level:2},{value:"Embedding similarity",id:"embedding-similarity",level:2},{value:"Google generative AI embeddings",id:"google-generative-ai-embeddings",level:2},{value:"Hugging Face Embeddings",id:"hugging-face-embeddings",level:2},{value:"Hugging Face embeddings inference",id:"hugging-face-embeddings-inference",level:2},{value:"Connect the Hugging Face component to a local embeddings model",id:"connect-the-hugging-face-component-to-a-local-embeddings-model",level:3},{value:"IBM watsonx embeddings",id:"ibm-watsonx-embeddings",level:2},{value:"Default models",id:"default-models",level:3},{value:"LM Studio Embeddings",id:"lm-studio-embeddings",level:2},{value:"MistralAI",id:"mistralai",level:2},{value:"NVIDIA",id:"nvidia",level:2},{value:"Ollama embeddings",id:"ollama-embeddings",level:2},{value:"OpenAI Embeddings",id:"openai-embeddings",level:2},{value:"Text embedder",id:"text-embedder",level:2},{value:"VertexAI Embeddings",id:"vertexai-embeddings",level:2}];function a(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components},{Details:d}=n;return d||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"embeddings-models-in-langflow",children:"Embeddings models in Langflow"})}),"\n",(0,t.jsx)(n.p,{children:"Embeddings models convert text into numerical vectors. These embeddings capture the semantic meaning of the input text, and allow LLMs to understand context."}),"\n",(0,t.jsx)(n.p,{children:"Refer to your specific component's documentation for more information on parameters."}),"\n",(0,t.jsx)(n.h2,{id:"use-an-embeddings-model-component-in-a-flow",children:"Use an embeddings model component in a flow"}),"\n",(0,t.jsxs)(n.p,{children:["In this example of a document ingestion pipeline, the ",(0,t.jsx)(n.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)(n.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)(n.p,{children:(0,t.jsx)(n.img,{alt:"URL component in a data ingestion pipeline",src:s(80352).A+"",width:"2306",height:"1632"})}),"\n",(0,t.jsx)(n.h2,{id:"aiml",children:"AI/ML"}),"\n",(0,t.jsxs)(n.p,{children:["This component generates embeddings using the ",(0,t.jsx)(n.a,{href:"https://docs.aimlapi.com/api-overview/embeddings",children:"AI/ML API"}),"."]}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"model_name"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"The name of the AI/ML embedding model to use."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"aiml_api_key"}),(0,t.jsx)(n.td,{children:"SecretString"}),(0,t.jsx)(n.td,{children:"The API key required for authenticating with the AI/ML service."})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embeddings"}),(0,t.jsxs)(n.td,{children:["An instance of ",(0,t.jsx)(n.code,{children:"AIMLEmbeddingsImpl"})," for generating embeddings."]})]})})]})]}),"\n",(0,t.jsx)(n.h2,{id:"amazon-bedrock-embeddings",children:"Amazon Bedrock Embeddings"}),"\n",(0,t.jsxs)(n.p,{children:["This component is used to load embedding models from ",(0,t.jsx)(n.a,{href:"https://aws.amazon.com/bedrock/",children:"Amazon Bedrock"}),"."]}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"credentials_profile_name"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:["The name of the AWS credentials profile in ",(0,t.jsx)(n.code,{children:"~/.aws/credentials"})," or ",(0,t.jsx)(n.code,{children:"~/.aws/config"}),", which has access keys or role information."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"model_id"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:["The ID of the model to call, such as ",(0,t.jsx)(n.code,{children:"amazon.titan-embed-text-v1"}),". This is equivalent to the ",(0,t.jsx)(n.code,{children:"modelId"})," property in the ",(0,t.jsx)(n.code,{children:"list-foundation-models"})," API."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"endpoint_url"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"The URL to set a specific service endpoint other than the default AWS endpoint."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"region_name"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:["The AWS region to use, such as ",(0,t.jsx)(n.code,{children:"us-west-2"}),". Falls back to the ",(0,t.jsx)(n.code,{children:"AWS_DEFAULT_REGION"})," environment variable or region specified in ",(0,t.jsx)(n.code,{children:"~/.aws/config"})," if not provided."]})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embeddings"}),(0,t.jsx)(n.td,{children:"An instance for generating embeddings using Amazon Bedrock."})]})})]})]}),"\n",(0,t.jsx)(n.h2,{id:"astra-db-vectorize",children:"Astra DB vectorize"}),"\n",(0,t.jsx)(n.admonition,{type:"important",children:(0,t.jsxs)(n.p,{children:["This component is deprecated as of Langflow version 1.1.2.\nInstead, use the ",(0,t.jsx)(n.a,{href:"/components-vector-stores#astra-db-vector-store",children:"Astra DB vector store component"}),"."]})}),"\n",(0,t.jsxs)(n.p,{children:["Connect this component to the ",(0,t.jsx)(n.strong,{children:"Embeddings"})," port of the ",(0,t.jsx)(n.a,{href:"/components-vector-stores#astra-db-vector-store",children:"Astra DB vector store component"})," to generate embeddings."]}),"\n",(0,t.jsxs)(n.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)(n.a,{href:"https://docs.datastax.com/en/astra-db-serverless/databases/embedding-generation.html",children:"Embedding Generation"}),"."]}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"provider"}),(0,t.jsx)(n.td,{children:"Embedding Provider"}),(0,t.jsx)(n.td,{children:"The embedding provider to use."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"model_name"}),(0,t.jsx)(n.td,{children:"Model Name"}),(0,t.jsx)(n.td,{children:"The embedding model to use."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"authentication"}),(0,t.jsx)(n.td,{children:"Authentication"}),(0,t.jsxs)(n.td,{children:["The name of the API key in Astra that stores your ",(0,t.jsx)(n.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)(n.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)(n.tr,{children:[(0,t.jsx)(n.td,{children:"provider_api_key"}),(0,t.jsx)(n.td,{children:"Provider API Key"}),(0,t.jsxs)(n.td,{children:["As an alternative to ",(0,t.jsx)(n.code,{children:"authentication"}),", directly provide your embedding provider credentials."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"model_parameters"}),(0,t.jsx)(n.td,{children:"Model Parameters"}),(0,t.jsx)(n.td,{children:"Additional model parameters."})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embeddings"}),(0,t.jsx)(n.td,{children:"An instance for generating embeddings using Astra vectorize."})]})})]})]}),"\n",(0,t.jsx)(n.h2,{id:"azure-openai-embeddings",children:"Azure OpenAI Embeddings"}),"\n",(0,t.jsx)(n.p,{children:"This component generates embeddings using Azure OpenAI models."}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Model"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:["The name of the model to use. Default: ",(0,t.jsx)(n.code,{children:"text-embedding-3-small"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Azure Endpoint"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:["Your Azure endpoint, including the resource, such as ",(0,t.jsx)(n.code,{children:"https://example-resource.azure.openai.com/"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Deployment Name"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"The name of the deployment."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"API Version"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"The API version to use, with options including various dates."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"API Key"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"The API key required to access the Azure OpenAI service."})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embeddings"}),(0,t.jsx)(n.td,{children:"An instance for generating embeddings using Azure OpenAI."})]})})]})]}),"\n",(0,t.jsx)(n.h2,{id:"cloudflare-workers-ai-embeddings",children:"Cloudflare Workers AI Embeddings"}),"\n",(0,t.jsxs)(n.p,{children:["This component generates embeddings using ",(0,t.jsx)(n.a,{href:"https://developers.cloudflare.com/workers-ai/",children:"Cloudflare Workers AI models"}),"."]}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"account_id"}),(0,t.jsx)(n.td,{children:"Cloudflare account ID"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.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)(n.tr,{children:[(0,t.jsx)(n.td,{children:"api_token"}),(0,t.jsx)(n.td,{children:"Cloudflare API token"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.a,{href:"https://developers.cloudflare.com/fundamentals/api/get-started/create-token/",children:"Create an API token"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"model_name"}),(0,t.jsx)(n.td,{children:"Model Name"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.a,{href:"https://developers.cloudflare.com/workers-ai/models/#text-embeddings",children:"List of supported models"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"strip_new_lines"}),(0,t.jsx)(n.td,{children:"Strip New Lines"}),(0,t.jsx)(n.td,{children:"Whether to strip new lines from the input text."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"batch_size"}),(0,t.jsx)(n.td,{children:"Batch Size"}),(0,t.jsx)(n.td,{children:"The number of texts to embed in each batch."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"api_base_url"}),(0,t.jsx)(n.td,{children:"Cloudflare API base URL"}),(0,t.jsx)(n.td,{children:"The base URL for the Cloudflare API."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"headers"}),(0,t.jsx)(n.td,{children:"Headers"}),(0,t.jsx)(n.td,{children:"Additional request headers."})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embeddings"}),(0,t.jsx)(n.td,{children:"An instance for generating embeddings using Cloudflare Workers."})]})})]})]}),"\n",(0,t.jsx)(n.h2,{id:"cohere-embeddings",children:"Cohere Embeddings"}),"\n",(0,t.jsxs)(n.p,{children:["This component is used to load embedding models from ",(0,t.jsx)(n.a,{href:"https://cohere.com/",children:"Cohere"}),"."]}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"cohere_api_key"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"The API key required to authenticate with the Cohere service."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"model"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:["The language model used for embedding text documents and performing queries. Default: ",(0,t.jsx)(n.code,{children:"embed-english-v2.0"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"truncate"}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsxs)(n.td,{children:["Whether to truncate the input text to fit within the model's constraints. Default: ",(0,t.jsx)(n.code,{children:"False"}),"."]})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embeddings"}),(0,t.jsx)(n.td,{children:"An instance for generating embeddings using Cohere."})]})})]})]}),"\n",(0,t.jsx)(n.h2,{id:"embedding-similarity",children:"Embedding similarity"}),"\n",(0,t.jsx)(n.p,{children:"This component computes selected forms of similarity between two embedding vectors."}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embedding_vectors"}),(0,t.jsx)(n.td,{children:"Embedding Vectors"}),(0,t.jsx)(n.td,{children:"A list containing exactly two data objects with embedding vectors to compare."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"similarity_metric"}),(0,t.jsx)(n.td,{children:"Similarity Metric"}),(0,t.jsx)(n.td,{children:'Select the similarity metric to use. Options: "Cosine Similarity", "Euclidean Distance", "Manhattan Distance".'})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"similarity_data"}),(0,t.jsx)(n.td,{children:"Similarity Data"}),(0,t.jsx)(n.td,{children:"A data object containing the computed similarity score and additional information."})]})})]})]}),"\n",(0,t.jsx)(n.h2,{id:"google-generative-ai-embeddings",children:"Google generative AI embeddings"}),"\n",(0,t.jsxs)(n.p,{children:["This component connects to Google's generative AI embedding service using the GoogleGenerativeAIEmbeddings class from the ",(0,t.jsx)(n.code,{children:"langchain-google-genai"})," package."]}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"api_key"}),(0,t.jsx)(n.td,{children:"API Key"}),(0,t.jsx)(n.td,{children:"The secret API key for accessing Google's generative AI service. Required."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"model_name"}),(0,t.jsx)(n.td,{children:"Model Name"}),(0,t.jsx)(n.td,{children:'The name of the embedding model to use. Default: "models/text-embedding-004".'})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embeddings"}),(0,t.jsx)(n.td,{children:"The built GoogleGenerativeAIEmbeddings object."})]})})]})]}),"\n",(0,t.jsx)(n.h2,{id:"hugging-face-embeddings",children:"Hugging Face Embeddings"}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsxs)(n.p,{children:["This component is deprecated as of Langflow version 1.0.18.\nInstead, use the ",(0,t.jsx)(n.a,{href:"#hugging-face-embeddings-inference",children:"Hugging Face Embeddings Inference component"}),"."]})}),"\n",(0,t.jsx)(n.p,{children:"This component loads embedding models from HuggingFace."}),"\n",(0,t.jsx)(n.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.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Cache Folder"}),(0,t.jsx)(n.td,{children:"Cache Folder"}),(0,t.jsx)(n.td,{children:"The folder path to cache HuggingFace models."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Encode Kwargs"}),(0,t.jsx)(n.td,{children:"Encoding Arguments"}),(0,t.jsx)(n.td,{children:"Additional arguments for the encoding process."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Model Kwargs"}),(0,t.jsx)(n.td,{children:"Model Arguments"}),(0,t.jsx)(n.td,{children:"Additional arguments for the model."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Model Name"}),(0,t.jsx)(n.td,{children:"Model Name"}),(0,t.jsx)(n.td,{children:"The name of the HuggingFace model to use."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Multi Process"}),(0,t.jsx)(n.td,{children:"Multi-Process"}),(0,t.jsx)(n.td,{children:"Whether to use multiple processes."})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embeddings"}),(0,t.jsx)(n.td,{children:"The generated embeddings."})]})})]})]}),"\n",(0,t.jsx)(n.h2,{id:"hugging-face-embeddings-inference",children:"Hugging Face embeddings inference"}),"\n",(0,t.jsxs)(n.p,{children:["This component generates embeddings using ",(0,t.jsx)(n.a,{href:"https://huggingface.co/",children:"Hugging Face Inference API models"})," and requires a ",(0,t.jsx)(n.a,{href:"https://huggingface.co/docs/hub/security-tokens",children:"Hugging Face API token"})," to authenticate. Local inference models do not require an API key."]}),"\n",(0,t.jsx)(n.p,{children:"Use this component to create embeddings with Hugging Face's hosted models, or to connect to your own locally hosted models."}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"API Key"}),(0,t.jsx)(n.td,{children:"API Key"}),(0,t.jsx)(n.td,{children:"The API key for accessing the Hugging Face Inference API."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"API URL"}),(0,t.jsx)(n.td,{children:"API URL"}),(0,t.jsx)(n.td,{children:"The URL of the Hugging Face Inference API."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Model Name"}),(0,t.jsx)(n.td,{children:"Model Name"}),(0,t.jsx)(n.td,{children:"The name of the model to use for embeddings."})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embeddings"}),(0,t.jsx)(n.td,{children:"The generated embeddings."})]})})]})]}),"\n",(0,t.jsx)(n.h3,{id:"connect-the-hugging-face-component-to-a-local-embeddings-model",children:"Connect the Hugging Face component to a local embeddings model"}),"\n",(0,t.jsxs)(n.p,{children:["To run an embeddings inference locally, see the ",(0,t.jsx)(n.a,{href:"https://huggingface.co/docs/text-embeddings-inference/local_cpu",children:"HuggingFace documentation"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["To connect the local Hugging Face model to the ",(0,t.jsx)(n.strong,{children:"Hugging Face embeddings inference"})," component and use it in a flow, follow these steps:"]}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Create a ",(0,t.jsx)(n.a,{href:"/starter-projects-vector-store-rag",children:"Vector store RAG flow"}),".\nThere are two embeddings models in this flow that you can replace with ",(0,t.jsx)(n.strong,{children:"Hugging Face"})," embeddings inference components."]}),"\n",(0,t.jsxs)(n.li,{children:["Replace both ",(0,t.jsx)(n.strong,{children:"OpenAI"})," embeddings model components with ",(0,t.jsx)(n.strong,{children:"Hugging Face"})," model components."]}),"\n",(0,t.jsxs)(n.li,{children:["Connect both ",(0,t.jsx)(n.strong,{children:"Hugging Face"})," components to the ",(0,t.jsx)(n.strong,{children:"Embeddings"})," ports of the ",(0,t.jsx)(n.strong,{children:"Astra DB vector store"})," components."]}),"\n",(0,t.jsxs)(n.li,{children:["In the ",(0,t.jsx)(n.strong,{children:"Hugging Face"})," components, set the ",(0,t.jsx)(n.strong,{children:"Inference Endpoint"})," field to the URL of your local inference model. ",(0,t.jsxs)(n.strong,{children:["The ",(0,t.jsx)(n.strong,{children:"API Key"})," field is not required for local inference."]})]}),"\n",(0,t.jsx)(n.li,{children:"Run the flow. The local inference models generate embeddings for the input text."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"ibm-watsonx-embeddings",children:"IBM watsonx embeddings"}),"\n",(0,t.jsxs)(n.p,{children:["This component generates text using ",(0,t.jsx)(n.a,{href:"https://www.ibm.com/watsonx",children:"IBM watsonx.ai"})," foundation models."]}),"\n",(0,t.jsxs)(n.p,{children:["To use ",(0,t.jsx)(n.strong,{children:"IBM watsonx.ai"})," embeddings components, replace an embeddings component with the IBM watsonx.ai component in a flow."]}),"\n",(0,t.jsx)(n.p,{children:"An example document processing flow looks like the following:"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"IBM watsonx embeddings model loading a chroma-db with split text",src:s(96425).A+"",width:"1714",height:"1486"})}),"\n",(0,t.jsx)(n.p,{children:"This flow loads a PDF file from local storage and splits the text into chunks."}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.strong,{children:"IBM watsonx"})," embeddings component converts the text chunks into embeddings, which are then stored in a Chroma DB vector store."]}),"\n",(0,t.jsxs)(n.p,{children:["The values for ",(0,t.jsx)(n.strong,{children:"API endpoint"}),", ",(0,t.jsx)(n.strong,{children:"Project ID"}),", ",(0,t.jsx)(n.strong,{children:"API key"}),", and ",(0,t.jsx)(n.strong,{children:"Model Name"})," are found in your IBM watsonx.ai deployment.\nFor more information, see the ",(0,t.jsx)(n.a,{href:"https://python.langchain.com/docs/integrations/text_embedding/ibm_watsonx/",children:"Langchain documentation"}),"."]}),"\n",(0,t.jsx)(n.h3,{id:"default-models",children:"Default models"}),"\n",(0,t.jsx)(n.p,{children:"The component supports several default models with the following vector dimensions:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"sentence-transformers/all-minilm-l12-v2"}),": 384-dimensional embeddings"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"ibm/slate-125m-english-rtrvr-v2"}),": 768-dimensional embeddings"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"ibm/slate-30m-english-rtrvr-v2"}),": 768-dimensional embeddings"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"intfloat/multilingual-e5-large"}),": 1024-dimensional embeddings"]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"The component automatically fetches and updates the list of available models from your watsonx.ai instance when you provide your API endpoint and credentials."}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"url"}),(0,t.jsx)(n.td,{children:"watsonx API Endpoint"}),(0,t.jsx)(n.td,{children:"The base URL of the API."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"project_id"}),(0,t.jsx)(n.td,{children:"watsonx project id"}),(0,t.jsx)(n.td,{children:"The project ID for your watsonx.ai instance."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"api_key"}),(0,t.jsx)(n.td,{children:"API Key"}),(0,t.jsx)(n.td,{children:"The API Key to use for the model."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"model_name"}),(0,t.jsx)(n.td,{children:"Model Name"}),(0,t.jsx)(n.td,{children:"The name of the embedding model to use."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"truncate_input_tokens"}),(0,t.jsx)(n.td,{children:"Truncate Input Tokens"}),(0,t.jsxs)(n.td,{children:["The maximum number of tokens to process. Default: ",(0,t.jsx)(n.code,{children:"200"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"input_text"}),(0,t.jsx)(n.td,{children:"Include the original text in the output"}),(0,t.jsxs)(n.td,{children:["Determines if the original text is included in the output. Default: ",(0,t.jsx)(n.code,{children:"True"}),"."]})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embeddings"}),(0,t.jsx)(n.td,{children:"An instance for generating embeddings using watsonx.ai."})]})})]})]}),"\n",(0,t.jsx)(n.h2,{id:"lm-studio-embeddings",children:"LM Studio Embeddings"}),"\n",(0,t.jsxs)(n.p,{children:["This component generates embeddings using ",(0,t.jsx)(n.a,{href:"https://lmstudio.ai/docs",children:"LM Studio"})," models."]}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"model"}),(0,t.jsx)(n.td,{children:"Model"}),(0,t.jsx)(n.td,{children:"The LM Studio model to use for generating embeddings."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"base_url"}),(0,t.jsx)(n.td,{children:"LM Studio Base URL"}),(0,t.jsx)(n.td,{children:"The base URL for the LM Studio API."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"api_key"}),(0,t.jsx)(n.td,{children:"LM Studio API Key"}),(0,t.jsx)(n.td,{children:"The API key for authentication with LM Studio."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"temperature"}),(0,t.jsx)(n.td,{children:"Model Temperature"}),(0,t.jsx)(n.td,{children:"The temperature setting for the model."})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embeddings"}),(0,t.jsx)(n.td,{children:"The generated embeddings."})]})})]})]}),"\n",(0,t.jsx)(n.h2,{id:"mistralai",children:"MistralAI"}),"\n",(0,t.jsxs)(n.p,{children:["This component generates embeddings using ",(0,t.jsx)(n.a,{href:"https://docs.mistral.ai/",children:"MistralAI"})," models."]}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"model"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:'The MistralAI model to use. Default: "mistral-embed".'})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"mistral_api_key"}),(0,t.jsx)(n.td,{children:"SecretString"}),(0,t.jsx)(n.td,{children:"The API key for authenticating with MistralAI."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"max_concurrent_requests"}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsx)(n.td,{children:"The maximum number of concurrent API requests. Default: 64."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"max_retries"}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsx)(n.td,{children:"The maximum number of retry attempts for failed requests. Default: 5."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"timeout"}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsx)(n.td,{children:"The request timeout in seconds. Default: 120."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"endpoint"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:["The custom API endpoint URL. Default: ",(0,t.jsx)(n.code,{children:"https://api.mistral.ai/v1/"}),")."]})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embeddings"}),(0,t.jsx)(n.td,{children:"A MistralAIEmbeddings instance for generating embeddings."})]})})]})]}),"\n",(0,t.jsx)(n.h2,{id:"nvidia",children:"NVIDIA"}),"\n",(0,t.jsxs)(n.p,{children:["This component generates embeddings using ",(0,t.jsx)(n.a,{href:"https://docs.nvidia.com",children:"NVIDIA models"}),"."]}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"model"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:["The NVIDIA model to use for embeddings, such as ",(0,t.jsx)(n.code,{children:"nvidia/nv-embed-v1"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"base_url"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:["The base URL for the NVIDIA API. Default: ",(0,t.jsx)(n.code,{children:"https://integrate.api.nvidia.com/v1"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"nvidia_api_key"}),(0,t.jsx)(n.td,{children:"SecretString"}),(0,t.jsx)(n.td,{children:"The API key for authenticating with NVIDIA's service."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"temperature"}),(0,t.jsx)(n.td,{children:"Float"}),(0,t.jsxs)(n.td,{children:["The model temperature for embedding generation. Default: ",(0,t.jsx)(n.code,{children:"0.1"}),"."]})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embeddings"}),(0,t.jsx)(n.td,{children:"A NVIDIAEmbeddings instance for generating embeddings."})]})})]})]}),"\n",(0,t.jsx)(n.h2,{id:"ollama-embeddings",children:"Ollama embeddings"}),"\n",(0,t.jsxs)(n.p,{children:["This component generates embeddings using ",(0,t.jsx)(n.a,{href:"https://ollama.com/",children:"Ollama models"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["For a list of Ollama embeddings models, see the ",(0,t.jsx)(n.a,{href:"https://ollama.com/search?c=embedding",children:"Ollama documentation"}),"."]}),"\n",(0,t.jsx)(n.p,{children:"To use this component in a flow, connect Langflow to your locally running Ollama server and select an embeddings model."}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["In the Ollama component, in the ",(0,t.jsx)(n.strong,{children:"Ollama Base URL"})," field, enter the address for your locally running Ollama server.\nThis value is set as the ",(0,t.jsx)(n.code,{children:"OLLAMA_HOST"})," environment variable in Ollama. The default base URL is ",(0,t.jsx)(n.code,{children:"http://localhost:11434"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["To refresh the server's list of models, click ",(0,t.jsx)(r.A,{name:"RefreshCw","aria-label":"Refresh"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["In the ",(0,t.jsx)(n.strong,{children:"Ollama Model"})," field, select an embeddings model. This example uses ",(0,t.jsx)(n.code,{children:"all-minilm:latest"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Connect the ",(0,t.jsx)(n.strong,{children:"Ollama"})," embeddings component to a flow.\nFor example, this flow connects a local Ollama server running a ",(0,t.jsx)(n.code,{children:"all-minilm:latest"})," embeddings model to a ",(0,t.jsx)(n.a,{href:"/components-vector-stores#chroma-db",children:"Chroma DB"})," vector store to generate embeddings for split text."]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"Ollama embeddings connected to Chroma DB",src:s(7369).A+"",width:"1098",height:"811"})}),"\n",(0,t.jsxs)(n.p,{children:["For more information, see the ",(0,t.jsx)(n.a,{href:"https://ollama.com/",children:"Ollama documentation"}),"."]}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Ollama Model"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:["The name of the Ollama model to use. Default: ",(0,t.jsx)(n.code,{children:"llama2"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Ollama Base URL"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:["The base URL of the Ollama API. Default: ",(0,t.jsx)(n.code,{children:"http://localhost:11434"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Model Temperature"}),(0,t.jsx)(n.td,{children:"Float"}),(0,t.jsx)(n.td,{children:"The temperature parameter for the model. Adjusts the randomness in the generated embeddings."})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embeddings"}),(0,t.jsx)(n.td,{children:"An instance for generating embeddings using Ollama."})]})})]})]}),"\n",(0,t.jsx)(n.h2,{id:"openai-embeddings",children:"OpenAI Embeddings"}),"\n",(0,t.jsxs)(n.p,{children:["This component is used to load embedding models from ",(0,t.jsx)(n.a,{href:"https://openai.com/",children:"OpenAI"}),"."]}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"OpenAI API Key"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"The API key to use for accessing the OpenAI API."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Default Headers"}),(0,t.jsx)(n.td,{children:"Dict"}),(0,t.jsx)(n.td,{children:"The default headers for the HTTP requests."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Default Query"}),(0,t.jsx)(n.td,{children:"NestedDict"}),(0,t.jsx)(n.td,{children:"The default query parameters for the HTTP requests."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Allowed Special"}),(0,t.jsx)(n.td,{children:"List"}),(0,t.jsxs)(n.td,{children:["The special tokens allowed for processing. Default: ",(0,t.jsx)(n.code,{children:"[]"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Disallowed Special"}),(0,t.jsx)(n.td,{children:"List"}),(0,t.jsxs)(n.td,{children:["The special tokens disallowed for processing. Default: ",(0,t.jsx)(n.code,{children:'["all"]'}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Chunk Size"}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsxs)(n.td,{children:["The chunk size for processing. Default: ",(0,t.jsx)(n.code,{children:"1000"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Client"}),(0,t.jsx)(n.td,{children:"Any"}),(0,t.jsx)(n.td,{children:"The HTTP client for making requests."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Deployment"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:["The deployment name for the model. Default: ",(0,t.jsx)(n.code,{children:"text-embedding-3-small"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Embedding Context Length"}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsxs)(n.td,{children:["The length of embedding context. Default: ",(0,t.jsx)(n.code,{children:"8191"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Max Retries"}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsxs)(n.td,{children:["The maximum number of retries for failed requests. Default: ",(0,t.jsx)(n.code,{children:"6"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Model"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:["The name of the model to use. Default: ",(0,t.jsx)(n.code,{children:"text-embedding-3-small"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Model Kwargs"}),(0,t.jsx)(n.td,{children:"NestedDict"}),(0,t.jsx)(n.td,{children:"Additional keyword arguments for the model."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"OpenAI API Base"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"The base URL of the OpenAI API."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"OpenAI API Type"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"The type of the OpenAI API."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"OpenAI API Version"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"The version of the OpenAI API."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"OpenAI Organization"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"The organization associated with the API key."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"OpenAI Proxy"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"The proxy server for the requests."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Request Timeout"}),(0,t.jsx)(n.td,{children:"Float"}),(0,t.jsx)(n.td,{children:"The timeout for the HTTP requests."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Show Progress Bar"}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsxs)(n.td,{children:["Whether to show a progress bar for processing. Default: ",(0,t.jsx)(n.code,{children:"False"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Skip Empty"}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsxs)(n.td,{children:["Whether to skip empty inputs. Default: ",(0,t.jsx)(n.code,{children:"False"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"TikToken Enable"}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsxs)(n.td,{children:["Whether to enable TikToken. Default: ",(0,t.jsx)(n.code,{children:"True"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"TikToken Model Name"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"The name of the TikToken model."})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embeddings"}),(0,t.jsx)(n.td,{children:"An instance for generating embeddings using OpenAI."})]})})]})]}),"\n",(0,t.jsx)(n.h2,{id:"text-embedder",children:"Text embedder"}),"\n",(0,t.jsx)(n.p,{children:"This component generates embeddings for a given message using a specified embedding model."}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embedding_model"}),(0,t.jsx)(n.td,{children:"Embedding Model"}),(0,t.jsx)(n.td,{children:"The embedding model to use for generating embeddings."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"message"}),(0,t.jsx)(n.td,{children:"Message"}),(0,t.jsx)(n.td,{children:"The message for which to generate embeddings."})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Display Name"}),(0,t.jsx)(n.th,{children:"Info"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embedding Data"}),(0,t.jsx)(n.td,{children:"A data object containing the original text and its embedding vector."})]})})]})]}),"\n",(0,t.jsx)(n.h2,{id:"vertexai-embeddings",children:"VertexAI Embeddings"}),"\n",(0,t.jsxs)(n.p,{children:["This component is a wrapper around ",(0,t.jsx)(n.a,{href:"https://cloud.google.com/vertex-ai",children:"Google Vertex AI"})," ",(0,t.jsx)(n.a,{href:"https://cloud.google.com/vertex-ai/docs/generative-ai/embeddings/get-text-embeddings",children:"Embeddings API"}),"."]}),"\n",(0,t.jsxs)(d,{children:[(0,t.jsx)("summary",{children:"Parameters"}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Inputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"credentials"}),(0,t.jsx)(n.td,{children:"Credentials"}),(0,t.jsx)(n.td,{children:"The default custom credentials to use."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"location"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:["The default location to use when making API calls. Default: ",(0,t.jsx)(n.code,{children:"us-central1"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"max_output_tokens"}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsxs)(n.td,{children:["The token limit determines the maximum amount of text output from one prompt. Default: ",(0,t.jsx)(n.code,{children:"128"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"model_name"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:["The name of the Vertex AI large language model. Default: ",(0,t.jsx)(n.code,{children:"text-bison"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"project"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsx)(n.td,{children:"The default GCP project to use when making Vertex API calls."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"request_parallelism"}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsxs)(n.td,{children:["The amount of parallelism allowed for requests issued to VertexAI models. Default: ",(0,t.jsx)(n.code,{children:"5"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"temperature"}),(0,t.jsx)(n.td,{children:"Float"}),(0,t.jsxs)(n.td,{children:["Tunes the degree of randomness in text generations. Should be a non-negative value. Default: ",(0,t.jsx)(n.code,{children:"0"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"top_k"}),(0,t.jsx)(n.td,{children:"Integer"}),(0,t.jsxs)(n.td,{children:["How the model selects tokens for output. The next token is selected from the top ",(0,t.jsx)(n.code,{children:"k"})," tokens. Default: ",(0,t.jsx)(n.code,{children:"40"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"top_p"}),(0,t.jsx)(n.td,{children:"Float"}),(0,t.jsxs)(n.td,{children:["Tokens are selected from the most probable to least until the sum of their probabilities exceeds the top ",(0,t.jsx)(n.code,{children:"p"})," value. Default: ",(0,t.jsx)(n.code,{children:"0.95"}),"."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"tuned_model_name"}),(0,t.jsx)(n.td,{children:"String"}),(0,t.jsxs)(n.td,{children:["The name of a tuned model. If provided, ",(0,t.jsx)(n.code,{children:"model_name"})," is ignored."]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"verbose"}),(0,t.jsx)(n.td,{children:"Boolean"}),(0,t.jsxs)(n.td,{children:["This parameter controls the level of detail in the output. When set to ",(0,t.jsx)(n.code,{children:"True"}),", it prints internal states of the chain to help debug. Default: ",(0,t.jsx)(n.code,{children:"False"}),"."]})]})]})]}),(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Outputs"})}),(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Name"}),(0,t.jsx)(n.th,{children:"Type"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"embeddings"}),(0,t.jsx)(n.td,{children:"Embeddings"}),(0,t.jsx)(n.td,{children:"An instance for generating embeddings using VertexAI."})]})})]})]})]})}function x(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(a,{...e})}):a(e)}},80352:(e,n,s)=>{s.d(n,{A:()=>d});const d=s.p+"assets/images/url-component-fb712df73581345c0f344013ce6ff2fd.png"},84443:(e,n,s)=>{s.d(n,{A:()=>i});s(96540);var d=s(64058),t=s(74848);function i(e){let{name:n,...s}=e;const i=d[n];return i?(0,t.jsx)(i,{...s}):null}},96425:(e,n,s)=>{s.d(n,{A:()=>d});const d=s.p+"assets/images/component-watsonx-embeddings-chroma-591e45d59ab635d1e1e68ab8036cfed7.png"}}]);
\ No newline at end of file
diff --git a/assets/js/9ac856ad.48629fa4.js b/assets/js/9ac856ad.7ec555fe.js
similarity index 99%
rename from assets/js/9ac856ad.48629fa4.js
rename to assets/js/9ac856ad.7ec555fe.js
index 54754386da..4ae690816e 100644
--- a/assets/js/9ac856ad.48629fa4.js
+++ b/assets/js/9ac856ad.7ec555fe.js
@@ -1 +1 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[4046],{47758:(e,n,s)=>{s.r(n),s.d(n,{CH:()=>h,assets:()=>a,chCodeConfig:()=>x,contentTitle:()=>c,default:()=>u,frontMatter:()=>d,metadata:()=>r,toc:()=>j});const r=JSON.parse('{"id":"Configuration/configuration-cli","title":"Langflow CLI","description":"The Langflow command line interface (Langflow CLI) is the main interface for managing and running the Langflow server.","source":"@site/docs/Configuration/configuration-cli.md","sourceDirName":"Configuration","slug":"/configuration-cli","permalink":"/configuration-cli","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Langflow CLI","slug":"/configuration-cli"},"sidebar":"docs","previous":{"title":"Authentication","permalink":"/configuration-authentication"},"next":{"title":"Configure an external PostgreSQL database","permalink":"/configuration-custom-database"}}');var o=s(74848),t=s(28453),i=s(24754),l=s(56289);const d={title:"Langflow CLI",slug:"/configuration-cli"},c="Langflow CLI",a={},h={annotations:i.hk,Code:i.Cy},x={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},j=[{value:"CLI commands",id:"cli-commands",level:2},{value:"langflow",id:"langflow",level:3},{value:"Options",id:"options",level:4},{value:"langflow api-key",id:"langflow-api-key",level:3},{value:"Options",id:"options-1",level:4},{value:"langflow copy-db",id:"langflow-copy-db",level:3},{value:"Options",id:"options-2",level:4},{value:"langflow migration",id:"langflow-migration",level:3},{value:"Options",id:"options-3",level:4},{value:"langflow run",id:"langflow-run",level:3},{value:"Options",id:"options-4",level:4},{value:"langflow superuser",id:"langflow-superuser",level:3},{value:"Options",id:"options-5",level:4},{value:"Precedence",id:"precedence",level:2},{value:"Assign values",id:"assign-values",level:2},{value:"Boolean values",id:"boolean",level:3}];function p(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.R)(),...e.components};return h||f("CH",!1),h.Code||f("CH.Code",!0),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"langflow-cli",children:"Langflow CLI"})}),"\n",(0,o.jsx)(n.p,{children:"The Langflow command line interface (Langflow CLI) is the main interface for managing and running the Langflow server."}),"\n",(0,o.jsx)(n.h2,{id:"cli-commands",children:"CLI commands"}),"\n",(0,o.jsxs)(n.p,{children:["The following sections describe the available CLI commands and their options, as well as their corresponding ",(0,o.jsx)(n.a,{href:"/environment-variables",children:"environment variables"}),"."]}),"\n",(0,o.jsx)(n.h3,{id:"langflow",children:"langflow"}),"\n",(0,o.jsx)(n.p,{children:"Running the CLI without any arguments displays a list of available options and commands."}),"\n",(0,o.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow",props:{style:{color:"#FFA657"}}},{content:" [OPTIONS]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# or",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow",props:{style:{color:"#A5D6FF"}}},{content:" [OPTIONS]",props:{style:{color:"#C9D1D9"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsx)(n.h4,{id:"options",children:"Options"}),"\n",(0,o.jsxs)(n.table,{children:[(0,o.jsx)(n.thead,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.th,{children:"Option"}),(0,o.jsx)(n.th,{children:"Default"}),(0,o.jsx)(n.th,{children:"Values"}),(0,o.jsx)(n.th,{children:"Description"})]})}),(0,o.jsxs)(n.tbody,{children:[(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"install-completion"}),(0,o.jsx)(n.code,{children:"--install-completion"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:"Install auto-completion for the current shell."})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"show-completion"}),(0,o.jsx)(n.code,{children:"--show-completion"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:"Show the location of the auto-completion config file, if installed."})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"help"}),(0,o.jsx)(n.code,{children:"--help"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:"Display information about the command usage and its options and arguments."})]})]})]}),"\n",(0,o.jsx)(n.h3,{id:"langflow-api-key",children:"langflow api-key"}),"\n",(0,o.jsxs)(n.p,{children:["Create an API key for the default superuser if the ",(0,o.jsx)(n.code,{children:"LANGFLOW_AUTO_LOGIN"})," environment variable is set to ",(0,o.jsx)(n.code,{children:"true"}),"."]}),"\n",(0,o.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"api-key",props:{style:{color:"#A5D6FF"}}},{content:" [OPTIONS]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# or",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow api-key",props:{style:{color:"#A5D6FF"}}},{content:" [OPTIONS]",props:{style:{color:"#C9D1D9"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsx)(n.h4,{id:"options-1",children:"Options"}),"\n",(0,o.jsxs)(n.table,{children:[(0,o.jsx)(n.thead,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.th,{children:"Option"}),(0,o.jsx)(n.th,{children:"Default"}),(0,o.jsx)(n.th,{children:"Values"}),(0,o.jsx)(n.th,{children:"Description"})]})}),(0,o.jsxs)(n.tbody,{children:[(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"install-completion"}),(0,o.jsx)(n.code,{children:"--install-completion"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:"Install auto-completion for the current shell."})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"show-completion"}),(0,o.jsx)(n.code,{children:"--show-completion"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:"Show the location of the auto-completion config file (if installed)."})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"help"}),(0,o.jsx)(n.code,{children:"--help"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:"Display information about the command usage and its options and arguments."})]})]})]}),"\n",(0,o.jsx)(n.h3,{id:"langflow-copy-db",children:"langflow copy-db"}),"\n",(0,o.jsxs)(n.p,{children:["Copy the database files to the current directory.\nCopy the Langflow database files, ",(0,o.jsx)(n.code,{children:"langflow.db"})," and ",(0,o.jsx)(n.code,{children:"langflow-pre.db"})," (if they exist), from the cache directory to the current directory."]}),"\n",(0,o.jsx)(n.admonition,{type:"note",children:(0,o.jsxs)(n.p,{children:["The current directory is the directory containing ",(0,o.jsx)(n.code,{children:"__main__.py"}),".\nYou can find this directory by running ",(0,o.jsx)(n.code,{children:"which langflow"}),"."]})}),"\n",(0,o.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"copy-db",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"# or",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow copy-db",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsx)(n.h4,{id:"options-2",children:"Options"}),"\n",(0,o.jsxs)(n.table,{children:[(0,o.jsx)(n.thead,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.th,{children:"Option"}),(0,o.jsx)(n.th,{children:"Default"}),(0,o.jsx)(n.th,{children:"Values"}),(0,o.jsx)(n.th,{children:"Description"})]})}),(0,o.jsx)(n.tbody,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"copy-db-help"}),(0,o.jsx)(n.code,{children:"--help"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:"Display information about the command usage and its options and arguments."})]})})]}),"\n",(0,o.jsx)(n.h3,{id:"langflow-migration",children:"langflow migration"}),"\n",(0,o.jsx)(n.p,{children:"Run or test database migrations."}),"\n",(0,o.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"migration",props:{style:{color:"#A5D6FF"}}},{content:" [OPTIONS]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# or",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow migration",props:{style:{color:"#A5D6FF"}}},{content:" [OPTIONS]",props:{style:{color:"#C9D1D9"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsx)(n.h4,{id:"options-3",children:"Options"}),"\n",(0,o.jsxs)(n.table,{children:[(0,o.jsx)(n.thead,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.th,{children:"Option"}),(0,o.jsx)(n.th,{children:"Default"}),(0,o.jsx)(n.th,{children:"Values"}),(0,o.jsx)(n.th,{children:"Description"})]})}),(0,o.jsxs)(n.tbody,{children:[(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"migration-test"}),(0,o.jsx)(n.code,{children:"--test"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"true"})}),(0,o.jsx)(n.td,{children:"Boolean"}),(0,o.jsxs)(n.td,{children:["Run migrations in test mode. Use ",(0,o.jsx)(n.code,{children:"--no-test"})," to disable test mode."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"migration-fix"}),(0,o.jsx)(n.code,{children:"--fix"})]}),(0,o.jsxs)(n.td,{children:[(0,o.jsx)(n.code,{children:"false"})," (",(0,o.jsx)(n.code,{children:"--no-fix"}),")"]}),(0,o.jsx)(n.td,{children:"Boolean"}),(0,o.jsx)(n.td,{children:"Fix migrations. This is a destructive operation, and all affected data will be deleted. Only use this option if you know what you are doing."})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"migration-help"}),(0,o.jsx)(n.code,{children:"--help"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:"Display information about the command usage and its options and arguments."})]})]})]}),"\n",(0,o.jsx)(n.h3,{id:"langflow-run",children:"langflow run"}),"\n",(0,o.jsx)(n.p,{children:"Start the Langflow server."}),"\n",(0,o.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"run",props:{style:{color:"#A5D6FF"}}},{content:" [OPTIONS]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# or",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow run",props:{style:{color:"#A5D6FF"}}},{content:" [OPTIONS]",props:{style:{color:"#C9D1D9"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsx)(n.h4,{id:"options-4",children:"Options"}),"\n",(0,o.jsxs)(n.table,{children:[(0,o.jsx)(n.thead,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.th,{children:"Option"}),(0,o.jsx)(n.th,{children:"Default"}),(0,o.jsx)(n.th,{children:"Values"}),(0,o.jsx)(n.th,{children:"Description"})]})}),(0,o.jsxs)(n.tbody,{children:[(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-host"}),(0,o.jsx)(n.code,{children:"--host"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"127.0.0.1"})}),(0,o.jsx)(n.td,{children:"String"}),(0,o.jsxs)(n.td,{children:["The host on which the Langflow server will run.",(0,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_HOST",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_HOST"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-workers"}),(0,o.jsx)(n.code,{children:"--workers"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"1"})}),(0,o.jsx)(n.td,{children:"Integer"}),(0,o.jsxs)(n.td,{children:["Number of worker processes.",(0,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_WORKERS",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_WORKERS"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-worker-timeout"}),(0,o.jsx)(n.code,{children:"--worker-timeout"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"300"})}),(0,o.jsx)(n.td,{children:"Integer"}),(0,o.jsxs)(n.td,{children:["Worker timeout in seconds.",(0,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_WORKER_TIMEOUT",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_WORKER_TIMEOUT"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-port"}),(0,o.jsx)(n.code,{children:"--port"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"7860"})}),(0,o.jsx)(n.td,{children:"Integer"}),(0,o.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,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_PORT",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_PORT"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-components-path"}),(0,o.jsx)(n.code,{children:"--components-path"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"langflow/components"})}),(0,o.jsx)(n.td,{children:"String"}),(0,o.jsxs)(n.td,{children:["Path to the directory containing custom components.",(0,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_COMPONENTS_PATH",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_COMPONENTS_PATH"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-env-file"}),(0,o.jsx)(n.code,{children:"--env-file"})]}),(0,o.jsx)(n.td,{children:"Not set"}),(0,o.jsx)(n.td,{children:"String"}),(0,o.jsxs)(n.td,{children:["Path to the ",(0,o.jsx)(n.code,{children:".env"})," file containing environment variables.",(0,o.jsx)("br",{}),"See ",(0,o.jsx)(n.a,{href:"/environment-variables#configure-variables-env-file",children:"Import environment variables from a .env file"}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-log-level"}),(0,o.jsx)(n.code,{children:"--log-level"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"critical"})}),(0,o.jsxs)(n.td,{children:[(0,o.jsx)(n.code,{children:"debug"}),(0,o.jsx)("br",{}),(0,o.jsx)(n.code,{children:"info"}),(0,o.jsx)("br",{}),(0,o.jsx)(n.code,{children:"warning"}),(0,o.jsx)("br",{}),(0,o.jsx)(n.code,{children:"error"}),(0,o.jsx)("br",{}),(0,o.jsx)(n.code,{children:"critical"})]}),(0,o.jsxs)(n.td,{children:["Set the logging level.",(0,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_LOG_LEVEL",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_LOG_LEVEL"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-log-file"}),(0,o.jsx)(n.code,{children:"--log-file"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"logs/langflow.log"})}),(0,o.jsx)(n.td,{children:"String"}),(0,o.jsxs)(n.td,{children:["Set the path to the log file for Langflow.",(0,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_LOG_FILE",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_LOG_FILE"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-cache"}),(0,o.jsx)(n.code,{children:"--cache"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"async"})}),(0,o.jsxs)(n.td,{children:[(0,o.jsx)(n.code,{children:"async"}),(0,o.jsx)("br",{}),(0,o.jsx)(n.code,{children:"redis"}),(0,o.jsx)("br",{}),(0,o.jsx)(n.code,{children:"memory"}),(0,o.jsx)("br",{}),(0,o.jsx)(n.code,{children:"disk"})]}),(0,o.jsxs)(n.td,{children:["Type of cache to use.",(0,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_CACHE_TYPE",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_CACHE_TYPE"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-frontend-path"}),(0,o.jsx)(n.code,{children:"--frontend-path"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"./frontend"})}),(0,o.jsx)(n.td,{children:"String"}),(0,o.jsxs)(n.td,{children:["Path to the frontend directory containing build files. This is for development purposes only.",(0,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_FRONTEND_PATH",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_FRONTEND_PATH"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-open-browser"}),(0,o.jsx)(n.code,{children:"--open-browser"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"true"})}),(0,o.jsx)(n.td,{children:"Boolean"}),(0,o.jsxs)(n.td,{children:["Open the system web browser on startup. Use ",(0,o.jsx)(n.code,{children:"--no-open-browser"})," to disable opening the system web browser on startup.",(0,o.jsx)("br",{})," See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_OPEN_BROWSER",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_OPEN_BROWSER"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-remove-api-keys"}),(0,o.jsx)(n.code,{children:"--remove-api-keys"})]}),(0,o.jsxs)(n.td,{children:[(0,o.jsx)(n.code,{children:"false"})," (",(0,o.jsx)(n.code,{children:"--no-remove-api-keys"}),")"]}),(0,o.jsx)(n.td,{children:"Boolean"}),(0,o.jsxs)(n.td,{children:["Remove API keys from the projects saved in the database.",(0,o.jsx)("br",{})," See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_REMOVE_API_KEYS",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_REMOVE_API_KEYS"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-backend-only"}),(0,o.jsx)(n.code,{children:"--backend-only"})]}),(0,o.jsxs)(n.td,{children:[(0,o.jsx)(n.code,{children:"false"})," (",(0,o.jsx)(n.code,{children:"--no-backend-only"}),")"]}),(0,o.jsx)(n.td,{children:"Boolean"}),(0,o.jsxs)(n.td,{children:["Only run Langflow's backend server (no frontend).",(0,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_BACKEND_ONLY",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_BACKEND_ONLY"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-store"}),(0,o.jsx)(n.code,{children:"--store"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"true"})}),(0,o.jsx)(n.td,{children:"Boolean"}),(0,o.jsxs)(n.td,{children:["Enable the Langflow Store features. Use ",(0,o.jsx)(n.code,{children:"--no-store"})," to disable the Langflow Store features.",(0,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_STORE",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_STORE"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-auto-saving"}),(0,o.jsx)(n.code,{children:"--auto-saving"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"true"})}),(0,o.jsx)(n.td,{children:"Boolean"}),(0,o.jsxs)(n.td,{children:["Enable flow auto-saving. Use ",(0,o.jsx)(n.code,{children:"--no-auto-saving"})," to disable flow auto-saving.",(0,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_AUTO_SAVING",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_AUTO_SAVING"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-auto-saving-interval"}),(0,o.jsx)(n.code,{children:"--auto-saving-interval"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"1000"})}),(0,o.jsx)(n.td,{children:"Integer"}),(0,o.jsxs)(n.td,{children:["Set the interval for flow auto-saving in milliseconds.",(0,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_AUTO_SAVING_INTERVAL",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_AUTO_SAVING_INTERVAL"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-health-check-max-retries"}),(0,o.jsx)(n.code,{children:"--health-check-max-retries"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"5"})}),(0,o.jsx)(n.td,{children:"Integer"}),(0,o.jsxs)(n.td,{children:["Set the maximum number of retries for the health check. Use ",(0,o.jsx)(n.code,{children:"--no-health-check-max-retries"})," to disable the maximum number of retries for the health check.",(0,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_HEALTH_CHECK_MAX_RETRIES",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_HEALTH_CHECK_MAX_RETRIES"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-max-file-size-upload"}),(0,o.jsx)(n.code,{children:"--max-file-size-upload"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"100"})}),(0,o.jsx)(n.td,{children:"Integer"}),(0,o.jsxs)(n.td,{children:["Set the maximum file size for the upload in megabytes.",(0,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_MAX_FILE_SIZE_UPLOAD",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_MAX_FILE_SIZE_UPLOAD"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-ssl-cert-file-path"}),(0,o.jsx)(n.code,{children:"--ssl-cert-file-path"})]}),(0,o.jsx)(n.td,{children:"Not set"}),(0,o.jsx)(n.td,{children:"String"}),(0,o.jsx)(n.td,{children:"Path to the SSL certificate file on the local system."})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-ssl-key-file-path"}),(0,o.jsx)(n.code,{children:"--ssl-key-file-path"})]}),(0,o.jsx)(n.td,{children:"Not set"}),(0,o.jsx)(n.td,{children:"String"}),(0,o.jsx)(n.td,{children:"Path to the SSL key file on the local system."})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-help"}),(0,o.jsx)(n.code,{children:"--help"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:"Display information about the command usage and its options and arguments."})]})]})]}),"\n",(0,o.jsx)(n.h3,{id:"langflow-superuser",children:"langflow superuser"}),"\n",(0,o.jsx)(n.p,{children:"Create a superuser account."}),"\n",(0,o.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"superuser",props:{style:{color:"#A5D6FF"}}},{content:" [OPTIONS]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# or",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow superuser",props:{style:{color:"#A5D6FF"}}},{content:" [OPTIONS]",props:{style:{color:"#C9D1D9"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsx)(n.h4,{id:"options-5",children:"Options"}),"\n",(0,o.jsxs)(n.table,{children:[(0,o.jsx)(n.thead,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.th,{children:"Option"}),(0,o.jsx)(n.th,{children:"Default"}),(0,o.jsx)(n.th,{children:"Values"}),(0,o.jsx)(n.th,{children:"Description"})]})}),(0,o.jsxs)(n.tbody,{children:[(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"superuser-username"}),(0,o.jsx)(n.code,{children:"--username"})]}),(0,o.jsx)(n.td,{children:"Required"}),(0,o.jsx)(n.td,{children:"String"}),(0,o.jsxs)(n.td,{children:["Specify the name for the superuser.",(0,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_SUPERUSER",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_SUPERUSER"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"superuser-password"}),(0,o.jsx)(n.code,{children:"--password"})]}),(0,o.jsx)(n.td,{children:"Required"}),(0,o.jsx)(n.td,{children:"String"}),(0,o.jsxs)(n.td,{children:["Specify the password for the superuser.",(0,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_SUPERUSER_PASSWORD",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_SUPERUSER_PASSWORD"})," variable"]}),"."]})]})]})]}),"\n",(0,o.jsx)(n.h2,{id:"precedence",children:"Precedence"}),"\n",(0,o.jsxs)(n.p,{children:["Langflow CLI options override the values of corresponding ",(0,o.jsx)(n.a,{href:"/environment-variables",children:"environment variables"}),"."]}),"\n",(0,o.jsxs)(n.p,{children:["For example, if you have ",(0,o.jsx)(n.code,{children:"LANGFLOW_PORT=7860"})," defined as an environment variable, but you run the CLI with ",(0,o.jsx)(n.code,{children:"--port 7880"}),", Langflow sets the port to ",(0,o.jsx)(n.strong,{children:(0,o.jsx)(n.code,{children:"7880"})}),", the value passed with the CLI."]}),"\n",(0,o.jsx)(n.h2,{id:"assign-values",children:"Assign values"}),"\n",(0,o.jsxs)(n.p,{children:["There are two ways you can assign a value to a CLI option.\nYou can write the option flag and its value with a single space between them: ",(0,o.jsx)(n.code,{children:"--option value"}),".\nOr, you can write them using an equals sign (",(0,o.jsx)(n.code,{children:"="}),") between the option flag and the value: ",(0,o.jsx)(n.code,{children:"--option=value"}),"."]}),"\n",(0,o.jsxs)(n.p,{children:["Values that contain spaces must be surrounded by quotation marks: ",(0,o.jsx)(n.code,{children:"--option 'Value with Spaces'"})," or ",(0,o.jsx)(n.code,{children:"--option='Value with Spaces'"}),"."]}),"\n",(0,o.jsx)(n.h3,{id:"boolean",children:"Boolean values"}),"\n",(0,o.jsx)(n.p,{children:"Boolean options turn a behavior on or off, and therefore accept no arguments.\nTo activate a boolean option, type it on the command line.\nFor example:"}),"\n",(0,o.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"run ",props:{style:{color:"#A5D6FF"}}},{content:"--remove-api-keys",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsxs)(n.p,{children:["All boolean options have a corresponding option that negates it.\nFor example, the negating option for ",(0,o.jsx)(n.code,{children:"--remove-api-keys"})," is ",(0,o.jsx)(n.code,{children:"--no-remove-api-keys"}),".\nThese options let you negate boolean options that you may have set using ",(0,o.jsx)(n.a,{href:"/environment-variables",children:"environment variables"}),"."]})]})}function u(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(p,{...e})}):p(e)}function f(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[4046],{47758:(e,n,s)=>{s.r(n),s.d(n,{CH:()=>h,assets:()=>a,chCodeConfig:()=>x,contentTitle:()=>c,default:()=>u,frontMatter:()=>d,metadata:()=>r,toc:()=>j});const r=JSON.parse('{"id":"Configuration/configuration-cli","title":"Langflow CLI","description":"The Langflow command line interface (Langflow CLI) is the main interface for managing and running the Langflow server.","source":"@site/docs/Configuration/configuration-cli.md","sourceDirName":"Configuration","slug":"/configuration-cli","permalink":"/configuration-cli","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Langflow CLI","slug":"/configuration-cli"},"sidebar":"docs","previous":{"title":"Authentication","permalink":"/configuration-authentication"},"next":{"title":"Configure an external PostgreSQL database","permalink":"/configuration-custom-database"}}');var o=s(74848),t=s(28453),i=s(24754),l=s(56289);const d={title:"Langflow CLI",slug:"/configuration-cli"},c="Langflow CLI",a={},h={annotations:i.hk,Code:i.Cy},x={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},j=[{value:"CLI commands",id:"cli-commands",level:2},{value:"langflow",id:"langflow",level:3},{value:"Options",id:"options",level:4},{value:"langflow api-key",id:"langflow-api-key",level:3},{value:"Options",id:"options-1",level:4},{value:"langflow copy-db",id:"langflow-copy-db",level:3},{value:"Options",id:"options-2",level:4},{value:"langflow migration",id:"langflow-migration",level:3},{value:"Options",id:"options-3",level:4},{value:"langflow run",id:"langflow-run",level:3},{value:"Options",id:"options-4",level:4},{value:"langflow superuser",id:"langflow-superuser",level:3},{value:"Options",id:"options-5",level:4},{value:"Precedence",id:"precedence",level:2},{value:"Assign values",id:"assign-values",level:2},{value:"Boolean values",id:"boolean",level:3}];function p(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.R)(),...e.components};return h||f("CH",!1),h.Code||f("CH.Code",!0),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"langflow-cli",children:"Langflow CLI"})}),"\n",(0,o.jsx)(n.p,{children:"The Langflow command line interface (Langflow CLI) is the main interface for managing and running the Langflow server."}),"\n",(0,o.jsx)(n.h2,{id:"cli-commands",children:"CLI commands"}),"\n",(0,o.jsxs)(n.p,{children:["The following sections describe the available CLI commands and their options, as well as their corresponding ",(0,o.jsx)(n.a,{href:"/environment-variables",children:"environment variables"}),"."]}),"\n",(0,o.jsx)(n.h3,{id:"langflow",children:"langflow"}),"\n",(0,o.jsx)(n.p,{children:"Running the CLI without any arguments displays a list of available options and commands."}),"\n",(0,o.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow",props:{style:{color:"#FFA657"}}},{content:" [OPTIONS]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# or",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow",props:{style:{color:"#A5D6FF"}}},{content:" [OPTIONS]",props:{style:{color:"#C9D1D9"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsx)(n.h4,{id:"options",children:"Options"}),"\n",(0,o.jsxs)(n.table,{children:[(0,o.jsx)(n.thead,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.th,{children:"Option"}),(0,o.jsx)(n.th,{children:"Default"}),(0,o.jsx)(n.th,{children:"Values"}),(0,o.jsx)(n.th,{children:"Description"})]})}),(0,o.jsxs)(n.tbody,{children:[(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"install-completion"}),(0,o.jsx)(n.code,{children:"--install-completion"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:"Install auto-completion for the current shell."})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"show-completion"}),(0,o.jsx)(n.code,{children:"--show-completion"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:"Show the location of the auto-completion config file, if installed."})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"help"}),(0,o.jsx)(n.code,{children:"--help"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:"Display information about the command usage and its options and arguments."})]})]})]}),"\n",(0,o.jsx)(n.h3,{id:"langflow-api-key",children:"langflow api-key"}),"\n",(0,o.jsxs)(n.p,{children:["Create an API key for the default superuser if the ",(0,o.jsx)(n.code,{children:"LANGFLOW_AUTO_LOGIN"})," environment variable is set to ",(0,o.jsx)(n.code,{children:"true"}),"."]}),"\n",(0,o.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"api-key",props:{style:{color:"#A5D6FF"}}},{content:" [OPTIONS]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# or",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow api-key",props:{style:{color:"#A5D6FF"}}},{content:" [OPTIONS]",props:{style:{color:"#C9D1D9"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsx)(n.h4,{id:"options-1",children:"Options"}),"\n",(0,o.jsxs)(n.table,{children:[(0,o.jsx)(n.thead,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.th,{children:"Option"}),(0,o.jsx)(n.th,{children:"Default"}),(0,o.jsx)(n.th,{children:"Values"}),(0,o.jsx)(n.th,{children:"Description"})]})}),(0,o.jsxs)(n.tbody,{children:[(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"install-completion"}),(0,o.jsx)(n.code,{children:"--install-completion"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:"Install auto-completion for the current shell."})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"show-completion"}),(0,o.jsx)(n.code,{children:"--show-completion"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:"Show the location of the auto-completion config file (if installed)."})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"help"}),(0,o.jsx)(n.code,{children:"--help"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:"Display information about the command usage and its options and arguments."})]})]})]}),"\n",(0,o.jsx)(n.h3,{id:"langflow-copy-db",children:"langflow copy-db"}),"\n",(0,o.jsxs)(n.p,{children:["Copy the database files to the current directory.\nCopy the Langflow database files, ",(0,o.jsx)(n.code,{children:"langflow.db"})," and ",(0,o.jsx)(n.code,{children:"langflow-pre.db"})," (if they exist), from the cache directory to the current directory."]}),"\n",(0,o.jsx)(n.admonition,{type:"note",children:(0,o.jsxs)(n.p,{children:["The current directory is the directory containing ",(0,o.jsx)(n.code,{children:"__main__.py"}),".\nYou can find this directory by running ",(0,o.jsx)(n.code,{children:"which langflow"}),"."]})}),"\n",(0,o.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"copy-db",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"# or",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow copy-db",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsx)(n.h4,{id:"options-2",children:"Options"}),"\n",(0,o.jsxs)(n.table,{children:[(0,o.jsx)(n.thead,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.th,{children:"Option"}),(0,o.jsx)(n.th,{children:"Default"}),(0,o.jsx)(n.th,{children:"Values"}),(0,o.jsx)(n.th,{children:"Description"})]})}),(0,o.jsx)(n.tbody,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"copy-db-help"}),(0,o.jsx)(n.code,{children:"--help"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:"Display information about the command usage and its options and arguments."})]})})]}),"\n",(0,o.jsx)(n.h3,{id:"langflow-migration",children:"langflow migration"}),"\n",(0,o.jsx)(n.p,{children:"Run or test database migrations."}),"\n",(0,o.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"migration",props:{style:{color:"#A5D6FF"}}},{content:" [OPTIONS]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# or",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow migration",props:{style:{color:"#A5D6FF"}}},{content:" [OPTIONS]",props:{style:{color:"#C9D1D9"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsx)(n.h4,{id:"options-3",children:"Options"}),"\n",(0,o.jsxs)(n.table,{children:[(0,o.jsx)(n.thead,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.th,{children:"Option"}),(0,o.jsx)(n.th,{children:"Default"}),(0,o.jsx)(n.th,{children:"Values"}),(0,o.jsx)(n.th,{children:"Description"})]})}),(0,o.jsxs)(n.tbody,{children:[(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"migration-test"}),(0,o.jsx)(n.code,{children:"--test"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"true"})}),(0,o.jsx)(n.td,{children:"Boolean"}),(0,o.jsxs)(n.td,{children:["Run migrations in test mode. Use ",(0,o.jsx)(n.code,{children:"--no-test"})," to disable test mode."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"migration-fix"}),(0,o.jsx)(n.code,{children:"--fix"})]}),(0,o.jsxs)(n.td,{children:[(0,o.jsx)(n.code,{children:"false"})," (",(0,o.jsx)(n.code,{children:"--no-fix"}),")"]}),(0,o.jsx)(n.td,{children:"Boolean"}),(0,o.jsx)(n.td,{children:"Fix migrations. This is a destructive operation, and all affected data will be deleted. Only use this option if you know what you are doing."})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"migration-help"}),(0,o.jsx)(n.code,{children:"--help"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:"Display information about the command usage and its options and arguments."})]})]})]}),"\n",(0,o.jsx)(n.h3,{id:"langflow-run",children:"langflow run"}),"\n",(0,o.jsx)(n.p,{children:"Start the Langflow server."}),"\n",(0,o.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"run",props:{style:{color:"#A5D6FF"}}},{content:" [OPTIONS]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# or",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow run",props:{style:{color:"#A5D6FF"}}},{content:" [OPTIONS]",props:{style:{color:"#C9D1D9"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsx)(n.h4,{id:"options-4",children:"Options"}),"\n",(0,o.jsxs)(n.table,{children:[(0,o.jsx)(n.thead,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.th,{children:"Option"}),(0,o.jsx)(n.th,{children:"Default"}),(0,o.jsx)(n.th,{children:"Values"}),(0,o.jsx)(n.th,{children:"Description"})]})}),(0,o.jsxs)(n.tbody,{children:[(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-host"}),(0,o.jsx)(n.code,{children:"--host"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"localhost"})}),(0,o.jsx)(n.td,{children:"String"}),(0,o.jsxs)(n.td,{children:["The host on which the Langflow server will run.",(0,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_HOST",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_HOST"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-workers"}),(0,o.jsx)(n.code,{children:"--workers"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"1"})}),(0,o.jsx)(n.td,{children:"Integer"}),(0,o.jsxs)(n.td,{children:["Number of worker processes.",(0,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_WORKERS",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_WORKERS"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-worker-timeout"}),(0,o.jsx)(n.code,{children:"--worker-timeout"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"300"})}),(0,o.jsx)(n.td,{children:"Integer"}),(0,o.jsxs)(n.td,{children:["Worker timeout in seconds.",(0,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_WORKER_TIMEOUT",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_WORKER_TIMEOUT"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-port"}),(0,o.jsx)(n.code,{children:"--port"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"7860"})}),(0,o.jsx)(n.td,{children:"Integer"}),(0,o.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,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_PORT",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_PORT"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-components-path"}),(0,o.jsx)(n.code,{children:"--components-path"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"langflow/components"})}),(0,o.jsx)(n.td,{children:"String"}),(0,o.jsxs)(n.td,{children:["Path to the directory containing custom components.",(0,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_COMPONENTS_PATH",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_COMPONENTS_PATH"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-env-file"}),(0,o.jsx)(n.code,{children:"--env-file"})]}),(0,o.jsx)(n.td,{children:"Not set"}),(0,o.jsx)(n.td,{children:"String"}),(0,o.jsxs)(n.td,{children:["Path to the ",(0,o.jsx)(n.code,{children:".env"})," file containing environment variables.",(0,o.jsx)("br",{}),"See ",(0,o.jsx)(n.a,{href:"/environment-variables#configure-variables-env-file",children:"Import environment variables from a .env file"}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-log-level"}),(0,o.jsx)(n.code,{children:"--log-level"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"critical"})}),(0,o.jsxs)(n.td,{children:[(0,o.jsx)(n.code,{children:"debug"}),(0,o.jsx)("br",{}),(0,o.jsx)(n.code,{children:"info"}),(0,o.jsx)("br",{}),(0,o.jsx)(n.code,{children:"warning"}),(0,o.jsx)("br",{}),(0,o.jsx)(n.code,{children:"error"}),(0,o.jsx)("br",{}),(0,o.jsx)(n.code,{children:"critical"})]}),(0,o.jsxs)(n.td,{children:["Set the logging level.",(0,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_LOG_LEVEL",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_LOG_LEVEL"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-log-file"}),(0,o.jsx)(n.code,{children:"--log-file"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"logs/langflow.log"})}),(0,o.jsx)(n.td,{children:"String"}),(0,o.jsxs)(n.td,{children:["Set the path to the log file for Langflow.",(0,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_LOG_FILE",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_LOG_FILE"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-cache"}),(0,o.jsx)(n.code,{children:"--cache"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"async"})}),(0,o.jsxs)(n.td,{children:[(0,o.jsx)(n.code,{children:"async"}),(0,o.jsx)("br",{}),(0,o.jsx)(n.code,{children:"redis"}),(0,o.jsx)("br",{}),(0,o.jsx)(n.code,{children:"memory"}),(0,o.jsx)("br",{}),(0,o.jsx)(n.code,{children:"disk"})]}),(0,o.jsxs)(n.td,{children:["Type of cache to use.",(0,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_CACHE_TYPE",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_CACHE_TYPE"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-frontend-path"}),(0,o.jsx)(n.code,{children:"--frontend-path"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"./frontend"})}),(0,o.jsx)(n.td,{children:"String"}),(0,o.jsxs)(n.td,{children:["Path to the frontend directory containing build files. This is for development purposes only.",(0,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_FRONTEND_PATH",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_FRONTEND_PATH"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-open-browser"}),(0,o.jsx)(n.code,{children:"--open-browser"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"true"})}),(0,o.jsx)(n.td,{children:"Boolean"}),(0,o.jsxs)(n.td,{children:["Open the system web browser on startup. Use ",(0,o.jsx)(n.code,{children:"--no-open-browser"})," to disable opening the system web browser on startup.",(0,o.jsx)("br",{})," See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_OPEN_BROWSER",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_OPEN_BROWSER"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-remove-api-keys"}),(0,o.jsx)(n.code,{children:"--remove-api-keys"})]}),(0,o.jsxs)(n.td,{children:[(0,o.jsx)(n.code,{children:"false"})," (",(0,o.jsx)(n.code,{children:"--no-remove-api-keys"}),")"]}),(0,o.jsx)(n.td,{children:"Boolean"}),(0,o.jsxs)(n.td,{children:["Remove API keys from the projects saved in the database.",(0,o.jsx)("br",{})," See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_REMOVE_API_KEYS",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_REMOVE_API_KEYS"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-backend-only"}),(0,o.jsx)(n.code,{children:"--backend-only"})]}),(0,o.jsxs)(n.td,{children:[(0,o.jsx)(n.code,{children:"false"})," (",(0,o.jsx)(n.code,{children:"--no-backend-only"}),")"]}),(0,o.jsx)(n.td,{children:"Boolean"}),(0,o.jsxs)(n.td,{children:["Only run Langflow's backend server (no frontend).",(0,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_BACKEND_ONLY",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_BACKEND_ONLY"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-store"}),(0,o.jsx)(n.code,{children:"--store"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"true"})}),(0,o.jsx)(n.td,{children:"Boolean"}),(0,o.jsxs)(n.td,{children:["Enable the Langflow Store features. Use ",(0,o.jsx)(n.code,{children:"--no-store"})," to disable the Langflow Store features.",(0,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_STORE",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_STORE"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-auto-saving"}),(0,o.jsx)(n.code,{children:"--auto-saving"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"true"})}),(0,o.jsx)(n.td,{children:"Boolean"}),(0,o.jsxs)(n.td,{children:["Enable flow auto-saving. Use ",(0,o.jsx)(n.code,{children:"--no-auto-saving"})," to disable flow auto-saving.",(0,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_AUTO_SAVING",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_AUTO_SAVING"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-auto-saving-interval"}),(0,o.jsx)(n.code,{children:"--auto-saving-interval"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"1000"})}),(0,o.jsx)(n.td,{children:"Integer"}),(0,o.jsxs)(n.td,{children:["Set the interval for flow auto-saving in milliseconds.",(0,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_AUTO_SAVING_INTERVAL",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_AUTO_SAVING_INTERVAL"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-health-check-max-retries"}),(0,o.jsx)(n.code,{children:"--health-check-max-retries"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"5"})}),(0,o.jsx)(n.td,{children:"Integer"}),(0,o.jsxs)(n.td,{children:["Set the maximum number of retries for the health check. Use ",(0,o.jsx)(n.code,{children:"--no-health-check-max-retries"})," to disable the maximum number of retries for the health check.",(0,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_HEALTH_CHECK_MAX_RETRIES",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_HEALTH_CHECK_MAX_RETRIES"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-max-file-size-upload"}),(0,o.jsx)(n.code,{children:"--max-file-size-upload"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"100"})}),(0,o.jsx)(n.td,{children:"Integer"}),(0,o.jsxs)(n.td,{children:["Set the maximum file size for the upload in megabytes.",(0,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_MAX_FILE_SIZE_UPLOAD",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_MAX_FILE_SIZE_UPLOAD"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-ssl-cert-file-path"}),(0,o.jsx)(n.code,{children:"--ssl-cert-file-path"})]}),(0,o.jsx)(n.td,{children:"Not set"}),(0,o.jsx)(n.td,{children:"String"}),(0,o.jsx)(n.td,{children:"Path to the SSL certificate file on the local system."})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-ssl-key-file-path"}),(0,o.jsx)(n.code,{children:"--ssl-key-file-path"})]}),(0,o.jsx)(n.td,{children:"Not set"}),(0,o.jsx)(n.td,{children:"String"}),(0,o.jsx)(n.td,{children:"Path to the SSL key file on the local system."})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"run-help"}),(0,o.jsx)(n.code,{children:"--help"})]}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.em,{children:"Not applicable"})}),(0,o.jsx)(n.td,{children:"Display information about the command usage and its options and arguments."})]})]})]}),"\n",(0,o.jsx)(n.h3,{id:"langflow-superuser",children:"langflow superuser"}),"\n",(0,o.jsx)(n.p,{children:"Create a superuser account."}),"\n",(0,o.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"superuser",props:{style:{color:"#A5D6FF"}}},{content:" [OPTIONS]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# or",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow superuser",props:{style:{color:"#A5D6FF"}}},{content:" [OPTIONS]",props:{style:{color:"#C9D1D9"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsx)(n.h4,{id:"options-5",children:"Options"}),"\n",(0,o.jsxs)(n.table,{children:[(0,o.jsx)(n.thead,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.th,{children:"Option"}),(0,o.jsx)(n.th,{children:"Default"}),(0,o.jsx)(n.th,{children:"Values"}),(0,o.jsx)(n.th,{children:"Description"})]})}),(0,o.jsxs)(n.tbody,{children:[(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"superuser-username"}),(0,o.jsx)(n.code,{children:"--username"})]}),(0,o.jsx)(n.td,{children:"Required"}),(0,o.jsx)(n.td,{children:"String"}),(0,o.jsxs)(n.td,{children:["Specify the name for the superuser.",(0,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_SUPERUSER",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_SUPERUSER"})," variable"]}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(l.A,{id:"superuser-password"}),(0,o.jsx)(n.code,{children:"--password"})]}),(0,o.jsx)(n.td,{children:"Required"}),(0,o.jsx)(n.td,{children:"String"}),(0,o.jsxs)(n.td,{children:["Specify the password for the superuser.",(0,o.jsx)("br",{}),"See ",(0,o.jsxs)(n.a,{href:"/environment-variables#LANGFLOW_SUPERUSER_PASSWORD",children:[(0,o.jsx)(n.code,{children:"LANGFLOW_SUPERUSER_PASSWORD"})," variable"]}),"."]})]})]})]}),"\n",(0,o.jsx)(n.h2,{id:"precedence",children:"Precedence"}),"\n",(0,o.jsxs)(n.p,{children:["Langflow CLI options override the values of corresponding ",(0,o.jsx)(n.a,{href:"/environment-variables",children:"environment variables"}),"."]}),"\n",(0,o.jsxs)(n.p,{children:["For example, if you have ",(0,o.jsx)(n.code,{children:"LANGFLOW_PORT=7860"})," defined as an environment variable, but you run the CLI with ",(0,o.jsx)(n.code,{children:"--port 7880"}),", Langflow sets the port to ",(0,o.jsx)(n.strong,{children:(0,o.jsx)(n.code,{children:"7880"})}),", the value passed with the CLI."]}),"\n",(0,o.jsx)(n.h2,{id:"assign-values",children:"Assign values"}),"\n",(0,o.jsxs)(n.p,{children:["There are two ways you can assign a value to a CLI option.\nYou can write the option flag and its value with a single space between them: ",(0,o.jsx)(n.code,{children:"--option value"}),".\nOr, you can write them using an equals sign (",(0,o.jsx)(n.code,{children:"="}),") between the option flag and the value: ",(0,o.jsx)(n.code,{children:"--option=value"}),"."]}),"\n",(0,o.jsxs)(n.p,{children:["Values that contain spaces must be surrounded by quotation marks: ",(0,o.jsx)(n.code,{children:"--option 'Value with Spaces'"})," or ",(0,o.jsx)(n.code,{children:"--option='Value with Spaces'"}),"."]}),"\n",(0,o.jsx)(n.h3,{id:"boolean",children:"Boolean values"}),"\n",(0,o.jsx)(n.p,{children:"Boolean options turn a behavior on or off, and therefore accept no arguments.\nTo activate a boolean option, type it on the command line.\nFor example:"}),"\n",(0,o.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"run ",props:{style:{color:"#A5D6FF"}}},{content:"--remove-api-keys",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsxs)(n.p,{children:["All boolean options have a corresponding option that negates it.\nFor example, the negating option for ",(0,o.jsx)(n.code,{children:"--remove-api-keys"})," is ",(0,o.jsx)(n.code,{children:"--no-remove-api-keys"}),".\nThese options let you negate boolean options that you may have set using ",(0,o.jsx)(n.a,{href:"/environment-variables",children:"environment variables"}),"."]})]})}function u(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(p,{...e})}):p(e)}function f(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/b1ab2a41.1a7b70b6.js b/assets/js/b1ab2a41.e5884dca.js
similarity index 99%
rename from assets/js/b1ab2a41.1a7b70b6.js
rename to assets/js/b1ab2a41.e5884dca.js
index 5dcdbc7e95..6a4e9e6df7 100644
--- a/assets/js/b1ab2a41.1a7b70b6.js
+++ b/assets/js/b1ab2a41.e5884dca.js
@@ -1 +1 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[5195],{58235:(e,s,o)=>{o.r(s),o.d(s,{CH:()=>l,assets:()=>d,chCodeConfig:()=>h,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>n,toc:()=>u});const n=JSON.parse('{"id":"Develop/session-id","title":"Use session ID to manage communication between components","description":"Session ID is a unique identifier for client/server connections. A single session equals the duration of a client\'s connection to a server.","source":"@site/docs/Develop/session-id.md","sourceDirName":"Develop","slug":"/session-id","permalink":"/session-id","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Use session ID to manage communication between components","slug":"/session-id"},"sidebar":"docs","previous":{"title":"Memory management","permalink":"/memory"},"next":{"title":"Logging","permalink":"/logging"}}');var t=o(74848),i=o(28453),r=o(24754);const a={title:"Use session ID to manage communication between components",slug:"/session-id"},c=void 0,d={},l={annotations:r.hk,Code:r.Cy},h={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},u=[{value:"Customize session ID",id:"customize-session-id",level:2},{value:"Retrieval of messages from memory by session ID",id:"retrieval-of-messages-from-memory-by-session-id",level:2}];function p(e){const s={a:"a",code:"code",h2:"h2",p:"p",strong:"strong",...(0,i.R)(),...e.components};return l||g("CH",!1),l.Code||g("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",(0,t.jsx)(s.p,{children:"Session ID is a unique identifier for client/server connections. A single session equals the duration of a client's connection to a server."}),"\n",(0,t.jsxs)(s.p,{children:["In the Langflow ",(0,t.jsx)(s.strong,{children:"Playground"}),", current sessions are listed on the left side of the pane."]}),"\n",(0,t.jsx)(s.p,{children:"Langflow uses session IDs to track different chat interactions within flows. This allows multiple chat sessions to exist in a single flow. Messages are stored in the database with session IDs as a reference."}),"\n",(0,t.jsx)(s.p,{children:"This differentiation between users per session is helpful in managing client/server connections, but is also important in maintaining separate conversational contexts within a single flow. LLMs rely on past interactions to generate responses to queries, and if these conversations aren't separated, the responses becomes less useful, or even confused."}),"\n",(0,t.jsx)(s.h2,{id:"customize-session-id",children:"Customize session ID"}),"\n",(0,t.jsx)(s.p,{children:"Custom session IDs can be set as part of the payload in API calls, or as advanced settings in individual components. The API session ID value takes precedence. If no session ID is specified, the flow ID is assigned."}),"\n",(0,t.jsx)(s.p,{children:"If you set a custom session ID in a payload, all downstream components use the upstream component's session ID value."}),"\n",(0,t.jsx)(l.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl --request POST \\",props:{}}]},{tokens:[{content:" --url 'http://127.0.0.1:7860/api/v1/run/$FLOW_ID' \\",props:{}}]},{tokens:[{content:" --header 'Content-Type: application/json' \\",props:{}}]},{tokens:[{content:" --data '{",props:{}}]},{tokens:[{content:' "input_value": "Hello",',props:{}}]},{tokens:[{content:' "output_type": "chat",',props:{}}]},{tokens:[{content:' "input_type": "chat",',props:{}}]},{tokens:[{content:' "session_id": "my_custom_session_value"',props:{}}]},{tokens:[{content:"}'",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,t.jsxs)(s.p,{children:["The ",(0,t.jsx)(s.code,{children:"my_custom_session_value"})," value is used in components that accept it, and the stored messages from this flow are stored in ",(0,t.jsx)(s.code,{children:"langflow.db"})," with their respective ",(0,t.jsx)(s.code,{children:"session_id"})," values."]}),"\n",(0,t.jsx)(s.h2,{id:"retrieval-of-messages-from-memory-by-session-id",children:"Retrieval of messages from memory by session ID"}),"\n",(0,t.jsxs)(s.p,{children:["To retrieve messages from local Langflow memory, add a ",(0,t.jsx)(s.a,{href:"/components-helpers#message-history",children:"Message history"})," component to your flow.\nThe component accepts ",(0,t.jsx)(s.code,{children:"sessionID"})," as a filter parameter, and uses the session ID value from upstream automatically to retrieve message history by session ID from storage."]}),"\n",(0,t.jsxs)(s.p,{children:["Messages can be retrieved by ",(0,t.jsx)(s.code,{children:"session_id"})," from the ",(0,t.jsx)(s.code,{children:"/monitor"})," endpoint in the API. For more information, see the ",(0,t.jsx)(s.a,{href:"https://docs.langflow.org/api-reference-api-examples#get-messages",children:"API examples"}),"."]}),"\n",(0,t.jsxs)(s.p,{children:["For an example of session ID in action, see ",(0,t.jsx)(s.a,{href:"https://www.youtube.com/watch?v=nJiF_eF21MY",children:"Use Session IDs in Langflow"}),"."]})]})}function m(e={}){const{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(p,{...e})}):p(e)}function g(e,s){throw new Error("Expected "+(s?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[5195],{58235:(e,s,o)=>{o.r(s),o.d(s,{CH:()=>l,assets:()=>d,chCodeConfig:()=>h,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>n,toc:()=>u});const n=JSON.parse('{"id":"Develop/session-id","title":"Use session ID to manage communication between components","description":"Session ID is a unique identifier for client/server connections. A single session equals the duration of a client\'s connection to a server.","source":"@site/docs/Develop/session-id.md","sourceDirName":"Develop","slug":"/session-id","permalink":"/session-id","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Use session ID to manage communication between components","slug":"/session-id"},"sidebar":"docs","previous":{"title":"Memory management","permalink":"/memory"},"next":{"title":"Logging","permalink":"/logging"}}');var t=o(74848),i=o(28453),r=o(24754);const a={title:"Use session ID to manage communication between components",slug:"/session-id"},c=void 0,d={},l={annotations:r.hk,Code:r.Cy},h={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},u=[{value:"Customize session ID",id:"customize-session-id",level:2},{value:"Retrieval of messages from memory by session ID",id:"retrieval-of-messages-from-memory-by-session-id",level:2}];function p(e){const s={a:"a",code:"code",h2:"h2",p:"p",strong:"strong",...(0,i.R)(),...e.components};return l||g("CH",!1),l.Code||g("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",(0,t.jsx)(s.p,{children:"Session ID is a unique identifier for client/server connections. A single session equals the duration of a client's connection to a server."}),"\n",(0,t.jsxs)(s.p,{children:["In the Langflow ",(0,t.jsx)(s.strong,{children:"Playground"}),", current sessions are listed on the left side of the pane."]}),"\n",(0,t.jsx)(s.p,{children:"Langflow uses session IDs to track different chat interactions within flows. This allows multiple chat sessions to exist in a single flow. Messages are stored in the database with session IDs as a reference."}),"\n",(0,t.jsx)(s.p,{children:"This differentiation between users per session is helpful in managing client/server connections, but is also important in maintaining separate conversational contexts within a single flow. LLMs rely on past interactions to generate responses to queries, and if these conversations aren't separated, the responses becomes less useful, or even confused."}),"\n",(0,t.jsx)(s.h2,{id:"customize-session-id",children:"Customize session ID"}),"\n",(0,t.jsx)(s.p,{children:"Custom session IDs can be set as part of the payload in API calls, or as advanced settings in individual components. The API session ID value takes precedence. If no session ID is specified, the flow ID is assigned."}),"\n",(0,t.jsx)(s.p,{children:"If you set a custom session ID in a payload, all downstream components use the upstream component's session ID value."}),"\n",(0,t.jsx)(l.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl --request POST \\",props:{}}]},{tokens:[{content:" --url 'http://localhost:7860/api/v1/run/$FLOW_ID' \\",props:{}}]},{tokens:[{content:" --header 'Content-Type: application/json' \\",props:{}}]},{tokens:[{content:" --data '{",props:{}}]},{tokens:[{content:' "input_value": "Hello",',props:{}}]},{tokens:[{content:' "output_type": "chat",',props:{}}]},{tokens:[{content:' "input_type": "chat",',props:{}}]},{tokens:[{content:' "session_id": "my_custom_session_value"',props:{}}]},{tokens:[{content:"}'",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,t.jsxs)(s.p,{children:["The ",(0,t.jsx)(s.code,{children:"my_custom_session_value"})," value is used in components that accept it, and the stored messages from this flow are stored in ",(0,t.jsx)(s.code,{children:"langflow.db"})," with their respective ",(0,t.jsx)(s.code,{children:"session_id"})," values."]}),"\n",(0,t.jsx)(s.h2,{id:"retrieval-of-messages-from-memory-by-session-id",children:"Retrieval of messages from memory by session ID"}),"\n",(0,t.jsxs)(s.p,{children:["To retrieve messages from local Langflow memory, add a ",(0,t.jsx)(s.a,{href:"/components-helpers#message-history",children:"Message history"})," component to your flow.\nThe component accepts ",(0,t.jsx)(s.code,{children:"sessionID"})," as a filter parameter, and uses the session ID value from upstream automatically to retrieve message history by session ID from storage."]}),"\n",(0,t.jsxs)(s.p,{children:["Messages can be retrieved by ",(0,t.jsx)(s.code,{children:"session_id"})," from the ",(0,t.jsx)(s.code,{children:"/monitor"})," endpoint in the API. For more information, see the ",(0,t.jsx)(s.a,{href:"https://docs.langflow.org/api-reference-api-examples#get-messages",children:"API examples"}),"."]}),"\n",(0,t.jsxs)(s.p,{children:["For an example of session ID in action, see ",(0,t.jsx)(s.a,{href:"https://www.youtube.com/watch?v=nJiF_eF21MY",children:"Use Session IDs in Langflow"}),"."]})]})}function m(e={}){const{wrapper:s}={...(0,i.R)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(p,{...e})}):p(e)}function g(e,s){throw new Error("Expected "+(s?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/b7251463.c70ade73.js b/assets/js/b7251463.d6034093.js
similarity index 99%
rename from assets/js/b7251463.c70ade73.js
rename to assets/js/b7251463.d6034093.js
index 5fbdc80db0..e82879050a 100644
--- a/assets/js/b7251463.c70ade73.js
+++ b/assets/js/b7251463.d6034093.js
@@ -1 +1 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[51],{65537:(e,n,o)=>{o.d(n,{A:()=>O});var t=o(96540),s=o(18215),r=o(65627),l=o(56347),c=o(50372),i=o(30604),d=o(11861),a=o(78749);function p(e){return t.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,t.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 h(e){const{values:n,children:o}=e;return(0,t.useMemo)((()=>{const e=n??function(e){return p(e).map((e=>{let{props:{value:n,label:o,attributes:t,default:s}}=e;return{value:n,label:o,attributes:t,default:s}}))}(o);return function(e){const n=(0,d.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,o])}function x(e){let{value:n,tabValues:o}=e;return o.some((e=>e.value===n))}function L(e){let{queryString:n=!1,groupId:o}=e;const s=(0,l.W6)(),r=function(e){let{queryString:n=!1,groupId:o}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!o)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return o??null}({queryString:n,groupId:o});return[(0,i.aZ)(r),(0,t.useCallback)((e=>{if(!r)return;const n=new URLSearchParams(s.location.search);n.set(r,e),s.replace({...s.location,search:n.toString()})}),[r,s])]}function A(e){const{defaultValue:n,queryString:o=!1,groupId:s}=e,r=h(e),[l,i]=(0,t.useState)((()=>function(e){let{defaultValue:n,tabValues:o}=e;if(0===o.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!x({value:n,tabValues:o}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${o.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const t=o.find((e=>e.default))??o[0];if(!t)throw new Error("Unexpected error: 0 tabValues");return t.value}({defaultValue:n,tabValues:r}))),[d,p]=L({queryString:o,groupId:s}),[A,j]=function(e){let{groupId:n}=e;const o=function(e){return e?`docusaurus.tab.${e}`:null}(n),[s,r]=(0,a.Dv)(o);return[s,(0,t.useCallback)((e=>{o&&r.set(e)}),[o,r])]}({groupId:s}),_=(()=>{const e=d??A;return x({value:e,tabValues:r})?e:null})();(0,c.A)((()=>{_&&i(_)}),[_]);return{selectedValue:l,selectValue:(0,t.useCallback)((e=>{if(!x({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);i(e),p(e),j(e)}),[p,j,r]),tabValues:r}}var j=o(9136);const _={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var u=o(74848);function F(e){let{className:n,block:o,selectedValue:t,selectValue:l,tabValues:c}=e;const i=[],{blockElementScrollPositionUntilNextRender:d}=(0,r.a_)(),a=e=>{const n=e.currentTarget,o=i.indexOf(n),s=c[o].value;s!==t&&(d(n),l(s))},p=e=>{let n=null;switch(e.key){case"Enter":a(e);break;case"ArrowRight":{const o=i.indexOf(e.currentTarget)+1;n=i[o]??i[0];break}case"ArrowLeft":{const o=i.indexOf(e.currentTarget)-1;n=i[o]??i[i.length-1];break}}n?.focus()};return(0,u.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":o},n),children:c.map((e=>{let{value:n,label:o,attributes:r}=e;return(0,u.jsx)("li",{role:"tab",tabIndex:t===n?0:-1,"aria-selected":t===n,ref:e=>{i.push(e)},onKeyDown:p,onClick:a,...r,className:(0,s.A)("tabs__item",_.tabItem,r?.className,{"tabs__item--active":t===n}),children:o??n},n)}))})}function f(e){let{lazy:n,children:o,selectedValue:r}=e;const l=(Array.isArray(o)?o:[o]).filter(Boolean);if(n){const e=l.find((e=>e.props.value===r));return e?(0,t.cloneElement)(e,{className:(0,s.A)("margin-top--md",e.props.className)}):null}return(0,u.jsx)("div",{className:"margin-top--md",children:l.map(((e,n)=>(0,t.cloneElement)(e,{key:n,hidden:e.props.value!==r})))})}function E(e){const n=A(e);return(0,u.jsxs)("div",{className:(0,s.A)("tabs-container",_.tabList),children:[(0,u.jsx)(F,{...n,...e}),(0,u.jsx)(f,{...n,...e})]})}function O(e){const n=(0,j.A)();return(0,u.jsx)(E,{...e,children:p(e.children)},String(n))}},75720:(e,n,o)=>{o.r(n),o.d(n,{CH:()=>x,assets:()=>h,chCodeConfig:()=>L,contentTitle:()=>p,default:()=>_,frontMatter:()=>a,metadata:()=>t,toc:()=>A});const t=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":"Overview","permalink":"/develop-overview"}}');var s=o(74848),r=o(28453),l=o(24754),c=o(65537),i=o(79329),d=o(56289);const a={title:"Environment variables",slug:"/environment-variables"},p=void 0,h={},x={annotations:l.hk,Code:l.Cy},L={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},A=[{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},{value:"Configure .env, override.conf, and tasks.json files",id:"configure-env-overrideconf-and-tasksjson-files",level:2}];function j(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,r.R)(),...e.components};return x||u("CH",!1),x.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","\n",(0,s.jsx)(n.p,{children:"Langflow lets you configure a number of settings using environment variables."}),"\n",(0,s.jsx)(n.h2,{id:"configure-environment-variables",children:"Configure environment variables"}),"\n",(0,s.jsxs)(n.p,{children:["Langflow recognizes ",(0,s.jsx)(n.a,{href:"#supported-variables",children:"supported environment variables"})," from the following sources:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Environment variables that you've set in your terminal."}),"\n",(0,s.jsxs)(n.li,{children:["Environment variables that you've imported from a ",(0,s.jsx)(n.code,{children:".env"})," file using the ",(0,s.jsx)(n.code,{children:"--env-file"})," option in the Langflow CLI."]}),"\n"]}),"\n",(0,s.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,s.jsx)(n.code,{children:".env"})," file take ",(0,s.jsx)(n.a,{href:"#precedence",children:"precedence"})," over those set in your terminal."]}),"\n",(0,s.jsx)(n.h3,{id:"configure-variables-terminal",children:"Set environment variables in your terminal"}),"\n",(0,s.jsx)(n.p,{children:"Run the following commands to set environment variables for your current terminal session:"}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(i.A,{value:"linux-macos",label:"Linux or macOS",default:!0,children:(0,s.jsx)(x.Code,{codeConfig:L,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,s.jsx)(i.A,{value:"windows",label:"Windows",default:!0,children:(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"set VARIABLE_NAME='VALUE'",props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"docker",label:"Docker",default:!0,children:(0,s.jsx)(x.Code,{codeConfig:L,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,s.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,s.jsx)(n.a,{href:"#precedence",children:"precedence rules"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"configure-variables-env-file",children:"Import environment variables from a .env file"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Create a ",(0,s.jsx)(n.code,{children:".env"})," file and open it in your preferred editor."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Add your environment variables to the file:"}),"\n",(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",title:'".env"',focus:"",code:{lines:[{tokens:[{content:"DO_NOT_TRACK=true",props:{}}]},{tokens:[{content:"LANGFLOW_AUTO_LOGIN=false",props:{}}]},{tokens:[{content:"LANGFLOW_AUTO_SAVING=true",props:{}}]},{tokens:[{content:"LANGFLOW_AUTO_SAVING_INTERVAL=1000",props:{}}]},{tokens:[{content:"LANGFLOW_BACKEND_ONLY=false",props:{}}]},{tokens:[{content:'LANGFLOW_BUNDLE_URLS=["https://github.com/user/repo/commit/hash"]',props:{}}]},{tokens:[{content:"LANGFLOW_CACHE_TYPE=async",props:{}}]},{tokens:[{content:"LANGFLOW_COMPONENTS_PATH=/path/to/components/",props:{}}]},{tokens:[{content:"LANGFLOW_CONFIG_DIR=/path/to/config/",props:{}}]},{tokens:[{content:"LANGFLOW_DATABASE_URL=postgresql://user:password@localhost:5432/langflow",props:{}}]},{tokens:[{content:"LANGFLOW_DEV=false",props:{}}]},{tokens:[{content:"LANGFLOW_FALLBACK_TO_ENV_VAR=false",props:{}}]},{tokens:[{content:"LANGFLOW_HEALTH_CHECK_MAX_RETRIES=5",props:{}}]},{tokens:[{content:"LANGFLOW_HOST=127.0.0.1",props:{}}]},{tokens:[{content:"LANGFLOW_LANGCHAIN_CACHE=InMemoryCache",props:{}}]},{tokens:[{content:"LANGFLOW_MAX_FILE_SIZE_UPLOAD=10000",props:{}}]},{tokens:[{content:"LANGFLOW_LOG_LEVEL=error",props:{}}]},{tokens:[{content:"LANGFLOW_OPEN_BROWSER=false",props:{}}]},{tokens:[{content:"LANGFLOW_PORT=7860",props:{}}]},{tokens:[{content:"LANGFLOW_REMOVE_API_KEYS=false",props:{}}]},{tokens:[{content:"LANGFLOW_SAVE_DB_IN_CONFIG_DIR=true",props:{}}]},{tokens:[{content:"LANGFLOW_SECRET_KEY=somesecretkey",props:{}}]},{tokens:[{content:"LANGFLOW_STORE=true",props:{}}]},{tokens:[{content:"LANGFLOW_STORE_ENVIRONMENT_VARIABLES=true",props:{}}]},{tokens:[{content:"LANGFLOW_SUPERUSER=adminuser",props:{}}]},{tokens:[{content:"LANGFLOW_SUPERUSER_PASSWORD=adminpass",props:{}}]},{tokens:[{content:"LANGFLOW_WORKER_TIMEOUT=60000",props:{}}]},{tokens:[{content:"LANGFLOW_WORKERS=3",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsxs)(n.p,{children:["The Langflow project includes a ",(0,s.jsx)(n.a,{href:"https://github.com/langflow-ai/langflow/blob/main/.env.example",children:(0,s.jsx)(n.code,{children:".env.example"})})," file to help you get started.\nYou can copy the contents of this file into your own ",(0,s.jsx)(n.code,{children:".env"})," file and replace the example values with your own preferred settings."]})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Save and close the file."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Start Langflow using the ",(0,s.jsx)(n.code,{children:"--env-file"})," option to define the path to your ",(0,s.jsx)(n.code,{children:".env"})," file:"]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(i.A,{value:"local",label:"Local",default:!0,children:(0,s.jsx)(x.Code,{codeConfig:L,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,s.jsx)(i.A,{value:"docker",label:"Docker",default:!0,children:(0,s.jsx)(x.Code,{codeConfig:L,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,s.jsxs)(n.p,{children:["On startup, Langflow imports the environment variables from your ",(0,s.jsx)(n.code,{children:".env"})," file, as well as any that you ",(0,s.jsx)(n.a,{href:"#configure-variables-terminal",children:"set in your terminal"}),", and adopts their specified values."]}),"\n",(0,s.jsx)(n.h2,{id:"precedence",children:"Precedence"}),"\n",(0,s.jsxs)(n.p,{children:["Environment variables ",(0,s.jsx)(n.a,{href:"#configure-variables-env-file",children:"defined in the .env file"})," take precedence over those ",(0,s.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,s.jsx)(n.code,{children:".env"})," file, Langflow adopts the value from the the ",(0,s.jsx)(n.code,{children:".env"})," file."]}),"\n",(0,s.jsx)(n.admonition,{title:"CLI precedence",type:"info",children:(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"/configuration-cli",children:"Langflow CLI options"})," override the value of corresponding environment variables defined in the ",(0,s.jsx)(n.code,{children:".env"})," file as well as any environment variables set in your terminal."]})}),"\n",(0,s.jsx)(n.h2,{id:"supported-variables",children:"Supported environment variables"}),"\n",(0,s.jsx)(n.p,{children:"The following table lists the environment variables supported by Langflow."}),"\n",(0,s.jsx)("style",{children:"\n.env-table {\n width: 100%;\n max-width: 100%;\n table-layout: fixed;\n}\n.env-table td:first-child {\n width: 30%;\n font-family: var(--ifm-font-family-monospace);\n background: var(--prism-background);\n border-radius: 6px;\n padding: 8px;\n word-break: break-word;\n}\n.env-table td:nth-child(2) {\n width: 15%;\n}\n.env-table td:nth-child(3) {\n width: 15%;\n}\n.env-table td:nth-child(4) {\n width: 40%;\n}\n.env-table td {\n padding: 8px;\n vertical-align: top;\n}\n.env-prefix {\n opacity: 0.7;\n}\n.env-table tr {\n border-top: 1px solid var(--ifm-table-border-color);\n}\n.env-table code {\n white-space: nowrap;\n}\n"}),"\n",(0,s.jsx)("div",{class:"env-table",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Variable"}),(0,s.jsx)(n.th,{children:"Format"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"DO_NOT_TRACK"}),"DO_NOT_TRACK"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"If this option is enabled, Langflow does not track telemetry."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_AUTO_LOGIN"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"AUTO_LOGIN"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsxs)(n.td,{children:["Enable automatic login for Langflow. Set to ",(0,s.jsx)(n.code,{children:"false"})," to disable automatic login and require the login form to log into the Langflow UI. Setting to ",(0,s.jsx)(n.code,{children:"false"})," requires ",(0,s.jsx)(n.a,{href:"#LANGFLOW_SUPERUSER",children:(0,s.jsx)(n.code,{children:"LANGFLOW_SUPERUSER"})})," and ",(0,s.jsx)(n.a,{href:"/environment-variables#LANGFLOW_SUPERUSER_PASSWORD",children:(0,s.jsx)(n.code,{children:"LANGFLOW_SUPERUSER_PASSWORD"})})," to be set."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_AUTO_SAVING"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"AUTO_SAVING"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsxs)(n.td,{children:["Enable flow auto-saving.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-auto-saving",children:[(0,s.jsx)(n.code,{children:"--auto-saving"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_AUTO_SAVING_INTERVAL"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"AUTO_SAVING_INTERVAL"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"1000"})}),(0,s.jsxs)(n.td,{children:["Set the interval for flow auto-saving in milliseconds.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-auto-saving-interval",children:[(0,s.jsx)(n.code,{children:"--auto-saving-interval"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_BACKEND_ONLY"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"BACKEND_ONLY"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["Only run Langflow's backend server (no frontend).",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-backend-only",children:[(0,s.jsx)(n.code,{children:"--backend-only"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_BUNDLE_URLS"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"BUNDLE_URLS"]}),(0,s.jsx)(n.td,{children:"List[String]"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsxs)(n.td,{children:["A list of URLs from which to load component bundles and flows. Supports GitHub URLs. If ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"AUTO_LOGIN is enabled, flows from these bundles are loaded into the database."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_CACHE_TYPE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"CACHE_TYPE"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"async"})}),(0,s.jsxs)(n.td,{children:["Set the cache type for Langflow. Possible values: ",(0,s.jsx)(n.code,{children:"async"}),", ",(0,s.jsx)(n.code,{children:"redis"}),", ",(0,s.jsx)(n.code,{children:"memory"}),", ",(0,s.jsx)(n.code,{children:"disk"}),".",(0,s.jsx)("br",{}),"If you set the type to ",(0,s.jsx)(n.code,{children:"redis"}),", then you must also set the following environment variables: ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_REDIS_HOST"}),", ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_REDIS_PORT"}),", ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_REDIS_DB"}),", and ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_REDIS_CACHE_EXPIRE"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_COMPONENTS_PATH"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"COMPONENTS_PATH"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"langflow/components"})}),(0,s.jsxs)(n.td,{children:["Path to the directory containing custom components.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-components-path",children:[(0,s.jsx)(n.code,{children:"--components-path"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_CONFIG_DIR"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"CONFIG_DIR"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"See description"}),(0,s.jsxs)(n.td,{children:["Set the Langflow configuration directory where files, logs, and the Langflow database are stored. Defaults: ",(0,s.jsx)(n.strong,{children:"Linux/WSL"}),": ",(0,s.jsx)(n.code,{children:"~/.cache/langflow/"}),(0,s.jsx)("br",{}),(0,s.jsx)(n.strong,{children:"macOS"}),": ",(0,s.jsx)(n.code,{children:"/Users//Library/Caches/langflow/"}),(0,s.jsx)("br",{}),(0,s.jsx)(n.strong,{children:"Windows"}),": ",(0,s.jsx)(n.code,{children:"%LOCALAPPDATA%\\langflow\\langflow\\Cache"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_DATABASE_URL"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DATABASE_URL"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.jsx)(n.td,{children:"Set the database URL for Langflow. If not provided, Langflow uses a SQLite database."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_DATABASE_CONNECTION_RETRY"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DATABASE_CONNECTION_RETRY"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"If True, Langflow tries to connect to the database again if it fails."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_DB_POOL_SIZE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DB_POOL_SIZE"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"10"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.strong,{children:"DEPRECATED:"})," Use ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DB_CONNECTION_SETTINGS instead. The number of connections to keep open in the connection pool."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_DB_MAX_OVERFLOW"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DB_MAX_OVERFLOW"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"20"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.strong,{children:"DEPRECATED:"})," Use ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DB_CONNECTION_SETTINGS instead. The number of connections to allow that can be opened beyond the pool size."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_DB_CONNECT_TIMEOUT"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DB_CONNECT_TIMEOUT"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"20"})}),(0,s.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,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_DB_CONNECTION_SETTINGS"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DB_CONNECTION_SETTINGS"]}),(0,s.jsx)(n.td,{children:"JSON"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.jsxs)(n.td,{children:["A JSON dictionary to centralize database connection parameters. Example: ",(0,s.jsx)(n.code,{children:'{"pool_size": 10, "max_overflow": 20}'})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_DISABLE_TRACK_APIKEY_USAGE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DISABLE_TRACK_APIKEY_USAGE"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["If set to ",(0,s.jsx)(n.code,{children:"true"}),", disables tracking of API key usage (",(0,s.jsx)(n.code,{children:"total_uses"})," and ",(0,s.jsx)(n.code,{children:"last_used_at"}),") to avoid database contention under high concurrency."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_ENABLE_LOG_RETRIEVAL"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"ENABLE_LOG_RETRIEVAL"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Enable log retrieval functionality."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_FALLBACK_TO_ENV_VAR"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"FALLBACK_TO_ENV_VAR"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsxs)(n.td,{children:["If enabled, ",(0,s.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,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_FRONTEND_PATH"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"FRONTEND_PATH"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"./frontend"})}),(0,s.jsxs)(n.td,{children:["Path to the frontend directory containing build files. This is for development purposes only.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-frontend-path",children:[(0,s.jsx)(n.code,{children:"--frontend-path"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_HEALTH_CHECK_MAX_RETRIES"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"HEALTH_CHECK_MAX_RETRIES"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"5"})}),(0,s.jsxs)(n.td,{children:["Set the maximum number of retries for the health check.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-health-check-max-retries",children:[(0,s.jsx)(n.code,{children:"--health-check-max-retries"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_HOST"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"HOST"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"127.0.0.1"})}),(0,s.jsxs)(n.td,{children:["The host on which the Langflow server will run.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-host",children:[(0,s.jsx)(n.code,{children:"--host"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_LANGCHAIN_CACHE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"LANGCHAIN_CACHE"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"InMemoryCache"})}),(0,s.jsxs)(n.td,{children:["Type of cache to use. Possible values: ",(0,s.jsx)(n.code,{children:"InMemoryCache"}),", ",(0,s.jsx)(n.code,{children:"SQLiteCache"}),".",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-cache",children:[(0,s.jsx)(n.code,{children:"--cache"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_LOG_LEVEL"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"LOG_LEVEL"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"INFO"})}),(0,s.jsxs)(n.td,{children:["Set the logging level for Langflow. Possible values: ",(0,s.jsx)(n.code,{children:"DEBUG"}),", ",(0,s.jsx)(n.code,{children:"INFO"}),", ",(0,s.jsx)(n.code,{children:"WARNING"}),", ",(0,s.jsx)(n.code,{children:"ERROR"}),", ",(0,s.jsx)(n.code,{children:"CRITICAL"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_LOG_FILE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"LOG_FILE"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.jsx)(n.td,{children:"Path to the log file. If this option is not set, logs are written to stdout."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_LOG_RETRIEVER_BUFFER_SIZE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"LOG_RETRIEVER_BUFFER_SIZE"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"10000"})}),(0,s.jsxs)(n.td,{children:["Set the buffer size for log retrieval. Only used if ",(0,s.jsx)(n.code,{children:"LANGFLOW_ENABLE_LOG_RETRIEVAL"})," is enabled."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_MAX_FILE_SIZE_UPLOAD"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"MAX_FILE_SIZE_UPLOAD"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"100"})}),(0,s.jsxs)(n.td,{children:["Set the maximum file size for the upload in megabytes.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-max-file-size-upload",children:[(0,s.jsx)(n.code,{children:"--max-file-size-upload"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_MCP_SERVER_ENABLED"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"MCP_SERVER_ENABLED"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsx)(n.td,{children:"If this option is set to False, Langflow does not enable the MCP server."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_MCP_SERVER_ENABLE_PROGRESS_NOTIFICATIONS"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"MCP_SERVER_ENABLE_PROGRESS_NOTIFICATIONS"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"If this option is set to True, Langflow sends progress notifications in the MCP server."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_NEW_USER_IS_ACTIVE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"NEW_USER_IS_ACTIVE"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"When enabled, new users are automatically activated and can log in without requiring explicit activation by the superuser."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_OPEN_BROWSER"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"OPEN_BROWSER"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["Open the system web browser on startup.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-open-browser",children:[(0,s.jsx)(n.code,{children:"--open-browser"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_PORT"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"PORT"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"7860"})}),(0,s.jsxs)(n.td,{children:["The port on which the Langflow server runs. The server automatically selects a free port if the specified port is in use.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-port",children:[(0,s.jsx)(n.code,{children:"--port"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_PROMETHEUS_ENABLED"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"PROMETHEUS_ENABLED"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Expose Prometheus metrics."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_PROMETHEUS_PORT"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"PROMETHEUS_PORT"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"9090"})}),(0,s.jsx)(n.td,{children:"Set the port on which Langflow exposes Prometheus metrics."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_REDIS_CACHE_EXPIRE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"REDIS_CACHE_EXPIRE"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"3600"})}),(0,s.jsxs)(n.td,{children:["See ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"CACHE_TYPE."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_REDIS_DB"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"REDIS_DB"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"0"})}),(0,s.jsxs)(n.td,{children:["See ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"CACHE_TYPE."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_REDIS_HOST"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"REDIS_HOST"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"localhost"})}),(0,s.jsxs)(n.td,{children:["See ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"CACHE_TYPE."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_REDIS_PORT"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"REDIS_PORT"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"6379"})}),(0,s.jsxs)(n.td,{children:["See ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"CACHE_TYPE."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_REDIS_PASSWORD"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"REDIS_PASSWORD"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.jsx)(n.td,{children:"Password for Redis authentication when using Redis cache type."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_REMOVE_API_KEYS"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"REMOVE_API_KEYS"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["Remove API keys from the projects saved in the database.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-remove-api-keys",children:[(0,s.jsx)(n.code,{children:"--remove-api-keys"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_SAVE_DB_IN_CONFIG_DIR"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"SAVE_DB_IN_CONFIG_DIR"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["Save the Langflow database in ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"CONFIG_DIR instead of in the Langflow package directory. Note, when this variable is set to default (",(0,s.jsx)(n.code,{children:"false"}),"), the database isn't shared between different virtual environments and the database is deleted when you uninstall Langflow."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_SECRET_KEY"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"SECRET_KEY"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Auto-generated"}),(0,s.jsx)(n.td,{children:"Key used for encrypting sensitive data like API keys. If a key is not provided, a secure key is auto-generated. For production environments with multiple instances, you should explicitly set this to ensure consistent encryption across instances."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_STORE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"STORE"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsxs)(n.td,{children:["Enable the Langflow Store.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-store",children:[(0,s.jsx)(n.code,{children:"--store"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_STORE_ENVIRONMENT_VARIABLES"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"STORE_ENVIRONMENT_VARIABLES"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsxs)(n.td,{children:["Store environment variables as ",(0,s.jsx)(n.a,{href:"/configuration-global-variables",children:"global variables"})," in the database."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_UPDATE_STARTER_PROJECTS"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"UPDATE_STARTER_PROJECTS"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsx)(n.td,{children:"If this option is enabled, Langflow updates starter projects with the latest component versions when initializing."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_SUPERUSER"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"SUPERUSER"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"langflow"})}),(0,s.jsxs)(n.td,{children:["Set the name for the superuser. Required if ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"AUTO_LOGIN is set to ",(0,s.jsx)(n.code,{children:"false"}),".",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#superuser-username",children:[(0,s.jsx)(n.code,{children:"superuser --username"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_SUPERUSER_PASSWORD"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"SUPERUSER_PASSWORD"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"langflow"})}),(0,s.jsxs)(n.td,{children:["Set the password for the superuser. Required if ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"AUTO_LOGIN is set to ",(0,s.jsx)(n.code,{children:"false"}),".",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#superuser-password",children:[(0,s.jsx)(n.code,{children:"superuser --password"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENT"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"VARIABLES_TO_GET_FROM_ENVIRONMENT"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.jsxs)(n.td,{children:["Comma-separated list of environment variables to get from the environment and store as ",(0,s.jsx)(n.a,{href:"/configuration-global-variables",children:"global variables"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_LOAD_FLOWS_PATH"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"LOAD_FLOWS_PATH"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.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,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"AUTO_LOGIN is enabled."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_WORKER_TIMEOUT"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"WORKER_TIMEOUT"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"300"})}),(0,s.jsxs)(n.td,{children:["Worker timeout in seconds.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-worker-timeout",children:[(0,s.jsx)(n.code,{children:"--worker-timeout"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_WORKERS"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"WORKERS"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"1"})}),(0,s.jsxs)(n.td,{children:["Number of worker processes.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-workers",children:[(0,s.jsx)(n.code,{children:"--workers"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_SSL_CERT_FILE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"SSL_CERT_FILE"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.jsx)(n.td,{children:"Path to the SSL certificate file on the local system."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_SSL_KEY_FILE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"SSL_KEY_FILE"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.jsx)(n.td,{children:"Path to the SSL key file on the local system."})]})]})]})}),"\n",(0,s.jsx)(n.h2,{id:"configure-env-overrideconf-and-tasksjson-files",children:"Configure .env, override.conf, and tasks.json files"}),"\n",(0,s.jsx)(n.p,{children:"The following examples show how to configure Langflow using environment variables in different scenarios."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsxs)(i.A,{value:"env",label:".env File",default:!0,children:[(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:".env"})," file is a text file that contains key-value pairs of environment variables."]}),(0,s.jsxs)(n.p,{children:["Create or edit a file named ",(0,s.jsx)(n.code,{children:".env"})," in your project root directory and add your configuration:"]}),(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",title:'".env"',focus:"",code:{lines:[{tokens:[{content:"DO_NOT_TRACK=true",props:{}}]},{tokens:[{content:"LANGFLOW_AUTO_LOGIN=false",props:{}}]},{tokens:[{content:"LANGFLOW_AUTO_SAVING=true",props:{}}]},{tokens:[{content:"LANGFLOW_AUTO_SAVING_INTERVAL=1000",props:{}}]},{tokens:[{content:"LANGFLOW_BACKEND_ONLY=false",props:{}}]},{tokens:[{content:'LANGFLOW_BUNDLE_URLS=["https://github.com/user/repo/commit/hash"]',props:{}}]},{tokens:[{content:"LANGFLOW_CACHE_TYPE=async",props:{}}]},{tokens:[{content:"LANGFLOW_COMPONENTS_PATH=/path/to/components/",props:{}}]},{tokens:[{content:"LANGFLOW_CONFIG_DIR=/path/to/config/",props:{}}]},{tokens:[{content:"LANGFLOW_DATABASE_URL=postgresql://user:password@localhost:5432/langflow",props:{}}]},{tokens:[{content:"LANGFLOW_DEV=false",props:{}}]},{tokens:[{content:"LANGFLOW_FALLBACK_TO_ENV_VAR=false",props:{}}]},{tokens:[{content:"LANGFLOW_HEALTH_CHECK_MAX_RETRIES=5",props:{}}]},{tokens:[{content:"LANGFLOW_HOST=127.0.0.1",props:{}}]},{tokens:[{content:"LANGFLOW_LANGCHAIN_CACHE=InMemoryCache",props:{}}]},{tokens:[{content:"LANGFLOW_MAX_FILE_SIZE_UPLOAD=10000",props:{}}]},{tokens:[{content:"LANGFLOW_LOG_LEVEL=error",props:{}}]},{tokens:[{content:"LANGFLOW_OPEN_BROWSER=false",props:{}}]},{tokens:[{content:"LANGFLOW_PORT=7860",props:{}}]},{tokens:[{content:"LANGFLOW_REMOVE_API_KEYS=false",props:{}}]},{tokens:[{content:"LANGFLOW_SAVE_DB_IN_CONFIG_DIR=true",props:{}}]},{tokens:[{content:"LANGFLOW_SECRET_KEY=somesecretkey",props:{}}]},{tokens:[{content:"LANGFLOW_STORE=true",props:{}}]},{tokens:[{content:"LANGFLOW_STORE_ENVIRONMENT_VARIABLES=true",props:{}}]},{tokens:[{content:"LANGFLOW_SUPERUSER=adminuser",props:{}}]},{tokens:[{content:"LANGFLOW_SUPERUSER_PASSWORD=adminpass",props:{}}]},{tokens:[{content:"LANGFLOW_WORKER_TIMEOUT=60000",props:{}}]},{tokens:[{content:"LANGFLOW_WORKERS=3",props:{}}]}],lang:"text"},annotations:[]}]})]}),(0,s.jsxs)(i.A,{value:"systemd",label:"Systemd service",children:[(0,s.jsx)(n.p,{children:"A systemd service configuration file configures Linux system services."}),(0,s.jsxs)(n.p,{children:["To add environment variables, create or edit a service configuration file and add an ",(0,s.jsx)(n.code,{children:"override.conf"})," file. This file allows you to override the default environment variables for the service."]}),(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",title:'"override.conf"',focus:"",code:{lines:[{tokens:[{content:"[Service]",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"DO_NOT_TRACK=true"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_AUTO_LOGIN=false"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_AUTO_SAVING=true"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_AUTO_SAVING_INTERVAL=1000"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_BACKEND_ONLY=false"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_BUNDLE_URLS=[\\"',props:{style:{color:"#A5D6FF"}}},{content:"https://github.com/user/repo/commit/hash\\",props:{style:{color:"#C9D1D9"}}},{content:'"]"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_CACHE_TYPE=async"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_COMPONENTS_PATH=/path/to/components/"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_CONFIG_DIR=/path/to/config"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_DATABASE_URL=postgresql://user:password@localhost:5432/langflow"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_DEV=false"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_FALLBACK_TO_ENV_VAR=false"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_HEALTH_CHECK_MAX_RETRIES=5"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_HOST=127.0.0.1"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_LANGCHAIN_CACHE=InMemoryCache"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_MAX_FILE_SIZE_UPLOAD=10000"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_LOG_ENV=container_json"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_LOG_FILE=logs/langflow.log"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_LOG_LEVEL=error"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_OPEN_BROWSER=false"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_PORT=7860"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_REMOVE_API_KEYS=false"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_SAVE_DB_IN_CONFIG_DIR=true"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_SECRET_KEY=somesecretkey"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_STORE=true"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_STORE_ENVIRONMENT_VARIABLES=true"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_SUPERUSER=adminuser"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_SUPERUSER_PASSWORD=adminpass"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_WORKER_TIMEOUT=60000"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_WORKERS=3"',props:{style:{color:"#A5D6FF"}}}]}],lang:"ini"},annotations:[]}]}),(0,s.jsxs)(n.p,{children:["For more information on systemd, see the ",(0,s.jsx)(n.a,{href:"https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/using_systemd_unit_files_to_customize_and_optimize_your_system/assembly_working-with-systemd-unit-files_working-with-systemd",children:"Red Hat documentation"}),"."]})]}),(0,s.jsxs)(i.A,{value:"vscode",label:"VSCode tasks.json",children:[(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"tasks.json"})," file located in ",(0,s.jsx)(n.code,{children:".vscode/tasks.json"})," is a configuration file for development environments using Visual Studio Code."]}),(0,s.jsxs)(n.p,{children:["Create or edit the ",(0,s.jsx)(n.code,{children:".vscode/tasks.json"})," file in your project root:"]}),(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",title:'".vscode/tasks.json"',focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "version"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2.0.0"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "options"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "env"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "DO_NOT_TRACK"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"true"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_AUTO_LOGIN"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"false"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_AUTO_SAVING"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"true"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_AUTO_SAVING_INTERVAL"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"1000"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_BACKEND_ONLY"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"false"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_BUNDLE_URLS"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"[',props:{style:{color:"#A5D6FF"}}},{content:'\\"',props:{style:{color:"#79C0FF"}}},{content:"https://github.com/user/repo/commit/hash",props:{style:{color:"#A5D6FF"}}},{content:'\\"',props:{style:{color:"#79C0FF"}}},{content:']"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_CACHE_TYPE"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"async"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_COMPONENTS_PATH"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"D:/path/to/components/"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_CONFIG_DIR"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"D:/path/to/config/"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_DATABASE_URL"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"postgresql://postgres:password@localhost:5432/langflow"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_DEV"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"false"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_FALLBACK_TO_ENV_VAR"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"false"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_HEALTH_CHECK_MAX_RETRIES"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"5"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_HOST"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"localhost"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_LANGCHAIN_CACHE"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"InMemoryCache"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_MAX_FILE_SIZE_UPLOAD"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"10000"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_LOG_ENV"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"container_csv"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_LOG_FILE"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"langflow.log"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_LOG_LEVEL"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"error"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_OPEN_BROWSER"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"false"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_PORT"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"7860"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_REMOVE_API_KEYS"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"true"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_SAVE_DB_IN_CONFIG_DIR"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"false"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_SECRET_KEY"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"somesecretkey"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_STORE"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"true"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_STORE_ENVIRONMENT_VARIABLES"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"true"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_SUPERUSER"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"adminuser"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_SUPERUSER_PASSWORD"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"adminpass"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_WORKER_TIMEOUT"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"60000"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_WORKERS"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"3"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "tasks"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "label"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"langflow backend"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"shell"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "command"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'". ./langflownightly/Scripts/activate && langflow run"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "isBackground"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "problemMatcher"',props:{style:{color:"#7EE787"}}},{content:": []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]}),(0,s.jsxs)(n.p,{children:["To run Langflow using the above VSCode ",(0,s.jsx)(n.code,{children:"tasks.json"})," file, in the VSCode command palette, select ",(0,s.jsx)(n.strong,{children:"Tasks: Run Task"})," > ",(0,s.jsx)(n.strong,{children:"langflow backend"}),"."]})]})]})]})}function _(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(j,{...e})}):j(e)}function u(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,o)=>{o.d(n,{A:()=>l});o(96540);var t=o(18215);const s={tabItem:"tabItem_Ymn6"};var r=o(74848);function l(e){let{children:n,hidden:o,className:l}=e;return(0,r.jsx)("div",{role:"tabpanel",className:(0,t.A)(s.tabItem,l),hidden:o,children:n})}}}]);
\ No newline at end of file
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[51],{65537:(e,n,o)=>{o.d(n,{A:()=>O});var t=o(96540),s=o(18215),r=o(65627),l=o(56347),c=o(50372),i=o(30604),d=o(11861),a=o(78749);function p(e){return t.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,t.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 h(e){const{values:n,children:o}=e;return(0,t.useMemo)((()=>{const e=n??function(e){return p(e).map((e=>{let{props:{value:n,label:o,attributes:t,default:s}}=e;return{value:n,label:o,attributes:t,default:s}}))}(o);return function(e){const n=(0,d.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,o])}function x(e){let{value:n,tabValues:o}=e;return o.some((e=>e.value===n))}function L(e){let{queryString:n=!1,groupId:o}=e;const s=(0,l.W6)(),r=function(e){let{queryString:n=!1,groupId:o}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!o)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return o??null}({queryString:n,groupId:o});return[(0,i.aZ)(r),(0,t.useCallback)((e=>{if(!r)return;const n=new URLSearchParams(s.location.search);n.set(r,e),s.replace({...s.location,search:n.toString()})}),[r,s])]}function A(e){const{defaultValue:n,queryString:o=!1,groupId:s}=e,r=h(e),[l,i]=(0,t.useState)((()=>function(e){let{defaultValue:n,tabValues:o}=e;if(0===o.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!x({value:n,tabValues:o}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${o.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const t=o.find((e=>e.default))??o[0];if(!t)throw new Error("Unexpected error: 0 tabValues");return t.value}({defaultValue:n,tabValues:r}))),[d,p]=L({queryString:o,groupId:s}),[A,j]=function(e){let{groupId:n}=e;const o=function(e){return e?`docusaurus.tab.${e}`:null}(n),[s,r]=(0,a.Dv)(o);return[s,(0,t.useCallback)((e=>{o&&r.set(e)}),[o,r])]}({groupId:s}),_=(()=>{const e=d??A;return x({value:e,tabValues:r})?e:null})();(0,c.A)((()=>{_&&i(_)}),[_]);return{selectedValue:l,selectValue:(0,t.useCallback)((e=>{if(!x({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);i(e),p(e),j(e)}),[p,j,r]),tabValues:r}}var j=o(9136);const _={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var u=o(74848);function F(e){let{className:n,block:o,selectedValue:t,selectValue:l,tabValues:c}=e;const i=[],{blockElementScrollPositionUntilNextRender:d}=(0,r.a_)(),a=e=>{const n=e.currentTarget,o=i.indexOf(n),s=c[o].value;s!==t&&(d(n),l(s))},p=e=>{let n=null;switch(e.key){case"Enter":a(e);break;case"ArrowRight":{const o=i.indexOf(e.currentTarget)+1;n=i[o]??i[0];break}case"ArrowLeft":{const o=i.indexOf(e.currentTarget)-1;n=i[o]??i[i.length-1];break}}n?.focus()};return(0,u.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":o},n),children:c.map((e=>{let{value:n,label:o,attributes:r}=e;return(0,u.jsx)("li",{role:"tab",tabIndex:t===n?0:-1,"aria-selected":t===n,ref:e=>{i.push(e)},onKeyDown:p,onClick:a,...r,className:(0,s.A)("tabs__item",_.tabItem,r?.className,{"tabs__item--active":t===n}),children:o??n},n)}))})}function f(e){let{lazy:n,children:o,selectedValue:r}=e;const l=(Array.isArray(o)?o:[o]).filter(Boolean);if(n){const e=l.find((e=>e.props.value===r));return e?(0,t.cloneElement)(e,{className:(0,s.A)("margin-top--md",e.props.className)}):null}return(0,u.jsx)("div",{className:"margin-top--md",children:l.map(((e,n)=>(0,t.cloneElement)(e,{key:n,hidden:e.props.value!==r})))})}function E(e){const n=A(e);return(0,u.jsxs)("div",{className:(0,s.A)("tabs-container",_.tabList),children:[(0,u.jsx)(F,{...n,...e}),(0,u.jsx)(f,{...n,...e})]})}function O(e){const n=(0,j.A)();return(0,u.jsx)(E,{...e,children:p(e.children)},String(n))}},75720:(e,n,o)=>{o.r(n),o.d(n,{CH:()=>x,assets:()=>h,chCodeConfig:()=>L,contentTitle:()=>p,default:()=>_,frontMatter:()=>a,metadata:()=>t,toc:()=>A});const t=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":"Overview","permalink":"/develop-overview"}}');var s=o(74848),r=o(28453),l=o(24754),c=o(65537),i=o(79329),d=o(56289);const a={title:"Environment variables",slug:"/environment-variables"},p=void 0,h={},x={annotations:l.hk,Code:l.Cy},L={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},A=[{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},{value:"Configure .env, override.conf, and tasks.json files",id:"configure-env-overrideconf-and-tasksjson-files",level:2}];function j(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,r.R)(),...e.components};return x||u("CH",!1),x.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","\n",(0,s.jsx)(n.p,{children:"Langflow lets you configure a number of settings using environment variables."}),"\n",(0,s.jsx)(n.h2,{id:"configure-environment-variables",children:"Configure environment variables"}),"\n",(0,s.jsxs)(n.p,{children:["Langflow recognizes ",(0,s.jsx)(n.a,{href:"#supported-variables",children:"supported environment variables"})," from the following sources:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Environment variables that you've set in your terminal."}),"\n",(0,s.jsxs)(n.li,{children:["Environment variables that you've imported from a ",(0,s.jsx)(n.code,{children:".env"})," file using the ",(0,s.jsx)(n.code,{children:"--env-file"})," option in the Langflow CLI."]}),"\n"]}),"\n",(0,s.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,s.jsx)(n.code,{children:".env"})," file take ",(0,s.jsx)(n.a,{href:"#precedence",children:"precedence"})," over those set in your terminal."]}),"\n",(0,s.jsx)(n.h3,{id:"configure-variables-terminal",children:"Set environment variables in your terminal"}),"\n",(0,s.jsx)(n.p,{children:"Run the following commands to set environment variables for your current terminal session:"}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(i.A,{value:"linux-macos",label:"Linux or macOS",default:!0,children:(0,s.jsx)(x.Code,{codeConfig:L,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,s.jsx)(i.A,{value:"windows",label:"Windows",default:!0,children:(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"set VARIABLE_NAME='VALUE'",props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"docker",label:"Docker",default:!0,children:(0,s.jsx)(x.Code,{codeConfig:L,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,s.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,s.jsx)(n.a,{href:"#precedence",children:"precedence rules"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"configure-variables-env-file",children:"Import environment variables from a .env file"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Create a ",(0,s.jsx)(n.code,{children:".env"})," file and open it in your preferred editor."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Add your environment variables to the file:"}),"\n",(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",title:'".env"',focus:"",code:{lines:[{tokens:[{content:"DO_NOT_TRACK=true",props:{}}]},{tokens:[{content:"LANGFLOW_AUTO_LOGIN=false",props:{}}]},{tokens:[{content:"LANGFLOW_AUTO_SAVING=true",props:{}}]},{tokens:[{content:"LANGFLOW_AUTO_SAVING_INTERVAL=1000",props:{}}]},{tokens:[{content:"LANGFLOW_BACKEND_ONLY=false",props:{}}]},{tokens:[{content:'LANGFLOW_BUNDLE_URLS=["https://github.com/user/repo/commit/hash"]',props:{}}]},{tokens:[{content:"LANGFLOW_CACHE_TYPE=async",props:{}}]},{tokens:[{content:"LANGFLOW_COMPONENTS_PATH=/path/to/components/",props:{}}]},{tokens:[{content:"LANGFLOW_CONFIG_DIR=/path/to/config/",props:{}}]},{tokens:[{content:"LANGFLOW_DATABASE_URL=postgresql://user:password@localhost:5432/langflow",props:{}}]},{tokens:[{content:"LANGFLOW_DEV=false",props:{}}]},{tokens:[{content:"LANGFLOW_FALLBACK_TO_ENV_VAR=false",props:{}}]},{tokens:[{content:"LANGFLOW_HEALTH_CHECK_MAX_RETRIES=5",props:{}}]},{tokens:[{content:"LANGFLOW_HOST=localhost",props:{}}]},{tokens:[{content:"LANGFLOW_LANGCHAIN_CACHE=InMemoryCache",props:{}}]},{tokens:[{content:"LANGFLOW_MAX_FILE_SIZE_UPLOAD=10000",props:{}}]},{tokens:[{content:"LANGFLOW_LOG_LEVEL=error",props:{}}]},{tokens:[{content:"LANGFLOW_OPEN_BROWSER=false",props:{}}]},{tokens:[{content:"LANGFLOW_PORT=7860",props:{}}]},{tokens:[{content:"LANGFLOW_REMOVE_API_KEYS=false",props:{}}]},{tokens:[{content:"LANGFLOW_SAVE_DB_IN_CONFIG_DIR=true",props:{}}]},{tokens:[{content:"LANGFLOW_SECRET_KEY=somesecretkey",props:{}}]},{tokens:[{content:"LANGFLOW_STORE=true",props:{}}]},{tokens:[{content:"LANGFLOW_STORE_ENVIRONMENT_VARIABLES=true",props:{}}]},{tokens:[{content:"LANGFLOW_SUPERUSER=adminuser",props:{}}]},{tokens:[{content:"LANGFLOW_SUPERUSER_PASSWORD=adminpass",props:{}}]},{tokens:[{content:"LANGFLOW_WORKER_TIMEOUT=60000",props:{}}]},{tokens:[{content:"LANGFLOW_WORKERS=3",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsxs)(n.p,{children:["The Langflow project includes a ",(0,s.jsx)(n.a,{href:"https://github.com/langflow-ai/langflow/blob/main/.env.example",children:(0,s.jsx)(n.code,{children:".env.example"})})," file to help you get started.\nYou can copy the contents of this file into your own ",(0,s.jsx)(n.code,{children:".env"})," file and replace the example values with your own preferred settings."]})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Save and close the file."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Start Langflow using the ",(0,s.jsx)(n.code,{children:"--env-file"})," option to define the path to your ",(0,s.jsx)(n.code,{children:".env"})," file:"]}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsx)(i.A,{value:"local",label:"Local",default:!0,children:(0,s.jsx)(x.Code,{codeConfig:L,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,s.jsx)(i.A,{value:"docker",label:"Docker",default:!0,children:(0,s.jsx)(x.Code,{codeConfig:L,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,s.jsxs)(n.p,{children:["On startup, Langflow imports the environment variables from your ",(0,s.jsx)(n.code,{children:".env"})," file, as well as any that you ",(0,s.jsx)(n.a,{href:"#configure-variables-terminal",children:"set in your terminal"}),", and adopts their specified values."]}),"\n",(0,s.jsx)(n.h2,{id:"precedence",children:"Precedence"}),"\n",(0,s.jsxs)(n.p,{children:["Environment variables ",(0,s.jsx)(n.a,{href:"#configure-variables-env-file",children:"defined in the .env file"})," take precedence over those ",(0,s.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,s.jsx)(n.code,{children:".env"})," file, Langflow adopts the value from the the ",(0,s.jsx)(n.code,{children:".env"})," file."]}),"\n",(0,s.jsx)(n.admonition,{title:"CLI precedence",type:"info",children:(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"/configuration-cli",children:"Langflow CLI options"})," override the value of corresponding environment variables defined in the ",(0,s.jsx)(n.code,{children:".env"})," file as well as any environment variables set in your terminal."]})}),"\n",(0,s.jsx)(n.h2,{id:"supported-variables",children:"Supported environment variables"}),"\n",(0,s.jsx)(n.p,{children:"The following table lists the environment variables supported by Langflow."}),"\n",(0,s.jsx)("style",{children:"\n.env-table {\n width: 100%;\n max-width: 100%;\n table-layout: fixed;\n}\n.env-table td:first-child {\n width: 30%;\n font-family: var(--ifm-font-family-monospace);\n background: var(--prism-background);\n border-radius: 6px;\n padding: 8px;\n word-break: break-word;\n}\n.env-table td:nth-child(2) {\n width: 15%;\n}\n.env-table td:nth-child(3) {\n width: 15%;\n}\n.env-table td:nth-child(4) {\n width: 40%;\n}\n.env-table td {\n padding: 8px;\n vertical-align: top;\n}\n.env-prefix {\n opacity: 0.7;\n}\n.env-table tr {\n border-top: 1px solid var(--ifm-table-border-color);\n}\n.env-table code {\n white-space: nowrap;\n}\n"}),"\n",(0,s.jsx)("div",{class:"env-table",children:(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Variable"}),(0,s.jsx)(n.th,{children:"Format"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"DO_NOT_TRACK"}),"DO_NOT_TRACK"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"If this option is enabled, Langflow does not track telemetry."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_AUTO_LOGIN"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"AUTO_LOGIN"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsxs)(n.td,{children:["Enable automatic login for Langflow. Set to ",(0,s.jsx)(n.code,{children:"false"})," to disable automatic login and require the login form to log into the Langflow UI. Setting to ",(0,s.jsx)(n.code,{children:"false"})," requires ",(0,s.jsx)(n.a,{href:"#LANGFLOW_SUPERUSER",children:(0,s.jsx)(n.code,{children:"LANGFLOW_SUPERUSER"})})," and ",(0,s.jsx)(n.a,{href:"/environment-variables#LANGFLOW_SUPERUSER_PASSWORD",children:(0,s.jsx)(n.code,{children:"LANGFLOW_SUPERUSER_PASSWORD"})})," to be set."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_AUTO_SAVING"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"AUTO_SAVING"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsxs)(n.td,{children:["Enable flow auto-saving.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-auto-saving",children:[(0,s.jsx)(n.code,{children:"--auto-saving"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_AUTO_SAVING_INTERVAL"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"AUTO_SAVING_INTERVAL"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"1000"})}),(0,s.jsxs)(n.td,{children:["Set the interval for flow auto-saving in milliseconds.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-auto-saving-interval",children:[(0,s.jsx)(n.code,{children:"--auto-saving-interval"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_BACKEND_ONLY"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"BACKEND_ONLY"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["Only run Langflow's backend server (no frontend).",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-backend-only",children:[(0,s.jsx)(n.code,{children:"--backend-only"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_BUNDLE_URLS"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"BUNDLE_URLS"]}),(0,s.jsx)(n.td,{children:"List[String]"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"[]"})}),(0,s.jsxs)(n.td,{children:["A list of URLs from which to load component bundles and flows. Supports GitHub URLs. If ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"AUTO_LOGIN is enabled, flows from these bundles are loaded into the database."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_CACHE_TYPE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"CACHE_TYPE"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"async"})}),(0,s.jsxs)(n.td,{children:["Set the cache type for Langflow. Possible values: ",(0,s.jsx)(n.code,{children:"async"}),", ",(0,s.jsx)(n.code,{children:"redis"}),", ",(0,s.jsx)(n.code,{children:"memory"}),", ",(0,s.jsx)(n.code,{children:"disk"}),".",(0,s.jsx)("br",{}),"If you set the type to ",(0,s.jsx)(n.code,{children:"redis"}),", then you must also set the following environment variables: ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_REDIS_HOST"}),", ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_REDIS_PORT"}),", ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_REDIS_DB"}),", and ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_REDIS_CACHE_EXPIRE"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_COMPONENTS_PATH"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"COMPONENTS_PATH"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"langflow/components"})}),(0,s.jsxs)(n.td,{children:["Path to the directory containing custom components.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-components-path",children:[(0,s.jsx)(n.code,{children:"--components-path"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_CONFIG_DIR"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"CONFIG_DIR"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"See description"}),(0,s.jsxs)(n.td,{children:["Set the Langflow configuration directory where files, logs, and the Langflow database are stored. Defaults: ",(0,s.jsx)(n.strong,{children:"Linux/WSL"}),": ",(0,s.jsx)(n.code,{children:"~/.cache/langflow/"}),(0,s.jsx)("br",{}),(0,s.jsx)(n.strong,{children:"macOS"}),": ",(0,s.jsx)(n.code,{children:"/Users//Library/Caches/langflow/"}),(0,s.jsx)("br",{}),(0,s.jsx)(n.strong,{children:"Windows"}),": ",(0,s.jsx)(n.code,{children:"%LOCALAPPDATA%\\langflow\\langflow\\Cache"})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_DATABASE_URL"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DATABASE_URL"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.jsx)(n.td,{children:"Set the database URL for Langflow. If not provided, Langflow uses a SQLite database."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_DATABASE_CONNECTION_RETRY"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DATABASE_CONNECTION_RETRY"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"If True, Langflow tries to connect to the database again if it fails."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_DB_POOL_SIZE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DB_POOL_SIZE"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"10"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.strong,{children:"DEPRECATED:"})," Use ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DB_CONNECTION_SETTINGS instead. The number of connections to keep open in the connection pool."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_DB_MAX_OVERFLOW"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DB_MAX_OVERFLOW"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"20"})}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.strong,{children:"DEPRECATED:"})," Use ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DB_CONNECTION_SETTINGS instead. The number of connections to allow that can be opened beyond the pool size."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_DB_CONNECT_TIMEOUT"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DB_CONNECT_TIMEOUT"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"20"})}),(0,s.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,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_DB_CONNECTION_SETTINGS"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DB_CONNECTION_SETTINGS"]}),(0,s.jsx)(n.td,{children:"JSON"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.jsxs)(n.td,{children:["A JSON dictionary to centralize database connection parameters. Example: ",(0,s.jsx)(n.code,{children:'{"pool_size": 10, "max_overflow": 20}'})]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_DISABLE_TRACK_APIKEY_USAGE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"DISABLE_TRACK_APIKEY_USAGE"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["If set to ",(0,s.jsx)(n.code,{children:"true"}),", disables tracking of API key usage (",(0,s.jsx)(n.code,{children:"total_uses"})," and ",(0,s.jsx)(n.code,{children:"last_used_at"}),") to avoid database contention under high concurrency."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_ENABLE_LOG_RETRIEVAL"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"ENABLE_LOG_RETRIEVAL"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Enable log retrieval functionality."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_FALLBACK_TO_ENV_VAR"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"FALLBACK_TO_ENV_VAR"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsxs)(n.td,{children:["If enabled, ",(0,s.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,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_FRONTEND_PATH"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"FRONTEND_PATH"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"./frontend"})}),(0,s.jsxs)(n.td,{children:["Path to the frontend directory containing build files. This is for development purposes only.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-frontend-path",children:[(0,s.jsx)(n.code,{children:"--frontend-path"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_HEALTH_CHECK_MAX_RETRIES"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"HEALTH_CHECK_MAX_RETRIES"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"5"})}),(0,s.jsxs)(n.td,{children:["Set the maximum number of retries for the health check.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-health-check-max-retries",children:[(0,s.jsx)(n.code,{children:"--health-check-max-retries"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_HOST"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"HOST"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"localhost"})}),(0,s.jsxs)(n.td,{children:["The host on which the Langflow server will run.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-host",children:[(0,s.jsx)(n.code,{children:"--host"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_LANGCHAIN_CACHE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"LANGCHAIN_CACHE"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"InMemoryCache"})}),(0,s.jsxs)(n.td,{children:["Type of cache to use. Possible values: ",(0,s.jsx)(n.code,{children:"InMemoryCache"}),", ",(0,s.jsx)(n.code,{children:"SQLiteCache"}),".",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-cache",children:[(0,s.jsx)(n.code,{children:"--cache"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_LOG_LEVEL"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"LOG_LEVEL"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"INFO"})}),(0,s.jsxs)(n.td,{children:["Set the logging level for Langflow. Possible values: ",(0,s.jsx)(n.code,{children:"DEBUG"}),", ",(0,s.jsx)(n.code,{children:"INFO"}),", ",(0,s.jsx)(n.code,{children:"WARNING"}),", ",(0,s.jsx)(n.code,{children:"ERROR"}),", ",(0,s.jsx)(n.code,{children:"CRITICAL"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_LOG_FILE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"LOG_FILE"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.jsx)(n.td,{children:"Path to the log file. If this option is not set, logs are written to stdout."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_LOG_RETRIEVER_BUFFER_SIZE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"LOG_RETRIEVER_BUFFER_SIZE"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"10000"})}),(0,s.jsxs)(n.td,{children:["Set the buffer size for log retrieval. Only used if ",(0,s.jsx)(n.code,{children:"LANGFLOW_ENABLE_LOG_RETRIEVAL"})," is enabled."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_MAX_FILE_SIZE_UPLOAD"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"MAX_FILE_SIZE_UPLOAD"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"100"})}),(0,s.jsxs)(n.td,{children:["Set the maximum file size for the upload in megabytes.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-max-file-size-upload",children:[(0,s.jsx)(n.code,{children:"--max-file-size-upload"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_MCP_SERVER_ENABLED"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"MCP_SERVER_ENABLED"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsx)(n.td,{children:"If this option is set to False, Langflow does not enable the MCP server."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_MCP_SERVER_ENABLE_PROGRESS_NOTIFICATIONS"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"MCP_SERVER_ENABLE_PROGRESS_NOTIFICATIONS"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"If this option is set to True, Langflow sends progress notifications in the MCP server."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_NEW_USER_IS_ACTIVE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"NEW_USER_IS_ACTIVE"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"When enabled, new users are automatically activated and can log in without requiring explicit activation by the superuser."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_OPEN_BROWSER"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"OPEN_BROWSER"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["Open the system web browser on startup.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-open-browser",children:[(0,s.jsx)(n.code,{children:"--open-browser"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_PORT"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"PORT"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"7860"})}),(0,s.jsxs)(n.td,{children:["The port on which the Langflow server runs. The server automatically selects a free port if the specified port is in use.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-port",children:[(0,s.jsx)(n.code,{children:"--port"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_PROMETHEUS_ENABLED"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"PROMETHEUS_ENABLED"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Expose Prometheus metrics."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_PROMETHEUS_PORT"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"PROMETHEUS_PORT"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"9090"})}),(0,s.jsx)(n.td,{children:"Set the port on which Langflow exposes Prometheus metrics."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_REDIS_CACHE_EXPIRE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"REDIS_CACHE_EXPIRE"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"3600"})}),(0,s.jsxs)(n.td,{children:["See ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"CACHE_TYPE."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_REDIS_DB"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"REDIS_DB"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"0"})}),(0,s.jsxs)(n.td,{children:["See ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"CACHE_TYPE."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_REDIS_HOST"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"REDIS_HOST"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"localhost"})}),(0,s.jsxs)(n.td,{children:["See ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"CACHE_TYPE."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_REDIS_PORT"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"REDIS_PORT"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"6379"})}),(0,s.jsxs)(n.td,{children:["See ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"CACHE_TYPE."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_REDIS_PASSWORD"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"REDIS_PASSWORD"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.jsx)(n.td,{children:"Password for Redis authentication when using Redis cache type."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_REMOVE_API_KEYS"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"REMOVE_API_KEYS"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["Remove API keys from the projects saved in the database.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-remove-api-keys",children:[(0,s.jsx)(n.code,{children:"--remove-api-keys"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_SAVE_DB_IN_CONFIG_DIR"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"SAVE_DB_IN_CONFIG_DIR"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["Save the Langflow database in ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"CONFIG_DIR instead of in the Langflow package directory. Note, when this variable is set to default (",(0,s.jsx)(n.code,{children:"false"}),"), the database isn't shared between different virtual environments and the database is deleted when you uninstall Langflow."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_SECRET_KEY"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"SECRET_KEY"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Auto-generated"}),(0,s.jsx)(n.td,{children:"Key used for encrypting sensitive data like API keys. If a key is not provided, a secure key is auto-generated. For production environments with multiple instances, you should explicitly set this to ensure consistent encryption across instances."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_STORE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"STORE"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsxs)(n.td,{children:["Enable the Langflow Store.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-store",children:[(0,s.jsx)(n.code,{children:"--store"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_STORE_ENVIRONMENT_VARIABLES"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"STORE_ENVIRONMENT_VARIABLES"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsxs)(n.td,{children:["Store environment variables as ",(0,s.jsx)(n.a,{href:"/configuration-global-variables",children:"global variables"})," in the database."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_UPDATE_STARTER_PROJECTS"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"UPDATE_STARTER_PROJECTS"]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsx)(n.td,{children:"If this option is enabled, Langflow updates starter projects with the latest component versions when initializing."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_SUPERUSER"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"SUPERUSER"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"langflow"})}),(0,s.jsxs)(n.td,{children:["Set the name for the superuser. Required if ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"AUTO_LOGIN is set to ",(0,s.jsx)(n.code,{children:"false"}),".",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#superuser-username",children:[(0,s.jsx)(n.code,{children:"superuser --username"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_SUPERUSER_PASSWORD"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"SUPERUSER_PASSWORD"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"langflow"})}),(0,s.jsxs)(n.td,{children:["Set the password for the superuser. Required if ",(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"AUTO_LOGIN is set to ",(0,s.jsx)(n.code,{children:"false"}),".",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#superuser-password",children:[(0,s.jsx)(n.code,{children:"superuser --password"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENT"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"VARIABLES_TO_GET_FROM_ENVIRONMENT"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.jsxs)(n.td,{children:["Comma-separated list of environment variables to get from the environment and store as ",(0,s.jsx)(n.a,{href:"/configuration-global-variables",children:"global variables"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_LOAD_FLOWS_PATH"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"LOAD_FLOWS_PATH"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.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,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"AUTO_LOGIN is enabled."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_WORKER_TIMEOUT"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"WORKER_TIMEOUT"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"300"})}),(0,s.jsxs)(n.td,{children:["Worker timeout in seconds.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-worker-timeout",children:[(0,s.jsx)(n.code,{children:"--worker-timeout"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_WORKERS"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"WORKERS"]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"1"})}),(0,s.jsxs)(n.td,{children:["Number of worker processes.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-workers",children:[(0,s.jsx)(n.code,{children:"--workers"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_SSL_CERT_FILE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"SSL_CERT_FILE"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.jsx)(n.td,{children:"Path to the SSL certificate file on the local system."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)(d.A,{id:"LANGFLOW_SSL_KEY_FILE"}),(0,s.jsx)("span",{class:"env-prefix",children:"LANGFLOW_"}),"SSL_KEY_FILE"]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.jsx)(n.td,{children:"Path to the SSL key file on the local system."})]})]})]})}),"\n",(0,s.jsx)(n.h2,{id:"configure-env-overrideconf-and-tasksjson-files",children:"Configure .env, override.conf, and tasks.json files"}),"\n",(0,s.jsx)(n.p,{children:"The following examples show how to configure Langflow using environment variables in different scenarios."}),"\n",(0,s.jsxs)(c.A,{children:[(0,s.jsxs)(i.A,{value:"env",label:".env File",default:!0,children:[(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:".env"})," file is a text file that contains key-value pairs of environment variables."]}),(0,s.jsxs)(n.p,{children:["Create or edit a file named ",(0,s.jsx)(n.code,{children:".env"})," in your project root directory and add your configuration:"]}),(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",title:'".env"',focus:"",code:{lines:[{tokens:[{content:"DO_NOT_TRACK=true",props:{}}]},{tokens:[{content:"LANGFLOW_AUTO_LOGIN=false",props:{}}]},{tokens:[{content:"LANGFLOW_AUTO_SAVING=true",props:{}}]},{tokens:[{content:"LANGFLOW_AUTO_SAVING_INTERVAL=1000",props:{}}]},{tokens:[{content:"LANGFLOW_BACKEND_ONLY=false",props:{}}]},{tokens:[{content:'LANGFLOW_BUNDLE_URLS=["https://github.com/user/repo/commit/hash"]',props:{}}]},{tokens:[{content:"LANGFLOW_CACHE_TYPE=async",props:{}}]},{tokens:[{content:"LANGFLOW_COMPONENTS_PATH=/path/to/components/",props:{}}]},{tokens:[{content:"LANGFLOW_CONFIG_DIR=/path/to/config/",props:{}}]},{tokens:[{content:"LANGFLOW_DATABASE_URL=postgresql://user:password@localhost:5432/langflow",props:{}}]},{tokens:[{content:"LANGFLOW_DEV=false",props:{}}]},{tokens:[{content:"LANGFLOW_FALLBACK_TO_ENV_VAR=false",props:{}}]},{tokens:[{content:"LANGFLOW_HEALTH_CHECK_MAX_RETRIES=5",props:{}}]},{tokens:[{content:"LANGFLOW_HOST=localhost",props:{}}]},{tokens:[{content:"LANGFLOW_LANGCHAIN_CACHE=InMemoryCache",props:{}}]},{tokens:[{content:"LANGFLOW_MAX_FILE_SIZE_UPLOAD=10000",props:{}}]},{tokens:[{content:"LANGFLOW_LOG_LEVEL=error",props:{}}]},{tokens:[{content:"LANGFLOW_OPEN_BROWSER=false",props:{}}]},{tokens:[{content:"LANGFLOW_PORT=7860",props:{}}]},{tokens:[{content:"LANGFLOW_REMOVE_API_KEYS=false",props:{}}]},{tokens:[{content:"LANGFLOW_SAVE_DB_IN_CONFIG_DIR=true",props:{}}]},{tokens:[{content:"LANGFLOW_SECRET_KEY=somesecretkey",props:{}}]},{tokens:[{content:"LANGFLOW_STORE=true",props:{}}]},{tokens:[{content:"LANGFLOW_STORE_ENVIRONMENT_VARIABLES=true",props:{}}]},{tokens:[{content:"LANGFLOW_SUPERUSER=adminuser",props:{}}]},{tokens:[{content:"LANGFLOW_SUPERUSER_PASSWORD=adminpass",props:{}}]},{tokens:[{content:"LANGFLOW_WORKER_TIMEOUT=60000",props:{}}]},{tokens:[{content:"LANGFLOW_WORKERS=3",props:{}}]}],lang:"text"},annotations:[]}]})]}),(0,s.jsxs)(i.A,{value:"systemd",label:"Systemd service",children:[(0,s.jsx)(n.p,{children:"A systemd service configuration file configures Linux system services."}),(0,s.jsxs)(n.p,{children:["To add environment variables, create or edit a service configuration file and add an ",(0,s.jsx)(n.code,{children:"override.conf"})," file. This file allows you to override the default environment variables for the service."]}),(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",title:'"override.conf"',focus:"",code:{lines:[{tokens:[{content:"[Service]",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"DO_NOT_TRACK=true"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_AUTO_LOGIN=false"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_AUTO_SAVING=true"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_AUTO_SAVING_INTERVAL=1000"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_BACKEND_ONLY=false"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_BUNDLE_URLS=[\\"',props:{style:{color:"#A5D6FF"}}},{content:"https://github.com/user/repo/commit/hash\\",props:{style:{color:"#C9D1D9"}}},{content:'"]"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_CACHE_TYPE=async"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_COMPONENTS_PATH=/path/to/components/"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_CONFIG_DIR=/path/to/config"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_DATABASE_URL=postgresql://user:password@localhost:5432/langflow"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_DEV=false"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_FALLBACK_TO_ENV_VAR=false"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_HEALTH_CHECK_MAX_RETRIES=5"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_HOST=localhost"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_LANGCHAIN_CACHE=InMemoryCache"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_MAX_FILE_SIZE_UPLOAD=10000"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_LOG_ENV=container_json"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_LOG_FILE=logs/langflow.log"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_LOG_LEVEL=error"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_OPEN_BROWSER=false"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_PORT=7860"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_REMOVE_API_KEYS=false"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_SAVE_DB_IN_CONFIG_DIR=true"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_SECRET_KEY=somesecretkey"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_STORE=true"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_STORE_ENVIRONMENT_VARIABLES=true"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_SUPERUSER=adminuser"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_SUPERUSER_PASSWORD=adminpass"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_WORKER_TIMEOUT=60000"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"Environment",props:{style:{color:"#FF7B72"}}},{content:"=",props:{style:{color:"#C9D1D9"}}},{content:'"LANGFLOW_WORKERS=3"',props:{style:{color:"#A5D6FF"}}}]}],lang:"ini"},annotations:[]}]}),(0,s.jsxs)(n.p,{children:["For more information on systemd, see the ",(0,s.jsx)(n.a,{href:"https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/using_systemd_unit_files_to_customize_and_optimize_your_system/assembly_working-with-systemd-unit-files_working-with-systemd",children:"Red Hat documentation"}),"."]})]}),(0,s.jsxs)(i.A,{value:"vscode",label:"VSCode tasks.json",children:[(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"tasks.json"})," file located in ",(0,s.jsx)(n.code,{children:".vscode/tasks.json"})," is a configuration file for development environments using Visual Studio Code."]}),(0,s.jsxs)(n.p,{children:["Create or edit the ",(0,s.jsx)(n.code,{children:".vscode/tasks.json"})," file in your project root:"]}),(0,s.jsx)(x.Code,{codeConfig:L,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",title:'".vscode/tasks.json"',focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "version"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2.0.0"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "options"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "env"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "DO_NOT_TRACK"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"true"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_AUTO_LOGIN"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"false"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_AUTO_SAVING"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"true"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_AUTO_SAVING_INTERVAL"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"1000"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_BACKEND_ONLY"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"false"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_BUNDLE_URLS"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"[',props:{style:{color:"#A5D6FF"}}},{content:'\\"',props:{style:{color:"#79C0FF"}}},{content:"https://github.com/user/repo/commit/hash",props:{style:{color:"#A5D6FF"}}},{content:'\\"',props:{style:{color:"#79C0FF"}}},{content:']"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_CACHE_TYPE"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"async"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_COMPONENTS_PATH"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"D:/path/to/components/"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_CONFIG_DIR"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"D:/path/to/config/"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_DATABASE_URL"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"postgresql://postgres:password@localhost:5432/langflow"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_DEV"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"false"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_FALLBACK_TO_ENV_VAR"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"false"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_HEALTH_CHECK_MAX_RETRIES"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"5"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_HOST"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"localhost"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_LANGCHAIN_CACHE"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"InMemoryCache"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_MAX_FILE_SIZE_UPLOAD"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"10000"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_LOG_ENV"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"container_csv"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_LOG_FILE"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"langflow.log"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_LOG_LEVEL"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"error"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_OPEN_BROWSER"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"false"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_PORT"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"7860"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_REMOVE_API_KEYS"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"true"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_SAVE_DB_IN_CONFIG_DIR"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"false"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_SECRET_KEY"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"somesecretkey"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_STORE"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"true"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_STORE_ENVIRONMENT_VARIABLES"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"true"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_SUPERUSER"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"adminuser"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_SUPERUSER_PASSWORD"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"adminpass"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_WORKER_TIMEOUT"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"60000"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "LANGFLOW_WORKERS"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"3"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "tasks"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "label"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"langflow backend"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"shell"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "command"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'". ./langflownightly/Scripts/activate && langflow run"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "isBackground"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "problemMatcher"',props:{style:{color:"#7EE787"}}},{content:": []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]}),(0,s.jsxs)(n.p,{children:["To run Langflow using the above VSCode ",(0,s.jsx)(n.code,{children:"tasks.json"})," file, in the VSCode command palette, select ",(0,s.jsx)(n.strong,{children:"Tasks: Run Task"})," > ",(0,s.jsx)(n.strong,{children:"langflow backend"}),"."]})]})]})]})}function _(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(j,{...e})}):j(e)}function u(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,o)=>{o.d(n,{A:()=>l});o(96540);var t=o(18215);const s={tabItem:"tabItem_Ymn6"};var r=o(74848);function l(e){let{children:n,hidden:o,className:l}=e;return(0,r.jsx)("div",{role:"tabpanel",className:(0,t.A)(s.tabItem,l),hidden:o,children:n})}}}]);
\ No newline at end of file
diff --git a/assets/js/cacdc615.f5e720e4.js b/assets/js/cacdc615.0a6b1364.js
similarity index 99%
rename from assets/js/cacdc615.f5e720e4.js
rename to assets/js/cacdc615.0a6b1364.js
index 8f05be0b8e..8ba3b1bb5b 100644
--- a/assets/js/cacdc615.f5e720e4.js
+++ b/assets/js/cacdc615.0a6b1364.js
@@ -1 +1 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[7211],{6682:(e,t,n)=>{n.r(t),n.d(t,{CH:()=>u,assets:()=>d,chCodeConfig:()=>h,contentTitle:()=>c,default:()=>f,frontMatter:()=>i,metadata:()=>o,toc:()=>p});const o=JSON.parse('{"id":"Configuration/configuration-api-keys","title":"API keys","description":"Langflow provides an API key functionality that allows users to access their individual components and flows without traditional login authentication.","source":"@site/docs/Configuration/configuration-api-keys.md","sourceDirName":"Configuration","slug":"/configuration-api-keys","permalink":"/configuration-api-keys","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"API keys","slug":"/configuration-api-keys"},"sidebar":"docs","previous":{"title":"Create a problem-solving agent","permalink":"/agents-tool-calling-agent-component"},"next":{"title":"Authentication","permalink":"/configuration-authentication"}}');var r=n(74848),a=n(28453),s=n(24754),l=(n(65537),n(79329),n(84443));const i={title:"API keys",slug:"/configuration-api-keys"},c=void 0,d={},u={annotations:s.hk,Code:s.Cy},h={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},p=[{value:"Generate a Langflow API key",id:"generate-a-langflow-api-key",level:2},{value:"Generate an API key with the Langflow UI",id:"generate-an-api-key-with-the-langflow-ui",level:3},{value:"Generate an API key with the Langflow CLI",id:"generate-an-api-key-with-the-langflow-cli",level:3},{value:"Authenticate requests with the Langflow API key",id:"authenticate-requests-with-the-langflow-api-key",level:2},{value:"Include the API key in the HTTP header",id:"include-the-api-key-in-the-http-header",level:3},{value:"Include the API key as a query parameter",id:"include-the-api-key-as-a-query-parameter",level:3},{value:"Generate a Langflow secret key",id:"generate-a-langflow-secret-key",level:2},{value:"Revoke an API key",id:"revoke-an-api-key",level:2},{value:"Add component API keys to Langflow",id:"add-component-api-keys-to-langflow",level:2},{value:"Add component API keys with the .env file",id:"add-component-api-keys-with-the-env-file",level:3},{value:"Add component API keys with the Langflow UI",id:"add-component-api-keys-with-the-langflow-ui",level:3}];function y(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",...(0,a.R)(),...e.components};return u||g("CH",!1),u.Code||g("CH.Code",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,r.jsx)(t.p,{children:"Langflow provides an API key functionality that allows users to access their individual components and flows without traditional login authentication."}),"\n",(0,r.jsx)(t.h2,{id:"generate-a-langflow-api-key",children:"Generate a Langflow API key"}),"\n",(0,r.jsx)(t.p,{children:"Generate a user-specific token to use with Langflow."}),"\n",(0,r.jsx)(t.h3,{id:"generate-an-api-key-with-the-langflow-ui",children:"Generate an API key with the Langflow UI"}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["Click your user icon, and then select ",(0,r.jsx)(t.strong,{children:"Settings"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Click ",(0,r.jsx)(t.strong,{children:"Langflow API"}),", and then click ",(0,r.jsx)(t.strong,{children:"Add New"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Name your key, and then click ",(0,r.jsx)(t.strong,{children:"Create Secret Key"}),"."]}),"\n",(0,r.jsx)(t.li,{children:"Copy the API key and store it in a secure location."}),"\n"]}),"\n",(0,r.jsx)(t.h3,{id:"generate-an-api-key-with-the-langflow-cli",children:"Generate an API key with the Langflow CLI"}),"\n",(0,r.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"api-key",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"# or",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow api-key",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"API Key Created Successfully: \u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"\u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"sk-O0elzoWID1izAH8RUKrnnvyyMwIzHi2Wk-uXWoNJ2Ro \u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"\u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"This is the only time the API key will be displayed. \u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"Make sure to store it in a secure location. \u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"\u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"The API key has been copied to your clipboard. Cmd + V to paste it. \u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]}],lang:"shell"},annotations:[]}]}),"\n",(0,r.jsx)(t.h2,{id:"authenticate-requests-with-the-langflow-api-key",children:"Authenticate requests with the Langflow API key"}),"\n",(0,r.jsx)(t.p,{children:"Include your API key in API requests to authenticate requests to Langflow."}),"\n",(0,r.jsx)(t.p,{children:"API keys allow access only to the flows and components of the specific user to whom the key was issued."}),"\n",(0,r.jsx)(t.h3,{id:"include-the-api-key-in-the-http-header",children:"Include the API key in the HTTP header"}),"\n",(0,r.jsx)(t.p,{children:"To use the API key when making API requests, include the API key in the HTTP header:"}),"\n",(0,r.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "http://127.0.0.1:7860/api/v1/run/FLOW_ID?stream=false" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:"'Content-Type: application/json' ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:"'x-api-key: API_KEY' ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:'\'{"inputs": {"text":""}, "tweaks": {}}\'',props:{style:{color:"#A5D6FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n",(0,r.jsx)(t.h3,{id:"include-the-api-key-as-a-query-parameter",children:"Include the API key as a query parameter"}),"\n",(0,r.jsx)(t.p,{children:"To pass the API key as a query parameter:"}),"\n",(0,r.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "http://127.0.0.1:7860/api/v1/run/FLOW_ID?x-api-key=API_KEY?stream=false" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:"'Content-Type: application/json' ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:'\'{"inputs": {"text":""}, "tweaks": {}}\'',props:{style:{color:"#A5D6FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n",(0,r.jsx)(t.h2,{id:"generate-a-langflow-secret-key",children:"Generate a Langflow secret key"}),"\n",(0,r.jsxs)(t.p,{children:["Langflow uses the ",(0,r.jsx)(t.a,{href:"https://pypi.org/project/cryptography/",children:"Fernet"})," library for encrypting sensitive data."]}),"\n",(0,r.jsxs)(t.p,{children:["If no ",(0,r.jsx)(t.code,{children:"LANGFLOW_SECRET_KEY"})," is provided, Langflow automatically generates one."]}),"\n",(0,r.jsxs)(t.p,{children:["For more information, see ",(0,r.jsx)(t.a,{href:"/configuration-authentication#langflow_secret_key",children:"Authentication"}),"."]}),"\n",(0,r.jsx)(t.h2,{id:"revoke-an-api-key",children:"Revoke an API key"}),"\n",(0,r.jsxs)(t.p,{children:["To revoke an API key, delete it from the list of keys in the ",(0,r.jsx)(t.strong,{children:"Settings"})," menu."]}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["Click your user icon, and then select ",(0,r.jsx)(t.strong,{children:"Settings"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Click ",(0,r.jsx)(t.strong,{children:"Langflow API"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Select the keys you want to delete, and then click ",(0,r.jsx)(l.A,{name:"Trash2","aria-hidden":"true"})," ",(0,r.jsx)(t.strong,{children:"Delete"}),"."]}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:"This action immediately invalidates the key and prevents it from being used again."}),"\n",(0,r.jsx)(t.h2,{id:"add-component-api-keys-to-langflow",children:"Add component API keys to Langflow"}),"\n",(0,r.jsxs)(t.p,{children:["These are credentials for external services like OpenAI. They can be added to Langflow with the ",(0,r.jsx)(t.code,{children:".env"})," file or in the Langflow UI."]}),"\n",(0,r.jsx)(t.p,{children:"Component API keys that are set in the UI override those that are set in the environment variables."}),"\n",(0,r.jsx)(t.h3,{id:"add-component-api-keys-with-the-env-file",children:"Add component API keys with the .env file"}),"\n",(0,r.jsxs)(t.p,{children:["To add component API keys to your ",(0,r.jsx)(t.code,{children:".env"})," file:"]}),"\n",(0,r.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"OPENAI_API_KEY=sk-...",props:{}}]},{tokens:[{content:"ANTHROPIC_API_KEY=sk-...",props:{}}]},{tokens:[{content:"GOOGLE_API_KEY=...",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(t.h3,{id:"add-component-api-keys-with-the-langflow-ui",children:"Add component API keys with the Langflow UI"}),"\n",(0,r.jsxs)(t.p,{children:["To add component API keys as ",(0,r.jsx)(t.strong,{children:"Global variables"})," with the Langflow UI:"]}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["Click your user icon, and then select ",(0,r.jsx)(t.strong,{children:"Settings"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Click ",(0,r.jsx)(t.strong,{children:"Langflow API"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Add new API keys as ",(0,r.jsx)(t.strong,{children:"Credential"})," type variables."]}),"\n",(0,r.jsx)(t.li,{children:"Apply them to specific component fields."}),"\n"]}),"\n",(0,r.jsxs)(t.p,{children:["Component values set directly in a flow override values set in the UI ",(0,r.jsx)(t.strong,{children:"and"})," environment variables."]}),"\n",(0,r.jsxs)(t.p,{children:["For more information, see ",(0,r.jsx)(t.a,{href:"/configuration-global-variables",children:"Global variables"}),"."]})]})}function f(e={}){const{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(y,{...e})}):y(e)}function g(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},65537:(e,t,n)=>{n.d(t,{A:()=>F});var o=n(96540),r=n(18215),a=n(65627),s=n(56347),l=n(50372),i=n(30604),c=n(11861),d=n(78749);function u(e){return o.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,o.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function h(e){const{values:t,children:n}=e;return(0,o.useMemo)((()=>{const e=t??function(e){return u(e).map((e=>{let{props:{value:t,label:n,attributes:o,default:r}}=e;return{value:t,label:n,attributes:o,default:r}}))}(n);return function(e){const t=(0,c.XI)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function p(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function y(e){let{queryString:t=!1,groupId:n}=e;const r=(0,s.W6)(),a=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)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 n??null}({queryString:t,groupId:n});return[(0,i.aZ)(a),(0,o.useCallback)((e=>{if(!a)return;const t=new URLSearchParams(r.location.search);t.set(a,e),r.replace({...r.location,search:t.toString()})}),[a,r])]}function f(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,a=h(e),[s,i]=(0,o.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!p({value:t,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const o=n.find((e=>e.default))??n[0];if(!o)throw new Error("Unexpected error: 0 tabValues");return o.value}({defaultValue:t,tabValues:a}))),[c,u]=y({queryString:n,groupId:r}),[f,g]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,a]=(0,d.Dv)(n);return[r,(0,o.useCallback)((e=>{n&&a.set(e)}),[n,a])]}({groupId:r}),k=(()=>{const e=c??f;return p({value:e,tabValues:a})?e:null})();(0,l.A)((()=>{k&&i(k)}),[k]);return{selectedValue:s,selectValue:(0,o.useCallback)((e=>{if(!p({value:e,tabValues:a}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),g(e)}),[u,g,a]),tabValues:a}}var g=n(9136);const k={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var m=n(74848);function v(e){let{className:t,block:n,selectedValue:o,selectValue:s,tabValues:l}=e;const i=[],{blockElementScrollPositionUntilNextRender:c}=(0,a.a_)(),d=e=>{const t=e.currentTarget,n=i.indexOf(t),r=l[n].value;r!==o&&(c(t),s(r))},u=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const n=i.indexOf(e.currentTarget)+1;t=i[n]??i[0];break}case"ArrowLeft":{const n=i.indexOf(e.currentTarget)-1;t=i[n]??i[i.length-1];break}}t?.focus()};return(0,m.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.A)("tabs",{"tabs--block":n},t),children:l.map((e=>{let{value:t,label:n,attributes:a}=e;return(0,m.jsx)("li",{role:"tab",tabIndex:o===t?0:-1,"aria-selected":o===t,ref:e=>{i.push(e)},onKeyDown:u,onClick:d,...a,className:(0,r.A)("tabs__item",k.tabItem,a?.className,{"tabs__item--active":o===t}),children:n??t},t)}))})}function A(e){let{lazy:t,children:n,selectedValue:a}=e;const s=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=s.find((e=>e.props.value===a));return e?(0,o.cloneElement)(e,{className:(0,r.A)("margin-top--md",e.props.className)}):null}return(0,m.jsx)("div",{className:"margin-top--md",children:s.map(((e,t)=>(0,o.cloneElement)(e,{key:t,hidden:e.props.value!==a})))})}function w(e){const t=f(e);return(0,m.jsxs)("div",{className:(0,r.A)("tabs-container",k.tabList),children:[(0,m.jsx)(v,{...t,...e}),(0,m.jsx)(A,{...t,...e})]})}function F(e){const t=(0,g.A)();return(0,m.jsx)(w,{...e,children:u(e.children)},String(t))}},79329:(e,t,n)=>{n.d(t,{A:()=>s});n(96540);var o=n(18215);const r={tabItem:"tabItem_Ymn6"};var a=n(74848);function s(e){let{children:t,hidden:n,className:s}=e;return(0,a.jsx)("div",{role:"tabpanel",className:(0,o.A)(r.tabItem,s),hidden:n,children:t})}},84443:(e,t,n)=>{n.d(t,{A:()=>a});n(96540);var o=n(64058),r=n(74848);function a(e){let{name:t,...n}=e;const a=o[t];return a?(0,r.jsx)(a,{...n}):null}}}]);
\ No newline at end of file
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[7211],{6682:(e,t,n)=>{n.r(t),n.d(t,{CH:()=>u,assets:()=>d,chCodeConfig:()=>h,contentTitle:()=>c,default:()=>f,frontMatter:()=>i,metadata:()=>o,toc:()=>p});const o=JSON.parse('{"id":"Configuration/configuration-api-keys","title":"API keys","description":"Langflow provides an API key functionality that allows users to access their individual components and flows without traditional login authentication.","source":"@site/docs/Configuration/configuration-api-keys.md","sourceDirName":"Configuration","slug":"/configuration-api-keys","permalink":"/configuration-api-keys","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"API keys","slug":"/configuration-api-keys"},"sidebar":"docs","previous":{"title":"Create a problem-solving agent","permalink":"/agents-tool-calling-agent-component"},"next":{"title":"Authentication","permalink":"/configuration-authentication"}}');var r=n(74848),a=n(28453),s=n(24754),l=(n(65537),n(79329),n(84443));const i={title:"API keys",slug:"/configuration-api-keys"},c=void 0,d={},u={annotations:s.hk,Code:s.Cy},h={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},p=[{value:"Generate a Langflow API key",id:"generate-a-langflow-api-key",level:2},{value:"Generate an API key with the Langflow UI",id:"generate-an-api-key-with-the-langflow-ui",level:3},{value:"Generate an API key with the Langflow CLI",id:"generate-an-api-key-with-the-langflow-cli",level:3},{value:"Authenticate requests with the Langflow API key",id:"authenticate-requests-with-the-langflow-api-key",level:2},{value:"Include the API key in the HTTP header",id:"include-the-api-key-in-the-http-header",level:3},{value:"Include the API key as a query parameter",id:"include-the-api-key-as-a-query-parameter",level:3},{value:"Generate a Langflow secret key",id:"generate-a-langflow-secret-key",level:2},{value:"Revoke an API key",id:"revoke-an-api-key",level:2},{value:"Add component API keys to Langflow",id:"add-component-api-keys-to-langflow",level:2},{value:"Add component API keys with the .env file",id:"add-component-api-keys-with-the-env-file",level:3},{value:"Add component API keys with the Langflow UI",id:"add-component-api-keys-with-the-langflow-ui",level:3}];function y(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",...(0,a.R)(),...e.components};return u||g("CH",!1),u.Code||g("CH.Code",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,r.jsx)(t.p,{children:"Langflow provides an API key functionality that allows users to access their individual components and flows without traditional login authentication."}),"\n",(0,r.jsx)(t.h2,{id:"generate-a-langflow-api-key",children:"Generate a Langflow API key"}),"\n",(0,r.jsx)(t.p,{children:"Generate a user-specific token to use with Langflow."}),"\n",(0,r.jsx)(t.h3,{id:"generate-an-api-key-with-the-langflow-ui",children:"Generate an API key with the Langflow UI"}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["Click your user icon, and then select ",(0,r.jsx)(t.strong,{children:"Settings"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Click ",(0,r.jsx)(t.strong,{children:"Langflow API"}),", and then click ",(0,r.jsx)(t.strong,{children:"Add New"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Name your key, and then click ",(0,r.jsx)(t.strong,{children:"Create Secret Key"}),"."]}),"\n",(0,r.jsx)(t.li,{children:"Copy the API key and store it in a secure location."}),"\n"]}),"\n",(0,r.jsx)(t.h3,{id:"generate-an-api-key-with-the-langflow-cli",children:"Generate an API key with the Langflow CLI"}),"\n",(0,r.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"api-key",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"# or",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow api-key",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"API Key Created Successfully: \u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"\u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"sk-O0elzoWID1izAH8RUKrnnvyyMwIzHi2Wk-uXWoNJ2Ro \u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"\u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"This is the only time the API key will be displayed. \u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"Make sure to store it in a secure location. \u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"\u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"The API key has been copied to your clipboard. Cmd + V to paste it. \u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]}],lang:"shell"},annotations:[]}]}),"\n",(0,r.jsx)(t.h2,{id:"authenticate-requests-with-the-langflow-api-key",children:"Authenticate requests with the Langflow API key"}),"\n",(0,r.jsx)(t.p,{children:"Include your API key in API requests to authenticate requests to Langflow."}),"\n",(0,r.jsx)(t.p,{children:"API keys allow access only to the flows and components of the specific user to whom the key was issued."}),"\n",(0,r.jsx)(t.h3,{id:"include-the-api-key-in-the-http-header",children:"Include the API key in the HTTP header"}),"\n",(0,r.jsx)(t.p,{children:"To use the API key when making API requests, include the API key in the HTTP header:"}),"\n",(0,r.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "http://localhost:7860/api/v1/run/FLOW_ID?stream=false" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:"'Content-Type: application/json' ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:"'x-api-key: API_KEY' ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:'\'{"inputs": {"text":""}, "tweaks": {}}\'',props:{style:{color:"#A5D6FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n",(0,r.jsx)(t.h3,{id:"include-the-api-key-as-a-query-parameter",children:"Include the API key as a query parameter"}),"\n",(0,r.jsx)(t.p,{children:"To pass the API key as a query parameter:"}),"\n",(0,r.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "http://localhost:7860/api/v1/run/FLOW_ID?x-api-key=API_KEY?stream=false" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:"'Content-Type: application/json' ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:'\'{"inputs": {"text":""}, "tweaks": {}}\'',props:{style:{color:"#A5D6FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n",(0,r.jsx)(t.h2,{id:"generate-a-langflow-secret-key",children:"Generate a Langflow secret key"}),"\n",(0,r.jsxs)(t.p,{children:["Langflow uses the ",(0,r.jsx)(t.a,{href:"https://pypi.org/project/cryptography/",children:"Fernet"})," library for encrypting sensitive data."]}),"\n",(0,r.jsxs)(t.p,{children:["If no ",(0,r.jsx)(t.code,{children:"LANGFLOW_SECRET_KEY"})," is provided, Langflow automatically generates one."]}),"\n",(0,r.jsxs)(t.p,{children:["For more information, see ",(0,r.jsx)(t.a,{href:"/configuration-authentication#langflow_secret_key",children:"Authentication"}),"."]}),"\n",(0,r.jsx)(t.h2,{id:"revoke-an-api-key",children:"Revoke an API key"}),"\n",(0,r.jsxs)(t.p,{children:["To revoke an API key, delete it from the list of keys in the ",(0,r.jsx)(t.strong,{children:"Settings"})," menu."]}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["Click your user icon, and then select ",(0,r.jsx)(t.strong,{children:"Settings"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Click ",(0,r.jsx)(t.strong,{children:"Langflow API"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Select the keys you want to delete, and then click ",(0,r.jsx)(l.A,{name:"Trash2","aria-hidden":"true"})," ",(0,r.jsx)(t.strong,{children:"Delete"}),"."]}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:"This action immediately invalidates the key and prevents it from being used again."}),"\n",(0,r.jsx)(t.h2,{id:"add-component-api-keys-to-langflow",children:"Add component API keys to Langflow"}),"\n",(0,r.jsxs)(t.p,{children:["These are credentials for external services like OpenAI. They can be added to Langflow with the ",(0,r.jsx)(t.code,{children:".env"})," file or in the Langflow UI."]}),"\n",(0,r.jsx)(t.p,{children:"Component API keys that are set in the UI override those that are set in the environment variables."}),"\n",(0,r.jsx)(t.h3,{id:"add-component-api-keys-with-the-env-file",children:"Add component API keys with the .env file"}),"\n",(0,r.jsxs)(t.p,{children:["To add component API keys to your ",(0,r.jsx)(t.code,{children:".env"})," file:"]}),"\n",(0,r.jsx)(u.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"OPENAI_API_KEY=sk-...",props:{}}]},{tokens:[{content:"ANTHROPIC_API_KEY=sk-...",props:{}}]},{tokens:[{content:"GOOGLE_API_KEY=...",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(t.h3,{id:"add-component-api-keys-with-the-langflow-ui",children:"Add component API keys with the Langflow UI"}),"\n",(0,r.jsxs)(t.p,{children:["To add component API keys as ",(0,r.jsx)(t.strong,{children:"Global variables"})," with the Langflow UI:"]}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["Click your user icon, and then select ",(0,r.jsx)(t.strong,{children:"Settings"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Click ",(0,r.jsx)(t.strong,{children:"Langflow API"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Add new API keys as ",(0,r.jsx)(t.strong,{children:"Credential"})," type variables."]}),"\n",(0,r.jsx)(t.li,{children:"Apply them to specific component fields."}),"\n"]}),"\n",(0,r.jsxs)(t.p,{children:["Component values set directly in a flow override values set in the UI ",(0,r.jsx)(t.strong,{children:"and"})," environment variables."]}),"\n",(0,r.jsxs)(t.p,{children:["For more information, see ",(0,r.jsx)(t.a,{href:"/configuration-global-variables",children:"Global variables"}),"."]})]})}function f(e={}){const{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(y,{...e})}):y(e)}function g(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},65537:(e,t,n)=>{n.d(t,{A:()=>F});var o=n(96540),r=n(18215),a=n(65627),s=n(56347),l=n(50372),i=n(30604),c=n(11861),d=n(78749);function u(e){return o.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,o.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function h(e){const{values:t,children:n}=e;return(0,o.useMemo)((()=>{const e=t??function(e){return u(e).map((e=>{let{props:{value:t,label:n,attributes:o,default:r}}=e;return{value:t,label:n,attributes:o,default:r}}))}(n);return function(e){const t=(0,c.XI)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function p(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function y(e){let{queryString:t=!1,groupId:n}=e;const r=(0,s.W6)(),a=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)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 n??null}({queryString:t,groupId:n});return[(0,i.aZ)(a),(0,o.useCallback)((e=>{if(!a)return;const t=new URLSearchParams(r.location.search);t.set(a,e),r.replace({...r.location,search:t.toString()})}),[a,r])]}function f(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,a=h(e),[s,i]=(0,o.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!p({value:t,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const o=n.find((e=>e.default))??n[0];if(!o)throw new Error("Unexpected error: 0 tabValues");return o.value}({defaultValue:t,tabValues:a}))),[c,u]=y({queryString:n,groupId:r}),[f,g]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,a]=(0,d.Dv)(n);return[r,(0,o.useCallback)((e=>{n&&a.set(e)}),[n,a])]}({groupId:r}),k=(()=>{const e=c??f;return p({value:e,tabValues:a})?e:null})();(0,l.A)((()=>{k&&i(k)}),[k]);return{selectedValue:s,selectValue:(0,o.useCallback)((e=>{if(!p({value:e,tabValues:a}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),g(e)}),[u,g,a]),tabValues:a}}var g=n(9136);const k={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var m=n(74848);function v(e){let{className:t,block:n,selectedValue:o,selectValue:s,tabValues:l}=e;const i=[],{blockElementScrollPositionUntilNextRender:c}=(0,a.a_)(),d=e=>{const t=e.currentTarget,n=i.indexOf(t),r=l[n].value;r!==o&&(c(t),s(r))},u=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const n=i.indexOf(e.currentTarget)+1;t=i[n]??i[0];break}case"ArrowLeft":{const n=i.indexOf(e.currentTarget)-1;t=i[n]??i[i.length-1];break}}t?.focus()};return(0,m.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.A)("tabs",{"tabs--block":n},t),children:l.map((e=>{let{value:t,label:n,attributes:a}=e;return(0,m.jsx)("li",{role:"tab",tabIndex:o===t?0:-1,"aria-selected":o===t,ref:e=>{i.push(e)},onKeyDown:u,onClick:d,...a,className:(0,r.A)("tabs__item",k.tabItem,a?.className,{"tabs__item--active":o===t}),children:n??t},t)}))})}function A(e){let{lazy:t,children:n,selectedValue:a}=e;const s=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=s.find((e=>e.props.value===a));return e?(0,o.cloneElement)(e,{className:(0,r.A)("margin-top--md",e.props.className)}):null}return(0,m.jsx)("div",{className:"margin-top--md",children:s.map(((e,t)=>(0,o.cloneElement)(e,{key:t,hidden:e.props.value!==a})))})}function w(e){const t=f(e);return(0,m.jsxs)("div",{className:(0,r.A)("tabs-container",k.tabList),children:[(0,m.jsx)(v,{...t,...e}),(0,m.jsx)(A,{...t,...e})]})}function F(e){const t=(0,g.A)();return(0,m.jsx)(w,{...e,children:u(e.children)},String(t))}},79329:(e,t,n)=>{n.d(t,{A:()=>s});n(96540);var o=n(18215);const r={tabItem:"tabItem_Ymn6"};var a=n(74848);function s(e){let{children:t,hidden:n,className:s}=e;return(0,a.jsx)("div",{role:"tabpanel",className:(0,o.A)(r.tabItem,s),hidden:n,children:t})}},84443:(e,t,n)=>{n.d(t,{A:()=>a});n(96540);var o=n(64058),r=n(74848);function a(e){let{name:t,...n}=e;const a=o[t];return a?(0,r.jsx)(a,{...n}):null}}}]);
\ No newline at end of file
diff --git a/assets/js/e6c6a4d2.2132cab0.js b/assets/js/e6c6a4d2.996db822.js
similarity index 55%
rename from assets/js/e6c6a4d2.2132cab0.js
rename to assets/js/e6c6a4d2.996db822.js
index 5f1a035f27..db9e1172d2 100644
--- a/assets/js/e6c6a4d2.2132cab0.js
+++ b/assets/js/e6c6a4d2.996db822.js
@@ -1 +1 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[8504],{28453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>l});var s=n(96540);const i={},o=s.createContext(i);function a(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(o.Provider,{value:t},e.children)}},94910:(e,t,n)=>{n.r(t),n.d(t,{contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>r});const s=JSON.parse('{"type":"api","id":"experimental-run-flow","title":"Experimental Run Flow","description":"","slug":"/experimental-run-flow","frontMatter":{},"api":{"tags":["Base"],"description":"Executes a specified flow by ID with optional input values, output selection, tweaks, and streaming capability.\\n\\nThis endpoint supports running flows with caching to enhance performance and efficiency.\\n\\n### Parameters:\\n- `flow_id` (str): The unique identifier of the flow to be executed.\\n- `inputs` (List[InputValueRequest], optional): A list of inputs specifying the input values and components\\n for the flow. Each input can target specific components and provide custom values.\\n- `outputs` (List[str], optional): A list of output names to retrieve from the executed flow.\\n If not provided, all outputs are returned.\\n- `tweaks` (Optional[Tweaks], optional): A dictionary of tweaks to customize the flow execution.\\n The tweaks can be used to modify the flow\'s parameters and components.\\n Tweaks can be overridden by the input values.\\n- `stream` (bool, optional): Specifies whether the results should be streamed. Defaults to False.\\n- `session_id` (Union[None, str], optional): An optional session ID to utilize existing session data for the flow\\n execution.\\n- `api_key_user` (User): The user associated with the current API key. Automatically resolved from the API key.\\n\\n### Returns:\\nA `RunResponse` object containing the selected outputs (or all if not specified) of the executed flow\\nand the session ID.\\nThe structure of the response accommodates multiple inputs, providing a nested list of outputs for each input.\\n\\n### Raises:\\nHTTPException: Indicates issues with finding the specified flow, invalid input formats, or internal errors during\\nflow execution.\\n\\n### Example usage:\\n```json\\nPOST /run/flow_id\\nx-api-key: YOUR_API_KEY\\nPayload:\\n{\\n \\"inputs\\": [\\n {\\"components\\": [\\"component1\\"], \\"input_value\\": \\"value1\\"},\\n {\\"components\\": [\\"component3\\"], \\"input_value\\": \\"value2\\"}\\n ],\\n \\"outputs\\": [\\"Component Name\\", \\"component_id\\"],\\n \\"tweaks\\": {\\"parameter_name\\": \\"value\\", \\"Component Name\\": {\\"parameter_name\\": \\"value\\"}, \\"component_id\\": {\\"parameter_name\\": \\"value\\"}}\\n \\"stream\\": false\\n}\\n```\\n\\nThis endpoint facilitates complex flow executions with customized inputs, outputs, and configurations,\\ncatering to diverse application requirements.","operationId":"experimental_run_flow_api_v1_run_advanced__flow_id__post","security":[{"API key query":[]},{"API key header":[]}],"parameters":[{"name":"flow_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Flow Id"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"inputs":{"anyOf":[{"items":{"properties":{"components":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Components","default":[]},"input_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Value"},"session":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session"},"type":{"anyOf":[{"type":"string","enum":["chat","text","any"]},{"type":"null"}],"title":"Type","description":"Defines on which components the input value should be applied. \'any\' applies to all input components.","default":"any"}},"additionalProperties":false,"type":"object","title":"InputValueRequest","examples":[{"components":["components_id","Component Name"],"input_value":"input_value","session":"session_id"},{"components":["Component Name"],"input_value":"input_value"},{"input_value":"input_value"},{"components":["Component Name"],"input_value":"input_value","session":"session_id"},{"input_value":"input_value","session":"session_id"},{"input_value":"input_value","type":"chat"},{"input_value":"{\\"key\\": \\"value\\"}","type":"json"}]},"type":"array"},{"type":"null"}],"title":"Inputs"},"outputs":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Outputs"},"tweaks":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"object"}]},"type":"object","title":"Tweaks","description":"A dictionary of tweaks to adjust the flow\'s execution. Allows customizing flow behavior dynamically. All tweaks are overridden by the input values.","examples":[{"Component Name":{"parameter_name":"value"},"component_id":{"parameter_name":"value"},"parameter_name":"value"}]},{"type":"null"}]},"stream":{"type":"boolean","title":"Stream","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}},"type":"object","title":"Body_experimental_run_flow_api_v1_run_advanced__flow_id__post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"outputs":{"anyOf":[{"items":{"properties":{"inputs":{"type":"object","title":"Inputs"},"outputs":{"items":{"anyOf":[{"properties":{"results":{"anyOf":[{},{"type":"null"}],"title":"Results"},"artifacts":{"anyOf":[{},{"type":"null"}],"title":"Artifacts"},"outputs":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Outputs"},"logs":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Logs"},"messages":{"anyOf":[{"items":{"properties":{"message":{"anyOf":[{"type":"string"},{"items":{"anyOf":[{"type":"string"},{"type":"object"}]},"type":"array"}],"title":"Message"},"sender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sender","default":"Machine"},"sender_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sender Name","default":"AI"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"stream_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stream Url"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id"},"files":{"items":{"properties":{"path":{"type":"string","title":"Path"},"name":{"type":"string","title":"Name"},"type":{"type":"string","title":"Type"}},"type":"object","required":["path","name","type"],"title":"File","description":"File schema."},"type":"array","title":"Files","default":[]},"type":{"type":"string","title":"Type"}},"type":"object","required":["message","type"],"title":"ChatOutputResponse","description":"Chat output response schema."},"type":"array"},{"type":"null"}],"title":"Messages"},"timedelta":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Timedelta"},"duration":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Duration"},"component_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Display Name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id"},"used_frozen_result":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Used Frozen Result","default":false}},"type":"object","title":"ResultData"},{"type":"null"}]},"type":"array","title":"Outputs"}},"type":"object","title":"RunOutputs"},"type":"array"},{"type":"null"}],"title":"Outputs","default":[]},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}},"type":"object","title":"RunResponse","description":"Run response schema."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}},"method":"post","path":"/api/v1/run/advanced/{flow_id}","securitySchemes":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"api/v1/login"}}},"API key query":{"type":"apiKey","in":"query","name":"x-api-key"},"API key header":{"type":"apiKey","in":"header","name":"x-api-key"}},"jsonRequestBodyExample":{"stream":false},"info":{"title":"Langflow","version":"1.4.2"},"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 \\"reprehenderitd6\\": \\"\\"\\n },\\n \\"stream\\": false,\\n \\"session_id\\": \\"\\"\\n}","options":{"raw":{"language":"json"}}},"auth":{"type":"apikey","apikey":[{"type":"any","value":"x-api-key","key":"key"},{"type":"any","value":"{{apiKey}}","key":"value"},{"type":"any","value":"query","key":"in"}]}}},"source":"@site/openapi.json","sourceDirName":".","permalink":"/api/experimental-run-flow","previous":{"title":"Webhook Run Flow","permalink":"/api/webhook-run-flow"},"next":{"title":"Process","permalink":"/api/process"}}');var i=n(74848),o=n(28453);const a={},l="Experimental Run Flow",r=[{value:"Parameters:",id:"parameters",level:3},{value:"Returns:",id:"returns",level:3},{value:"Raises:",id:"raises",level:3},{value:"Example usage:",id:"example-usage",level:3}];function p(e){const t={code:"code",h1:"h1",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.header,{children:(0,i.jsx)(t.h1,{id:"experimental-run-flow",children:"Experimental Run Flow"})}),"\n",(0,i.jsx)(t.p,{children:"Executes a specified flow by ID with optional input values, output selection, tweaks, and streaming capability."}),"\n",(0,i.jsx)(t.p,{children:"This endpoint supports running flows with caching to enhance performance and efficiency."}),"\n",(0,i.jsx)(t.h3,{id:"parameters",children:"Parameters:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"flow_id"})," (str): The unique identifier of the flow to be executed."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"inputs"})," (List[InputValueRequest], optional): A list of inputs specifying the input values and components\nfor the flow. Each input can target specific components and provide custom values."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"outputs"})," (List[str], optional): A list of output names to retrieve from the executed flow.\nIf not provided, all outputs are returned."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"tweaks"})," (Optional[Tweaks], optional): A dictionary of tweaks to customize the flow execution.\nThe tweaks can be used to modify the flow's parameters and components.\nTweaks can be overridden by the input values."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"stream"})," (bool, optional): Specifies whether the results should be streamed. Defaults to False."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"session_id"})," (Union[None, str], optional): An optional session ID to utilize existing session data for the flow\nexecution."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"api_key_user"})," (User): The user associated with the current API key. Automatically resolved from the API key."]}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"returns",children:"Returns:"}),"\n",(0,i.jsxs)(t.p,{children:["A ",(0,i.jsx)(t.code,{children:"RunResponse"})," object containing the selected outputs (or all if not specified) of the executed flow\nand the session ID.\nThe structure of the response accommodates multiple inputs, providing a nested list of outputs for each input."]}),"\n",(0,i.jsx)(t.h3,{id:"raises",children:"Raises:"}),"\n",(0,i.jsx)(t.p,{children:"HTTPException: Indicates issues with finding the specified flow, invalid input formats, or internal errors during\nflow execution."}),"\n",(0,i.jsx)(t.h3,{id:"example-usage",children:"Example usage:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-json",children:'POST /run/flow_id\nx-api-key: YOUR_API_KEY\nPayload:\n{\n "inputs": [\n {"components": ["component1"], "input_value": "value1"},\n {"components": ["component3"], "input_value": "value2"}\n ],\n "outputs": ["Component Name", "component_id"],\n "tweaks": {"parameter_name": "value", "Component Name": {"parameter_name": "value"}, "component_id": {"parameter_name": "value"}}\n "stream": false\n}\n'})}),"\n",(0,i.jsx)(t.p,{children:"This endpoint facilitates complex flow executions with customized inputs, outputs, and configurations,\ncatering to diverse application requirements."}),"\n",(0,i.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsx)("th",{style:{textAlign:"left"},children:"Path Parameters"})})}),(0,i.jsx)("tbody",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"flow_id"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" uuid"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-required)"},children:" REQUIRED"})]})})})]}),"\n",(0,i.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("th",{style:{textAlign:"left"},children:[(0,i.jsx)("span",{children:"Request Body "}),(0,i.jsx)("div",{})]})})}),(0,i.jsxs)("tbody",{children:[(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"inputs"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Inputs"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"outputs"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Outputs"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"tweaks"}),(0,i.jsx)("span",{style:{opacity:"0.6"}})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"stream"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Stream"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"session_id"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Session Id"})]})})]})]}),"\n",(0,i.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsx)("th",{style:{textAlign:"left"},children:"Responses"})})}),(0,i.jsxs)("tbody",{children:[(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsxs)("div",{style:{display:"flex"},children:[(0,i.jsx)("div",{style:{marginRight:"var(--ifm-table-cell-padding)"},children:(0,i.jsx)("code",{children:"200"})}),(0,i.jsx)("div",{children:(0,i.jsx)(t.p,{children:"Successful Response"})})]}),(0,i.jsx)("div",{children:(0,i.jsxs)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("th",{style:{textAlign:"left"},children:[(0,i.jsx)("span",{children:"Schema "}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,i.jsx)("div",{})]})})}),(0,i.jsxs)("tbody",{children:[(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"outputs"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Outputs"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"session_id"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Session Id"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"})]})})]})]})})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsxs)("div",{style:{display:"flex"},children:[(0,i.jsx)("div",{style:{marginRight:"var(--ifm-table-cell-padding)"},children:(0,i.jsx)("code",{children:"422"})}),(0,i.jsx)("div",{children:(0,i.jsx)(t.p,{children:"Validation Error"})})]}),(0,i.jsx)("div",{children:(0,i.jsxs)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("th",{style:{textAlign:"left"},children:[(0,i.jsx)("span",{children:"Schema "}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,i.jsx)("div",{})]})})}),(0,i.jsx)("tbody",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"detail"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" object[]"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,i.jsx)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:(0,i.jsxs)("tbody",{children:[(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"loc"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" undefined[]"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"msg"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Message"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"type"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Error Type"})]})})]})})]})})})]})})]})})]})]})]})}function d(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}}}]);
\ No newline at end of file
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[8504],{28453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>l});var s=n(96540);const i={},o=s.createContext(i);function a(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(o.Provider,{value:t},e.children)}},94910:(e,t,n)=>{n.r(t),n.d(t,{contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>r});const s=JSON.parse('{"type":"api","id":"experimental-run-flow","title":"Experimental Run Flow","description":"","slug":"/experimental-run-flow","frontMatter":{},"api":{"tags":["Base"],"description":"Executes a specified flow by ID with optional input values, output selection, tweaks, and streaming capability.\\n\\nThis endpoint supports running flows with caching to enhance performance and efficiency.\\n\\n### Parameters:\\n- `flow_id` (str): The unique identifier of the flow to be executed.\\n- `inputs` (List[InputValueRequest], optional): A list of inputs specifying the input values and components\\n for the flow. Each input can target specific components and provide custom values.\\n- `outputs` (List[str], optional): A list of output names to retrieve from the executed flow.\\n If not provided, all outputs are returned.\\n- `tweaks` (Optional[Tweaks], optional): A dictionary of tweaks to customize the flow execution.\\n The tweaks can be used to modify the flow\'s parameters and components.\\n Tweaks can be overridden by the input values.\\n- `stream` (bool, optional): Specifies whether the results should be streamed. Defaults to False.\\n- `session_id` (Union[None, str], optional): An optional session ID to utilize existing session data for the flow\\n execution.\\n- `api_key_user` (User): The user associated with the current API key. Automatically resolved from the API key.\\n\\n### Returns:\\nA `RunResponse` object containing the selected outputs (or all if not specified) of the executed flow\\nand the session ID.\\nThe structure of the response accommodates multiple inputs, providing a nested list of outputs for each input.\\n\\n### Raises:\\nHTTPException: Indicates issues with finding the specified flow, invalid input formats, or internal errors during\\nflow execution.\\n\\n### Example usage:\\n```json\\nPOST /run/flow_id\\nx-api-key: YOUR_API_KEY\\nPayload:\\n{\\n \\"inputs\\": [\\n {\\"components\\": [\\"component1\\"], \\"input_value\\": \\"value1\\"},\\n {\\"components\\": [\\"component3\\"], \\"input_value\\": \\"value2\\"}\\n ],\\n \\"outputs\\": [\\"Component Name\\", \\"component_id\\"],\\n \\"tweaks\\": {\\"parameter_name\\": \\"value\\", \\"Component Name\\": {\\"parameter_name\\": \\"value\\"}, \\"component_id\\": {\\"parameter_name\\": \\"value\\"}}\\n \\"stream\\": false\\n}\\n```\\n\\nThis endpoint facilitates complex flow executions with customized inputs, outputs, and configurations,\\ncatering to diverse application requirements.","operationId":"experimental_run_flow_api_v1_run_advanced__flow_id__post","security":[{"API key query":[]},{"API key header":[]}],"parameters":[{"name":"flow_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Flow Id"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"inputs":{"anyOf":[{"items":{"properties":{"components":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Components","default":[]},"input_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Value"},"session":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session"},"type":{"anyOf":[{"type":"string","enum":["chat","text","any"]},{"type":"null"}],"title":"Type","description":"Defines on which components the input value should be applied. \'any\' applies to all input components.","default":"any"}},"additionalProperties":false,"type":"object","title":"InputValueRequest","examples":[{"components":["components_id","Component Name"],"input_value":"input_value","session":"session_id"},{"components":["Component Name"],"input_value":"input_value"},{"input_value":"input_value"},{"components":["Component Name"],"input_value":"input_value","session":"session_id"},{"input_value":"input_value","session":"session_id"},{"input_value":"input_value","type":"chat"},{"input_value":"{\\"key\\": \\"value\\"}","type":"json"}]},"type":"array"},{"type":"null"}],"title":"Inputs"},"outputs":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Outputs"},"tweaks":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"object"}]},"type":"object","title":"Tweaks","description":"A dictionary of tweaks to adjust the flow\'s execution. Allows customizing flow behavior dynamically. All tweaks are overridden by the input values.","examples":[{"Component Name":{"parameter_name":"value"},"component_id":{"parameter_name":"value"},"parameter_name":"value"}]},{"type":"null"}]},"stream":{"type":"boolean","title":"Stream","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}},"type":"object","title":"Body_experimental_run_flow_api_v1_run_advanced__flow_id__post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"outputs":{"anyOf":[{"items":{"properties":{"inputs":{"type":"object","title":"Inputs"},"outputs":{"items":{"anyOf":[{"properties":{"results":{"anyOf":[{},{"type":"null"}],"title":"Results"},"artifacts":{"anyOf":[{},{"type":"null"}],"title":"Artifacts"},"outputs":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Outputs"},"logs":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Logs"},"messages":{"anyOf":[{"items":{"properties":{"message":{"anyOf":[{"type":"string"},{"items":{"anyOf":[{"type":"string"},{"type":"object"}]},"type":"array"}],"title":"Message"},"sender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sender","default":"Machine"},"sender_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sender Name","default":"AI"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"stream_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stream Url"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id"},"files":{"items":{"properties":{"path":{"type":"string","title":"Path"},"name":{"type":"string","title":"Name"},"type":{"type":"string","title":"Type"}},"type":"object","required":["path","name","type"],"title":"File","description":"File schema."},"type":"array","title":"Files","default":[]},"type":{"type":"string","title":"Type"}},"type":"object","required":["message","type"],"title":"ChatOutputResponse","description":"Chat output response schema."},"type":"array"},{"type":"null"}],"title":"Messages"},"timedelta":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Timedelta"},"duration":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Duration"},"component_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Display Name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id"},"used_frozen_result":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Used Frozen Result","default":false}},"type":"object","title":"ResultData"},{"type":"null"}]},"type":"array","title":"Outputs"}},"type":"object","title":"RunOutputs"},"type":"array"},{"type":"null"}],"title":"Outputs","default":[]},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}},"type":"object","title":"RunResponse","description":"Run response schema."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}},"method":"post","path":"/api/v1/run/advanced/{flow_id}","securitySchemes":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"api/v1/login"}}},"API key query":{"type":"apiKey","in":"query","name":"x-api-key"},"API key header":{"type":"apiKey","in":"header","name":"x-api-key"}},"jsonRequestBodyExample":{"stream":false},"info":{"title":"Langflow","version":"1.4.2"},"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 \\"eiusmod_ea\\": \\"\\"\\n },\\n \\"stream\\": false,\\n \\"session_id\\": \\"\\"\\n}","options":{"raw":{"language":"json"}}},"auth":{"type":"apikey","apikey":[{"type":"any","value":"x-api-key","key":"key"},{"type":"any","value":"{{apiKey}}","key":"value"},{"type":"any","value":"query","key":"in"}]}}},"source":"@site/openapi.json","sourceDirName":".","permalink":"/api/experimental-run-flow","previous":{"title":"Webhook Run Flow","permalink":"/api/webhook-run-flow"},"next":{"title":"Process","permalink":"/api/process"}}');var i=n(74848),o=n(28453);const a={},l="Experimental Run Flow",r=[{value:"Parameters:",id:"parameters",level:3},{value:"Returns:",id:"returns",level:3},{value:"Raises:",id:"raises",level:3},{value:"Example usage:",id:"example-usage",level:3}];function p(e){const t={code:"code",h1:"h1",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.header,{children:(0,i.jsx)(t.h1,{id:"experimental-run-flow",children:"Experimental Run Flow"})}),"\n",(0,i.jsx)(t.p,{children:"Executes a specified flow by ID with optional input values, output selection, tweaks, and streaming capability."}),"\n",(0,i.jsx)(t.p,{children:"This endpoint supports running flows with caching to enhance performance and efficiency."}),"\n",(0,i.jsx)(t.h3,{id:"parameters",children:"Parameters:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"flow_id"})," (str): The unique identifier of the flow to be executed."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"inputs"})," (List[InputValueRequest], optional): A list of inputs specifying the input values and components\nfor the flow. Each input can target specific components and provide custom values."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"outputs"})," (List[str], optional): A list of output names to retrieve from the executed flow.\nIf not provided, all outputs are returned."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"tweaks"})," (Optional[Tweaks], optional): A dictionary of tweaks to customize the flow execution.\nThe tweaks can be used to modify the flow's parameters and components.\nTweaks can be overridden by the input values."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"stream"})," (bool, optional): Specifies whether the results should be streamed. Defaults to False."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"session_id"})," (Union[None, str], optional): An optional session ID to utilize existing session data for the flow\nexecution."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"api_key_user"})," (User): The user associated with the current API key. Automatically resolved from the API key."]}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"returns",children:"Returns:"}),"\n",(0,i.jsxs)(t.p,{children:["A ",(0,i.jsx)(t.code,{children:"RunResponse"})," object containing the selected outputs (or all if not specified) of the executed flow\nand the session ID.\nThe structure of the response accommodates multiple inputs, providing a nested list of outputs for each input."]}),"\n",(0,i.jsx)(t.h3,{id:"raises",children:"Raises:"}),"\n",(0,i.jsx)(t.p,{children:"HTTPException: Indicates issues with finding the specified flow, invalid input formats, or internal errors during\nflow execution."}),"\n",(0,i.jsx)(t.h3,{id:"example-usage",children:"Example usage:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-json",children:'POST /run/flow_id\nx-api-key: YOUR_API_KEY\nPayload:\n{\n "inputs": [\n {"components": ["component1"], "input_value": "value1"},\n {"components": ["component3"], "input_value": "value2"}\n ],\n "outputs": ["Component Name", "component_id"],\n "tweaks": {"parameter_name": "value", "Component Name": {"parameter_name": "value"}, "component_id": {"parameter_name": "value"}}\n "stream": false\n}\n'})}),"\n",(0,i.jsx)(t.p,{children:"This endpoint facilitates complex flow executions with customized inputs, outputs, and configurations,\ncatering to diverse application requirements."}),"\n",(0,i.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsx)("th",{style:{textAlign:"left"},children:"Path Parameters"})})}),(0,i.jsx)("tbody",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"flow_id"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" uuid"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-required)"},children:" REQUIRED"})]})})})]}),"\n",(0,i.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("th",{style:{textAlign:"left"},children:[(0,i.jsx)("span",{children:"Request Body "}),(0,i.jsx)("div",{})]})})}),(0,i.jsxs)("tbody",{children:[(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"inputs"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Inputs"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"outputs"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Outputs"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"tweaks"}),(0,i.jsx)("span",{style:{opacity:"0.6"}})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"stream"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Stream"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"session_id"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Session Id"})]})})]})]}),"\n",(0,i.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsx)("th",{style:{textAlign:"left"},children:"Responses"})})}),(0,i.jsxs)("tbody",{children:[(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsxs)("div",{style:{display:"flex"},children:[(0,i.jsx)("div",{style:{marginRight:"var(--ifm-table-cell-padding)"},children:(0,i.jsx)("code",{children:"200"})}),(0,i.jsx)("div",{children:(0,i.jsx)(t.p,{children:"Successful Response"})})]}),(0,i.jsx)("div",{children:(0,i.jsxs)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("th",{style:{textAlign:"left"},children:[(0,i.jsx)("span",{children:"Schema "}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,i.jsx)("div",{})]})})}),(0,i.jsxs)("tbody",{children:[(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"outputs"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Outputs"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"session_id"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Session Id"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"})]})})]})]})})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsxs)("div",{style:{display:"flex"},children:[(0,i.jsx)("div",{style:{marginRight:"var(--ifm-table-cell-padding)"},children:(0,i.jsx)("code",{children:"422"})}),(0,i.jsx)("div",{children:(0,i.jsx)(t.p,{children:"Validation Error"})})]}),(0,i.jsx)("div",{children:(0,i.jsxs)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("th",{style:{textAlign:"left"},children:[(0,i.jsx)("span",{children:"Schema "}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,i.jsx)("div",{})]})})}),(0,i.jsx)("tbody",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"detail"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" object[]"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,i.jsx)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:(0,i.jsxs)("tbody",{children:[(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"loc"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" undefined[]"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"msg"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Message"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"type"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Error Type"})]})})]})})]})})})]})})]})})]})]})]})}function d(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}}}]);
\ No newline at end of file
diff --git a/assets/js/eca2a4e0.2e18e5ef.js b/assets/js/eca2a4e0.6f07a826.js
similarity index 99%
rename from assets/js/eca2a4e0.2e18e5ef.js
rename to assets/js/eca2a4e0.6f07a826.js
index 48d3d09ed9..1f7829498a 100644
--- a/assets/js/eca2a4e0.2e18e5ef.js
+++ b/assets/js/eca2a4e0.6f07a826.js
@@ -1 +1 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[266],{65537:(e,o,n)=>{n.d(o,{A:()=>D});var t=n(96540),s=n(18215),r=n(65627),c=n(56347),l=n(50372),i=n(30604),a=n(11861),d=n(78749);function p(e){return t.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,t.isValidElement)(e)&&function(e){const{props:o}=e;return!!o&&"object"==typeof o&&"value"in o}(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 h(e){const{values:o,children:n}=e;return(0,t.useMemo)((()=>{const e=o??function(e){return p(e).map((e=>{let{props:{value:o,label:n,attributes:t,default:s}}=e;return{value:o,label:n,attributes:t,default:s}}))}(n);return function(e){const o=(0,a.XI)(e,((e,o)=>e.value===o.value));if(o.length>0)throw new Error(`Docusaurus error: Duplicate values "${o.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[o,n])}function u(e){let{value:o,tabValues:n}=e;return n.some((e=>e.value===o))}function f(e){let{queryString:o=!1,groupId:n}=e;const s=(0,c.W6)(),r=function(e){let{queryString:o=!1,groupId:n}=e;if("string"==typeof o)return o;if(!1===o)return null;if(!0===o&&!n)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 n??null}({queryString:o,groupId:n});return[(0,i.aZ)(r),(0,t.useCallback)((e=>{if(!r)return;const o=new URLSearchParams(s.location.search);o.set(r,e),s.replace({...s.location,search:o.toString()})}),[r,s])]}function x(e){const{defaultValue:o,queryString:n=!1,groupId:s}=e,r=h(e),[c,i]=(0,t.useState)((()=>function(e){let{defaultValue:o,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(o){if(!u({value:o,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${o}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return o}const t=n.find((e=>e.default))??n[0];if(!t)throw new Error("Unexpected error: 0 tabValues");return t.value}({defaultValue:o,tabValues:r}))),[a,p]=f({queryString:n,groupId:s}),[x,g]=function(e){let{groupId:o}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(o),[s,r]=(0,d.Dv)(n);return[s,(0,t.useCallback)((e=>{n&&r.set(e)}),[n,r])]}({groupId:s}),y=(()=>{const e=a??x;return u({value:e,tabValues:r})?e:null})();(0,l.A)((()=>{y&&i(y)}),[y]);return{selectedValue:c,selectValue:(0,t.useCallback)((e=>{if(!u({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);i(e),p(e),g(e)}),[p,g,r]),tabValues:r}}var g=n(9136);const y={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var j=n(74848);function m(e){let{className:o,block:n,selectedValue:t,selectValue:c,tabValues:l}=e;const i=[],{blockElementScrollPositionUntilNextRender:a}=(0,r.a_)(),d=e=>{const o=e.currentTarget,n=i.indexOf(o),s=l[n].value;s!==t&&(a(o),c(s))},p=e=>{let o=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const n=i.indexOf(e.currentTarget)+1;o=i[n]??i[0];break}case"ArrowLeft":{const n=i.indexOf(e.currentTarget)-1;o=i[n]??i[i.length-1];break}}o?.focus()};return(0,j.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":n},o),children:l.map((e=>{let{value:o,label:n,attributes:r}=e;return(0,j.jsx)("li",{role:"tab",tabIndex:t===o?0:-1,"aria-selected":t===o,ref:e=>{i.push(e)},onKeyDown:p,onClick:d,...r,className:(0,s.A)("tabs__item",y.tabItem,r?.className,{"tabs__item--active":t===o}),children:n??o},o)}))})}function C(e){let{lazy:o,children:n,selectedValue:r}=e;const c=(Array.isArray(n)?n:[n]).filter(Boolean);if(o){const e=c.find((e=>e.props.value===r));return e?(0,t.cloneElement)(e,{className:(0,s.A)("margin-top--md",e.props.className)}):null}return(0,j.jsx)("div",{className:"margin-top--md",children:c.map(((e,o)=>(0,t.cloneElement)(e,{key:o,hidden:e.props.value!==r})))})}function v(e){const o=x(e);return(0,j.jsxs)("div",{className:(0,s.A)("tabs-container",y.tabList),children:[(0,j.jsx)(m,{...o,...e}),(0,j.jsx)(C,{...o,...e})]})}function D(e){const o=(0,g.A)();return(0,j.jsx)(v,{...e,children:p(e.children)},String(o))}},66379:(e,o,n)=>{n.d(o,{A:()=>t});const t=n.p+"assets/images/mcp-server-actions-ad851786a8969c1d84b4601df1bcb6db.png"},67577:(e,o,n)=>{n.d(o,{A:()=>t});const t=n.p+"assets/images/mcp-server-573510dfdf6bf74006f9f0d9280b3f11.png"},72520:(e,o,n)=>{n.r(o),n.d(o,{CH:()=>u,assets:()=>h,chCodeConfig:()=>f,contentTitle:()=>p,default:()=>y,frontMatter:()=>d,metadata:()=>t,toc:()=>x});const t=JSON.parse('{"id":"Concepts/mcp-server","title":"Model Context Protocol (MCP) server","description":"Langflow integrates with the Model Context Protocol (MCP) as both an MCP server and an MCP client.","source":"@site/docs/Concepts/mcp-server.md","sourceDirName":"Concepts","slug":"/mcp-server","permalink":"/mcp-server","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Model Context Protocol (MCP) server","slug":"/mcp-server"},"sidebar":"docs","previous":{"title":"Embedded chat widget","permalink":"/embedded-chat-widget"},"next":{"title":"Manage files","permalink":"/concepts-file-management"}}');var s=n(74848),r=n(28453),c=n(24754),l=n(65537),i=n(79329),a=n(84443);const d={title:"Model Context Protocol (MCP) server",slug:"/mcp-server"},p=void 0,h={},u={annotations:c.hk,Code:c.Cy},f={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},x=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Select and configure flows to expose as MCP tools",id:"select-flows-to-serve",level:2},{value:"Connect clients to Langflow's MCP server",id:"connect-clients-to-use-the-servers-actions",level:2},{value:"MCP server authentication and environment variables",id:"authentication",level:3},{value:"Name and describe your flows for agentic use",id:"name-and-describe-your-flows",level:2},{value:"Use MCP Inspector to test and debug flows",id:"test-and-debug-flows",level:2},{value:"Deploy your MCP server externally",id:"deploy-your-server-externally",level:2},{value:"Troubleshooting MCP server",id:"troubleshooting-mcp-server",level:2}];function g(e){const o={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return u||j("CH",!1),u.Code||j("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)(o.p,{children:["Langflow integrates with the ",(0,s.jsx)(o.a,{href:"https://modelcontextprotocol.io/introduction",children:"Model Context Protocol (MCP)"})," as both an MCP server and an MCP client.\nThis page describes how to use Langflow as an ",(0,s.jsx)(o.em,{children:"MCP server"}),".\nFor information about using Langflow as an ",(0,s.jsx)(o.em,{children:"MCP client"}),", see the ",(0,s.jsx)(o.a,{href:"/components-tools#mcp-connection",children:"MCP connection component"}),"."]}),"\n",(0,s.jsxs)(o.p,{children:["As an MCP server, Langflow exposes your flows as ",(0,s.jsx)(o.a,{href:"https://modelcontextprotocol.io/docs/concepts/tools",children:"tools"})," that ",(0,s.jsx)(o.a,{href:"https://modelcontextprotocol.io/clients",children:"MCP clients"})," can use use to take actions."]}),"\n",(0,s.jsx)(o.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,s.jsxs)(o.ul,{children:["\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsx)(o.p,{children:"A Langflow project with at least one flow created."}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Any LTS version of ",(0,s.jsx)(o.a,{href:"https://docs.npmjs.com/downloading-and-installing-node-js-and-npm",children:"Node.js"})," installed on your computer to use MCP Inspector to ",(0,s.jsx)(o.a,{href:"#test-and-debug-flows",children:"test and debug flows"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(o.h2,{id:"select-flows-to-serve",children:"Select and configure flows to expose as MCP tools"}),"\n",(0,s.jsxs)(o.p,{children:["Langflow runs a separate MCP server for every ",(0,s.jsx)(o.a,{href:"/concepts-overview#projects",children:"project"}),".\nThe MCP server for each project exposes that project's flows as tools."]}),"\n",(0,s.jsx)(o.p,{children:"All of the flows in a project are exposed by default.\nTo expose only specific flows and optionally rename them for agentic use, follow these steps:"}),"\n",(0,s.jsxs)(o.ol,{children:["\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["From the Langflow dashboard, select the project that contains the flows you want to serve as tools, and then click the ",(0,s.jsx)(o.strong,{children:"MCP Server"})," tab.\nAlternatively, you can quickly access the ",(0,s.jsx)(o.strong,{children:"MCP Server"})," tab from within any flow by selecting ",(0,s.jsx)(o.strong,{children:"Publish > MCP Server"}),"."]}),"\n",(0,s.jsxs)(o.p,{children:["The ",(0,s.jsx)(o.strong,{children:"MCP Server"})," tab displays a code template that you can use to connect MCP clients to the the project's MCP server."]}),"\n",(0,s.jsxs)(o.p,{children:["The ",(0,s.jsx)(o.strong,{children:"Flows/Actions"})," section lists the flows that are currently being served as tools."]}),"\n",(0,s.jsx)(o.p,{children:(0,s.jsx)(o.img,{alt:"MCP server projects page",src:n(67577).A+"",width:"4000",height:"2192"})}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Click ",(0,s.jsx)(a.A,{name:"Settings2","aria-hidden":"true"})," ",(0,s.jsx)(o.strong,{children:"Edit Actions"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["In the ",(0,s.jsx)(o.strong,{children:"MCP Server Actions"})," window, select the flows that you want exposed as tools."]}),"\n",(0,s.jsx)(o.p,{children:(0,s.jsx)(o.img,{alt:"MCP server actions",src:n(66379).A+"",width:"4000",height:"2044"})}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Optional: Edit the ",(0,s.jsx)(o.strong,{children:"Flow Name"})," and ",(0,s.jsx)(o.strong,{children:"Flow Description"}),"."]}),"\n",(0,s.jsxs)(o.ul,{children:["\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:[(0,s.jsx)(o.strong,{children:"Flow Name"}),": Enter a name thats makes it clear what the flow does."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:[(0,s.jsx)(o.strong,{children:"Flow Description"}),": Enter a description that accurately describes the specific action(s) the flow performs."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(o.admonition,{type:"important",children:(0,s.jsxs)(o.p,{children:["MCP clients use the ",(0,s.jsx)(o.strong,{children:"Flow Name"})," and ",(0,s.jsx)(o.strong,{children:"Flow Description"})," to determine which action to use.\nFor more information about naming and describing your flows, see ",(0,s.jsx)(o.a,{href:"#name-and-describe-your-flows",children:"Name and describe your flows for agentic use"}),"."]})}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Close the ",(0,s.jsx)(o.strong,{children:"MCP Server Actions"})," window to save your changes."]}),"\n"]}),"\n"]}),"\n","\n",(0,s.jsx)(o.h2,{id:"connect-clients-to-use-the-servers-actions",children:"Connect clients to Langflow's MCP server"}),"\n",(0,s.jsxs)(o.p,{children:["The following procedure describes how to connect ",(0,s.jsx)(o.a,{href:"https://www.cursor.com/",children:"Cursor"})," to your Langflow project's MCP server to consume your flows as tools.\nHowever, you can connect any ",(0,s.jsx)(o.a,{href:"https://modelcontextprotocol.io/clients",children:"MCP-compatible client"})," following similar steps."]}),"\n",(0,s.jsxs)(o.ol,{children:["\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Install ",(0,s.jsx)(o.a,{href:"https://docs.cursor.com/get-started/installation",children:"Cursor"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["In Cursor, go to ",(0,s.jsx)(o.strong,{children:"Cursor Settings > MCP"}),", and then click ",(0,s.jsx)(o.strong,{children:"Add New Global MCP Server"}),".\nThis opens Cursor's global MCP configuration file, ",(0,s.jsx)(o.code,{children:"mcp.json"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["In the Langflow dashboard, select the project that contains the flows you want to serve, and then click the ",(0,s.jsx)(o.strong,{children:"MCP Server"})," tab."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Copy the code template from the ",(0,s.jsx)(o.strong,{children:"MCP Server"})," tab, and then paste it into ",(0,s.jsx)(o.code,{children:"mcp.json"})," in Cursor.\nFor example:"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "mcpServers"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "PROJECT_NAME"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "command"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"uvx"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "args"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "mcp-proxy"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "http://LANGFLOW_SERVER_ADDRESS/api/v1/mcp/project/PROJECT_ID/sse"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]}),"\n",(0,s.jsxs)(o.p,{children:["The ",(0,s.jsx)(o.strong,{children:"MCP Server"})," tab automatically includes the correct ",(0,s.jsx)(o.code,{children:"PROJECT_NAME"}),", ",(0,s.jsx)(o.code,{children:"LANGFLOW_SERVER_ADDRESS"}),", and ",(0,s.jsx)(o.code,{children:"PROJECT_ID"})," values.\nThe default Langflow server address is ",(0,s.jsx)(o.code,{children:"http://127.0.0.1:7860"})," (",(0,s.jsx)(o.code,{children:"http://127.0.0.1:7868"})," if using Langflow for Desktop)."]}),"\n",(0,s.jsx)(o.admonition,{type:"important",children:(0,s.jsxs)(o.p,{children:["If your Langflow server ",(0,s.jsx)(o.a,{href:"/configuration-authentication",children:"requires authentication"})," (",(0,s.jsx)(o.a,{href:"/environment-variables#LANGFLOW_AUTO_LOGIN",children:(0,s.jsx)(o.code,{children:"LANGFLOW_AUTO_LOGIN"})})," is set to ",(0,s.jsx)(o.code,{children:"false"}),"), you must include your Langflow API key in the configuration.\nFor more information, see ",(0,s.jsx)(o.a,{href:"#authentication",children:"MCP server authentication and environment variables"}),"."]})}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Save and close the ",(0,s.jsx)(o.code,{children:"mcp.json"})," file in Cursor.\nThe newly added MCP server will appear in the ",(0,s.jsx)(o.strong,{children:"MCP Servers"})," section."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(o.p,{children:"Cursor is now connected to your project's MCP server and your flows are registered as tools.\nCursor determines when to use tools based on your queries, and requests permissions when necessary."}),"\n",(0,s.jsxs)(o.p,{children:["For more information, see the ",(0,s.jsx)(o.a,{href:"https://docs.cursor.com/context/model-context-protocol",children:"Cursor's MCP documentation"}),"."]}),"\n",(0,s.jsx)(o.h3,{id:"authentication",children:"MCP server authentication and environment variables"}),"\n",(0,s.jsxs)(o.p,{children:["If your Langflow server ",(0,s.jsx)(o.a,{href:"/configuration-authentication",children:"requires authentication"})," (",(0,s.jsx)(o.a,{href:"/environment-variables#LANGFLOW_AUTO_LOGIN",children:(0,s.jsx)(o.code,{children:"LANGFLOW_AUTO_LOGIN"})})," is set to ",(0,s.jsx)(o.code,{children:"false"}),"), then you must supply a ",(0,s.jsx)(o.a,{href:"/configuration-api-keys",children:"Langflow API key"})," in your MCP client configuration.\nWhen this is the case, the code template in your project's ",(0,s.jsx)(o.strong,{children:"MCP Server"})," tab automatically includes the ",(0,s.jsx)(o.code,{children:"--header"})," and ",(0,s.jsx)(o.code,{children:"x-api-key"})," arguments:"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "mcpServers"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "PROJECT_NAME"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "command"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"uvx"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "args"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "mcp-proxy"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "--headers"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "x-api-key"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "YOUR_API_KEY"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "http://LANGFLOW_SERVER_ADDRESS/api/v1/mcp/project/PROJECT_ID/sse"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]}),"\n",(0,s.jsxs)(o.p,{children:["Click ",(0,s.jsx)(a.A,{name:"key","aria-hidden":"true"})," ",(0,s.jsx)(o.strong,{children:"Generate API key"})," to automatically insert a new Langflow API key into the code template.\nAlternatively, you can replace ",(0,s.jsx)(o.code,{children:"YOUR_API_KEY"})," with an existing Langflow API key."]}),"\n",(0,s.jsx)(o.p,{children:(0,s.jsx)(o.img,{alt:"MCP server tab showing Generate API key button",src:n(95288).A+"",width:"4000",height:"2188"})}),"\n",(0,s.jsx)(o.p,{children:"To include environment variables with your MCP server command, include them like this:"}),"\n",(0,s.jsx)(u.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "mcpServers"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "PROJECT_NAME"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "command"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"uvx"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "args"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "mcp-proxy"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "http://LANGFLOW_SERVER_ADDRESS/api/v1/mcp/project/PROJECT_ID/sse"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "env"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "KEY"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"VALUE"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]}),"\n",(0,s.jsxs)(o.p,{children:["Replace ",(0,s.jsx)(o.code,{children:"KEY"})," and ",(0,s.jsx)(o.code,{children:"VALUE"})," with the environment variable name and value you want to include."]}),"\n",(0,s.jsx)(o.h2,{id:"name-and-describe-your-flows",children:"Name and describe your flows for agentic use"}),"\n",(0,s.jsxs)(o.p,{children:["MCP clients like ",(0,s.jsx)(o.a,{href:"https://www.cursor.com/",children:"Cursor"}),' "see" your Langflow project as a single MCP server, with ',(0,s.jsx)(o.em,{children:"all"})," of your enabled flows listed as tools.\nThis can confuse agents.\nFor example, an agent won't know that flow ",(0,s.jsx)(o.code,{children:"adbbf8c7-0a34-493b-90ea-5e8b42f78b66"})," is a ",(0,s.jsx)(o.a,{href:"/document-qa",children:"Document Q&A"})," flow for a specific text file."]}),"\n",(0,s.jsxs)(o.p,{children:["To prevent this behavior, make sure to ",(0,s.jsx)(o.a,{href:"#select-flows-to-serve",children:"name and describe"})," your flows clearly.\nIt's helpful to think of the names and descriptions as function names and code comments, making sure to use clear statements describing the problems your flows solve."]}),"\n",(0,s.jsxs)(o.p,{children:["For example, let's say you have a ",(0,s.jsx)(o.a,{href:"/document-qa",children:"Document Q&A"})," flow that loads a sample resume for an LLM to chat with, and that you've given it the following name and description:"]}),"\n",(0,s.jsxs)(o.ul,{children:["\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:[(0,s.jsx)(o.strong,{children:"Flow Name"}),": ",(0,s.jsx)(o.code,{children:"document_qa_for_resume"})]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:[(0,s.jsx)(o.strong,{children:"Flow Description"}),": ",(0,s.jsx)(o.code,{children:"A flow for analyzing Emily's resume."})]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(o.p,{children:["If you ask Cursor a question specifically about the resume, such as ",(0,s.jsx)(o.code,{children:"What job experience does Emily have?"}),", the agent asks to call the MCP tool ",(0,s.jsx)(o.code,{children:"document_qa_for_resume"}),".\nThat's because your name and description provided the agent with a clear purpose for the tool."]}),"\n",(0,s.jsx)(o.p,{children:"When you run the tool, the agent requests permissions when necessary, and then provides a response.\nFor example:"}),"\n",(0,s.jsx)(u.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:' "input_value": "What job experience does Emily have?"',props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"Result:",props:{}}]},{tokens:[{content:"What job experience does Emily have?",props:{}}]},{tokens:[{content:"Emily J. Wilson has the following job experience:",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(o.p,{children:["If you ask about a different resume, such as ",(0,s.jsx)(o.code,{children:"What job experience does Alex have?"}),", you've provided enough information in the description for the agent to make the correct decision:"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"I notice you're asking about Alex's job experience.",props:{}}]},{tokens:[{content:"Based on the available tools, I can see there is a Document QA for Resume flow that's designed for analyzing resumes.",props:{}}]},{tokens:[{content:"However, the description mentions it's for \"Emily's resume\" not Alex's. I don't have access to Alex's resume or job experience information.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(o.h2,{id:"test-and-debug-flows",children:"Use MCP Inspector to test and debug flows"}),"\n",(0,s.jsxs)(o.p,{children:[(0,s.jsx)(o.a,{href:"https://modelcontextprotocol.io/docs/tools/inspector",children:"MCP Inspector"})," is a common tool for testing and debugging MCP servers.\nYou can use MCP Inspector to monitor your flows and get insights into how they are being consumed by the MCP server:"]}),"\n",(0,s.jsxs)(o.ol,{children:["\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsx)(o.p,{children:"Install MCP Inspector:"}),"\n",(0,s.jsx)(u.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"npx ",props:{style:{color:"#FFA657"}}},{content:"@modelcontextprotocol/inspector",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsxs)(o.p,{children:["For more information about configuring MCP Inspector, including specifying a proxy port, see the ",(0,s.jsx)(o.a,{href:"https://github.com/modelcontextprotocol/inspector",children:"MCP Inspector GitHub project"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Open a web browser and navigate to the MCP Inspector UI.\nThe default address is ",(0,s.jsx)(o.code,{children:"http://127.0.0.1:6274"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsx)(o.p,{children:"In the MCP Inspector UI, enter the connection details for your Langflow project's MCP server:"}),"\n",(0,s.jsxs)(o.ul,{children:["\n",(0,s.jsxs)(o.li,{children:[(0,s.jsx)(o.strong,{children:"Transport Type"}),": Select ",(0,s.jsx)(o.strong,{children:"SSE"}),"."]}),"\n",(0,s.jsxs)(o.li,{children:[(0,s.jsx)(o.strong,{children:"URL"}),": Enter the Langflow MCP server's ",(0,s.jsx)(o.code,{children:"sse"})," endpoint. For example: ",(0,s.jsx)(o.code,{children:"http://127.0.0.1:7860/api/v1/mcp/project/d359cbd4-6fa2-4002-9d53-fa05c645319c/sse"})]}),"\n"]}),"\n",(0,s.jsxs)(o.p,{children:["If you've ",(0,s.jsx)(o.a,{href:"#authentication",children:"configured authentication for your MCP server"}),", fill out the following additional fields:"]}),"\n",(0,s.jsxs)(o.ul,{children:["\n",(0,s.jsxs)(o.li,{children:[(0,s.jsx)(o.strong,{children:"Transport Type"}),": Select ",(0,s.jsx)(o.strong,{children:"STDIO"}),"."]}),"\n",(0,s.jsxs)(o.li,{children:[(0,s.jsx)(o.strong,{children:"Command"}),": ",(0,s.jsx)(o.code,{children:"uvx"})]}),"\n",(0,s.jsxs)(o.li,{children:[(0,s.jsx)(o.strong,{children:"Arguments"}),": Enter the following list of arguments, separated by spaces. Replace the values for ",(0,s.jsx)(o.code,{children:"YOUR_API_KEY"}),", ",(0,s.jsx)(o.code,{children:"LANGFLOW_SERVER_ADDRESS"}),", and ",(0,s.jsx)(o.code,{children:"PROJECT_ID"})," with the values from your Langflow MCP server. For example:"]}),"\n"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"mcp-proxy ",props:{style:{color:"#FFA657"}}},{content:"--headers ",props:{style:{color:"#79C0FF"}}},{content:"x-api-key YOUR_API_KEY http://LANGFLOW_SERVER_ADDRESS/api/v1/mcp/project/PROJECT_ID/sse",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Click ",(0,s.jsx)(o.strong,{children:"Connect"}),"."]}),"\n",(0,s.jsxs)(o.p,{children:["If the connection was successful, you should see your project's flows in the ",(0,s.jsx)(o.strong,{children:"Tools"})," tab.\nFrom this tab, you can monitor how your flows are being registered as tools by MCP, as well as test the tools with custom input values."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["To quit MCP Inspector, press ",(0,s.jsx)("kbd",{children:"Control+C"})," in the same terminal window where you started it."]}),"\n"]}),"\n"]}),"\n","\n",(0,s.jsx)(o.h2,{id:"deploy-your-server-externally",children:"Deploy your MCP server externally"}),"\n",(0,s.jsxs)(o.p,{children:["By default, Langflow isn't exposed to the public internet.\nHowever, you can forward Langflow server traffic with a forwarding platform like ",(0,s.jsx)(o.a,{href:"https://ngrok.com/docs/getting-started/",children:"ngrok"})," or ",(0,s.jsx)(o.a,{href:"https://docs.zrok.io/docs/getting-started",children:"zrok"}),"."]}),"\n",(0,s.jsxs)(o.p,{children:["The following procedure uses ngrok, but you can use any similar reverse proxy or forwarding platform.\nThis procedure also assumes that you're using the default Langflow listening address ",(0,s.jsx)(o.code,{children:"http://127.0.0.1:7860"})," (",(0,s.jsx)(o.code,{children:"http://127.0.0.1:7868"})," if using Langflow for Desktop)."]}),"\n",(0,s.jsxs)(o.ol,{children:["\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Sign up for an ",(0,s.jsx)(o.a,{href:"https://dashboard.ngrok.com/signup",children:"ngrok account"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:[(0,s.jsx)(o.a,{href:"https://ngrok.com/docs/getting-started/#1-install-ngrok",children:"Install ngrok"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Copy your ",(0,s.jsx)(o.a,{href:"https://dashboard.ngrok.com/get-started/your-authtoken",children:"ngrok authtoken"})," and use it to authenticate your local ngrok server:"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"ngrok ",props:{style:{color:"#FFA657"}}},{content:"config add-authtoken NGROK_TOKEN",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsxs)(o.p,{children:["Replace ",(0,s.jsx)(o.code,{children:"NGROK_TOKEN"})," with your ngrok authtoken."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsx)(o.p,{children:"Use ngrok to expose your Langflow server to the public internet:"}),"\n",(0,s.jsx)(u.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"ngrok ",props:{style:{color:"#FFA657"}}},{content:"http http://localhost:",props:{style:{color:"#A5D6FF"}}},{content:"7860",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsxs)(o.p,{children:["The ngrok session starts in your terminal and deploys an ephemeral domain with no authentication.\nTo add authentication or deploy a static domain, see the ",(0,s.jsx)(o.a,{href:"https://ngrok.com/docs/",children:"ngrok documentation"}),"."]}),"\n",(0,s.jsxs)(o.p,{children:["The ",(0,s.jsx)(o.code,{children:"Forwarding"})," row displays the forwarding address for your Langflow server:"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"Forwarding https://94b1-76-64-171-14.ngrok-free.app -> http://localhost:7860",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(o.p,{children:"The forwarding address is acting as a reverse proxy for your Langflow server."}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["From the Langflow dashboard, select the project that contains the flows you want to serve as tools, and then click the ",(0,s.jsx)(o.strong,{children:"MCP Server"})," tab."]}),"\n",(0,s.jsx)(o.p,{children:"Note that the code template now contains your ngrok forwarding address instead of the localhost address:"}),"\n",(0,s.jsx)(u.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "mcpServers"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "PROJECT_NAME"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "command"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"uvx"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "args"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "mcp-proxy"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "https://94b1-73-64-171-14.ngrok-free.app/api/v1/mcp/project/fdbc12af-0dd4-43dc-b9ce-c324d1ce5cd1/sse"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Complete the steps in ",(0,s.jsx)(o.a,{href:"#connect-clients-to-use-the-servers-actions",children:"Connect clients to Langflow's MCP server"})," using the ngrok forwarding address."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(o.p,{children:"Your MCP client is now connected to your project's MCP server over the public internet."}),"\n",(0,s.jsx)(o.p,{children:"If using Cursor, your conversations are the same as they are on your local host:"}),"\n",(0,s.jsx)(u.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:' "input_value": "What job experience does Emily have?"',props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"Result:",props:{}}]},{tokens:[{content:"What job experience does Emily have?",props:{}}]},{tokens:[{content:"Emily J. Wilson has the following job experience:",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(o.p,{children:"You can use the ngrok console output to monitor requests for your project's endpoint:"}),"\n",(0,s.jsx)(u.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"16:35:48.566 EDT GET /api/v1/mcp/project/fdbc12af-0dd4-43dc-b9ce-c324d1ce5cd1 200 OK",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(o.h2,{id:"troubleshooting-mcp-server",children:"Troubleshooting MCP server"}),"\n",(0,s.jsxs)(o.p,{children:["If Claude for Desktop is not using your server's tools correctly, you may need to explicitly define the path to your local ",(0,s.jsx)(o.code,{children:"uvx"})," or ",(0,s.jsx)(o.code,{children:"npx"})," executable file in the ",(0,s.jsx)(o.code,{children:"claude_desktop_config.json"})," configuration file."]}),"\n",(0,s.jsxs)(o.ol,{children:["\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["To find your UVX path, run ",(0,s.jsx)(o.code,{children:"which uvx"}),".\nTo find your NPX path, run ",(0,s.jsx)(o.code,{children:"which npx"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Copy the path, and then replace ",(0,s.jsx)(o.code,{children:"PATH_TO_UVX"})," or ",(0,s.jsx)(o.code,{children:"PATH_TO_NPX"})," in your ",(0,s.jsx)(o.code,{children:"claude_desktop_config.json"})," file."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(l.A,{children:[(0,s.jsx)(i.A,{value:"uvx",label:"uvx",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "mcpServers"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "PROJECT_NAME"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "command"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"PATH_TO_UVX"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "args"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "mcp-proxy"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "http://LANGFLOW_SERVER_ADDRESS/api/v1/mcp/project/PROJECT_ID/sse"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"npx",label:"npx",children:(0,s.jsx)(u.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "mcpServers"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "PROJECT_NAME"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "command"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"PATH_TO_NPX"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "args"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "-y"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "supergateway"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "--sse"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "http://LANGFLOW_SERVER_ADDRESS/api/v1/mcp/project/PROJECT_ID/sse"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]})]})}function y(e={}){const{wrapper:o}={...(0,r.R)(),...e.components};return o?(0,s.jsx)(o,{...e,children:(0,s.jsx)(g,{...e})}):g(e)}function j(e,o){throw new Error("Expected "+(o?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},79329:(e,o,n)=>{n.d(o,{A:()=>c});n(96540);var t=n(18215);const s={tabItem:"tabItem_Ymn6"};var r=n(74848);function c(e){let{children:o,hidden:n,className:c}=e;return(0,r.jsx)("div",{role:"tabpanel",className:(0,t.A)(s.tabItem,c),hidden:n,children:o})}},84443:(e,o,n)=>{n.d(o,{A:()=>r});n(96540);var t=n(64058),s=n(74848);function r(e){let{name:o,...n}=e;const r=t[o];return r?(0,s.jsx)(r,{...n}):null}},95288:(e,o,n)=>{n.d(o,{A:()=>t});const t=n.p+"assets/images/mcp-server-api-key-5a39d0de10227381df269c4595d4d896.png"}}]);
\ No newline at end of file
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[266],{65537:(e,o,n)=>{n.d(o,{A:()=>D});var t=n(96540),s=n(18215),r=n(65627),c=n(56347),l=n(50372),i=n(30604),a=n(11861),d=n(78749);function p(e){return t.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,t.isValidElement)(e)&&function(e){const{props:o}=e;return!!o&&"object"==typeof o&&"value"in o}(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 h(e){const{values:o,children:n}=e;return(0,t.useMemo)((()=>{const e=o??function(e){return p(e).map((e=>{let{props:{value:o,label:n,attributes:t,default:s}}=e;return{value:o,label:n,attributes:t,default:s}}))}(n);return function(e){const o=(0,a.XI)(e,((e,o)=>e.value===o.value));if(o.length>0)throw new Error(`Docusaurus error: Duplicate values "${o.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[o,n])}function u(e){let{value:o,tabValues:n}=e;return n.some((e=>e.value===o))}function f(e){let{queryString:o=!1,groupId:n}=e;const s=(0,c.W6)(),r=function(e){let{queryString:o=!1,groupId:n}=e;if("string"==typeof o)return o;if(!1===o)return null;if(!0===o&&!n)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 n??null}({queryString:o,groupId:n});return[(0,i.aZ)(r),(0,t.useCallback)((e=>{if(!r)return;const o=new URLSearchParams(s.location.search);o.set(r,e),s.replace({...s.location,search:o.toString()})}),[r,s])]}function x(e){const{defaultValue:o,queryString:n=!1,groupId:s}=e,r=h(e),[c,i]=(0,t.useState)((()=>function(e){let{defaultValue:o,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(o){if(!u({value:o,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${o}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return o}const t=n.find((e=>e.default))??n[0];if(!t)throw new Error("Unexpected error: 0 tabValues");return t.value}({defaultValue:o,tabValues:r}))),[a,p]=f({queryString:n,groupId:s}),[x,g]=function(e){let{groupId:o}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(o),[s,r]=(0,d.Dv)(n);return[s,(0,t.useCallback)((e=>{n&&r.set(e)}),[n,r])]}({groupId:s}),y=(()=>{const e=a??x;return u({value:e,tabValues:r})?e:null})();(0,l.A)((()=>{y&&i(y)}),[y]);return{selectedValue:c,selectValue:(0,t.useCallback)((e=>{if(!u({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);i(e),p(e),g(e)}),[p,g,r]),tabValues:r}}var g=n(9136);const y={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var j=n(74848);function m(e){let{className:o,block:n,selectedValue:t,selectValue:c,tabValues:l}=e;const i=[],{blockElementScrollPositionUntilNextRender:a}=(0,r.a_)(),d=e=>{const o=e.currentTarget,n=i.indexOf(o),s=l[n].value;s!==t&&(a(o),c(s))},p=e=>{let o=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const n=i.indexOf(e.currentTarget)+1;o=i[n]??i[0];break}case"ArrowLeft":{const n=i.indexOf(e.currentTarget)-1;o=i[n]??i[i.length-1];break}}o?.focus()};return(0,j.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":n},o),children:l.map((e=>{let{value:o,label:n,attributes:r}=e;return(0,j.jsx)("li",{role:"tab",tabIndex:t===o?0:-1,"aria-selected":t===o,ref:e=>{i.push(e)},onKeyDown:p,onClick:d,...r,className:(0,s.A)("tabs__item",y.tabItem,r?.className,{"tabs__item--active":t===o}),children:n??o},o)}))})}function C(e){let{lazy:o,children:n,selectedValue:r}=e;const c=(Array.isArray(n)?n:[n]).filter(Boolean);if(o){const e=c.find((e=>e.props.value===r));return e?(0,t.cloneElement)(e,{className:(0,s.A)("margin-top--md",e.props.className)}):null}return(0,j.jsx)("div",{className:"margin-top--md",children:c.map(((e,o)=>(0,t.cloneElement)(e,{key:o,hidden:e.props.value!==r})))})}function v(e){const o=x(e);return(0,j.jsxs)("div",{className:(0,s.A)("tabs-container",y.tabList),children:[(0,j.jsx)(m,{...o,...e}),(0,j.jsx)(C,{...o,...e})]})}function D(e){const o=(0,g.A)();return(0,j.jsx)(v,{...e,children:p(e.children)},String(o))}},66379:(e,o,n)=>{n.d(o,{A:()=>t});const t=n.p+"assets/images/mcp-server-actions-ad851786a8969c1d84b4601df1bcb6db.png"},67577:(e,o,n)=>{n.d(o,{A:()=>t});const t=n.p+"assets/images/mcp-server-573510dfdf6bf74006f9f0d9280b3f11.png"},72520:(e,o,n)=>{n.r(o),n.d(o,{CH:()=>u,assets:()=>h,chCodeConfig:()=>f,contentTitle:()=>p,default:()=>y,frontMatter:()=>d,metadata:()=>t,toc:()=>x});const t=JSON.parse('{"id":"Concepts/mcp-server","title":"Model Context Protocol (MCP) server","description":"Langflow integrates with the Model Context Protocol (MCP) as both an MCP server and an MCP client.","source":"@site/docs/Concepts/mcp-server.md","sourceDirName":"Concepts","slug":"/mcp-server","permalink":"/mcp-server","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Model Context Protocol (MCP) server","slug":"/mcp-server"},"sidebar":"docs","previous":{"title":"Embedded chat widget","permalink":"/embedded-chat-widget"},"next":{"title":"Manage files","permalink":"/concepts-file-management"}}');var s=n(74848),r=n(28453),c=n(24754),l=n(65537),i=n(79329),a=n(84443);const d={title:"Model Context Protocol (MCP) server",slug:"/mcp-server"},p=void 0,h={},u={annotations:c.hk,Code:c.Cy},f={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},x=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Select and configure flows to expose as MCP tools",id:"select-flows-to-serve",level:2},{value:"Connect clients to Langflow's MCP server",id:"connect-clients-to-use-the-servers-actions",level:2},{value:"MCP server authentication and environment variables",id:"authentication",level:3},{value:"Name and describe your flows for agentic use",id:"name-and-describe-your-flows",level:2},{value:"Use MCP Inspector to test and debug flows",id:"test-and-debug-flows",level:2},{value:"Deploy your MCP server externally",id:"deploy-your-server-externally",level:2},{value:"Troubleshooting MCP server",id:"troubleshooting-mcp-server",level:2}];function g(e){const o={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return u||j("CH",!1),u.Code||j("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)(o.p,{children:["Langflow integrates with the ",(0,s.jsx)(o.a,{href:"https://modelcontextprotocol.io/introduction",children:"Model Context Protocol (MCP)"})," as both an MCP server and an MCP client.\nThis page describes how to use Langflow as an ",(0,s.jsx)(o.em,{children:"MCP server"}),".\nFor information about using Langflow as an ",(0,s.jsx)(o.em,{children:"MCP client"}),", see the ",(0,s.jsx)(o.a,{href:"/components-tools#mcp-connection",children:"MCP connection component"}),"."]}),"\n",(0,s.jsxs)(o.p,{children:["As an MCP server, Langflow exposes your flows as ",(0,s.jsx)(o.a,{href:"https://modelcontextprotocol.io/docs/concepts/tools",children:"tools"})," that ",(0,s.jsx)(o.a,{href:"https://modelcontextprotocol.io/clients",children:"MCP clients"})," can use use to take actions."]}),"\n",(0,s.jsx)(o.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,s.jsxs)(o.ul,{children:["\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsx)(o.p,{children:"A Langflow project with at least one flow created."}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Any LTS version of ",(0,s.jsx)(o.a,{href:"https://docs.npmjs.com/downloading-and-installing-node-js-and-npm",children:"Node.js"})," installed on your computer to use MCP Inspector to ",(0,s.jsx)(o.a,{href:"#test-and-debug-flows",children:"test and debug flows"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(o.h2,{id:"select-flows-to-serve",children:"Select and configure flows to expose as MCP tools"}),"\n",(0,s.jsxs)(o.p,{children:["Langflow runs a separate MCP server for every ",(0,s.jsx)(o.a,{href:"/concepts-overview#projects",children:"project"}),".\nThe MCP server for each project exposes that project's flows as tools."]}),"\n",(0,s.jsx)(o.p,{children:"All of the flows in a project are exposed by default.\nTo expose only specific flows and optionally rename them for agentic use, follow these steps:"}),"\n",(0,s.jsxs)(o.ol,{children:["\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["From the Langflow dashboard, select the project that contains the flows you want to serve as tools, and then click the ",(0,s.jsx)(o.strong,{children:"MCP Server"})," tab.\nAlternatively, you can quickly access the ",(0,s.jsx)(o.strong,{children:"MCP Server"})," tab from within any flow by selecting ",(0,s.jsx)(o.strong,{children:"Publish > MCP Server"}),"."]}),"\n",(0,s.jsxs)(o.p,{children:["The ",(0,s.jsx)(o.strong,{children:"MCP Server"})," tab displays a code template that you can use to connect MCP clients to the the project's MCP server."]}),"\n",(0,s.jsxs)(o.p,{children:["The ",(0,s.jsx)(o.strong,{children:"Flows/Actions"})," section lists the flows that are currently being served as tools."]}),"\n",(0,s.jsx)(o.p,{children:(0,s.jsx)(o.img,{alt:"MCP server projects page",src:n(67577).A+"",width:"4000",height:"2192"})}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Click ",(0,s.jsx)(a.A,{name:"Settings2","aria-hidden":"true"})," ",(0,s.jsx)(o.strong,{children:"Edit Actions"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["In the ",(0,s.jsx)(o.strong,{children:"MCP Server Actions"})," window, select the flows that you want exposed as tools."]}),"\n",(0,s.jsx)(o.p,{children:(0,s.jsx)(o.img,{alt:"MCP server actions",src:n(66379).A+"",width:"4000",height:"2044"})}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Optional: Edit the ",(0,s.jsx)(o.strong,{children:"Flow Name"})," and ",(0,s.jsx)(o.strong,{children:"Flow Description"}),"."]}),"\n",(0,s.jsxs)(o.ul,{children:["\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:[(0,s.jsx)(o.strong,{children:"Flow Name"}),": Enter a name thats makes it clear what the flow does."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:[(0,s.jsx)(o.strong,{children:"Flow Description"}),": Enter a description that accurately describes the specific action(s) the flow performs."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(o.admonition,{type:"important",children:(0,s.jsxs)(o.p,{children:["MCP clients use the ",(0,s.jsx)(o.strong,{children:"Flow Name"})," and ",(0,s.jsx)(o.strong,{children:"Flow Description"})," to determine which action to use.\nFor more information about naming and describing your flows, see ",(0,s.jsx)(o.a,{href:"#name-and-describe-your-flows",children:"Name and describe your flows for agentic use"}),"."]})}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Close the ",(0,s.jsx)(o.strong,{children:"MCP Server Actions"})," window to save your changes."]}),"\n"]}),"\n"]}),"\n","\n",(0,s.jsx)(o.h2,{id:"connect-clients-to-use-the-servers-actions",children:"Connect clients to Langflow's MCP server"}),"\n",(0,s.jsxs)(o.p,{children:["The following procedure describes how to connect ",(0,s.jsx)(o.a,{href:"https://www.cursor.com/",children:"Cursor"})," to your Langflow project's MCP server to consume your flows as tools.\nHowever, you can connect any ",(0,s.jsx)(o.a,{href:"https://modelcontextprotocol.io/clients",children:"MCP-compatible client"})," following similar steps."]}),"\n",(0,s.jsxs)(o.ol,{children:["\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Install ",(0,s.jsx)(o.a,{href:"https://docs.cursor.com/get-started/installation",children:"Cursor"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["In Cursor, go to ",(0,s.jsx)(o.strong,{children:"Cursor Settings > MCP"}),", and then click ",(0,s.jsx)(o.strong,{children:"Add New Global MCP Server"}),".\nThis opens Cursor's global MCP configuration file, ",(0,s.jsx)(o.code,{children:"mcp.json"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["In the Langflow dashboard, select the project that contains the flows you want to serve, and then click the ",(0,s.jsx)(o.strong,{children:"MCP Server"})," tab."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Copy the code template from the ",(0,s.jsx)(o.strong,{children:"MCP Server"})," tab, and then paste it into ",(0,s.jsx)(o.code,{children:"mcp.json"})," in Cursor.\nFor example:"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "mcpServers"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "PROJECT_NAME"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "command"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"uvx"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "args"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "mcp-proxy"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "http://LANGFLOW_SERVER_ADDRESS/api/v1/mcp/project/PROJECT_ID/sse"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]}),"\n",(0,s.jsxs)(o.p,{children:["The ",(0,s.jsx)(o.strong,{children:"MCP Server"})," tab automatically includes the correct ",(0,s.jsx)(o.code,{children:"PROJECT_NAME"}),", ",(0,s.jsx)(o.code,{children:"LANGFLOW_SERVER_ADDRESS"}),", and ",(0,s.jsx)(o.code,{children:"PROJECT_ID"})," values.\nThe default Langflow server address is ",(0,s.jsx)(o.code,{children:"http://localhost:7860"})," (",(0,s.jsx)(o.code,{children:"http://localhost:7868"})," if using Langflow for Desktop)."]}),"\n",(0,s.jsx)(o.admonition,{type:"important",children:(0,s.jsxs)(o.p,{children:["If your Langflow server ",(0,s.jsx)(o.a,{href:"/configuration-authentication",children:"requires authentication"})," (",(0,s.jsx)(o.a,{href:"/environment-variables#LANGFLOW_AUTO_LOGIN",children:(0,s.jsx)(o.code,{children:"LANGFLOW_AUTO_LOGIN"})})," is set to ",(0,s.jsx)(o.code,{children:"false"}),"), you must include your Langflow API key in the configuration.\nFor more information, see ",(0,s.jsx)(o.a,{href:"#authentication",children:"MCP server authentication and environment variables"}),"."]})}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Save and close the ",(0,s.jsx)(o.code,{children:"mcp.json"})," file in Cursor.\nThe newly added MCP server will appear in the ",(0,s.jsx)(o.strong,{children:"MCP Servers"})," section."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(o.p,{children:"Cursor is now connected to your project's MCP server and your flows are registered as tools.\nCursor determines when to use tools based on your queries, and requests permissions when necessary."}),"\n",(0,s.jsxs)(o.p,{children:["For more information, see the ",(0,s.jsx)(o.a,{href:"https://docs.cursor.com/context/model-context-protocol",children:"Cursor's MCP documentation"}),"."]}),"\n",(0,s.jsx)(o.h3,{id:"authentication",children:"MCP server authentication and environment variables"}),"\n",(0,s.jsxs)(o.p,{children:["If your Langflow server ",(0,s.jsx)(o.a,{href:"/configuration-authentication",children:"requires authentication"})," (",(0,s.jsx)(o.a,{href:"/environment-variables#LANGFLOW_AUTO_LOGIN",children:(0,s.jsx)(o.code,{children:"LANGFLOW_AUTO_LOGIN"})})," is set to ",(0,s.jsx)(o.code,{children:"false"}),"), then you must supply a ",(0,s.jsx)(o.a,{href:"/configuration-api-keys",children:"Langflow API key"})," in your MCP client configuration.\nWhen this is the case, the code template in your project's ",(0,s.jsx)(o.strong,{children:"MCP Server"})," tab automatically includes the ",(0,s.jsx)(o.code,{children:"--header"})," and ",(0,s.jsx)(o.code,{children:"x-api-key"})," arguments:"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "mcpServers"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "PROJECT_NAME"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "command"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"uvx"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "args"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "mcp-proxy"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "--headers"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "x-api-key"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "YOUR_API_KEY"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "http://LANGFLOW_SERVER_ADDRESS/api/v1/mcp/project/PROJECT_ID/sse"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]}),"\n",(0,s.jsxs)(o.p,{children:["Click ",(0,s.jsx)(a.A,{name:"key","aria-hidden":"true"})," ",(0,s.jsx)(o.strong,{children:"Generate API key"})," to automatically insert a new Langflow API key into the code template.\nAlternatively, you can replace ",(0,s.jsx)(o.code,{children:"YOUR_API_KEY"})," with an existing Langflow API key."]}),"\n",(0,s.jsx)(o.p,{children:(0,s.jsx)(o.img,{alt:"MCP server tab showing Generate API key button",src:n(95288).A+"",width:"4000",height:"2188"})}),"\n",(0,s.jsx)(o.p,{children:"To include environment variables with your MCP server command, include them like this:"}),"\n",(0,s.jsx)(u.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "mcpServers"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "PROJECT_NAME"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "command"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"uvx"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "args"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "mcp-proxy"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "http://LANGFLOW_SERVER_ADDRESS/api/v1/mcp/project/PROJECT_ID/sse"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "env"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "KEY"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"VALUE"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]}),"\n",(0,s.jsxs)(o.p,{children:["Replace ",(0,s.jsx)(o.code,{children:"KEY"})," and ",(0,s.jsx)(o.code,{children:"VALUE"})," with the environment variable name and value you want to include."]}),"\n",(0,s.jsx)(o.h2,{id:"name-and-describe-your-flows",children:"Name and describe your flows for agentic use"}),"\n",(0,s.jsxs)(o.p,{children:["MCP clients like ",(0,s.jsx)(o.a,{href:"https://www.cursor.com/",children:"Cursor"}),' "see" your Langflow project as a single MCP server, with ',(0,s.jsx)(o.em,{children:"all"})," of your enabled flows listed as tools.\nThis can confuse agents.\nFor example, an agent won't know that flow ",(0,s.jsx)(o.code,{children:"adbbf8c7-0a34-493b-90ea-5e8b42f78b66"})," is a ",(0,s.jsx)(o.a,{href:"/document-qa",children:"Document Q&A"})," flow for a specific text file."]}),"\n",(0,s.jsxs)(o.p,{children:["To prevent this behavior, make sure to ",(0,s.jsx)(o.a,{href:"#select-flows-to-serve",children:"name and describe"})," your flows clearly.\nIt's helpful to think of the names and descriptions as function names and code comments, making sure to use clear statements describing the problems your flows solve."]}),"\n",(0,s.jsxs)(o.p,{children:["For example, let's say you have a ",(0,s.jsx)(o.a,{href:"/document-qa",children:"Document Q&A"})," flow that loads a sample resume for an LLM to chat with, and that you've given it the following name and description:"]}),"\n",(0,s.jsxs)(o.ul,{children:["\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:[(0,s.jsx)(o.strong,{children:"Flow Name"}),": ",(0,s.jsx)(o.code,{children:"document_qa_for_resume"})]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:[(0,s.jsx)(o.strong,{children:"Flow Description"}),": ",(0,s.jsx)(o.code,{children:"A flow for analyzing Emily's resume."})]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(o.p,{children:["If you ask Cursor a question specifically about the resume, such as ",(0,s.jsx)(o.code,{children:"What job experience does Emily have?"}),", the agent asks to call the MCP tool ",(0,s.jsx)(o.code,{children:"document_qa_for_resume"}),".\nThat's because your name and description provided the agent with a clear purpose for the tool."]}),"\n",(0,s.jsx)(o.p,{children:"When you run the tool, the agent requests permissions when necessary, and then provides a response.\nFor example:"}),"\n",(0,s.jsx)(u.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:' "input_value": "What job experience does Emily have?"',props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"Result:",props:{}}]},{tokens:[{content:"What job experience does Emily have?",props:{}}]},{tokens:[{content:"Emily J. Wilson has the following job experience:",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(o.p,{children:["If you ask about a different resume, such as ",(0,s.jsx)(o.code,{children:"What job experience does Alex have?"}),", you've provided enough information in the description for the agent to make the correct decision:"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"I notice you're asking about Alex's job experience.",props:{}}]},{tokens:[{content:"Based on the available tools, I can see there is a Document QA for Resume flow that's designed for analyzing resumes.",props:{}}]},{tokens:[{content:"However, the description mentions it's for \"Emily's resume\" not Alex's. I don't have access to Alex's resume or job experience information.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(o.h2,{id:"test-and-debug-flows",children:"Use MCP Inspector to test and debug flows"}),"\n",(0,s.jsxs)(o.p,{children:[(0,s.jsx)(o.a,{href:"https://modelcontextprotocol.io/docs/tools/inspector",children:"MCP Inspector"})," is a common tool for testing and debugging MCP servers.\nYou can use MCP Inspector to monitor your flows and get insights into how they are being consumed by the MCP server:"]}),"\n",(0,s.jsxs)(o.ol,{children:["\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsx)(o.p,{children:"Install MCP Inspector:"}),"\n",(0,s.jsx)(u.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"npx ",props:{style:{color:"#FFA657"}}},{content:"@modelcontextprotocol/inspector",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsxs)(o.p,{children:["For more information about configuring MCP Inspector, including specifying a proxy port, see the ",(0,s.jsx)(o.a,{href:"https://github.com/modelcontextprotocol/inspector",children:"MCP Inspector GitHub project"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Open a web browser and navigate to the MCP Inspector UI.\nThe default address is ",(0,s.jsx)(o.code,{children:"http://localhost:6274"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsx)(o.p,{children:"In the MCP Inspector UI, enter the connection details for your Langflow project's MCP server:"}),"\n",(0,s.jsxs)(o.ul,{children:["\n",(0,s.jsxs)(o.li,{children:[(0,s.jsx)(o.strong,{children:"Transport Type"}),": Select ",(0,s.jsx)(o.strong,{children:"SSE"}),"."]}),"\n",(0,s.jsxs)(o.li,{children:[(0,s.jsx)(o.strong,{children:"URL"}),": Enter the Langflow MCP server's ",(0,s.jsx)(o.code,{children:"sse"})," endpoint. For example: ",(0,s.jsx)(o.code,{children:"http://localhost:7860/api/v1/mcp/project/d359cbd4-6fa2-4002-9d53-fa05c645319c/sse"})]}),"\n"]}),"\n",(0,s.jsxs)(o.p,{children:["If you've ",(0,s.jsx)(o.a,{href:"#authentication",children:"configured authentication for your MCP server"}),", fill out the following additional fields:"]}),"\n",(0,s.jsxs)(o.ul,{children:["\n",(0,s.jsxs)(o.li,{children:[(0,s.jsx)(o.strong,{children:"Transport Type"}),": Select ",(0,s.jsx)(o.strong,{children:"STDIO"}),"."]}),"\n",(0,s.jsxs)(o.li,{children:[(0,s.jsx)(o.strong,{children:"Command"}),": ",(0,s.jsx)(o.code,{children:"uvx"})]}),"\n",(0,s.jsxs)(o.li,{children:[(0,s.jsx)(o.strong,{children:"Arguments"}),": Enter the following list of arguments, separated by spaces. Replace the values for ",(0,s.jsx)(o.code,{children:"YOUR_API_KEY"}),", ",(0,s.jsx)(o.code,{children:"LANGFLOW_SERVER_ADDRESS"}),", and ",(0,s.jsx)(o.code,{children:"PROJECT_ID"})," with the values from your Langflow MCP server. For example:"]}),"\n"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"mcp-proxy ",props:{style:{color:"#FFA657"}}},{content:"--headers ",props:{style:{color:"#79C0FF"}}},{content:"x-api-key YOUR_API_KEY http://LANGFLOW_SERVER_ADDRESS/api/v1/mcp/project/PROJECT_ID/sse",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Click ",(0,s.jsx)(o.strong,{children:"Connect"}),"."]}),"\n",(0,s.jsxs)(o.p,{children:["If the connection was successful, you should see your project's flows in the ",(0,s.jsx)(o.strong,{children:"Tools"})," tab.\nFrom this tab, you can monitor how your flows are being registered as tools by MCP, as well as test the tools with custom input values."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["To quit MCP Inspector, press ",(0,s.jsx)("kbd",{children:"Control+C"})," in the same terminal window where you started it."]}),"\n"]}),"\n"]}),"\n","\n",(0,s.jsx)(o.h2,{id:"deploy-your-server-externally",children:"Deploy your MCP server externally"}),"\n",(0,s.jsxs)(o.p,{children:["By default, Langflow isn't exposed to the public internet.\nHowever, you can forward Langflow server traffic with a forwarding platform like ",(0,s.jsx)(o.a,{href:"https://ngrok.com/docs/getting-started/",children:"ngrok"})," or ",(0,s.jsx)(o.a,{href:"https://docs.zrok.io/docs/getting-started",children:"zrok"}),"."]}),"\n",(0,s.jsxs)(o.p,{children:["The following procedure uses ngrok, but you can use any similar reverse proxy or forwarding platform.\nThis procedure also assumes that you're using the default Langflow listening address ",(0,s.jsx)(o.code,{children:"http://localhost:7860"})," (",(0,s.jsx)(o.code,{children:"http://localhost:7868"})," if using Langflow for Desktop)."]}),"\n",(0,s.jsxs)(o.ol,{children:["\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Sign up for an ",(0,s.jsx)(o.a,{href:"https://dashboard.ngrok.com/signup",children:"ngrok account"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:[(0,s.jsx)(o.a,{href:"https://ngrok.com/docs/getting-started/#1-install-ngrok",children:"Install ngrok"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Copy your ",(0,s.jsx)(o.a,{href:"https://dashboard.ngrok.com/get-started/your-authtoken",children:"ngrok authtoken"})," and use it to authenticate your local ngrok server:"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"ngrok ",props:{style:{color:"#FFA657"}}},{content:"config add-authtoken NGROK_TOKEN",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsxs)(o.p,{children:["Replace ",(0,s.jsx)(o.code,{children:"NGROK_TOKEN"})," with your ngrok authtoken."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsx)(o.p,{children:"Use ngrok to expose your Langflow server to the public internet:"}),"\n",(0,s.jsx)(u.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"ngrok ",props:{style:{color:"#FFA657"}}},{content:"http http://localhost:",props:{style:{color:"#A5D6FF"}}},{content:"7860",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsxs)(o.p,{children:["The ngrok session starts in your terminal and deploys an ephemeral domain with no authentication.\nTo add authentication or deploy a static domain, see the ",(0,s.jsx)(o.a,{href:"https://ngrok.com/docs/",children:"ngrok documentation"}),"."]}),"\n",(0,s.jsxs)(o.p,{children:["The ",(0,s.jsx)(o.code,{children:"Forwarding"})," row displays the forwarding address for your Langflow server:"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"Forwarding https://94b1-76-64-171-14.ngrok-free.app -> http://localhost:7860",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(o.p,{children:"The forwarding address is acting as a reverse proxy for your Langflow server."}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["From the Langflow dashboard, select the project that contains the flows you want to serve as tools, and then click the ",(0,s.jsx)(o.strong,{children:"MCP Server"})," tab."]}),"\n",(0,s.jsx)(o.p,{children:"Note that the code template now contains your ngrok forwarding address instead of the localhost address:"}),"\n",(0,s.jsx)(u.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "mcpServers"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "PROJECT_NAME"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "command"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"uvx"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "args"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "mcp-proxy"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "https://94b1-73-64-171-14.ngrok-free.app/api/v1/mcp/project/fdbc12af-0dd4-43dc-b9ce-c324d1ce5cd1/sse"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Complete the steps in ",(0,s.jsx)(o.a,{href:"#connect-clients-to-use-the-servers-actions",children:"Connect clients to Langflow's MCP server"})," using the ngrok forwarding address."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(o.p,{children:"Your MCP client is now connected to your project's MCP server over the public internet."}),"\n",(0,s.jsx)(o.p,{children:"If using Cursor, your conversations are the same as they are on your local host:"}),"\n",(0,s.jsx)(u.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{}}]},{tokens:[{content:' "input_value": "What job experience does Emily have?"',props:{}}]},{tokens:[{content:"}",props:{}}]},{tokens:[{content:"Result:",props:{}}]},{tokens:[{content:"What job experience does Emily have?",props:{}}]},{tokens:[{content:"Emily J. Wilson has the following job experience:",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(o.p,{children:"You can use the ngrok console output to monitor requests for your project's endpoint:"}),"\n",(0,s.jsx)(u.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"16:35:48.566 EDT GET /api/v1/mcp/project/fdbc12af-0dd4-43dc-b9ce-c324d1ce5cd1 200 OK",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(o.h2,{id:"troubleshooting-mcp-server",children:"Troubleshooting MCP server"}),"\n",(0,s.jsxs)(o.p,{children:["If Claude for Desktop is not using your server's tools correctly, you may need to explicitly define the path to your local ",(0,s.jsx)(o.code,{children:"uvx"})," or ",(0,s.jsx)(o.code,{children:"npx"})," executable file in the ",(0,s.jsx)(o.code,{children:"claude_desktop_config.json"})," configuration file."]}),"\n",(0,s.jsxs)(o.ol,{children:["\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["To find your UVX path, run ",(0,s.jsx)(o.code,{children:"which uvx"}),".\nTo find your NPX path, run ",(0,s.jsx)(o.code,{children:"which npx"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Copy the path, and then replace ",(0,s.jsx)(o.code,{children:"PATH_TO_UVX"})," or ",(0,s.jsx)(o.code,{children:"PATH_TO_NPX"})," in your ",(0,s.jsx)(o.code,{children:"claude_desktop_config.json"})," file."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(l.A,{children:[(0,s.jsx)(i.A,{value:"uvx",label:"uvx",default:!0,children:(0,s.jsx)(u.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "mcpServers"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "PROJECT_NAME"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "command"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"PATH_TO_UVX"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "args"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "mcp-proxy"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "http://LANGFLOW_SERVER_ADDRESS/api/v1/mcp/project/PROJECT_ID/sse"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})}),(0,s.jsx)(i.A,{value:"npx",label:"npx",children:(0,s.jsx)(u.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "mcpServers"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "PROJECT_NAME"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "command"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"PATH_TO_NPX"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "args"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "-y"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "supergateway"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "--sse"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "http://LANGFLOW_SERVER_ADDRESS/api/v1/mcp/project/PROJECT_ID/sse"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]})})]})]})}function y(e={}){const{wrapper:o}={...(0,r.R)(),...e.components};return o?(0,s.jsx)(o,{...e,children:(0,s.jsx)(g,{...e})}):g(e)}function j(e,o){throw new Error("Expected "+(o?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},79329:(e,o,n)=>{n.d(o,{A:()=>c});n(96540);var t=n(18215);const s={tabItem:"tabItem_Ymn6"};var r=n(74848);function c(e){let{children:o,hidden:n,className:c}=e;return(0,r.jsx)("div",{role:"tabpanel",className:(0,t.A)(s.tabItem,c),hidden:n,children:o})}},84443:(e,o,n)=>{n.d(o,{A:()=>r});n(96540);var t=n(64058),s=n(74848);function r(e){let{name:o,...n}=e;const r=t[o];return r?(0,s.jsx)(r,{...n}):null}},95288:(e,o,n)=>{n.d(o,{A:()=>t});const t=n.p+"assets/images/mcp-server-api-key-5a39d0de10227381df269c4595d4d896.png"}}]);
\ No newline at end of file
diff --git a/assets/js/fdefa9a8.392bba14.js b/assets/js/fdefa9a8.3edb89da.js
similarity index 99%
rename from assets/js/fdefa9a8.392bba14.js
rename to assets/js/fdefa9a8.3edb89da.js
index d23a9cd032..76e8778bba 100644
--- a/assets/js/fdefa9a8.392bba14.js
+++ b/assets/js/fdefa9a8.3edb89da.js
@@ -1 +1 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[7453],{8886:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/component-url-regex-8cae4a8d6491d360115ad552f0c467d3.png"},33972:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/component-api-request-chat-output-6dd0e176265482c2dca9899f0a70047a.png"},39245:(e,t,s)=>{s.r(t),s.d(t,{CH:()=>a,assets:()=>h,chCodeConfig:()=>x,contentTitle:()=>o,default:()=>u,frontMatter:()=>l,metadata:()=>n,toc:()=>j});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 r=s(74848),d=s(28453),i=s(24754),c=s(84443);const l={title:"Data",slug:"/components-data"},o="Data components in Langflow",h={},a={annotations:i.hk,Code:i.Cy},x={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},j=[{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:"Directory",id:"directory",level:2},{value:"File",id:"file",level:2},{value:"Supported File Types",id:"supported-file-types",level:3},{value:"SQL Query",id:"sql-query",level:2},{value:"URL",id:"url",level:2},{value:"Webhook",id:"webhook",level:2},{value:"Legacy components",id:"legacy-components",level:2},{value:"Gmail Loader",id:"gmail-loader",level:3},{value:"Google Drive Loader",id:"google-drive-loader",level:3},{value:"Google Drive Search",id:"google-drive-search",level:3}];function p(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,d.R)(),...e.components},{Details:n}=t;return a||m("CH",!1),a.Code||m("CH.Code",!0),n||m("Details",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"data-components-in-langflow",children:"Data components in Langflow"})}),"\n",(0,r.jsx)(t.p,{children:"Data components load data from a source into your flow."}),"\n",(0,r.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,r.jsx)(t.h2,{id:"use-a-data-component-in-a-flow",children:"Use a data component in a flow"}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"URL"})," data component loads content from a list of URLs."]}),"\n",(0,r.jsxs)(t.p,{children:["In the component's ",(0,r.jsx)(t.strong,{children:"URLs"})," field, enter the URL you want to load. To add multiple URL fields, click ",(0,r.jsx)(c.A,{name:"Plus","aria-label":"Add"}),"."]}),"\n",(0,r.jsxs)(t.p,{children:["Alternatively, connect a component that outputs the ",(0,r.jsx)(t.code,{children:"Message"})," type, like the ",(0,r.jsx)(t.strong,{children:"Chat Input"})," component, to supply your URLs from a component."]}),"\n",(0,r.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,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"URL component in a data ingestion pipeline",src:s(80352).A+"",width:"2306",height:"1632"})}),"\n",(0,r.jsx)(t.h2,{id:"api-request",children:"API Request"}),"\n",(0,r.jsx)(t.p,{children:"This component makes HTTP requests using URLs or cURL commands."}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["To use this component in a flow, connect the ",(0,r.jsx)(t.strong,{children:"Data"})," output to a component that accepts the input.\nFor example, connect the ",(0,r.jsx)(t.strong,{children:"API Request"})," component to a ",(0,r.jsx)(t.strong,{children:"Chat Output"})," component."]}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"API request into a chat output component",src:s(33972).A+"",width:"1742",height:"1248"})}),"\n",(0,r.jsxs)(t.ol,{start:"2",children:["\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["In the API component's ",(0,r.jsx)(t.strong,{children:"URLs"})," field, enter the endpoint for your request.\nThis example uses ",(0,r.jsx)(t.code,{children:"https://dummy-json.mock.beeceptor.com/posts"}),", which is a list of technology blog posts."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["In the ",(0,r.jsx)(t.strong,{children:"Method"})," field, enter the type of request.\nThis example uses GET to retrieve a list of blog posts.\nThe component also supports POST, PATCH, PUT, and DELETE."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Optionally, enable the ",(0,r.jsx)(t.strong,{children:"Use cURL"})," button to create a field for pasting curl requests.\nThe equivalent call in this example is ",(0,r.jsx)(t.code,{children:"curl -v https://dummy-json.mock.beeceptor.com/posts"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Click ",(0,r.jsx)(t.strong,{children:"Playground"}),", and then click ",(0,r.jsx)(t.strong,{children:"Run Flow"}),".\nYour request returns a list of blog posts in the ",(0,r.jsx)(t.code,{children:"result"})," field."]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"urls"}),(0,r.jsx)(t.td,{children:"URLs"}),(0,r.jsx)(t.td,{children:"Enter one or more URLs, separated by commas."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"curl"}),(0,r.jsx)(t.td,{children:"cURL"}),(0,r.jsx)(t.td,{children:"Paste a curl command to populate the dictionary fields for headers and body."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"method"}),(0,r.jsx)(t.td,{children:"Method"}),(0,r.jsx)(t.td,{children:"The HTTP method to use."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"use_curl"}),(0,r.jsx)(t.td,{children:"Use cURL"}),(0,r.jsx)(t.td,{children:"Enable cURL mode to populate fields from a cURL command."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"query_params"}),(0,r.jsx)(t.td,{children:"Query Parameters"}),(0,r.jsx)(t.td,{children:"The query parameters to append to the URL."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"body"}),(0,r.jsx)(t.td,{children:"Body"}),(0,r.jsxs)(t.td,{children:["The body to send with the request as a dictionary (for ",(0,r.jsx)(t.code,{children:"POST"}),", ",(0,r.jsx)(t.code,{children:"PATCH"}),", ",(0,r.jsx)(t.code,{children:"PUT"}),")."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"headers"}),(0,r.jsx)(t.td,{children:"Headers"}),(0,r.jsx)(t.td,{children:"The headers to send with the request as a dictionary."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"timeout"}),(0,r.jsx)(t.td,{children:"Timeout"}),(0,r.jsx)(t.td,{children:"The timeout to use for the request."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"follow_redirects"}),(0,r.jsx)(t.td,{children:"Follow Redirects"}),(0,r.jsx)(t.td,{children:"Whether to follow http redirects."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"save_to_file"}),(0,r.jsx)(t.td,{children:"Save to File"}),(0,r.jsx)(t.td,{children:"Save the API response to a temporary file."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"include_httpx_metadata"}),(0,r.jsx)(t.td,{children:"Include HTTPx Metadata"}),(0,r.jsxs)(t.td,{children:["Include properties such as ",(0,r.jsx)(t.code,{children:"headers"}),", ",(0,r.jsx)(t.code,{children:"status_code"}),", ",(0,r.jsx)(t.code,{children:"response_headers"}),", and ",(0,r.jsx)(t.code,{children:"redirection_history"})," in the output."]})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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 result of the API requests. Returns a Data object containing source URL and results."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"dataframe"}),(0,r.jsx)(t.td,{children:"DataFrame"}),(0,r.jsx)(t.td,{children:"Converts the API response data into a tabular DataFrame format."})]})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"directory",children:"Directory"}),"\n",(0,r.jsx)(t.p,{children:"This component recursively loads files from a directory, with options for file types, depth, and concurrency."}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Input"}),(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:"path"}),(0,r.jsx)(t.td,{children:"MessageTextInput"}),(0,r.jsx)(t.td,{children:"The path to the directory to load files from."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"types"}),(0,r.jsx)(t.td,{children:"MessageTextInput"}),(0,r.jsx)(t.td,{children:"The file types to load (leave empty to load all types)."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"depth"}),(0,r.jsx)(t.td,{children:"IntInput"}),(0,r.jsx)(t.td,{children:"The depth to search for files."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"max_concurrency"}),(0,r.jsx)(t.td,{children:"IntInput"}),(0,r.jsx)(t.td,{children:"The maximum concurrency for loading files."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"load_hidden"}),(0,r.jsx)(t.td,{children:"BoolInput"}),(0,r.jsx)(t.td,{children:"If true, hidden files are loaded."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"recursive"}),(0,r.jsx)(t.td,{children:"BoolInput"}),(0,r.jsx)(t.td,{children:"If true, the search is recursive."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"silent_errors"}),(0,r.jsx)(t.td,{children:"BoolInput"}),(0,r.jsx)(t.td,{children:"If true, errors do not raise an exception."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"use_multithreading"}),(0,r.jsx)(t.td,{children:"BoolInput"}),(0,r.jsx)(t.td,{children:"If true, multithreading is used."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Output"}),(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.jsx)(t.td,{children:"The loaded file data from the directory."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"dataframe"}),(0,r.jsx)(t.td,{children:"DataFrame"}),(0,r.jsx)(t.td,{children:"The loaded file data in tabular DataFrame format."})]})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"file",children:"File"}),"\n",(0,r.jsxs)(t.p,{children:["This component loads and parses files of various supported formats and converts the content into a ",(0,r.jsx)(t.a,{href:"/concepts-objects",children:"Data"})," object. It supports multiple file types and provides options for parallel processing and error handling."]}),"\n",(0,r.jsx)(t.p,{children:"To load a document, follow these steps:"}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["Click the ",(0,r.jsx)(t.strong,{children:"Select files"})," button."]}),"\n",(0,r.jsxs)(t.li,{children:["Select a local file or a file loaded with ",(0,r.jsx)(t.a,{href:"/concepts-file-management",children:"File management"}),", and then click ",(0,r.jsx)(t.strong,{children:"Select file"}),"."]}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:"The loaded file name appears in the component."}),"\n",(0,r.jsxs)(t.p,{children:["The default maximum supported file size is 100 MB.\nTo modify this value, see ",(0,r.jsx)(t.a,{href:"/environment-variables#LANGFLOW_MAX_FILE_SIZE_UPLOAD",children:"--max-file-size-upload"}),"."]}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"path"}),(0,r.jsx)(t.td,{children:"Files"}),(0,r.jsx)(t.td,{children:"The path to files to load. Supports individual files or bundled archives."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"file_path"}),(0,r.jsx)(t.td,{children:"Server File Path"}),(0,r.jsxs)(t.td,{children:["A Data object with a ",(0,r.jsx)(t.code,{children:"file_path"})," property pointing to the server file or a Message object with a path to the file. Supersedes 'Path' but supports the same file types."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"separator"}),(0,r.jsx)(t.td,{children:"Separator"}),(0,r.jsx)(t.td,{children:"The separator to use between multiple outputs in Message format."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"silent_errors"}),(0,r.jsx)(t.td,{children:"Silent Errors"}),(0,r.jsx)(t.td,{children:"If true, errors do not raise an exception."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"delete_server_file_after_processing"}),(0,r.jsx)(t.td,{children:"Delete Server File After Processing"}),(0,r.jsx)(t.td,{children:"If true, the Server File Path is deleted after processing."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"ignore_unsupported_extensions"}),(0,r.jsx)(t.td,{children:"Ignore Unsupported Extensions"}),(0,r.jsx)(t.td,{children:"If true, files with unsupported extensions are not processed."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"ignore_unspecified_files"}),(0,r.jsx)(t.td,{children:"Ignore Unspecified Files"}),(0,r.jsxs)(t.td,{children:["If true, ",(0,r.jsx)(t.code,{children:"Data"})," with no ",(0,r.jsx)(t.code,{children:"file_path"})," property is ignored."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"use_multithreading"}),(0,r.jsx)(t.td,{children:"[Deprecated] Use Multithreading"}),(0,r.jsxs)(t.td,{children:["Set 'Processing Concurrency' greater than ",(0,r.jsx)(t.code,{children:"1"})," to enable multithreading. This option is deprecated."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"concurrency_multithreading"}),(0,r.jsx)(t.td,{children:"Processing Concurrency"}),(0,r.jsx)(t.td,{children:"When multiple files are being processed, the number of files to process concurrently. Default is 1. Values greater than 1 enable parallel processing for 2 or more files."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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.jsxs)(t.td,{children:["The parsed content of the file as a ",(0,r.jsx)(t.a,{href:"/concepts-objects",children:"Data"})," object."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"dataframe"}),(0,r.jsx)(t.td,{children:"DataFrame"}),(0,r.jsxs)(t.td,{children:["The file content as a ",(0,r.jsx)(t.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"})," object."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"message"}),(0,r.jsx)(t.td,{children:"Message"}),(0,r.jsxs)(t.td,{children:["The file content as a ",(0,r.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})," object."]})]})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"supported-file-types",children:"Supported File Types"}),"\n",(0,r.jsx)(t.p,{children:"Text files:"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".txt"})," - Text files"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".md"}),", ",(0,r.jsx)(t.code,{children:".mdx"})," - Markdown files"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".csv"})," - CSV files"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".json"})," - JSON files"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".yaml"}),", ",(0,r.jsx)(t.code,{children:".yml"})," - YAML files"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".xml"})," - XML files"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".html"}),", ",(0,r.jsx)(t.code,{children:".htm"})," - HTML files"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".pdf"})," - PDF files"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".docx"})," - Word documents"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".py"})," - Python files"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".sh"})," - Shell scripts"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".sql"})," - SQL files"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".js"})," - JavaScript files"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".ts"}),", ",(0,r.jsx)(t.code,{children:".tsx"})," - TypeScript files"]}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:"Archive formats (for bundling multiple files):"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".zip"})," - ZIP archives"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".tar"})," - TAR archives"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".tgz"})," - Gzipped TAR archives"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".bz2"})," - Bzip2 compressed files"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".gz"})," - Gzip compressed files"]}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"sql-query",children:"SQL Query"}),"\n",(0,r.jsx)(t.p,{children:"This component executes SQL queries on a specified database."}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"query"}),(0,r.jsx)(t.td,{children:"Query"}),(0,r.jsx)(t.td,{children:"The SQL query to execute."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"database_url"}),(0,r.jsx)(t.td,{children:"Database URL"}),(0,r.jsx)(t.td,{children:"The URL of the database."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"include_columns"}),(0,r.jsx)(t.td,{children:"Include Columns"}),(0,r.jsx)(t.td,{children:"Include columns in the result."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"passthrough"}),(0,r.jsx)(t.td,{children:"Passthrough"}),(0,r.jsx)(t.td,{children:"If an error occurs, return the query instead of raising an exception."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"add_error"}),(0,r.jsx)(t.td,{children:"Add Error"}),(0,r.jsx)(t.td,{children:"Add the error to the result."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"result"}),(0,r.jsx)(t.td,{children:"Result"}),(0,r.jsx)(t.td,{children:"The result of the SQL query execution."})]})})]})]}),"\n",(0,r.jsx)(t.h2,{id:"url",children:"URL"}),"\n",(0,r.jsx)(t.p,{children:"This component fetches content from one or more URLs, processes the content, and returns it in various formats. It supports output in plain text or raw HTML."}),"\n",(0,r.jsxs)(t.p,{children:["In the component's ",(0,r.jsx)(t.strong,{children:"URLs"})," field, enter the URL you want to load. To add multiple URL fields, click ",(0,r.jsx)(c.A,{name:"Plus","aria-label":"Add"}),"."]}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["To use this component in a flow, connect the ",(0,r.jsx)(t.strong,{children:"DataFrame"})," output to a component that accepts the input.\nFor example, connect the ",(0,r.jsx)(t.strong,{children:"URL"})," component to a ",(0,r.jsx)(t.strong,{children:"Chat Output"})," component."]}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"URL request into a chat output component",src:s(55228).A+"",width:"1578",height:"1086"})}),"\n",(0,r.jsxs)(t.ol,{start:"2",children:["\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["In the URL component's ",(0,r.jsx)(t.strong,{children:"URLs"})," field, enter the URL for your request.\nThis example uses ",(0,r.jsx)(t.code,{children:"langflow.org"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Optionally, in the ",(0,r.jsx)(t.strong,{children:"Max Depth"})," field, enter how many pages away from the initial URL you want to crawl.\nSelect ",(0,r.jsx)(t.code,{children:"1"})," to crawl only the page specified in the ",(0,r.jsx)(t.strong,{children:"URLs"})," field.\nSelect ",(0,r.jsx)(t.code,{children:"2"})," to crawl all pages linked from that page.\nThe component crawls by link traversal, not by URL path depth."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Click ",(0,r.jsx)(t.strong,{children:"Playground"}),", and then click ",(0,r.jsx)(t.strong,{children:"Run Flow"}),".\nThe text contents of the URL are returned to the Playground as a structured DataFrame."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["In the ",(0,r.jsx)(t.strong,{children:"URL"})," component, change the output port to ",(0,r.jsx)(t.strong,{children:"Message"}),", and then run the flow again.\nThe text contents of the URL are returned as unstructured raw text, which you can extract patterns from with the ",(0,r.jsx)(t.strong,{children:"Regex Extractor"})," tool."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Connect the ",(0,r.jsx)(t.strong,{children:"URL"})," component to a ",(0,r.jsx)(t.strong,{children:"Regex Extractor"})," and ",(0,r.jsx)(t.strong,{children:"Chat Output"}),"."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Regex extractor connected to url component",src:s(8886).A+"",width:"1606",height:"848"})}),"\n",(0,r.jsxs)(t.ol,{start:"7",children:["\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Regex Extractor"})," tool, enter a pattern to extract text from the ",(0,r.jsx)(t.strong,{children:"URL"}),' component\'s raw output.\nThis example extracts the first paragraph from the "In the News" section of ',(0,r.jsx)(t.code,{children:"https://en.wikipedia.org/wiki/Main_Page"}),"."]}),"\n"]}),"\n",(0,r.jsx)(a.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"In the news\\s*\\n(.*?)(?=\\n\\n)",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(t.p,{children:"Result:"}),"\n",(0,r.jsx)(a.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"Peruvian writer and Nobel Prize in Literature laureate Mario Vargas Llosa (pictured) dies at the age of 89.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"urls"}),(0,r.jsx)(t.td,{children:"URLs"}),(0,r.jsx)(t.td,{children:"Click the '+' button to enter one or more URLs to crawl recursively."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"max_depth"}),(0,r.jsx)(t.td,{children:"Max Depth"}),(0,r.jsx)(t.td,{children:"Controls how many 'clicks' away from the initial page the crawler will go."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"prevent_outside"}),(0,r.jsx)(t.td,{children:"Prevent Outside"}),(0,r.jsx)(t.td,{children:"If enabled, only crawls URLs within the same domain as the root URL."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"use_async"}),(0,r.jsx)(t.td,{children:"Use Async"}),(0,r.jsx)(t.td,{children:"If enabled, uses asynchronous loading which can be significantly faster but might use more system resources."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"format"}),(0,r.jsx)(t.td,{children:"Output Format"}),(0,r.jsxs)(t.td,{children:["Output Format. Use ",(0,r.jsx)(t.code,{children:"Text"})," to extract the text from the HTML or ",(0,r.jsx)(t.code,{children:"HTML"})," for the raw HTML content."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"timeout"}),(0,r.jsx)(t.td,{children:"Timeout"}),(0,r.jsx)(t.td,{children:"Timeout for the request in seconds."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"headers"}),(0,r.jsx)(t.td,{children:"Headers"}),(0,r.jsx)(t.td,{children:"The headers to send with the request."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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.jsxs)(t.td,{children:["A list of ",(0,r.jsx)(t.a,{href:"/concepts-objects",children:"Data"})," objects containing fetched content and metadata."]})]}),(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 fetched content as formatted text."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"dataframe"}),(0,r.jsx)(t.td,{children:"DataFrame"}),(0,r.jsxs)(t.td,{children:["The content formatted as a ",(0,r.jsx)(t.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"})," object."]})]})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"webhook",children:"Webhook"}),"\n",(0,r.jsx)(t.p,{children:"This component defines a webhook trigger that runs a flow when it receives an HTTP POST request."}),"\n",(0,r.jsxs)(t.p,{children:["If the input is not valid JSON, the component wraps it in a ",(0,r.jsx)(t.code,{children:"payload"})," object so that it can be processed and still trigger the flow. The component does not require an API key."]}),"\n",(0,r.jsxs)(t.p,{children:["When a ",(0,r.jsx)(t.strong,{children:"Webhook"})," component is added to the workspace, a new ",(0,r.jsx)(t.strong,{children:"Webhook cURL"})," tab becomes available in the ",(0,r.jsx)(t.strong,{children:"API"})," pane that contains an HTTP POST request for triggering the webhook component. For example:"]}),"\n",(0,r.jsx)(a.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "http://127.0.0.1:7860/api/v1/webhook/**YOUR_FLOW_ID**" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:"'Content-Type: application/json'",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:'\'{"any": "data"}\'',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,r.jsx)(t.p,{children:"To test the webhook component:"}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["Add a ",(0,r.jsx)(t.strong,{children:"Webhook"})," component to the flow."]}),"\n",(0,r.jsxs)(t.li,{children:["Connect the ",(0,r.jsx)(t.strong,{children:"Webhook"})," component's ",(0,r.jsx)(t.strong,{children:"Data"})," output to the ",(0,r.jsx)(t.strong,{children:"Data"})," input of a ",(0,r.jsx)(t.a,{href:"/components-processing#parser",children:"Parser"})," component."]}),"\n",(0,r.jsxs)(t.li,{children:["Connect the ",(0,r.jsx)(t.strong,{children:"Parser"})," component's ",(0,r.jsx)(t.strong,{children:"Parsed Text"})," output to the ",(0,r.jsx)(t.strong,{children:"Text"})," input of a ",(0,r.jsx)(t.a,{href:"/components-io#chat-output",children:"Chat Output"})," component."]}),"\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Parser"})," component, under ",(0,r.jsx)(t.strong,{children:"Mode"}),", select ",(0,r.jsx)(t.strong,{children:"Stringify"}),".\nThis mode passes the webhook's data as a string for the ",(0,r.jsx)(t.strong,{children:"Chat Output"})," component to print."]}),"\n",(0,r.jsxs)(t.li,{children:["To send a POST request, copy the code from the ",(0,r.jsx)(t.strong,{children:"Webhook cURL"})," tab in the ",(0,r.jsx)(t.strong,{children:"API"})," pane and paste it into a terminal."]}),"\n",(0,r.jsx)(t.li,{children:"Send the POST request."}),"\n",(0,r.jsxs)(t.li,{children:["Open the ",(0,r.jsx)(t.strong,{children:"Playground"}),".\nYour JSON data is posted to the ",(0,r.jsx)(t.strong,{children:"Chat Output"})," component, which indicates that the webhook component is correctly triggering the flow."]}),"\n"]}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"data"}),(0,r.jsx)(t.td,{children:"Payload"}),(0,r.jsx)(t.td,{children:"Receives a payload from external systems through HTTP POST requests."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"curl"}),(0,r.jsx)(t.td,{children:"cURL"}),(0,r.jsx)(t.td,{children:"The cURL command template for making requests to this webhook."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"endpoint"}),(0,r.jsx)(t.td,{children:"Endpoint"}),(0,r.jsx)(t.td,{children:"The endpoint URL where this webhook receives requests."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"output_data"}),(0,r.jsx)(t.td,{children:"Data"}),(0,r.jsxs)(t.td,{children:["Outputs processed data from the webhook input, and returns an empty ",(0,r.jsx)(t.a,{href:"/concepts-objects",children:"Data"})," object if no input is provided. If the input is not valid JSON, the component wraps it in a ",(0,r.jsx)(t.code,{children:"payload"})," object."]})]})})]})]}),"\n",(0,r.jsx)(t.h2,{id:"legacy-components",children:"Legacy components"}),"\n",(0,r.jsx)(t.p,{children:"Legacy components are available for use but are no longer supported."}),"\n",(0,r.jsx)(t.h3,{id:"gmail-loader",children:"Gmail Loader"}),"\n",(0,r.jsx)(t.p,{children:"This component loads emails from Gmail using provided credentials and filters."}),"\n",(0,r.jsxs)(t.p,{children:["For more information about creating a service account JSON, see ",(0,r.jsx)(t.a,{href:"https://developers.google.com/identity/protocols/oauth2/service-account",children:"Service Account JSON"}),"."]}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Input"}),(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:"json_string"}),(0,r.jsx)(t.td,{children:"SecretStrInput"}),(0,r.jsx)(t.td,{children:"A JSON string containing OAuth 2.0 access token information for service account access."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"label_ids"}),(0,r.jsx)(t.td,{children:"MessageTextInput"}),(0,r.jsx)(t.td,{children:"A comma-separated list of label IDs to filter emails."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"max_results"}),(0,r.jsx)(t.td,{children:"MessageTextInput"}),(0,r.jsx)(t.td,{children:"The maximum number of emails to load."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Output"}),(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:"data"}),(0,r.jsx)(t.td,{children:"Data"}),(0,r.jsx)(t.td,{children:"The loaded email data."})]})})]})]}),"\n",(0,r.jsx)(t.h3,{id:"google-drive-loader",children:"Google Drive Loader"}),"\n",(0,r.jsx)(t.p,{children:"This component loads documents from Google Drive using provided credentials and a single document ID."}),"\n",(0,r.jsxs)(t.p,{children:["For more information about creating a service account JSON, see ",(0,r.jsx)(t.a,{href:"https://developers.google.com/identity/protocols/oauth2/service-account",children:"Service Account JSON"}),"."]}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Input"}),(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:"json_string"}),(0,r.jsx)(t.td,{children:"SecretStrInput"}),(0,r.jsx)(t.td,{children:"A JSON string containing OAuth 2.0 access token information for service account access."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"document_id"}),(0,r.jsx)(t.td,{children:"MessageTextInput"}),(0,r.jsx)(t.td,{children:"A single Google Drive document ID."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Output"}),(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:"docs"}),(0,r.jsx)(t.td,{children:"Data"}),(0,r.jsx)(t.td,{children:"The loaded document data."})]})})]})]}),"\n",(0,r.jsx)(t.h3,{id:"google-drive-search",children:"Google Drive Search"}),"\n",(0,r.jsx)(t.p,{children:"This component searches Google Drive files using provided credentials and query parameters."}),"\n",(0,r.jsxs)(t.p,{children:["For more information about creating a service account JSON, see ",(0,r.jsx)(t.a,{href:"https://developers.google.com/identity/protocols/oauth2/service-account",children:"Service Account JSON"}),"."]}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Input"}),(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:"token_string"}),(0,r.jsx)(t.td,{children:"SecretStrInput"}),(0,r.jsx)(t.td,{children:"A JSON string containing OAuth 2.0 access token information for service account access."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"query_item"}),(0,r.jsx)(t.td,{children:"DropdownInput"}),(0,r.jsx)(t.td,{children:"The field to query."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"valid_operator"}),(0,r.jsx)(t.td,{children:"DropdownInput"}),(0,r.jsx)(t.td,{children:"The operator to use in the query."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"search_term"}),(0,r.jsx)(t.td,{children:"MessageTextInput"}),(0,r.jsx)(t.td,{children:"The value to search for in the specified query item."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"query_string"}),(0,r.jsx)(t.td,{children:"MessageTextInput"}),(0,r.jsx)(t.td,{children:"The query string used for searching."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Output"}),(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:"doc_urls"}),(0,r.jsx)(t.td,{children:"List[str]"}),(0,r.jsx)(t.td,{children:"The URLs of the found documents."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"doc_ids"}),(0,r.jsx)(t.td,{children:"List[str]"}),(0,r.jsx)(t.td,{children:"The IDs of the found documents."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"doc_titles"}),(0,r.jsx)(t.td,{children:"List[str]"}),(0,r.jsx)(t.td,{children:"The titles of the found documents."})]}),(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 document titles and URLs in a structured format."})]})]})]})]})]})}function u(e={}){const{wrapper:t}={...(0,d.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(p,{...e})}):p(e)}function m(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},55228:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/component-url-11d5306d5c7a52a376fab32344eab7a2.png"},80352:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/url-component-fb712df73581345c0f344013ce6ff2fd.png"},84443:(e,t,s)=>{s.d(t,{A:()=>d});s(96540);var n=s(64058),r=s(74848);function d(e){let{name:t,...s}=e;const d=n[t];return d?(0,r.jsx)(d,{...s}):null}}}]);
\ No newline at end of file
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[7453],{8886:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/component-url-regex-8cae4a8d6491d360115ad552f0c467d3.png"},33972:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/component-api-request-chat-output-6dd0e176265482c2dca9899f0a70047a.png"},39245:(e,t,s)=>{s.r(t),s.d(t,{CH:()=>a,assets:()=>h,chCodeConfig:()=>x,contentTitle:()=>o,default:()=>u,frontMatter:()=>l,metadata:()=>n,toc:()=>j});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 r=s(74848),d=s(28453),i=s(24754),c=s(84443);const l={title:"Data",slug:"/components-data"},o="Data components in Langflow",h={},a={annotations:i.hk,Code:i.Cy},x={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},j=[{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:"Directory",id:"directory",level:2},{value:"File",id:"file",level:2},{value:"Supported File Types",id:"supported-file-types",level:3},{value:"SQL Query",id:"sql-query",level:2},{value:"URL",id:"url",level:2},{value:"Webhook",id:"webhook",level:2},{value:"Legacy components",id:"legacy-components",level:2},{value:"Gmail Loader",id:"gmail-loader",level:3},{value:"Google Drive Loader",id:"google-drive-loader",level:3},{value:"Google Drive Search",id:"google-drive-search",level:3}];function p(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,d.R)(),...e.components},{Details:n}=t;return a||m("CH",!1),a.Code||m("CH.Code",!0),n||m("Details",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"data-components-in-langflow",children:"Data components in Langflow"})}),"\n",(0,r.jsx)(t.p,{children:"Data components load data from a source into your flow."}),"\n",(0,r.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,r.jsx)(t.h2,{id:"use-a-data-component-in-a-flow",children:"Use a data component in a flow"}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"URL"})," data component loads content from a list of URLs."]}),"\n",(0,r.jsxs)(t.p,{children:["In the component's ",(0,r.jsx)(t.strong,{children:"URLs"})," field, enter the URL you want to load. To add multiple URL fields, click ",(0,r.jsx)(c.A,{name:"Plus","aria-label":"Add"}),"."]}),"\n",(0,r.jsxs)(t.p,{children:["Alternatively, connect a component that outputs the ",(0,r.jsx)(t.code,{children:"Message"})," type, like the ",(0,r.jsx)(t.strong,{children:"Chat Input"})," component, to supply your URLs from a component."]}),"\n",(0,r.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,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"URL component in a data ingestion pipeline",src:s(80352).A+"",width:"2306",height:"1632"})}),"\n",(0,r.jsx)(t.h2,{id:"api-request",children:"API Request"}),"\n",(0,r.jsx)(t.p,{children:"This component makes HTTP requests using URLs or cURL commands."}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["To use this component in a flow, connect the ",(0,r.jsx)(t.strong,{children:"Data"})," output to a component that accepts the input.\nFor example, connect the ",(0,r.jsx)(t.strong,{children:"API Request"})," component to a ",(0,r.jsx)(t.strong,{children:"Chat Output"})," component."]}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"API request into a chat output component",src:s(33972).A+"",width:"1742",height:"1248"})}),"\n",(0,r.jsxs)(t.ol,{start:"2",children:["\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["In the API component's ",(0,r.jsx)(t.strong,{children:"URLs"})," field, enter the endpoint for your request.\nThis example uses ",(0,r.jsx)(t.code,{children:"https://dummy-json.mock.beeceptor.com/posts"}),", which is a list of technology blog posts."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["In the ",(0,r.jsx)(t.strong,{children:"Method"})," field, enter the type of request.\nThis example uses GET to retrieve a list of blog posts.\nThe component also supports POST, PATCH, PUT, and DELETE."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Optionally, enable the ",(0,r.jsx)(t.strong,{children:"Use cURL"})," button to create a field for pasting curl requests.\nThe equivalent call in this example is ",(0,r.jsx)(t.code,{children:"curl -v https://dummy-json.mock.beeceptor.com/posts"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Click ",(0,r.jsx)(t.strong,{children:"Playground"}),", and then click ",(0,r.jsx)(t.strong,{children:"Run Flow"}),".\nYour request returns a list of blog posts in the ",(0,r.jsx)(t.code,{children:"result"})," field."]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"urls"}),(0,r.jsx)(t.td,{children:"URLs"}),(0,r.jsx)(t.td,{children:"Enter one or more URLs, separated by commas."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"curl"}),(0,r.jsx)(t.td,{children:"cURL"}),(0,r.jsx)(t.td,{children:"Paste a curl command to populate the dictionary fields for headers and body."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"method"}),(0,r.jsx)(t.td,{children:"Method"}),(0,r.jsx)(t.td,{children:"The HTTP method to use."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"use_curl"}),(0,r.jsx)(t.td,{children:"Use cURL"}),(0,r.jsx)(t.td,{children:"Enable cURL mode to populate fields from a cURL command."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"query_params"}),(0,r.jsx)(t.td,{children:"Query Parameters"}),(0,r.jsx)(t.td,{children:"The query parameters to append to the URL."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"body"}),(0,r.jsx)(t.td,{children:"Body"}),(0,r.jsxs)(t.td,{children:["The body to send with the request as a dictionary (for ",(0,r.jsx)(t.code,{children:"POST"}),", ",(0,r.jsx)(t.code,{children:"PATCH"}),", ",(0,r.jsx)(t.code,{children:"PUT"}),")."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"headers"}),(0,r.jsx)(t.td,{children:"Headers"}),(0,r.jsx)(t.td,{children:"The headers to send with the request as a dictionary."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"timeout"}),(0,r.jsx)(t.td,{children:"Timeout"}),(0,r.jsx)(t.td,{children:"The timeout to use for the request."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"follow_redirects"}),(0,r.jsx)(t.td,{children:"Follow Redirects"}),(0,r.jsx)(t.td,{children:"Whether to follow http redirects."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"save_to_file"}),(0,r.jsx)(t.td,{children:"Save to File"}),(0,r.jsx)(t.td,{children:"Save the API response to a temporary file."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"include_httpx_metadata"}),(0,r.jsx)(t.td,{children:"Include HTTPx Metadata"}),(0,r.jsxs)(t.td,{children:["Include properties such as ",(0,r.jsx)(t.code,{children:"headers"}),", ",(0,r.jsx)(t.code,{children:"status_code"}),", ",(0,r.jsx)(t.code,{children:"response_headers"}),", and ",(0,r.jsx)(t.code,{children:"redirection_history"})," in the output."]})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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 result of the API requests. Returns a Data object containing source URL and results."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"dataframe"}),(0,r.jsx)(t.td,{children:"DataFrame"}),(0,r.jsx)(t.td,{children:"Converts the API response data into a tabular DataFrame format."})]})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"directory",children:"Directory"}),"\n",(0,r.jsx)(t.p,{children:"This component recursively loads files from a directory, with options for file types, depth, and concurrency."}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Input"}),(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:"path"}),(0,r.jsx)(t.td,{children:"MessageTextInput"}),(0,r.jsx)(t.td,{children:"The path to the directory to load files from."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"types"}),(0,r.jsx)(t.td,{children:"MessageTextInput"}),(0,r.jsx)(t.td,{children:"The file types to load (leave empty to load all types)."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"depth"}),(0,r.jsx)(t.td,{children:"IntInput"}),(0,r.jsx)(t.td,{children:"The depth to search for files."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"max_concurrency"}),(0,r.jsx)(t.td,{children:"IntInput"}),(0,r.jsx)(t.td,{children:"The maximum concurrency for loading files."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"load_hidden"}),(0,r.jsx)(t.td,{children:"BoolInput"}),(0,r.jsx)(t.td,{children:"If true, hidden files are loaded."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"recursive"}),(0,r.jsx)(t.td,{children:"BoolInput"}),(0,r.jsx)(t.td,{children:"If true, the search is recursive."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"silent_errors"}),(0,r.jsx)(t.td,{children:"BoolInput"}),(0,r.jsx)(t.td,{children:"If true, errors do not raise an exception."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"use_multithreading"}),(0,r.jsx)(t.td,{children:"BoolInput"}),(0,r.jsx)(t.td,{children:"If true, multithreading is used."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Output"}),(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.jsx)(t.td,{children:"The loaded file data from the directory."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"dataframe"}),(0,r.jsx)(t.td,{children:"DataFrame"}),(0,r.jsx)(t.td,{children:"The loaded file data in tabular DataFrame format."})]})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"file",children:"File"}),"\n",(0,r.jsxs)(t.p,{children:["This component loads and parses files of various supported formats and converts the content into a ",(0,r.jsx)(t.a,{href:"/concepts-objects",children:"Data"})," object. It supports multiple file types and provides options for parallel processing and error handling."]}),"\n",(0,r.jsx)(t.p,{children:"To load a document, follow these steps:"}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["Click the ",(0,r.jsx)(t.strong,{children:"Select files"})," button."]}),"\n",(0,r.jsxs)(t.li,{children:["Select a local file or a file loaded with ",(0,r.jsx)(t.a,{href:"/concepts-file-management",children:"File management"}),", and then click ",(0,r.jsx)(t.strong,{children:"Select file"}),"."]}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:"The loaded file name appears in the component."}),"\n",(0,r.jsxs)(t.p,{children:["The default maximum supported file size is 100 MB.\nTo modify this value, see ",(0,r.jsx)(t.a,{href:"/environment-variables#LANGFLOW_MAX_FILE_SIZE_UPLOAD",children:"--max-file-size-upload"}),"."]}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"path"}),(0,r.jsx)(t.td,{children:"Files"}),(0,r.jsx)(t.td,{children:"The path to files to load. Supports individual files or bundled archives."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"file_path"}),(0,r.jsx)(t.td,{children:"Server File Path"}),(0,r.jsxs)(t.td,{children:["A Data object with a ",(0,r.jsx)(t.code,{children:"file_path"})," property pointing to the server file or a Message object with a path to the file. Supersedes 'Path' but supports the same file types."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"separator"}),(0,r.jsx)(t.td,{children:"Separator"}),(0,r.jsx)(t.td,{children:"The separator to use between multiple outputs in Message format."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"silent_errors"}),(0,r.jsx)(t.td,{children:"Silent Errors"}),(0,r.jsx)(t.td,{children:"If true, errors do not raise an exception."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"delete_server_file_after_processing"}),(0,r.jsx)(t.td,{children:"Delete Server File After Processing"}),(0,r.jsx)(t.td,{children:"If true, the Server File Path is deleted after processing."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"ignore_unsupported_extensions"}),(0,r.jsx)(t.td,{children:"Ignore Unsupported Extensions"}),(0,r.jsx)(t.td,{children:"If true, files with unsupported extensions are not processed."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"ignore_unspecified_files"}),(0,r.jsx)(t.td,{children:"Ignore Unspecified Files"}),(0,r.jsxs)(t.td,{children:["If true, ",(0,r.jsx)(t.code,{children:"Data"})," with no ",(0,r.jsx)(t.code,{children:"file_path"})," property is ignored."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"use_multithreading"}),(0,r.jsx)(t.td,{children:"[Deprecated] Use Multithreading"}),(0,r.jsxs)(t.td,{children:["Set 'Processing Concurrency' greater than ",(0,r.jsx)(t.code,{children:"1"})," to enable multithreading. This option is deprecated."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"concurrency_multithreading"}),(0,r.jsx)(t.td,{children:"Processing Concurrency"}),(0,r.jsx)(t.td,{children:"When multiple files are being processed, the number of files to process concurrently. Default is 1. Values greater than 1 enable parallel processing for 2 or more files."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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.jsxs)(t.td,{children:["The parsed content of the file as a ",(0,r.jsx)(t.a,{href:"/concepts-objects",children:"Data"})," object."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"dataframe"}),(0,r.jsx)(t.td,{children:"DataFrame"}),(0,r.jsxs)(t.td,{children:["The file content as a ",(0,r.jsx)(t.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"})," object."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"message"}),(0,r.jsx)(t.td,{children:"Message"}),(0,r.jsxs)(t.td,{children:["The file content as a ",(0,r.jsx)(t.a,{href:"/concepts-objects#message-object",children:"Message"})," object."]})]})]})]})]}),"\n",(0,r.jsx)(t.h3,{id:"supported-file-types",children:"Supported File Types"}),"\n",(0,r.jsx)(t.p,{children:"Text files:"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".txt"})," - Text files"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".md"}),", ",(0,r.jsx)(t.code,{children:".mdx"})," - Markdown files"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".csv"})," - CSV files"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".json"})," - JSON files"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".yaml"}),", ",(0,r.jsx)(t.code,{children:".yml"})," - YAML files"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".xml"})," - XML files"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".html"}),", ",(0,r.jsx)(t.code,{children:".htm"})," - HTML files"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".pdf"})," - PDF files"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".docx"})," - Word documents"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".py"})," - Python files"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".sh"})," - Shell scripts"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".sql"})," - SQL files"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".js"})," - JavaScript files"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".ts"}),", ",(0,r.jsx)(t.code,{children:".tsx"})," - TypeScript files"]}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:"Archive formats (for bundling multiple files):"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".zip"})," - ZIP archives"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".tar"})," - TAR archives"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".tgz"})," - Gzipped TAR archives"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".bz2"})," - Bzip2 compressed files"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:".gz"})," - Gzip compressed files"]}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"sql-query",children:"SQL Query"}),"\n",(0,r.jsx)(t.p,{children:"This component executes SQL queries on a specified database."}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"query"}),(0,r.jsx)(t.td,{children:"Query"}),(0,r.jsx)(t.td,{children:"The SQL query to execute."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"database_url"}),(0,r.jsx)(t.td,{children:"Database URL"}),(0,r.jsx)(t.td,{children:"The URL of the database."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"include_columns"}),(0,r.jsx)(t.td,{children:"Include Columns"}),(0,r.jsx)(t.td,{children:"Include columns in the result."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"passthrough"}),(0,r.jsx)(t.td,{children:"Passthrough"}),(0,r.jsx)(t.td,{children:"If an error occurs, return the query instead of raising an exception."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"add_error"}),(0,r.jsx)(t.td,{children:"Add Error"}),(0,r.jsx)(t.td,{children:"Add the error to the result."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"result"}),(0,r.jsx)(t.td,{children:"Result"}),(0,r.jsx)(t.td,{children:"The result of the SQL query execution."})]})})]})]}),"\n",(0,r.jsx)(t.h2,{id:"url",children:"URL"}),"\n",(0,r.jsx)(t.p,{children:"This component fetches content from one or more URLs, processes the content, and returns it in various formats. It supports output in plain text or raw HTML."}),"\n",(0,r.jsxs)(t.p,{children:["In the component's ",(0,r.jsx)(t.strong,{children:"URLs"})," field, enter the URL you want to load. To add multiple URL fields, click ",(0,r.jsx)(c.A,{name:"Plus","aria-label":"Add"}),"."]}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["To use this component in a flow, connect the ",(0,r.jsx)(t.strong,{children:"DataFrame"})," output to a component that accepts the input.\nFor example, connect the ",(0,r.jsx)(t.strong,{children:"URL"})," component to a ",(0,r.jsx)(t.strong,{children:"Chat Output"})," component."]}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"URL request into a chat output component",src:s(55228).A+"",width:"1578",height:"1086"})}),"\n",(0,r.jsxs)(t.ol,{start:"2",children:["\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["In the URL component's ",(0,r.jsx)(t.strong,{children:"URLs"})," field, enter the URL for your request.\nThis example uses ",(0,r.jsx)(t.code,{children:"langflow.org"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Optionally, in the ",(0,r.jsx)(t.strong,{children:"Max Depth"})," field, enter how many pages away from the initial URL you want to crawl.\nSelect ",(0,r.jsx)(t.code,{children:"1"})," to crawl only the page specified in the ",(0,r.jsx)(t.strong,{children:"URLs"})," field.\nSelect ",(0,r.jsx)(t.code,{children:"2"})," to crawl all pages linked from that page.\nThe component crawls by link traversal, not by URL path depth."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Click ",(0,r.jsx)(t.strong,{children:"Playground"}),", and then click ",(0,r.jsx)(t.strong,{children:"Run Flow"}),".\nThe text contents of the URL are returned to the Playground as a structured DataFrame."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["In the ",(0,r.jsx)(t.strong,{children:"URL"})," component, change the output port to ",(0,r.jsx)(t.strong,{children:"Message"}),", and then run the flow again.\nThe text contents of the URL are returned as unstructured raw text, which you can extract patterns from with the ",(0,r.jsx)(t.strong,{children:"Regex Extractor"})," tool."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Connect the ",(0,r.jsx)(t.strong,{children:"URL"})," component to a ",(0,r.jsx)(t.strong,{children:"Regex Extractor"})," and ",(0,r.jsx)(t.strong,{children:"Chat Output"}),"."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Regex extractor connected to url component",src:s(8886).A+"",width:"1606",height:"848"})}),"\n",(0,r.jsxs)(t.ol,{start:"7",children:["\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Regex Extractor"})," tool, enter a pattern to extract text from the ",(0,r.jsx)(t.strong,{children:"URL"}),' component\'s raw output.\nThis example extracts the first paragraph from the "In the News" section of ',(0,r.jsx)(t.code,{children:"https://en.wikipedia.org/wiki/Main_Page"}),"."]}),"\n"]}),"\n",(0,r.jsx)(a.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"In the news\\s*\\n(.*?)(?=\\n\\n)",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(t.p,{children:"Result:"}),"\n",(0,r.jsx)(a.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"Peruvian writer and Nobel Prize in Literature laureate Mario Vargas Llosa (pictured) dies at the age of 89.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"urls"}),(0,r.jsx)(t.td,{children:"URLs"}),(0,r.jsx)(t.td,{children:"Click the '+' button to enter one or more URLs to crawl recursively."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"max_depth"}),(0,r.jsx)(t.td,{children:"Max Depth"}),(0,r.jsx)(t.td,{children:"Controls how many 'clicks' away from the initial page the crawler will go."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"prevent_outside"}),(0,r.jsx)(t.td,{children:"Prevent Outside"}),(0,r.jsx)(t.td,{children:"If enabled, only crawls URLs within the same domain as the root URL."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"use_async"}),(0,r.jsx)(t.td,{children:"Use Async"}),(0,r.jsx)(t.td,{children:"If enabled, uses asynchronous loading which can be significantly faster but might use more system resources."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"format"}),(0,r.jsx)(t.td,{children:"Output Format"}),(0,r.jsxs)(t.td,{children:["Output Format. Use ",(0,r.jsx)(t.code,{children:"Text"})," to extract the text from the HTML or ",(0,r.jsx)(t.code,{children:"HTML"})," for the raw HTML content."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"timeout"}),(0,r.jsx)(t.td,{children:"Timeout"}),(0,r.jsx)(t.td,{children:"Timeout for the request in seconds."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"headers"}),(0,r.jsx)(t.td,{children:"Headers"}),(0,r.jsx)(t.td,{children:"The headers to send with the request."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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.jsxs)(t.td,{children:["A list of ",(0,r.jsx)(t.a,{href:"/concepts-objects",children:"Data"})," objects containing fetched content and metadata."]})]}),(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 fetched content as formatted text."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"dataframe"}),(0,r.jsx)(t.td,{children:"DataFrame"}),(0,r.jsxs)(t.td,{children:["The content formatted as a ",(0,r.jsx)(t.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"})," object."]})]})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"webhook",children:"Webhook"}),"\n",(0,r.jsx)(t.p,{children:"This component defines a webhook trigger that runs a flow when it receives an HTTP POST request."}),"\n",(0,r.jsxs)(t.p,{children:["If the input is not valid JSON, the component wraps it in a ",(0,r.jsx)(t.code,{children:"payload"})," object so that it can be processed and still trigger the flow. The component does not require an API key."]}),"\n",(0,r.jsxs)(t.p,{children:["When a ",(0,r.jsx)(t.strong,{children:"Webhook"})," component is added to the workspace, a new ",(0,r.jsx)(t.strong,{children:"Webhook cURL"})," tab becomes available in the ",(0,r.jsx)(t.strong,{children:"API"})," pane that contains an HTTP POST request for triggering the webhook component. For example:"]}),"\n",(0,r.jsx)(a.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "http://localhost:7860/api/v1/webhook/**YOUR_FLOW_ID**" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:"'Content-Type: application/json'",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:'\'{"any": "data"}\'',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,r.jsx)(t.p,{children:"To test the webhook component:"}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["Add a ",(0,r.jsx)(t.strong,{children:"Webhook"})," component to the flow."]}),"\n",(0,r.jsxs)(t.li,{children:["Connect the ",(0,r.jsx)(t.strong,{children:"Webhook"})," component's ",(0,r.jsx)(t.strong,{children:"Data"})," output to the ",(0,r.jsx)(t.strong,{children:"Data"})," input of a ",(0,r.jsx)(t.a,{href:"/components-processing#parser",children:"Parser"})," component."]}),"\n",(0,r.jsxs)(t.li,{children:["Connect the ",(0,r.jsx)(t.strong,{children:"Parser"})," component's ",(0,r.jsx)(t.strong,{children:"Parsed Text"})," output to the ",(0,r.jsx)(t.strong,{children:"Text"})," input of a ",(0,r.jsx)(t.a,{href:"/components-io#chat-output",children:"Chat Output"})," component."]}),"\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Parser"})," component, under ",(0,r.jsx)(t.strong,{children:"Mode"}),", select ",(0,r.jsx)(t.strong,{children:"Stringify"}),".\nThis mode passes the webhook's data as a string for the ",(0,r.jsx)(t.strong,{children:"Chat Output"})," component to print."]}),"\n",(0,r.jsxs)(t.li,{children:["To send a POST request, copy the code from the ",(0,r.jsx)(t.strong,{children:"Webhook cURL"})," tab in the ",(0,r.jsx)(t.strong,{children:"API"})," pane and paste it into a terminal."]}),"\n",(0,r.jsx)(t.li,{children:"Send the POST request."}),"\n",(0,r.jsxs)(t.li,{children:["Open the ",(0,r.jsx)(t.strong,{children:"Playground"}),".\nYour JSON data is posted to the ",(0,r.jsx)(t.strong,{children:"Chat Output"})," component, which indicates that the webhook component is correctly triggering the flow."]}),"\n"]}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,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:"data"}),(0,r.jsx)(t.td,{children:"Payload"}),(0,r.jsx)(t.td,{children:"Receives a payload from external systems through HTTP POST requests."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"curl"}),(0,r.jsx)(t.td,{children:"cURL"}),(0,r.jsx)(t.td,{children:"The cURL command template for making requests to this webhook."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"endpoint"}),(0,r.jsx)(t.td,{children:"Endpoint"}),(0,r.jsx)(t.td,{children:"The endpoint URL where this webhook receives requests."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,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.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"output_data"}),(0,r.jsx)(t.td,{children:"Data"}),(0,r.jsxs)(t.td,{children:["Outputs processed data from the webhook input, and returns an empty ",(0,r.jsx)(t.a,{href:"/concepts-objects",children:"Data"})," object if no input is provided. If the input is not valid JSON, the component wraps it in a ",(0,r.jsx)(t.code,{children:"payload"})," object."]})]})})]})]}),"\n",(0,r.jsx)(t.h2,{id:"legacy-components",children:"Legacy components"}),"\n",(0,r.jsx)(t.p,{children:"Legacy components are available for use but are no longer supported."}),"\n",(0,r.jsx)(t.h3,{id:"gmail-loader",children:"Gmail Loader"}),"\n",(0,r.jsx)(t.p,{children:"This component loads emails from Gmail using provided credentials and filters."}),"\n",(0,r.jsxs)(t.p,{children:["For more information about creating a service account JSON, see ",(0,r.jsx)(t.a,{href:"https://developers.google.com/identity/protocols/oauth2/service-account",children:"Service Account JSON"}),"."]}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Input"}),(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:"json_string"}),(0,r.jsx)(t.td,{children:"SecretStrInput"}),(0,r.jsx)(t.td,{children:"A JSON string containing OAuth 2.0 access token information for service account access."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"label_ids"}),(0,r.jsx)(t.td,{children:"MessageTextInput"}),(0,r.jsx)(t.td,{children:"A comma-separated list of label IDs to filter emails."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"max_results"}),(0,r.jsx)(t.td,{children:"MessageTextInput"}),(0,r.jsx)(t.td,{children:"The maximum number of emails to load."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Output"}),(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:"data"}),(0,r.jsx)(t.td,{children:"Data"}),(0,r.jsx)(t.td,{children:"The loaded email data."})]})})]})]}),"\n",(0,r.jsx)(t.h3,{id:"google-drive-loader",children:"Google Drive Loader"}),"\n",(0,r.jsx)(t.p,{children:"This component loads documents from Google Drive using provided credentials and a single document ID."}),"\n",(0,r.jsxs)(t.p,{children:["For more information about creating a service account JSON, see ",(0,r.jsx)(t.a,{href:"https://developers.google.com/identity/protocols/oauth2/service-account",children:"Service Account JSON"}),"."]}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Input"}),(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:"json_string"}),(0,r.jsx)(t.td,{children:"SecretStrInput"}),(0,r.jsx)(t.td,{children:"A JSON string containing OAuth 2.0 access token information for service account access."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"document_id"}),(0,r.jsx)(t.td,{children:"MessageTextInput"}),(0,r.jsx)(t.td,{children:"A single Google Drive document ID."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Output"}),(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:"docs"}),(0,r.jsx)(t.td,{children:"Data"}),(0,r.jsx)(t.td,{children:"The loaded document data."})]})})]})]}),"\n",(0,r.jsx)(t.h3,{id:"google-drive-search",children:"Google Drive Search"}),"\n",(0,r.jsx)(t.p,{children:"This component searches Google Drive files using provided credentials and query parameters."}),"\n",(0,r.jsxs)(t.p,{children:["For more information about creating a service account JSON, see ",(0,r.jsx)(t.a,{href:"https://developers.google.com/identity/protocols/oauth2/service-account",children:"Service Account JSON"}),"."]}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Inputs"})}),(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Input"}),(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:"token_string"}),(0,r.jsx)(t.td,{children:"SecretStrInput"}),(0,r.jsx)(t.td,{children:"A JSON string containing OAuth 2.0 access token information for service account access."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"query_item"}),(0,r.jsx)(t.td,{children:"DropdownInput"}),(0,r.jsx)(t.td,{children:"The field to query."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"valid_operator"}),(0,r.jsx)(t.td,{children:"DropdownInput"}),(0,r.jsx)(t.td,{children:"The operator to use in the query."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"search_term"}),(0,r.jsx)(t.td,{children:"MessageTextInput"}),(0,r.jsx)(t.td,{children:"The value to search for in the specified query item."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"query_string"}),(0,r.jsx)(t.td,{children:"MessageTextInput"}),(0,r.jsx)(t.td,{children:"The query string used for searching."})]})]})]}),(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"Outputs"})}),(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Output"}),(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:"doc_urls"}),(0,r.jsx)(t.td,{children:"List[str]"}),(0,r.jsx)(t.td,{children:"The URLs of the found documents."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"doc_ids"}),(0,r.jsx)(t.td,{children:"List[str]"}),(0,r.jsx)(t.td,{children:"The IDs of the found documents."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"doc_titles"}),(0,r.jsx)(t.td,{children:"List[str]"}),(0,r.jsx)(t.td,{children:"The titles of the found documents."})]}),(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 document titles and URLs in a structured format."})]})]})]})]})]})}function u(e={}){const{wrapper:t}={...(0,d.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(p,{...e})}):p(e)}function m(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},55228:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/component-url-11d5306d5c7a52a376fab32344eab7a2.png"},80352:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/url-component-fb712df73581345c0f344013ce6ff2fd.png"},84443:(e,t,s)=>{s.d(t,{A:()=>d});s(96540);var n=s(64058),r=s(74848);function d(e){let{name:t,...s}=e;const d=n[t];return d?(0,r.jsx)(d,{...s}):null}}}]);
\ No newline at end of file
diff --git a/assets/js/runtime~main.766a5707.js b/assets/js/runtime~main.35999d25.js
similarity index 92%
rename from assets/js/runtime~main.766a5707.js
rename to assets/js/runtime~main.35999d25.js
index 57fc4917cf..9534c772bf 100644
--- a/assets/js/runtime~main.766a5707.js
+++ b/assets/js/runtime~main.35999d25.js
@@ -1 +1 @@
-(()=>{"use strict";var e,a,c,f,b,d={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var c=t[e]={id:e,loaded:!1,exports:{}};return d[e].call(c.exports,c,c.exports,r),c.loaded=!0,c.exports}r.m=d,r.c=t,e=[],r.O=(a,c,f,b)=>{if(!c){var d=1/0;for(i=0;i=b)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,b0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[c,f,b]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var d={};a=a||[null,c({}),c([]),c(c)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=c(t))Object.getOwnPropertyNames(t).forEach((a=>d[a]=()=>e[a]));return d.default=()=>e,r.d(b,d),b},r.d=(e,a)=>{for(var c in a)r.o(a,c)&&!r.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,c)=>(r.f[c](e,a),a)),[])),r.u=e=>"assets/js/"+({11:"d2df9b4e",31:"03e862ce",51:"b7251463",145:"0be1d5fe",191:"c643a6d5",202:"32c42bbe",230:"bc63ae25",265:"d3ca7a96",266:"eca2a4e0",299:"9b5a408c",321:"6e1a9721",368:"07c30ae4",417:"93e16042",444:"14f42f9e",730:"86b18dd0",762:"4af57a32",768:"6d684b63",787:"672a0eba",800:"a4c0ff01",868:"dc7b1ef3",944:"d3600190",957:"c141421f",964:"05d835b4",982:"021496c4",1022:"8a61012d",1035:"24d32e91",1079:"f5818e36",1185:"c2de64b8",1227:"647965d5",1394:"8054effa",1488:"ac3cc3f5",1500:"1e9025f7",1556:"264ffc80",1563:"3ef76b56",1567:"22dd74f7",1625:"92852ade",1690:"41a97a99",1765:"7b257a20",1841:"de94873f",1845:"2ab0d4f5",1956:"fe6f9601",2008:"7ad92a12",2073:"7b7db446",2097:"338a6f8e",2100:"9cc9f218",2138:"1a4e3797",2273:"e756fa26",2288:"faf7ef88",2341:"0123c128",2551:"394022bb",2624:"8ff68e6f",2657:"a3ab51d1",2777:"b3ba68b4",2818:"a9b73094",3099:"8cea976c",3110:"6a2beaac",3225:"99a4401d",3247:"bd7ab245",3327:"6aa941bb",3347:"b5257597",3391:"f66238ae",3576:"64045095",3694:"c2b1730c",3740:"f113d167",3795:"c85076de",3832:"c3d82421",3859:"7679ca6e",3917:"c8dad5f1",3964:"829ff4d2",3968:"0e5205b8",4046:"9ac856ad",4133:"5cf11f26",4237:"8abbbbe8",4242:"31ead0b1",4274:"b6bf934a",4526:"8311683c",4615:"6801371f",4633:"c563aec0",4645:"fef056e9",4778:"e189eece",4784:"438e4337",4806:"fba42286",4841:"8298c1cb",4867:"d73246f8",4891:"ca67d85f",4930:"d2ad385b",4931:"a9b4f8aa",4954:"a71efd4a",4973:"2d2c4fcb",5107:"10156854",5109:"3542ed72",5138:"309383dc",5179:"41e3c105",5195:"b1ab2a41",5281:"a0511a5b",5284:"64ca91f1",5290:"fa10e583",5304:"7dbff1af",5339:"9447891f",5395:"98058046",5448:"5c480e8b",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",5799:"364e949f",5824:"214b2cc2",5865:"e1766139",5866:"3b577cbb",5883:"61cfab8e",5894:"f178e9b3",6003:"4d983c8e",6008:"445668ec",6010:"60c70af6",6053:"dfc50084",6066:"3f19c00a",6079:"472dc73b",6080:"4d15791b",6119:"6a6b9cdc",6147:"ab17fe15",6201:"9ab37888",6214:"b1220dbd",6281:"c96ce3ed",6332:"873508e7",6350:"188ee668",6419:"96eb0e67",6445:"9fb9a766",6473:"4c5e977b",6511:"320c2db0",6559:"6f13807a",6649:"02e43f39",6682:"5a6d6120",6688:"388c3769",6753:"ff349d2f",6757:"86bd0a2e",6890:"8b85e1d0",6920:"c817e236",6934:"d745f4e6",6949:"b36bb719",7088:"91282a5c",7098:"a7bd4aaa",7108:"688feaef",7118:"4ce9199e",7142:"d0c1f670",7159:"aecfdd3d",7165:"547df4a1",7211:"cacdc615",7338:"c39b795e",7339:"7a774ddf",7408:"3ae94ad4",7453:"fdefa9a8",7462:"921b5fc1",7472:"744aaf8b",7507:"651ef245",7713:"3a82b27e",7894:"0f44198a",8031:"25bf2d67",8054:"85112c90",8064:"274fd934",8085:"cc44357e",8102:"019dbd1f",8184:"222029a9",8188:"ecd67556",8196:"75a9e1e0",8208:"216e3ed7",8245:"5e834a3c",8298:"153f2b62",8304:"73d1a090",8356:"c6a5eaec",8374:"261f8123",8401:"17896441",8504:"e6c6a4d2",8598:"44dfcf75",8661:"8f774222",8679:"3705a9c0",8927:"ae68aa8b",8929:"172b3cfb",8977:"e5eb12ce",9036:"850d3674",9048:"a94703ab",9099:"b1bc5ffe",9126:"169603ea",9141:"19136925",9306:"667d0790",9371:"991799c5",9431:"cd8dccb5",9453:"913561e8",9455:"54175a6c",9476:"57c9a2b8",9479:"4e038a6a",9483:"7823fa72",9509:"49311ca0",9555:"dedd5914",9619:"29b8e27a",9642:"eae80ce0",9647:"5e95c892",9681:"5ff9f4db",9705:"ee3b5967",9731:"52edee88",9751:"25255263",9752:"72d61395",9789:"537e1953",9836:"b3c57e4b",9857:"09f5326a",9888:"be76515e",9905:"43df3697",9914:"5217df3c"}[e]||e)+"."+{11:"45c28bec",31:"a484aa60",51:"c70ade73",145:"ba3f69e7",191:"13f7dca8",202:"69f8fc12",230:"f357f53d",265:"be246dd2",266:"2e18e5ef",299:"25173fd7",321:"9e19feac",368:"4eb45feb",417:"7afd7b28",444:"bac6ff4f",730:"263527f9",756:"240f2e9c",762:"f26eeca8",768:"57549229",787:"337b96b1",800:"200b6f90",868:"5529a28c",900:"f83a9a5d",944:"7d4a07c9",957:"da9e1d2b",964:"c5470377",982:"c33e7e71",1022:"bcd98e1d",1035:"919d5dad",1079:"812abec2",1185:"e72af1d6",1227:"9389c053",1394:"c471511b",1488:"0fd73816",1500:"efd6de60",1556:"291a3f0d",1563:"892a275e",1567:"0d4079ca",1625:"14cdddbe",1690:"fec3160a",1765:"572ca811",1809:"2ba71c72",1841:"a5122be7",1845:"3cf8d62c",1956:"6383c77e",2008:"7ff881a6",2073:"c5fb1e9b",2097:"e2eb4320",2100:"95c71ee8",2138:"02023697",2273:"55675c34",2288:"cc9428cf",2341:"45610a9d",2551:"4828d866",2624:"14f967ab",2657:"51b41b08",2777:"41c1191d",2818:"ac9bcdbf",3042:"f1fb0b14",3099:"548e39d9",3110:"82272da0",3225:"a9203558",3247:"9682eac4",3327:"0a5ce9dd",3347:"077bbafe",3391:"bba50808",3576:"f795975a",3694:"54eb4f64",3740:"b7bb0577",3795:"65d30986",3832:"95c28274",3859:"2b7ccc3c",3917:"5b041d0c",3964:"dc410d2f",3968:"da2769ba",3997:"ff54fe17",4046:"48629fa4",4058:"44d6af12",4133:"56fe7f12",4237:"51eca51b",4242:"c259ca94",4274:"0be62a13",4526:"6333b6ef",4615:"82ac6ca0",4633:"2670172c",4645:"14c01d8e",4778:"5306edb7",4784:"5a39e405",4806:"0f85ccb8",4841:"ee847aa5",4867:"68a21145",4891:"9681a21f",4930:"357cad83",4931:"9722ebd2",4954:"f5cffa2f",4973:"c4fea60c",5107:"1052bde3",5109:"534de25b",5138:"d4a08879",5179:"e67fbd0c",5195:"1a7b70b6",5281:"df2a55b6",5284:"e8874518",5290:"721888e8",5304:"8ef725f4",5339:"d7d5d145",5395:"299e8e2d",5448:"52680132",5467:"e5b031c7",5474:"aa5bd482",5475:"ec2a18e5",5513:"d306cf5a",5514:"7533fa32",5562:"1f34d345",5572:"ddc13f75",5628:"42006513",5634:"f0694192",5647:"3090d1c0",5673:"7ae77da6",5716:"ba42114d",5718:"31276840",5742:"60b1d5b2",5772:"12ce17c2",5799:"6d3f8244",5824:"df4edbad",5865:"6d08bcf9",5866:"023b5194",5883:"3fb0acc4",5894:"9d5cea10",6003:"29a00afe",6008:"586ba82c",6010:"6025b1e2",6053:"73dba27f",6066:"26c9b9aa",6079:"13fa746a",6080:"3c411d02",6119:"e28d8fdd",6147:"78c5f4e3",6201:"891ed08e",6214:"346a7ff7",6281:"572b97a5",6332:"56a20b08",6350:"3eeddaca",6419:"5f217a3f",6445:"034849c0",6473:"b5e32ff9",6511:"6c79eb80",6559:"3505b936",6649:"e8e4e55e",6682:"2754757e",6688:"73a22a8c",6753:"22e6b110",6757:"12276542",6890:"c089fc79",6920:"b6fa5552",6934:"eaed1465",6949:"0e0bd619",7088:"1f49a1ed",7098:"d9bb61a0",7108:"17a23f9d",7118:"b249527c",7142:"960aa7c8",7159:"a3e5c2f6",7165:"2dc7195f",7211:"f5e720e4",7338:"0cb0d21c",7339:"d438876a",7408:"86a89076",7453:"392bba14",7462:"4fa35110",7472:"8069977e",7507:"0dda0c5d",7713:"89ccb9d2",7894:"7e793e43",8031:"d39ee16a",8054:"1c0575f9",8064:"0f9c600b",8085:"b5befcf0",8102:"a2de899f",8158:"20de8b80",8184:"c81282aa",8188:"d660f886",8196:"1709a7de",8208:"6254673b",8245:"cac331ec",8298:"365a531b",8304:"8335c042",8356:"637b85df",8374:"de173c3c",8401:"bf953603",8504:"2132cab0",8598:"70cf61ed",8661:"bd59cb88",8679:"0e278449",8913:"47209f3b",8927:"4c824b91",8929:"99703724",8977:"637025ee",9036:"2d5a998f",9048:"810f8ad8",9099:"1b2e15a3",9126:"3e3ec85f",9141:"046ebd69",9306:"623f16ae",9371:"93e50709",9431:"13f33641",9453:"ff972203",9455:"7fe77314",9476:"40ea7997",9479:"ff7ffcbc",9483:"6dc6fdbb",9509:"33f09301",9555:"bf9c83ce",9619:"ed86b2e1",9642:"9149d50b",9647:"e6d9c2b6",9681:"9e5322d5",9705:"6298ab3d",9729:"b22b7ae1",9731:"ced06bca",9751:"fc71d973",9752:"bbc2f180",9789:"a25e6068",9836:"69fcbaa3",9857:"15bb75fa",9888:"6bd457bb",9905:"8a2cb3d4",9914:"6f4e4983"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},b="langflow-docs:",r.l=(e,a,c,d)=>{if(f[e])f[e].push(a);else{var t,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var b=f[e];if(delete f[e],t.parentNode&&t.parentNode.removeChild(t),b&&b.forEach((e=>e(c))),a)return a(c)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=u.bind(null,t.onerror),t.onload=u.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.p="/",r.gca=function(e){return e={10156854:"5107",17896441:"8401",19136925:"9141",25255263:"9751",64045095:"3576",98058046:"5395",d2df9b4e:"11","03e862ce":"31",b7251463:"51","0be1d5fe":"145",c643a6d5:"191","32c42bbe":"202",bc63ae25:"230",d3ca7a96:"265",eca2a4e0:"266","9b5a408c":"299","6e1a9721":"321","07c30ae4":"368","93e16042":"417","14f42f9e":"444","86b18dd0":"730","4af57a32":"762","6d684b63":"768","672a0eba":"787",a4c0ff01:"800",dc7b1ef3:"868",d3600190:"944",c141421f:"957","05d835b4":"964","021496c4":"982","8a61012d":"1022","24d32e91":"1035",f5818e36:"1079",c2de64b8:"1185","647965d5":"1227","8054effa":"1394",ac3cc3f5:"1488","1e9025f7":"1500","264ffc80":"1556","3ef76b56":"1563","22dd74f7":"1567","92852ade":"1625","41a97a99":"1690","7b257a20":"1765",de94873f:"1841","2ab0d4f5":"1845",fe6f9601:"1956","7ad92a12":"2008","7b7db446":"2073","338a6f8e":"2097","9cc9f218":"2100","1a4e3797":"2138",e756fa26:"2273",faf7ef88:"2288","0123c128":"2341","394022bb":"2551","8ff68e6f":"2624",a3ab51d1:"2657",b3ba68b4:"2777",a9b73094:"2818","8cea976c":"3099","6a2beaac":"3110","99a4401d":"3225",bd7ab245:"3247","6aa941bb":"3327",b5257597:"3347",f66238ae:"3391",c2b1730c:"3694",f113d167:"3740",c85076de:"3795",c3d82421:"3832","7679ca6e":"3859",c8dad5f1:"3917","829ff4d2":"3964","0e5205b8":"3968","9ac856ad":"4046","5cf11f26":"4133","8abbbbe8":"4237","31ead0b1":"4242",b6bf934a:"4274","8311683c":"4526","6801371f":"4615",c563aec0:"4633",fef056e9:"4645",e189eece:"4778","438e4337":"4784",fba42286:"4806","8298c1cb":"4841",d73246f8:"4867",ca67d85f:"4891",d2ad385b:"4930",a9b4f8aa:"4931",a71efd4a:"4954","2d2c4fcb":"4973","3542ed72":"5109","309383dc":"5138","41e3c105":"5179",b1ab2a41:"5195",a0511a5b:"5281","64ca91f1":"5284",fa10e583:"5290","7dbff1af":"5304","9447891f":"5339","5c480e8b":"5448","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","364e949f":"5799","214b2cc2":"5824",e1766139:"5865","3b577cbb":"5866","61cfab8e":"5883",f178e9b3:"5894","4d983c8e":"6003","445668ec":"6008","60c70af6":"6010",dfc50084:"6053","3f19c00a":"6066","472dc73b":"6079","4d15791b":"6080","6a6b9cdc":"6119",ab17fe15:"6147","9ab37888":"6201",b1220dbd:"6214",c96ce3ed:"6281","873508e7":"6332","188ee668":"6350","96eb0e67":"6419","9fb9a766":"6445","4c5e977b":"6473","320c2db0":"6511","6f13807a":"6559","02e43f39":"6649","5a6d6120":"6682","388c3769":"6688",ff349d2f:"6753","86bd0a2e":"6757","8b85e1d0":"6890",c817e236:"6920",d745f4e6:"6934",b36bb719:"6949","91282a5c":"7088",a7bd4aaa:"7098","688feaef":"7108","4ce9199e":"7118",d0c1f670:"7142",aecfdd3d:"7159","547df4a1":"7165",cacdc615:"7211",c39b795e:"7338","7a774ddf":"7339","3ae94ad4":"7408",fdefa9a8:"7453","921b5fc1":"7462","744aaf8b":"7472","651ef245":"7507","3a82b27e":"7713","0f44198a":"7894","25bf2d67":"8031","85112c90":"8054","274fd934":"8064",cc44357e:"8085","019dbd1f":"8102","222029a9":"8184",ecd67556:"8188","75a9e1e0":"8196","216e3ed7":"8208","5e834a3c":"8245","153f2b62":"8298","73d1a090":"8304",c6a5eaec:"8356","261f8123":"8374",e6c6a4d2:"8504","44dfcf75":"8598","8f774222":"8661","3705a9c0":"8679",ae68aa8b:"8927","172b3cfb":"8929",e5eb12ce:"8977","850d3674":"9036",a94703ab:"9048",b1bc5ffe:"9099","169603ea":"9126","667d0790":"9306","991799c5":"9371",cd8dccb5:"9431","913561e8":"9453","54175a6c":"9455","57c9a2b8":"9476","4e038a6a":"9479","7823fa72":"9483","49311ca0":"9509",dedd5914:"9555","29b8e27a":"9619",eae80ce0:"9642","5e95c892":"9647","5ff9f4db":"9681",ee3b5967:"9705","52edee88":"9731","72d61395":"9752","537e1953":"9789",b3c57e4b:"9836","09f5326a":"9857",be76515e:"9888","43df3697":"9905","5217df3c":"9914"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(a,c)=>{var f=r.o(e,a)?e[a]:void 0;if(0!==f)if(f)c.push(f[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var b=new Promise(((c,b)=>f=e[a]=[c,b]));c.push(f[2]=b);var d=r.p+r.u(a),t=new Error;r.l(d,(c=>{if(r.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var b=c&&("load"===c.type?"missing":c.type),d=c&&c.target&&c.target.src;t.message="Loading chunk "+a+" failed.\n("+b+": "+d+")",t.name="ChunkLoadError",t.type=b,t.request=d,f[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,c)=>{var f,b,d=c[0],t=c[1],o=c[2],n=0;if(d.some((a=>0!==e[a]))){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(a&&a(c);n{"use strict";var e,a,c,f,b,d={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var c=t[e]={id:e,loaded:!1,exports:{}};return d[e].call(c.exports,c,c.exports,r),c.loaded=!0,c.exports}r.m=d,r.c=t,e=[],r.O=(a,c,f,b)=>{if(!c){var d=1/0;for(i=0;i=b)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,b0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[c,f,b]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var d={};a=a||[null,c({}),c([]),c(c)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=c(t))Object.getOwnPropertyNames(t).forEach((a=>d[a]=()=>e[a]));return d.default=()=>e,r.d(b,d),b},r.d=(e,a)=>{for(var c in a)r.o(a,c)&&!r.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,c)=>(r.f[c](e,a),a)),[])),r.u=e=>"assets/js/"+({11:"d2df9b4e",31:"03e862ce",51:"b7251463",145:"0be1d5fe",191:"c643a6d5",202:"32c42bbe",230:"bc63ae25",265:"d3ca7a96",266:"eca2a4e0",299:"9b5a408c",321:"6e1a9721",368:"07c30ae4",417:"93e16042",444:"14f42f9e",730:"86b18dd0",762:"4af57a32",768:"6d684b63",787:"672a0eba",800:"a4c0ff01",868:"dc7b1ef3",944:"d3600190",957:"c141421f",964:"05d835b4",982:"021496c4",1022:"8a61012d",1035:"24d32e91",1079:"f5818e36",1185:"c2de64b8",1227:"647965d5",1394:"8054effa",1488:"ac3cc3f5",1500:"1e9025f7",1556:"264ffc80",1563:"3ef76b56",1567:"22dd74f7",1625:"92852ade",1690:"41a97a99",1765:"7b257a20",1841:"de94873f",1845:"2ab0d4f5",1956:"fe6f9601",2008:"7ad92a12",2073:"7b7db446",2097:"338a6f8e",2100:"9cc9f218",2138:"1a4e3797",2273:"e756fa26",2288:"faf7ef88",2341:"0123c128",2551:"394022bb",2624:"8ff68e6f",2657:"a3ab51d1",2777:"b3ba68b4",2818:"a9b73094",3099:"8cea976c",3110:"6a2beaac",3225:"99a4401d",3247:"bd7ab245",3327:"6aa941bb",3347:"b5257597",3391:"f66238ae",3576:"64045095",3694:"c2b1730c",3740:"f113d167",3795:"c85076de",3832:"c3d82421",3859:"7679ca6e",3917:"c8dad5f1",3964:"829ff4d2",3968:"0e5205b8",4046:"9ac856ad",4133:"5cf11f26",4237:"8abbbbe8",4242:"31ead0b1",4274:"b6bf934a",4526:"8311683c",4615:"6801371f",4633:"c563aec0",4645:"fef056e9",4778:"e189eece",4784:"438e4337",4806:"fba42286",4841:"8298c1cb",4867:"d73246f8",4891:"ca67d85f",4930:"d2ad385b",4931:"a9b4f8aa",4954:"a71efd4a",4973:"2d2c4fcb",5107:"10156854",5109:"3542ed72",5138:"309383dc",5179:"41e3c105",5195:"b1ab2a41",5281:"a0511a5b",5284:"64ca91f1",5290:"fa10e583",5304:"7dbff1af",5339:"9447891f",5395:"98058046",5448:"5c480e8b",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",5799:"364e949f",5824:"214b2cc2",5865:"e1766139",5866:"3b577cbb",5883:"61cfab8e",5894:"f178e9b3",6003:"4d983c8e",6008:"445668ec",6010:"60c70af6",6053:"dfc50084",6066:"3f19c00a",6079:"472dc73b",6080:"4d15791b",6119:"6a6b9cdc",6147:"ab17fe15",6201:"9ab37888",6214:"b1220dbd",6281:"c96ce3ed",6332:"873508e7",6350:"188ee668",6419:"96eb0e67",6445:"9fb9a766",6473:"4c5e977b",6511:"320c2db0",6559:"6f13807a",6649:"02e43f39",6682:"5a6d6120",6688:"388c3769",6753:"ff349d2f",6757:"86bd0a2e",6890:"8b85e1d0",6920:"c817e236",6934:"d745f4e6",6949:"b36bb719",7088:"91282a5c",7098:"a7bd4aaa",7108:"688feaef",7118:"4ce9199e",7142:"d0c1f670",7159:"aecfdd3d",7165:"547df4a1",7211:"cacdc615",7338:"c39b795e",7339:"7a774ddf",7408:"3ae94ad4",7453:"fdefa9a8",7462:"921b5fc1",7472:"744aaf8b",7507:"651ef245",7713:"3a82b27e",7894:"0f44198a",8031:"25bf2d67",8054:"85112c90",8064:"274fd934",8085:"cc44357e",8102:"019dbd1f",8184:"222029a9",8188:"ecd67556",8196:"75a9e1e0",8208:"216e3ed7",8245:"5e834a3c",8298:"153f2b62",8304:"73d1a090",8356:"c6a5eaec",8374:"261f8123",8401:"17896441",8504:"e6c6a4d2",8598:"44dfcf75",8661:"8f774222",8679:"3705a9c0",8927:"ae68aa8b",8929:"172b3cfb",8977:"e5eb12ce",9036:"850d3674",9048:"a94703ab",9099:"b1bc5ffe",9126:"169603ea",9141:"19136925",9306:"667d0790",9371:"991799c5",9431:"cd8dccb5",9453:"913561e8",9455:"54175a6c",9476:"57c9a2b8",9479:"4e038a6a",9483:"7823fa72",9509:"49311ca0",9555:"dedd5914",9619:"29b8e27a",9642:"eae80ce0",9647:"5e95c892",9681:"5ff9f4db",9705:"ee3b5967",9731:"52edee88",9751:"25255263",9752:"72d61395",9789:"537e1953",9836:"b3c57e4b",9857:"09f5326a",9888:"be76515e",9905:"43df3697",9914:"5217df3c"}[e]||e)+"."+{11:"45c28bec",31:"a484aa60",51:"d6034093",145:"77c93a97",191:"13f7dca8",202:"69f8fc12",230:"f357f53d",265:"be246dd2",266:"6f07a826",299:"25173fd7",321:"4effd225",368:"4eb45feb",417:"7afd7b28",444:"7e0c7f47",730:"e23bcfeb",756:"240f2e9c",762:"f26eeca8",768:"57549229",787:"337b96b1",800:"200b6f90",868:"5529a28c",900:"f83a9a5d",944:"7d4a07c9",957:"da9e1d2b",964:"c5470377",982:"a8133303",1022:"bcd98e1d",1035:"919d5dad",1079:"812abec2",1185:"e72af1d6",1227:"9389c053",1394:"c471511b",1488:"0fd73816",1500:"efd6de60",1556:"291a3f0d",1563:"892a275e",1567:"0d4079ca",1625:"14cdddbe",1690:"fec3160a",1765:"572ca811",1809:"2ba71c72",1841:"a5122be7",1845:"785470cc",1956:"6383c77e",2008:"7ff881a6",2073:"c5fb1e9b",2097:"e2eb4320",2100:"95c71ee8",2138:"02023697",2273:"55675c34",2288:"cc9428cf",2341:"45610a9d",2551:"4828d866",2624:"15d07d80",2657:"51b41b08",2777:"41c1191d",2818:"ac9bcdbf",3042:"f1fb0b14",3099:"548e39d9",3110:"82272da0",3225:"a9203558",3247:"9682eac4",3327:"0a5ce9dd",3347:"077bbafe",3391:"bba50808",3576:"f795975a",3694:"54eb4f64",3740:"b7bb0577",3795:"65d30986",3832:"95c28274",3859:"2b7ccc3c",3917:"5b041d0c",3964:"dc410d2f",3968:"68775651",3997:"ff54fe17",4046:"7ec555fe",4058:"44d6af12",4133:"56fe7f12",4237:"51eca51b",4242:"c259ca94",4274:"0be62a13",4526:"f08e9c48",4615:"82ac6ca0",4633:"2670172c",4645:"14c01d8e",4778:"5306edb7",4784:"5a39e405",4806:"0f85ccb8",4841:"ee847aa5",4867:"68a21145",4891:"9681a21f",4930:"357cad83",4931:"9722ebd2",4954:"f5cffa2f",4973:"f60ff849",5107:"1052bde3",5109:"534de25b",5138:"d4a08879",5179:"e67fbd0c",5195:"e5884dca",5281:"df2a55b6",5284:"e8874518",5290:"721888e8",5304:"8ef725f4",5339:"d7d5d145",5395:"299e8e2d",5448:"52680132",5467:"e5b031c7",5474:"aa5bd482",5475:"ec2a18e5",5513:"d306cf5a",5514:"7533fa32",5562:"1f34d345",5572:"ddc13f75",5628:"42006513",5634:"f0694192",5647:"3090d1c0",5673:"7ae77da6",5716:"ba42114d",5718:"31276840",5742:"60b1d5b2",5772:"12ce17c2",5799:"6d3f8244",5824:"df4edbad",5865:"6d08bcf9",5866:"023b5194",5883:"3fb0acc4",5894:"9d5cea10",6003:"29a00afe",6008:"586ba82c",6010:"6025b1e2",6053:"73dba27f",6066:"26c9b9aa",6079:"13fa746a",6080:"3c411d02",6119:"e28d8fdd",6147:"78c5f4e3",6201:"891ed08e",6214:"346a7ff7",6281:"572b97a5",6332:"56a20b08",6350:"3eeddaca",6419:"5f217a3f",6445:"034849c0",6473:"b5e32ff9",6511:"6c79eb80",6559:"3505b936",6649:"e8e4e55e",6682:"2754757e",6688:"73a22a8c",6753:"22e6b110",6757:"12276542",6890:"c089fc79",6920:"b6fa5552",6934:"eaed1465",6949:"0e0bd619",7088:"1f49a1ed",7098:"d9bb61a0",7108:"17a23f9d",7118:"b249527c",7142:"960aa7c8",7159:"a3e5c2f6",7165:"2dc7195f",7211:"0a6b1364",7338:"0cb0d21c",7339:"d438876a",7408:"323d8feb",7453:"3edb89da",7462:"6a7731e4",7472:"8069977e",7507:"0dda0c5d",7713:"89ccb9d2",7894:"7e793e43",8031:"d39ee16a",8054:"1c0575f9",8064:"0f9c600b",8085:"b5befcf0",8102:"a2de899f",8158:"20de8b80",8184:"c81282aa",8188:"d660f886",8196:"1709a7de",8208:"6254673b",8245:"cac331ec",8298:"365a531b",8304:"8335c042",8356:"637b85df",8374:"de173c3c",8401:"bf953603",8504:"996db822",8598:"70cf61ed",8661:"bd59cb88",8679:"0e278449",8913:"47209f3b",8927:"4c824b91",8929:"99703724",8977:"637025ee",9036:"2d5a998f",9048:"810f8ad8",9099:"1b2e15a3",9126:"3e3ec85f",9141:"046ebd69",9306:"623f16ae",9371:"93e50709",9431:"13f33641",9453:"ff972203",9455:"7fe77314",9476:"40ea7997",9479:"ff7ffcbc",9483:"6dc6fdbb",9509:"33f09301",9555:"bf9c83ce",9619:"ed86b2e1",9642:"9149d50b",9647:"e6d9c2b6",9681:"9e5322d5",9705:"6298ab3d",9729:"b22b7ae1",9731:"ced06bca",9751:"fc71d973",9752:"bbc2f180",9789:"a25e6068",9836:"69fcbaa3",9857:"15bb75fa",9888:"6bd457bb",9905:"8a2cb3d4",9914:"fefcae38"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},b="langflow-docs:",r.l=(e,a,c,d)=>{if(f[e])f[e].push(a);else{var t,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var b=f[e];if(delete f[e],t.parentNode&&t.parentNode.removeChild(t),b&&b.forEach((e=>e(c))),a)return a(c)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=u.bind(null,t.onerror),t.onload=u.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.p="/",r.gca=function(e){return e={10156854:"5107",17896441:"8401",19136925:"9141",25255263:"9751",64045095:"3576",98058046:"5395",d2df9b4e:"11","03e862ce":"31",b7251463:"51","0be1d5fe":"145",c643a6d5:"191","32c42bbe":"202",bc63ae25:"230",d3ca7a96:"265",eca2a4e0:"266","9b5a408c":"299","6e1a9721":"321","07c30ae4":"368","93e16042":"417","14f42f9e":"444","86b18dd0":"730","4af57a32":"762","6d684b63":"768","672a0eba":"787",a4c0ff01:"800",dc7b1ef3:"868",d3600190:"944",c141421f:"957","05d835b4":"964","021496c4":"982","8a61012d":"1022","24d32e91":"1035",f5818e36:"1079",c2de64b8:"1185","647965d5":"1227","8054effa":"1394",ac3cc3f5:"1488","1e9025f7":"1500","264ffc80":"1556","3ef76b56":"1563","22dd74f7":"1567","92852ade":"1625","41a97a99":"1690","7b257a20":"1765",de94873f:"1841","2ab0d4f5":"1845",fe6f9601:"1956","7ad92a12":"2008","7b7db446":"2073","338a6f8e":"2097","9cc9f218":"2100","1a4e3797":"2138",e756fa26:"2273",faf7ef88:"2288","0123c128":"2341","394022bb":"2551","8ff68e6f":"2624",a3ab51d1:"2657",b3ba68b4:"2777",a9b73094:"2818","8cea976c":"3099","6a2beaac":"3110","99a4401d":"3225",bd7ab245:"3247","6aa941bb":"3327",b5257597:"3347",f66238ae:"3391",c2b1730c:"3694",f113d167:"3740",c85076de:"3795",c3d82421:"3832","7679ca6e":"3859",c8dad5f1:"3917","829ff4d2":"3964","0e5205b8":"3968","9ac856ad":"4046","5cf11f26":"4133","8abbbbe8":"4237","31ead0b1":"4242",b6bf934a:"4274","8311683c":"4526","6801371f":"4615",c563aec0:"4633",fef056e9:"4645",e189eece:"4778","438e4337":"4784",fba42286:"4806","8298c1cb":"4841",d73246f8:"4867",ca67d85f:"4891",d2ad385b:"4930",a9b4f8aa:"4931",a71efd4a:"4954","2d2c4fcb":"4973","3542ed72":"5109","309383dc":"5138","41e3c105":"5179",b1ab2a41:"5195",a0511a5b:"5281","64ca91f1":"5284",fa10e583:"5290","7dbff1af":"5304","9447891f":"5339","5c480e8b":"5448","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","364e949f":"5799","214b2cc2":"5824",e1766139:"5865","3b577cbb":"5866","61cfab8e":"5883",f178e9b3:"5894","4d983c8e":"6003","445668ec":"6008","60c70af6":"6010",dfc50084:"6053","3f19c00a":"6066","472dc73b":"6079","4d15791b":"6080","6a6b9cdc":"6119",ab17fe15:"6147","9ab37888":"6201",b1220dbd:"6214",c96ce3ed:"6281","873508e7":"6332","188ee668":"6350","96eb0e67":"6419","9fb9a766":"6445","4c5e977b":"6473","320c2db0":"6511","6f13807a":"6559","02e43f39":"6649","5a6d6120":"6682","388c3769":"6688",ff349d2f:"6753","86bd0a2e":"6757","8b85e1d0":"6890",c817e236:"6920",d745f4e6:"6934",b36bb719:"6949","91282a5c":"7088",a7bd4aaa:"7098","688feaef":"7108","4ce9199e":"7118",d0c1f670:"7142",aecfdd3d:"7159","547df4a1":"7165",cacdc615:"7211",c39b795e:"7338","7a774ddf":"7339","3ae94ad4":"7408",fdefa9a8:"7453","921b5fc1":"7462","744aaf8b":"7472","651ef245":"7507","3a82b27e":"7713","0f44198a":"7894","25bf2d67":"8031","85112c90":"8054","274fd934":"8064",cc44357e:"8085","019dbd1f":"8102","222029a9":"8184",ecd67556:"8188","75a9e1e0":"8196","216e3ed7":"8208","5e834a3c":"8245","153f2b62":"8298","73d1a090":"8304",c6a5eaec:"8356","261f8123":"8374",e6c6a4d2:"8504","44dfcf75":"8598","8f774222":"8661","3705a9c0":"8679",ae68aa8b:"8927","172b3cfb":"8929",e5eb12ce:"8977","850d3674":"9036",a94703ab:"9048",b1bc5ffe:"9099","169603ea":"9126","667d0790":"9306","991799c5":"9371",cd8dccb5:"9431","913561e8":"9453","54175a6c":"9455","57c9a2b8":"9476","4e038a6a":"9479","7823fa72":"9483","49311ca0":"9509",dedd5914:"9555","29b8e27a":"9619",eae80ce0:"9642","5e95c892":"9647","5ff9f4db":"9681",ee3b5967:"9705","52edee88":"9731","72d61395":"9752","537e1953":"9789",b3c57e4b:"9836","09f5326a":"9857",be76515e:"9888","43df3697":"9905","5217df3c":"9914"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(a,c)=>{var f=r.o(e,a)?e[a]:void 0;if(0!==f)if(f)c.push(f[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var b=new Promise(((c,b)=>f=e[a]=[c,b]));c.push(f[2]=b);var d=r.p+r.u(a),t=new Error;r.l(d,(c=>{if(r.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var b=c&&("load"===c.type?"missing":c.type),d=c&&c.target&&c.target.src;t.message="Loading chunk "+a+" failed.\n("+b+": "+d+")",t.name="ChunkLoadError",t.type=b,t.request=d,f[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,c)=>{var f,b,d=c[0],t=c[1],o=c[2],n=0;if(d.some((a=>0!==e[a]))){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(a&&a(c);n
-
+
diff --git a/components-agents.html b/components-agents.html
index c17264721b..e96087a151 100644
--- a/components-agents.html
+++ b/components-agents.html
@@ -21,7 +21,7 @@
-
+
diff --git a/components-bundle-components.html b/components-bundle-components.html
index da85d81d57..5bd0606e75 100644
--- a/components-bundle-components.html
+++ b/components-bundle-components.html
@@ -21,7 +21,7 @@
-
+
diff --git a/components-custom-components.html b/components-custom-components.html
index 0cd520905b..c95e8f474f 100644
--- a/components-custom-components.html
+++ b/components-custom-components.html
@@ -21,7 +21,7 @@
-
+
diff --git a/components-data.html b/components-data.html
index d1d65f601e..af33f0200a 100644
--- a/components-data.html
+++ b/components-data.html
@@ -21,7 +21,7 @@
-
+
@@ -158,7 +158,7 @@ This example extracts the first paragraph from the "In the News" secti
This component defines a webhook trigger that runs a flow when it receives an HTTP POST request.
If the input is not valid JSON, the component wraps it in a payload object so that it can be processed and still trigger the flow. The component does not require an API key.
When a Webhook component is added to the workspace, a new Webhook cURL tab becomes available in the API pane that contains an HTTP POST request for triggering the webhook component. For example:
"input_value": "Whats the recommended way to install Docker on Mac M1",
_10
"session_id": "docker-question-on-m1",
_10
"output_type": "chat",
_10
"input_type": "chat"
_10
}'
The custom session_id value starts a new chat session between your client and the Langflow server, and can be useful in keeping conversations and AI context separate.
Send the POST request.
@@ -129,7 +129,7 @@ A new chat session called docker-question-on-m1 has appeared, using
Click Tweaks to modify parameters in the component's data object.
For example, disabling storing messages from the Chat Input component adds a Tweak to your command:
To confirm your command is using the tweak, navigate to the Logs pane and view the request from the Chat Input component.
The value for should_store_message is false.