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