mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-12-22 22:42:25 +00:00
feat(server): construct the stack in a persistent event loop
This commit is contained in:
parent
2bb9039173
commit
4d4da01f44
1 changed files with 10 additions and 2 deletions
|
|
@ -455,6 +455,7 @@ def main(args: argparse.Namespace | None = None):
|
||||||
redoc_url="/redoc",
|
redoc_url="/redoc",
|
||||||
openapi_url="/openapi.json",
|
openapi_url="/openapi.json",
|
||||||
)
|
)
|
||||||
|
|
||||||
if not os.environ.get("LLAMA_STACK_DISABLE_VERSION_CHECK"):
|
if not os.environ.get("LLAMA_STACK_DISABLE_VERSION_CHECK"):
|
||||||
app.add_middleware(ClientVersionMiddleware)
|
app.add_middleware(ClientVersionMiddleware)
|
||||||
|
|
||||||
|
|
@ -493,7 +494,13 @@ def main(args: argparse.Namespace | None = None):
|
||||||
)
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
impls = asyncio.run(construct_stack(config))
|
# Create and set the event loop that will be used for both construction and server runtime
|
||||||
|
loop = asyncio.new_event_loop()
|
||||||
|
asyncio.set_event_loop(loop)
|
||||||
|
|
||||||
|
# Construct the stack in the persistent event loop
|
||||||
|
impls = loop.run_until_complete(construct_stack(config))
|
||||||
|
|
||||||
except InvalidProviderError as e:
|
except InvalidProviderError as e:
|
||||||
logger.error(f"Error: {str(e)}")
|
logger.error(f"Error: {str(e)}")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
@ -591,7 +598,8 @@ def main(args: argparse.Namespace | None = None):
|
||||||
if ssl_config:
|
if ssl_config:
|
||||||
uvicorn_config.update(ssl_config)
|
uvicorn_config.update(ssl_config)
|
||||||
|
|
||||||
uvicorn.run(**uvicorn_config)
|
# Run uvicorn in the existing event loop to preserve background tasks
|
||||||
|
loop.run_until_complete(uvicorn.Server(uvicorn.Config(**uvicorn_config)).serve())
|
||||||
|
|
||||||
|
|
||||||
def extract_path_params(route: str) -> list[str]:
|
def extract_path_params(route: str) -> list[str]:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue