🔧 chore(__main__.py): refactor serve function to improve readability and maintainability
✨ feat(__main__.py): add support for custom components directory path as an environment variable ✨ feat(__main__.py): set default value for config option to be the config.yaml file in the same directory as the script ✨ feat(__main__.py): add support for specifying an .env file containing environment variables ✨ feat(__main__.py): add backend_only option to run only the backend server without the frontend 🔧 chore(__main__.py): refactor setup_app function to pass backend_only option to the app setup ✨ feat(__main__.py): add check to skip server startup if running in pytest environment 🔧 chore(__main__.py): refactor serve function to improve readability and maintainability ✨ feat(__main__.py): add support for running the server using uvicorn on Windows
This commit is contained in:
parent
7776977378
commit
709c4a1749
1 changed files with 13 additions and 2 deletions
|
|
@ -106,7 +106,9 @@ def serve(
|
||||||
help="Path to the directory containing custom components.",
|
help="Path to the directory containing custom components.",
|
||||||
envvar="LANGFLOW_COMPONENTS_PATH",
|
envvar="LANGFLOW_COMPONENTS_PATH",
|
||||||
),
|
),
|
||||||
config: str = typer.Option("config.yaml", help="Path to the configuration file."),
|
config: str = typer.Option(
|
||||||
|
Path(__file__).parent / "config.yaml", help="Path to the configuration file."
|
||||||
|
),
|
||||||
# .env file param
|
# .env file param
|
||||||
env_file: Path = typer.Option(
|
env_file: Path = typer.Option(
|
||||||
None, help="Path to the .env file containing environment variables."
|
None, help="Path to the .env file containing environment variables."
|
||||||
|
|
@ -146,6 +148,11 @@ def serve(
|
||||||
help="Remove API keys from the projects saved in the database.",
|
help="Remove API keys from the projects saved in the database.",
|
||||||
envvar="LANGFLOW_REMOVE_API_KEYS",
|
envvar="LANGFLOW_REMOVE_API_KEYS",
|
||||||
),
|
),
|
||||||
|
backend_only: bool = typer.Option(
|
||||||
|
False,
|
||||||
|
help="Run only the backend server without the frontend.",
|
||||||
|
envvar="LANGFLOW_BACKEND_ONLY",
|
||||||
|
),
|
||||||
):
|
):
|
||||||
"""
|
"""
|
||||||
Run the Langflow server.
|
Run the Langflow server.
|
||||||
|
|
@ -167,7 +174,7 @@ def serve(
|
||||||
)
|
)
|
||||||
# create path object if path is provided
|
# create path object if path is provided
|
||||||
static_files_dir: Optional[Path] = Path(path) if path else None
|
static_files_dir: Optional[Path] = Path(path) if path else None
|
||||||
app = setup_app(static_files_dir=static_files_dir)
|
app = setup_app(static_files_dir=static_files_dir, backend_only=backend_only)
|
||||||
# check if port is being used
|
# check if port is being used
|
||||||
if is_port_in_use(port, host):
|
if is_port_in_use(port, host):
|
||||||
port = get_free_port(port)
|
port = get_free_port(port)
|
||||||
|
|
@ -179,6 +186,10 @@ def serve(
|
||||||
"timeout": timeout,
|
"timeout": timeout,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Define an env variable to know if we are just testing the server
|
||||||
|
if "pytest" in sys.modules:
|
||||||
|
return
|
||||||
|
|
||||||
if platform.system() in ["Windows"]:
|
if platform.system() in ["Windows"]:
|
||||||
# Run using uvicorn on MacOS and Windows
|
# Run using uvicorn on MacOS and Windows
|
||||||
# Windows doesn't support gunicorn
|
# Windows doesn't support gunicorn
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue