Signed-off-by: Dakai An <dakaian108@gmail.com> Signed-off-by: AlanFokCo <alanfok2868@gmail.com> Signed-off-by: aoshen02 <aoshen@inferact.ai> Signed-off-by: Dakai An <77474977+andakai@users.noreply.github.com> Co-authored-by: AlanFokCo <alanfok2868@gmail.com> Co-authored-by: aoshen02 <aoshen@inferact.ai> Co-authored-by: OpenAI Codex <noreply@openai.com>
55 lines
1.5 KiB
Python
55 lines
1.5 KiB
Python
# SPDX-License-Identifier: Apache-2.0
|
|
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
|
|
|
|
|
from fastapi import APIRouter, FastAPI, Request
|
|
from fastapi.responses import JSONResponse, Response
|
|
|
|
from vllm.engine.protocol import EngineClient
|
|
from vllm.logger import init_logger
|
|
|
|
logger = init_logger(__name__)
|
|
|
|
|
|
def engine_client(request: Request) -> EngineClient:
|
|
return request.app.state.engine_client
|
|
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.post("/sleep")
|
|
async def sleep(raw_request: Request):
|
|
# get POST params
|
|
level = raw_request.query_params.get("level", "1")
|
|
mode = raw_request.query_params.get("mode", "abort")
|
|
await engine_client(raw_request).sleep(int(level), mode)
|
|
return Response(status_code=200)
|
|
|
|
|
|
@router.post("/release_kv_cache_memory")
|
|
async def release_kv_cache_memory(raw_request: Request):
|
|
await engine_client(raw_request).release_kv_cache_memory()
|
|
return Response(status_code=200)
|
|
|
|
|
|
@router.post("/wake_up")
|
|
async def wake_up(raw_request: Request):
|
|
tags = raw_request.query_params.getlist("tags")
|
|
if tags == []:
|
|
# set to None to wake up all tags if no tags are provided
|
|
tags = None
|
|
logger.info("wake up the engine with tags: %s", tags)
|
|
await engine_client(raw_request).wake_up(tags)
|
|
return Response(status_code=200)
|
|
|
|
|
|
@router.get("/is_sleeping")
|
|
async def is_sleeping(raw_request: Request):
|
|
is_sleeping = await engine_client(raw_request).is_sleeping()
|
|
return JSONResponse(content={"is_sleeping": is_sleeping})
|
|
|
|
|
|
def attach_router(app: FastAPI):
|
|
app.include_router(router)
|