From f83e29f22ee8c67f1d2e23e1be0baee29beeca60 Mon Sep 17 00:00:00 2001
From: Mendon Kissling <59585235+mendonk@users.noreply.github.com>
Date: Tue, 4 Jun 2024 17:17:53 -0400
Subject: [PATCH 01/14] spacing
---
docs/docs/administration/api.mdx | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/docs/docs/administration/api.mdx b/docs/docs/administration/api.mdx
index 103c43f81..115cdc666 100644
--- a/docs/docs/administration/api.mdx
+++ b/docs/docs/administration/api.mdx
@@ -10,8 +10,7 @@ Langflow provides an API key functionality that allows users to access their ind
The default user and password are set using the LANGFLOW_SUPERUSER and
LANGFLOW_SUPERUSER_PASSWORD environment variables.
-The default values are
-langflow and langflow, respectively.
+The default values are `langflow` and `langflow`, respectively.
From c6659606c660fa728207db154003e3f73179694f Mon Sep 17 00:00:00 2001
From: Mendon Kissling <59585235+mendonk@users.noreply.github.com>
Date: Tue, 4 Jun 2024 17:18:00 -0400
Subject: [PATCH 02/14] more-cli-commands
---
docs/docs/administration/cli.mdx | 36 ++++++++++++++++++++++++++++----
1 file changed, 32 insertions(+), 4 deletions(-)
diff --git a/docs/docs/administration/cli.mdx b/docs/docs/administration/cli.mdx
index a2a41adcd..19adeea46 100644
--- a/docs/docs/administration/cli.mdx
+++ b/docs/docs/administration/cli.mdx
@@ -12,6 +12,16 @@ python -m langflow run --help
python -m langflow run
```
+The available commands are below. Navigate to their individual sections of this page to see the parameters.
+
+langflow run
+langflow superuser
+langflow migration
+
+langflow copy-db
+
+## langflow run
+
Each option for `run` command are detailed below:
- `--help`: Displays all available options.
@@ -35,7 +45,13 @@ Each option for `run` command are detailed below:
These parameters are important for users who need to customize the behavior of Langflow, especially in development or specialized deployment scenarios.
-### API Key Command
+### Environment Variables
+
+You can configure many of the CLI options using environment variables. These can be exported in your operating system or added to a `.env` file and loaded using the `--env-file` option.
+
+A sample `.env` file named `.env.example` is included with the project. Copy this file to a new file named `.env` and replace the example values with your actual settings. If you're setting values in both your OS and the `.env` file, the `.env` settings will take precedence.
+
+### langflow api-key
The `api-key` command allows you to create an API key for accessing Langflow's API when `LANGFLOW_AUTO_LOGIN` is set to `True`.
@@ -70,8 +86,20 @@ python -m langflow api-key
╰─────────────────────────────────────────────────────────────────────╯
```
-### Environment Variables
-You can configure many of the CLI options using environment variables. These can be exported in your operating system or added to a `.env` file and loaded using the `--env-file` option.
-A sample `.env` file named `.env.example` is included with the project. Copy this file to a new file named `.env` and replace the example values with your actual settings. If you're setting values in both your OS and the `.env` file, the `.env` settings will take precedence.
+### Copy db to current directory
+
+### langflow migration
+
+Options:
+* `--test, --no-test`: Run migrations in test mode. [default: test]
+* `--fix, --no-fix`: Fix migrations. This is a destructive operation, and should only be used if you know what you are doing. [default: no-fix]
+* `--help`: Show this message and exit.
+
+### langflow superuser
+
+Options:
+* `--username`: Username for the superuser. [default: None] [required]
+* `--password`: Password for the superuser. [default: None] [required]
+* `--log-level`: Logging level. [env var: LANGFLOW_LOG_LEVEL] [default: error]
From f23ac7da1ec89ece8a9abd4dc6e7831f11b18cbd Mon Sep 17 00:00:00 2001
From: Mendon Kissling <59585235+mendonk@users.noreply.github.com>
Date: Tue, 4 Jun 2024 17:18:12 -0400
Subject: [PATCH 03/14] more-deployments
---
docs/docs/deployment/backend-only.md | 3 ++
docs/docs/deployment/docker.md | 65 +++++++++++++++++++++++++
docs/docs/deployment/jina-deployment.md | 0
3 files changed, 68 insertions(+)
create mode 100644 docs/docs/deployment/backend-only.md
create mode 100644 docs/docs/deployment/docker.md
delete mode 100644 docs/docs/deployment/jina-deployment.md
diff --git a/docs/docs/deployment/backend-only.md b/docs/docs/deployment/backend-only.md
new file mode 100644
index 000000000..7ad2754d2
--- /dev/null
+++ b/docs/docs/deployment/backend-only.md
@@ -0,0 +1,3 @@
+# Backend-only Deployment
+
+You can run a flow in `--backend-only` mode to
\ No newline at end of file
diff --git a/docs/docs/deployment/docker.md b/docs/docs/deployment/docker.md
new file mode 100644
index 000000000..1ebb5746e
--- /dev/null
+++ b/docs/docs/deployment/docker.md
@@ -0,0 +1,65 @@
+# Docker
+
+This guide will help you get LangFlow up and running using Docker and Docker Compose.
+
+## Prerequisites
+
+- Docker
+- Docker Compose
+
+## Steps
+
+1. Clone the LangFlow repository:
+
+ ```sh
+ git clone https://github.com/langflow-ai/langflow.git
+ ```
+
+2. Navigate to the `docker_example` directory:
+
+ ```sh
+ cd langflow/docker_example
+ ```
+
+3. Run the Docker Compose file:
+
+ ```sh
+ docker compose up
+ ```
+
+LangFlow will now be accessible at [http://localhost:7860/](http://localhost:7860/).
+
+## Docker Compose Configuration
+
+The Docker Compose configuration spins up two services: `langflow` and `postgres`.
+
+### LangFlow Service
+
+The `langflow` service uses the `langflowai/langflow:latest` Docker image and exposes port 7860. It depends on the `postgres` service.
+
+Environment variables:
+
+- `LANGFLOW_DATABASE_URL`: The connection string for the PostgreSQL database.
+- `LANGFLOW_CONFIG_DIR`: The directory where LangFlow stores logs, file storage, monitor data, and secret keys.
+
+Volumes:
+
+- `langflow-data`: This volume is mapped to `/var/lib/langflow` in the container.
+
+### PostgreSQL Service
+
+The `postgres` service uses the `postgres:16` Docker image and exposes port 5432.
+
+Environment variables:
+
+- `POSTGRES_USER`: The username for the PostgreSQL database.
+- `POSTGRES_PASSWORD`: The password for the PostgreSQL database.
+- `POSTGRES_DB`: The name of the PostgreSQL database.
+
+Volumes:
+
+- `langflow-postgres`: This volume is mapped to `/var/lib/postgresql/data` in the container.
+
+## Switching to a Specific LangFlow Version
+
+If you want to use a specific version of LangFlow, you can modify the `image` field under the `langflow` service in the Docker Compose file. For example, to use version 1.0-alpha, change `langflowai/langflow:latest` to `langflowai/langflow:1.0-alpha`.
diff --git a/docs/docs/deployment/jina-deployment.md b/docs/docs/deployment/jina-deployment.md
deleted file mode 100644
index e69de29bb..000000000
From f4217c4134e5842ed8f90ed8e01fb52b0619f64b Mon Sep 17 00:00:00 2001
From: Mendon Kissling <59585235+mendonk@users.noreply.github.com>
Date: Wed, 5 Jun 2024 11:02:39 -0400
Subject: [PATCH 04/14] typo
---
docs/docs/contributing/community.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/docs/contributing/community.md b/docs/docs/contributing/community.md
index 604487133..5c95718ec 100644
--- a/docs/docs/contributing/community.md
+++ b/docs/docs/contributing/community.md
@@ -10,7 +10,7 @@ Langflow [Discord](https://discord.gg/EqksyE2EX9) server.
---
-## 🐦 Stay tunned for **Langflow** on Twitter
+## 🐦 Stay tuned for **Langflow** on Twitter
Follow [@langflow_ai](https://twitter.com/langflow_ai) on **Twitter** to get the latest news about **Langflow**.
From 8e9e2875cdc5af184069523f670e3e8ee60d5541 Mon Sep 17 00:00:00 2001
From: Mendon Kissling <59585235+mendonk@users.noreply.github.com>
Date: Wed, 5 Jun 2024 11:13:49 -0400
Subject: [PATCH 05/14] replace-twitter-logo
---
docs/static/logos/twitter.svg | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/static/logos/twitter.svg b/docs/static/logos/twitter.svg
index 027488d3c..b03ce05a4 100644
--- a/docs/static/logos/twitter.svg
+++ b/docs/static/logos/twitter.svg
@@ -1,3 +1,3 @@
-
+
\ No newline at end of file
From 199459f6458ae8f6e2b8ef3f6b066a30e4f82c6b Mon Sep 17 00:00:00 2001
From: Mendon Kissling <59585235+mendonk@users.noreply.github.com>
Date: Wed, 5 Jun 2024 11:15:43 -0400
Subject: [PATCH 06/14] better-twitter-svg
---
docs/static/logos/twitter.svg | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/static/logos/twitter.svg b/docs/static/logos/twitter.svg
index b03ce05a4..437e2bfdd 100644
--- a/docs/static/logos/twitter.svg
+++ b/docs/static/logos/twitter.svg
@@ -1,3 +1,3 @@
-
\ No newline at end of file
+
From e605b69aac9645dc8ec53d4cf6ebee12aabe5acb Mon Sep 17 00:00:00 2001
From: Mendon Kissling <59585235+mendonk@users.noreply.github.com>
Date: Wed, 5 Jun 2024 13:46:25 -0400
Subject: [PATCH 07/14] cli
---
docs/docs/administration/cli.mdx | 198 +++++++++++++++++++------------
1 file changed, 125 insertions(+), 73 deletions(-)
diff --git a/docs/docs/administration/cli.mdx b/docs/docs/administration/cli.mdx
index 19adeea46..cd418708d 100644
--- a/docs/docs/administration/cli.mdx
+++ b/docs/docs/administration/cli.mdx
@@ -1,78 +1,53 @@
# Command Line Interface (CLI)
-## Overview
-
Langflow's Command Line Interface (CLI) is a powerful tool that allows you to interact with the Langflow server from the command line. The CLI provides a wide range of commands to help you shape Langflow to your needs.
-Running the CLI without any arguments will display a list of available commands and options.
-
-```bash
-python -m langflow run --help
-# or
-python -m langflow run
-```
-
The available commands are below. Navigate to their individual sections of this page to see the parameters.
-langflow run
-langflow superuser
-langflow migration
+* [langflow](#overview)
+* [langflow api-key](#langflow-api-key)
+* [langflow copy-db](#langflow-copy-db)
+* [langflow migration](#langflow-migration)
+* [langflow run](#langflow-run)
+* [langflow superuser](#langflow-superuser)
-langflow copy-db
+## Overview
-## langflow run
-
-Each option for `run` command are detailed below:
-
-- `--help`: Displays all available options.
-- `--host`: Defines the host to bind the server to. Can be set using the `LANGFLOW_HOST` environment variable. The default is `127.0.0.1`.
-- `--workers`: Sets the number of worker processes. Can be set using the `LANGFLOW_WORKERS` environment variable. The default is `1`.
-- `--timeout`: Sets the worker timeout in seconds. The default is `60`.
-- `--port`: Sets the port to listen on. Can be set using the `LANGFLOW_PORT` environment variable. The default is `7860`.
-- `--env-file`: Specifies the path to the .env file containing environment variables. The default is `.env`.
-- `--log-level`: Defines the logging level. Can be set using the `LANGFLOW_LOG_LEVEL` environment variable. The default is `critical`.
-- `--components-path`: Specifies the path to the directory containing custom components. Can be set using the `LANGFLOW_COMPONENTS_PATH` environment variable. The default is `langflow/components`.
-- `--log-file`: Specifies the path to the log file. Can be set using the `LANGFLOW_LOG_FILE` environment variable. The default is `logs/langflow.log`.
-- `--cache`: Select the type of cache to use. Options are `InMemoryCache` and `SQLiteCache`. Can be set using the `LANGFLOW_LANGCHAIN_CACHE` environment variable. The default is `SQLiteCache`.
-- `--dev/--no-dev`: Toggles the development mode. The default is `no-dev`.
-- `--path`: Specifies the path to the frontend directory containing build files. This option is for development purposes only. Can be set using the `LANGFLOW_FRONTEND_PATH` environment variable.
-- `--open-browser/--no-open-browser`: Toggles the option to open the browser after starting the server. Can be set using the `LANGFLOW_OPEN_BROWSER` environment variable. The default is `open-browser`.
-- `--remove-api-keys/--no-remove-api-keys`: Toggles the option to remove API keys from the projects saved in the database. Can be set using the `LANGFLOW_REMOVE_API_KEYS` environment variable. The default is `no-remove-api-keys`.
-- `--install-completion [bash|zsh|fish|powershell|pwsh]`: Installs completion for the specified shell.
-- `--show-completion [bash|zsh|fish|powershell|pwsh]`: Shows completion for the specified shell, allowing you to copy it or customize the installation.
-- `--backend-only`: This parameter, with a default value of `False`, allows running only the backend server without the frontend. It can also be set using the `LANGFLOW_BACKEND_ONLY` environment variable.
-- `--store`: This parameter, with a default value of `True`, enables the store features, use `--no-store` to deactivate it. It can be configured using the `LANGFLOW_STORE` environment variable.
-
-These parameters are important for users who need to customize the behavior of Langflow, especially in development or specialized deployment scenarios.
-
-### Environment Variables
-
-You can configure many of the CLI options using environment variables. These can be exported in your operating system or added to a `.env` file and loaded using the `--env-file` option.
-
-A sample `.env` file named `.env.example` is included with the project. Copy this file to a new file named `.env` and replace the example values with your actual settings. If you're setting values in both your OS and the `.env` file, the `.env` settings will take precedence.
-
-### langflow api-key
-
-The `api-key` command allows you to create an API key for accessing Langflow's API when `LANGFLOW_AUTO_LOGIN` is set to `True`.
+Running the CLI without any arguments displays a list of available options and commands.
```bash
-python -m langflow api-key --help
-
- Usage: langflow api-key [OPTIONS]
-
- Creates an API key for the default superuser if AUTO_LOGIN is enabled.
- Args: log_level (str, optional): Logging level. Defaults to "error".
- Returns: None
-
-╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│ --log-level TEXT Logging level. [env var: LANGFLOW_LOG_LEVEL] [default: error] │
-│ --help Show this message and exit. │
-╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+langflow
+# or
+langflow --help
+# or
+python -m langflow
```
-Once you run the `api-key` command, it will create an API key for the default superuser if `LANGFLOW_AUTO_LOGIN` is set to `True`.
+### Options
+
+| Option | Description |
+| ------ | ----------- |
+| `--install-completion` | Install completion for the current shell. |
+| `--show-completion` | Show completion for the current shell, to copy it or customize the installation. |
+| `--help` | Show this message and exit. |
+
+
+| Command | Description |
+| ------- | ----------- |
+| `api-key` | Creates an API key for the default superuser if AUTO_LOGIN is enabled. |
+| `copy-db` | Copy the database files to the current directory. |
+| `migration` | Run or test migrations. |
+| `run` | Run the Langflow. |
+| `superuser` | Create a superuser. |
+
+
+## langflow api-key
+
+Run the `api-key` command to create an API key for the default superuser if `LANGFLOW_AUTO_LOGIN` is set to `True`.
```bash
+langflow api-key
+# or
python -m langflow api-key
╭─────────────────────────────────────────────────────────────────────╮
│ API Key Created Successfully: │
@@ -83,23 +58,100 @@ python -m langflow api-key
│ Make sure to store it in a secure location. │
│ │
│ The API key has been copied to your clipboard. Cmd + V to paste it. │
-╰─────────────────────────────────────────────────────────────────────╯
+╰──────────────────────────────
```
+### Options
+
+| Option | Type | Description |
+|------------------|------|-------------------------------------------------------------|
+| --log-level | TEXT | Logging level. [env var: LANGFLOW_LOG_LEVEL] [default: error] |
+| --help | | Show this message and exit. |
+
+## langflow copy-db
+
+Run the `copy-db` command to copy the cached database files to the current directory.
+If the files exist in the cache directory, they will be copied to the same directory as `__main__.py`, which is `/Users/username/Documents/GitHub/langflow/test-env/lf-rs/lib/python3.10/site-packages/langflow`.
+
+This function copies the `langflow.db` and `langflow-pre.db` files from the cache directory to the current directory.
+
+### Options
+
+None.
+
+## langflow migration
+
+Run or test migrations with the [Alembic](https://pypi.org/project/alembic/) database tool.
+
+```bash
+langflow migration
+# or
+python -m langflow migration
+```
+
+### Options
+| Option | Description |
+|-----------------|-------------------------------------------------------------|
+| `--test, --no-test` | Run migrations in test mode. [default: test] |
+| `--fix, --no-fix` | Fix migrations. This is a destructive operation, and should only be used if you know what you are doing. [default: no-fix] |
+| `--help` | Show this message and exit. |
-### Copy db to current directory
+## langflow run
-### langflow migration
+Run Langflow.
-Options:
-* `--test, --no-test`: Run migrations in test mode. [default: test]
-* `--fix, --no-fix`: Fix migrations. This is a destructive operation, and should only be used if you know what you are doing. [default: no-fix]
-* `--help`: Show this message and exit.
+```bash
+langflow run
+# or
+python -m langflow run
+```
-### langflow superuser
+### Options
+
+| Option | Description |
+|-------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `--help` | Displays all available options. |
+| `--host` | Defines the host to bind the server to. Can be set using the `LANGFLOW_HOST` environment variable. The default is `127.0.0.1`. |
+| `--workers` | Sets the number of worker processes. Can be set using the `LANGFLOW_WORKERS` environment variable. The default is `1`. |
+| `--timeout` | Sets the worker timeout in seconds. The default is `60`. |
+| `--port` | Sets the port to listen on. Can be set using the `LANGFLOW_PORT` environment variable. The default is `7860`. |
+| `--env-file` | Specifies the path to the .env file containing environment variables. The default is `.env`. |
+| `--log-level` | Defines the logging level. Can be set using the `LANGFLOW_LOG_LEVEL` environment variable. The default is `critical`. |
+| `--components-path` | Specifies the path to the directory containing custom components. Can be set using the `LANGFLOW_COMPONENTS_PATH` environment variable. The default is `langflow/components`. |
+| `--log-file` | Specifies the path to the log file. Can be set using the `LANGFLOW_LOG_FILE` environment variable. The default is `logs/langflow.log`. |
+| `--cache` | Select the type of cache to use. Options are `InMemoryCache` and `SQLiteCache`. Can be set using the `LANGFLOW_LANGCHAIN_CACHE` environment variable. The default is `SQLiteCache`. |
+| `--dev`/`--no-dev` | Toggles the development mode. The default is `no-dev`. |
+| `--path` | Specifies the path to the frontend directory containing build files. This option is for development purposes only. Can be set using the `LANGFLOW_FRONTEND_PATH` environment variable. |
+| `--open-browser`/`--no-open-browser`| Toggles the option to open the browser after starting the server. Can be set using the `LANGFLOW_OPEN_BROWSER` environment variable. The default is `open-browser`. |
+| `--remove-api-keys`/`--no-remove-api-keys`| Toggles the option to remove API keys from the projects saved in the database. Can be set using the `LANGFLOW_REMOVE_API_KEYS` environment variable. The default is `no-remove-api-keys`. |
+| `--install-completion [bash\|zsh\|fish\|powershell\|pwsh]`| Installs completion for the specified shell. |
+| `--show-completion [bash\|zsh\|fish\|powershell\|pwsh]` | Shows completion for the specified shell, allowing you to copy it or customize the installation. |
+| `--backend-only` | This parameter, with a default value of `False`, allows running only the backend server without the frontend. It can also be set using the `LANGFLOW_BACKEND_ONLY` environment variable. |
+| `--store` | This parameter, with a default value of `True`, enables the store features, use `--no-store` to deactivate it. It can be configured using the `LANGFLOW_STORE` environment variable. |
+
+#### Environment Variables
+
+You can configure many of the CLI options using environment variables. These can be exported in your operating system or added to a `.env` file and loaded using the `--env-file` option.
+
+A sample `.env` file named `.env.example` is included with the project. Copy this file to a new file named `.env` and replace the example values with your actual settings. If you're setting values in both your OS and the `.env` file, the `.env` settings will take precedence.
+
+## langflow superuser
+
+Create a superuser for Langflow.
+
+```bash
+langflow superuser
+# or
+python -m langflow superuser
+```
+
+### Options
+
+| Option | Type | Description |
+|----------------|-------|-------------------------------------------------------------|
+| `--username` | TEXT | Username for the superuser. [default: None] [required] |
+| `--password` | TEXT | Password for the superuser. [default: None] [required] |
+| `--log-level` | TEXT | Logging level. [env var: LANGFLOW_LOG_LEVEL] [default: error] |
+| `--help` | | Show this message and exit. |
-Options:
-* `--username`: Username for the superuser. [default: None] [required]
-* `--password`: Password for the superuser. [default: None] [required]
-* `--log-level`: Logging level. [env var: LANGFLOW_LOG_LEVEL] [default: error]
From 829c14e706fb0a7ded659c39ecbc1c77d441487a Mon Sep 17 00:00:00 2001
From: Mendon Kissling <59585235+mendonk@users.noreply.github.com>
Date: Wed, 5 Jun 2024 17:14:44 -0400
Subject: [PATCH 08/14] backend-only mode
---
docs/docs/deployment/backend-only.md | 113 ++++++++++++++++++++++++++-
1 file changed, 112 insertions(+), 1 deletion(-)
diff --git a/docs/docs/deployment/backend-only.md b/docs/docs/deployment/backend-only.md
index 7ad2754d2..7e361addd 100644
--- a/docs/docs/deployment/backend-only.md
+++ b/docs/docs/deployment/backend-only.md
@@ -1,3 +1,114 @@
# Backend-only Deployment
-You can run a flow in `--backend-only` mode to
\ No newline at end of file
+You can run Langflow in `--backend-only` mode to expose your Langflow app as an API, without running the frontend UI.
+
+Start langflow in backend-only mode with `python3 -m langflow run --backend-only`.
+
+The terminal prints ` Welcome to ⛓ Langflow `, and a blank window opens at `http://127.0.0.1:7864/all`.
+Langflow will now serve requests to its API without the frontend running.
+
+## Prerequisites
+
+* [Langflow installed](../getting-started/install-langflow.mdx)
+
+* [OpenAI API key](https://platform.openai.com)
+
+* [A Langflow flow created](../starter-projects/basic-prompting.mdx)
+
+## Download your flow's curl call
+
+1. Click API.
+2. Click **curl** > **Copy code** and save the code to your local machine.
+It will look something like this:
+```curl
+curl -X POST \
+ "http://127.0.0.1:7864/api/v1/run/ef7e0554-69e5-4e3e-ab29-ee83bcd8d9ef?stream=false" \
+ -H 'Content-Type: application/json'\
+ -d '{"input_value": "message",
+ "output_type": "chat",
+ "input_type": "chat",
+ "tweaks": {
+ "Prompt-kvo86": {},
+ "OpenAIModel-MilkD": {},
+ "ChatOutput-ktwdw": {},
+ "ChatInput-xXC4F": {}
+}}'
+```
+Note the flow ID of `ef7e0554-69e5-4e3e-ab29-ee83bcd8d9ef`. You can find this ID in the UI as well to ensure you're querying the right flow.
+
+## Start Langflow in backend-only mode
+
+3. Stop Langflow with Ctrl+C.
+4. Start langflow in backend-only mode with `python3 -m langflow run --backend-only`.
+The terminal prints ` Welcome to ⛓ Langflow `, and a blank window opens at `http://127.0.0.1:7864/all`.
+Langflow will now serve requests to its API.
+5. Run the curl code you copied from the UI.
+You should get a result like this:
+```bash
+{"session_id":"ef7e0554-69e5-4e3e-ab29-ee83bcd8d9ef:bf81d898868ac87e1b4edbd96c131c5dee801ea2971122cc91352d144a45b880","outputs":[{"inputs":{"input_value":"hi, are you there?"},"outputs":[{"results":{"result":"Arrr, ahoy matey! Aye, I be here. What be ye needin', me hearty?"},"artifacts":{"message":"Arrr, ahoy matey! Aye, I be here. What be ye needin', me hearty?","sender":"Machine","sender_name":"AI"},"messages":[{"message":"Arrr, ahoy matey! Aye, I be here. What be ye needin', me hearty?","sender":"Machine","sender_name":"AI","component_id":"ChatOutput-ktwdw"}],"component_display_name":"Chat Output","component_id":"ChatOutput-ktwdw","used_frozen_result":false}]}]}%
+```
+Again, note that the flow ID matches.
+Langflow is receiving your POST request, running the flow, and returning the result, all without running the frontend. Cool!
+
+## Download your flow's Python API call
+
+Instead of using curl, you can download your flow as a Python API call instead.
+
+1. Click API.
+2. Click **Python API** > **Copy code** and save the code to your local machine.
+The code will look something like this:
+```python
+import requests
+from typing import Optional
+
+BASE_API_URL = "http://127.0.0.1:7864/api/v1/run"
+FLOW_ID = "ef7e0554-69e5-4e3e-ab29-ee83bcd8d9ef"
+# You can tweak the flow by adding a tweaks dictionary
+# e.g {"OpenAI-XXXXX": {"model_name": "gpt-4"}}
+
+def run_flow(message: str,
+ flow_id: str,
+ output_type: str = "chat",
+ input_type: str = "chat",
+ tweaks: Optional[dict] = None,
+ api_key: Optional[str] = None) -> dict:
+ """
+ Run a flow with a given message and optional tweaks.
+
+ :param message: The message to send to the flow
+ :param flow_id: The ID of the flow to run
+ :param tweaks: Optional tweaks to customize the flow
+ :return: The JSON response from the flow
+ """
+ api_url = f"{BASE_API_URL}/{flow_id}"
+
+ payload = {
+ "input_value": message,
+ "output_type": output_type,
+ "input_type": input_type,
+ }
+ headers = None
+ if tweaks:
+ payload["tweaks"] = tweaks
+ if api_key:
+ headers = {"x-api-key": api_key}
+ response = requests.post(api_url, json=payload, headers=headers)
+ return response.json()
+
+# Setup any tweaks you want to apply to the flow
+message = "message"
+
+print(run_flow(message=message, flow_id=FLOW_ID))
+```
+3. Run your Python app:
+```python
+python3 app.py
+```
+
+The result is similar to the curl call:
+```bash
+{'session_id': 'ef7e0554-69e5-4e3e-ab29-ee83bcd8d9ef:bf81d898868ac87e1b4edbd96c131c5dee801ea2971122cc91352d144a45b880', 'outputs': [{'inputs': {'input_value': 'message'}, 'outputs': [{'results': {'result': "Arrr matey! What be yer message for this ol' pirate? Speak up or walk the plank!"}, 'artifacts': {'message': "Arrr matey! What be yer message for this ol' pirate? Speak up or walk the plank!", 'sender': 'Machine', 'sender_name': 'AI'}, 'messages': [{'message': "Arrr matey! What be yer message for this ol' pirate? Speak up or walk the plank!", 'sender': 'Machine', 'sender_name': 'AI', 'component_id': 'ChatOutput-ktwdw'}], 'component_display_name': 'Chat Output', 'component_id': 'ChatOutput-ktwdw', 'used_frozen_result': False}]}]}
+```
+Your Python app POSTs to your Langflow server, and the server runs the flow and returns the result.
+
+See [API](../administration/api.mdx) for more ways to interact with your headless Langflow server.
\ No newline at end of file
From d8cfe679bf6f4fd02932eb6ce5d4d5d1fbe1e908 Mon Sep 17 00:00:00 2001
From: Mendon Kissling <59585235+mendonk@users.noreply.github.com>
Date: Wed, 5 Jun 2024 17:14:53 -0400
Subject: [PATCH 09/14] nav
---
docs/sidebars.js | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/docs/sidebars.js b/docs/sidebars.js
index d3f4f2671..adcafa410 100644
--- a/docs/sidebars.js
+++ b/docs/sidebars.js
@@ -116,7 +116,10 @@ module.exports = {
type: "category",
label: "Deployment",
collapsed: true,
- items: ["deployment/gcp-deployment"],
+ items: ["deployment/gcp-deployment",
+ "deployment/docker",
+ "deployment/backend-only"
+ ],
},
{
type: "category",
From 1cf4779059717fcf11b6b26b67b4594a2dc86dfc Mon Sep 17 00:00:00 2001
From: Mendon Kissling <59585235+mendonk@users.noreply.github.com>
Date: Wed, 5 Jun 2024 17:16:23 -0400
Subject: [PATCH 10/14] title-and-nav
---
docs/docs/deployment/backend-only.md | 3 +--
docs/sidebars.js | 6 +++---
2 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/docs/docs/deployment/backend-only.md b/docs/docs/deployment/backend-only.md
index 7e361addd..92f1189e1 100644
--- a/docs/docs/deployment/backend-only.md
+++ b/docs/docs/deployment/backend-only.md
@@ -1,5 +1,4 @@
-# Backend-only Deployment
-
+# Backend-only
You can run Langflow in `--backend-only` mode to expose your Langflow app as an API, without running the frontend UI.
Start langflow in backend-only mode with `python3 -m langflow run --backend-only`.
diff --git a/docs/sidebars.js b/docs/sidebars.js
index adcafa410..26e128247 100644
--- a/docs/sidebars.js
+++ b/docs/sidebars.js
@@ -116,9 +116,9 @@ module.exports = {
type: "category",
label: "Deployment",
collapsed: true,
- items: ["deployment/gcp-deployment",
- "deployment/docker",
- "deployment/backend-only"
+ items: ["deployment/docker",
+ "deployment/backend-only",
+ "deployment/gcp-deployment",
],
},
{
From 34e57b6a449ce3cd6def142cedb2053d4a658691 Mon Sep 17 00:00:00 2001
From: Mendon Kissling <59585235+mendonk@users.noreply.github.com>
Date: Wed, 5 Jun 2024 17:18:00 -0400
Subject: [PATCH 11/14] link
---
docs/docs/administration/cli.mdx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/docs/administration/cli.mdx b/docs/docs/administration/cli.mdx
index cd418708d..65fd1357c 100644
--- a/docs/docs/administration/cli.mdx
+++ b/docs/docs/administration/cli.mdx
@@ -127,7 +127,7 @@ python -m langflow run
| `--remove-api-keys`/`--no-remove-api-keys`| Toggles the option to remove API keys from the projects saved in the database. Can be set using the `LANGFLOW_REMOVE_API_KEYS` environment variable. The default is `no-remove-api-keys`. |
| `--install-completion [bash\|zsh\|fish\|powershell\|pwsh]`| Installs completion for the specified shell. |
| `--show-completion [bash\|zsh\|fish\|powershell\|pwsh]` | Shows completion for the specified shell, allowing you to copy it or customize the installation. |
-| `--backend-only` | This parameter, with a default value of `False`, allows running only the backend server without the frontend. It can also be set using the `LANGFLOW_BACKEND_ONLY` environment variable. |
+| `--backend-only` | This parameter, with a default value of `False`, allows running only the backend server without the frontend. It can also be set using the `LANGFLOW_BACKEND_ONLY` environment variable. For more, see [Backend-only](../deployment/backend-only.md).|
| `--store` | This parameter, with a default value of `True`, enables the store features, use `--no-store` to deactivate it. It can be configured using the `LANGFLOW_STORE` environment variable. |
#### Environment Variables
From 7ad91a9b947218b207cd092efd2ab3864aac29a4 Mon Sep 17 00:00:00 2001
From: Mendon Kissling <59585235+mendonk@users.noreply.github.com>
Date: Thu, 6 Jun 2024 11:44:11 -0400
Subject: [PATCH 12/14] copy-db-info
---
docs/docs/administration/cli.mdx | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/docs/docs/administration/cli.mdx b/docs/docs/administration/cli.mdx
index 65fd1357c..3991376f3 100644
--- a/docs/docs/administration/cli.mdx
+++ b/docs/docs/administration/cli.mdx
@@ -35,7 +35,7 @@ python -m langflow
| Command | Description |
| ------- | ----------- |
| `api-key` | Creates an API key for the default superuser if AUTO_LOGIN is enabled. |
-| `copy-db` | Copy the database files to the current directory. |
+| `copy-db` | Copy the database files to the current directory (`which langflow`). |
| `migration` | Run or test migrations. |
| `run` | Run the Langflow. |
| `superuser` | Create a superuser. |
@@ -70,10 +70,9 @@ python -m langflow api-key
## langflow copy-db
-Run the `copy-db` command to copy the cached database files to the current directory.
-If the files exist in the cache directory, they will be copied to the same directory as `__main__.py`, which is `/Users/username/Documents/GitHub/langflow/test-env/lf-rs/lib/python3.10/site-packages/langflow`.
+Run the `copy-db` command to copy the cached `langflow.db` and `langflow-pre.db` database files to the current directory.
-This function copies the `langflow.db` and `langflow-pre.db` files from the cache directory to the current directory.
+If the files exist in the cache directory, they will be copied to the same directory as `__main__.py`, which can be found with `which langflow`.
### Options
From 4e7867fd661b6089f48f26cfc48139d5d77c3f64 Mon Sep 17 00:00:00 2001
From: Mendon Kissling <59585235+mendonk@users.noreply.github.com>
Date: Thu, 6 Jun 2024 12:33:21 -0400
Subject: [PATCH 13/14] numbers
---
docs/docs/deployment/backend-only.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/docs/deployment/backend-only.md b/docs/docs/deployment/backend-only.md
index 92f1189e1..c82e55aa6 100644
--- a/docs/docs/deployment/backend-only.md
+++ b/docs/docs/deployment/backend-only.md
@@ -37,11 +37,11 @@ Note the flow ID of `ef7e0554-69e5-4e3e-ab29-ee83bcd8d9ef`. You can find this ID
## Start Langflow in backend-only mode
-3. Stop Langflow with Ctrl+C.
-4. Start langflow in backend-only mode with `python3 -m langflow run --backend-only`.
+1. Stop Langflow with Ctrl+C.
+2. Start langflow in backend-only mode with `python3 -m langflow run --backend-only`.
The terminal prints ` Welcome to ⛓ Langflow `, and a blank window opens at `http://127.0.0.1:7864/all`.
Langflow will now serve requests to its API.
-5. Run the curl code you copied from the UI.
+3. Run the curl code you copied from the UI.
You should get a result like this:
```bash
{"session_id":"ef7e0554-69e5-4e3e-ab29-ee83bcd8d9ef:bf81d898868ac87e1b4edbd96c131c5dee801ea2971122cc91352d144a45b880","outputs":[{"inputs":{"input_value":"hi, are you there?"},"outputs":[{"results":{"result":"Arrr, ahoy matey! Aye, I be here. What be ye needin', me hearty?"},"artifacts":{"message":"Arrr, ahoy matey! Aye, I be here. What be ye needin', me hearty?","sender":"Machine","sender_name":"AI"},"messages":[{"message":"Arrr, ahoy matey! Aye, I be here. What be ye needin', me hearty?","sender":"Machine","sender_name":"AI","component_id":"ChatOutput-ktwdw"}],"component_display_name":"Chat Output","component_id":"ChatOutput-ktwdw","used_frozen_result":false}]}]}%
From 60023657d8e024eb1d3c0430a9ccc1d08ada8fbe Mon Sep 17 00:00:00 2001
From: Mendon Kissling <59585235+mendonk@users.noreply.github.com>
Date: Thu, 6 Jun 2024 12:39:16 -0400
Subject: [PATCH 14/14] command-order
---
docs/docs/administration/cli.mdx | 16 +++++++---------
1 file changed, 7 insertions(+), 9 deletions(-)
diff --git a/docs/docs/administration/cli.mdx b/docs/docs/administration/cli.mdx
index 3991376f3..11ea6fa65 100644
--- a/docs/docs/administration/cli.mdx
+++ b/docs/docs/administration/cli.mdx
@@ -23,15 +23,6 @@ langflow --help
python -m langflow
```
-### Options
-
-| Option | Description |
-| ------ | ----------- |
-| `--install-completion` | Install completion for the current shell. |
-| `--show-completion` | Show completion for the current shell, to copy it or customize the installation. |
-| `--help` | Show this message and exit. |
-
-
| Command | Description |
| ------- | ----------- |
| `api-key` | Creates an API key for the default superuser if AUTO_LOGIN is enabled. |
@@ -40,6 +31,13 @@ python -m langflow
| `run` | Run the Langflow. |
| `superuser` | Create a superuser. |
+### Options
+
+| Option | Description |
+| ------ | ----------- |
+| `--install-completion` | Install completion for the current shell. |
+| `--show-completion` | Show completion for the current shell, to copy it or customize the installation. |
+| `--help` | Show this message and exit. |
## langflow api-key