build: add hot reload config for core letta server (#2093)

This commit is contained in:
jnjpng 2025-05-09 11:39:43 -07:00 committed by GitHub
parent 70fecca5fb
commit a4161fa621
3 changed files with 16 additions and 3 deletions

View File

@ -42,6 +42,7 @@ def server(
port: Annotated[Optional[int], typer.Option(help="Port to run the server on")] = None, port: Annotated[Optional[int], typer.Option(help="Port to run the server on")] = None,
host: Annotated[Optional[str], typer.Option(help="Host to run the server on (default to localhost)")] = None, host: Annotated[Optional[str], typer.Option(help="Host to run the server on (default to localhost)")] = None,
debug: Annotated[bool, typer.Option(help="Turn debugging output on")] = False, debug: Annotated[bool, typer.Option(help="Turn debugging output on")] = False,
reload: Annotated[bool, typer.Option(help="Enable hot-reload")] = False,
ade: Annotated[bool, typer.Option(help="Allows remote access")] = False, # NOTE: deprecated ade: Annotated[bool, typer.Option(help="Allows remote access")] = False, # NOTE: deprecated
secure: Annotated[bool, typer.Option(help="Adds simple security access")] = False, secure: Annotated[bool, typer.Option(help="Adds simple security access")] = False,
localhttps: Annotated[bool, typer.Option(help="Setup local https")] = False, localhttps: Annotated[bool, typer.Option(help="Setup local https")] = False,
@ -61,7 +62,7 @@ def server(
try: try:
from letta.server.rest_api.app import start_server from letta.server.rest_api.app import start_server
start_server(port=port, host=host, debug=debug) start_server(port=port, host=host, debug=debug, reload=reload)
except KeyboardInterrupt: except KeyboardInterrupt:
# Handle CTRL-C # Handle CTRL-C

View File

@ -333,6 +333,7 @@ def start_server(
port: Optional[int] = None, port: Optional[int] = None,
host: Optional[str] = None, host: Optional[str] = None,
debug: bool = False, debug: bool = False,
reload: bool = False,
): ):
"""Convenience method to start the server from within Python""" """Convenience method to start the server from within Python"""
if debug: if debug:
@ -356,7 +357,7 @@ def start_server(
host=host or "localhost", host=host or "localhost",
port=port or REST_DEFAULT_PORT, port=port or REST_DEFAULT_PORT,
workers=settings.uvicorn_workers, workers=settings.uvicorn_workers,
reload=settings.uvicorn_reload, reload=reload or settings.uvicorn_reload,
timeout_keep_alive=settings.uvicorn_timeout_keep_alive, timeout_keep_alive=settings.uvicorn_timeout_keep_alive,
ssl_keyfile="certs/localhost-key.pem", ssl_keyfile="certs/localhost-key.pem",
ssl_certfile="certs/localhost.pem", ssl_certfile="certs/localhost.pem",
@ -375,6 +376,6 @@ def start_server(
host=host or "localhost", host=host or "localhost",
port=port or REST_DEFAULT_PORT, port=port or REST_DEFAULT_PORT,
workers=settings.uvicorn_workers, workers=settings.uvicorn_workers,
reload=settings.uvicorn_reload, reload=reload or settings.uvicorn_reload,
timeout_keep_alive=settings.uvicorn_timeout_keep_alive, timeout_keep_alive=settings.uvicorn_timeout_keep_alive,
) )

View File

@ -34,6 +34,17 @@
"cwd": "apps/core" "cwd": "apps/core"
} }
}, },
"debug": {
"executor": "@nxlv/python:run-commands",
"options": {
"commands": [
"./otel/start-otel-collector.sh",
"poetry run letta server --debug --reload"
],
"parallel": true,
"cwd": "apps/core"
}
},
"build": { "build": {
"executor": "@nxlv/python:build", "executor": "@nxlv/python:build",
"outputs": ["{projectRoot}/dist"], "outputs": ["{projectRoot}/dist"],