feat:llm manage

This commit is contained in:
aries_ckt 2023-09-19 23:20:14 +08:00
parent 86ad276244
commit eca313a608

View File

@ -1,11 +1,10 @@
from fastapi import APIRouter from fastapi import APIRouter
from pilot.component import ComponentType from pilot.component import ComponentType
from pilot.configs.config import Config from pilot.configs.config import Config
from pilot.model.base import ModelInstance, WorkerApplyType from pilot.model.base import ModelInstance, WorkerApplyType
from pilot.model.cluster import WorkerStartupRequest from pilot.model.cluster import WorkerStartupRequest, WorkerManager
from pilot.openapi.api_view_model import Result from pilot.openapi.api_view_model import Result
from pilot.server.llm_manage.request.request import ModelResponse from pilot.server.llm_manage.request.request import ModelResponse
@ -14,15 +13,30 @@ CFG = Config()
router = APIRouter() router = APIRouter()
@router.post("/controller/list") # @router.post("/controller/list")
async def controller_list(request: ModelInstance): # async def controller_list(request: ModelInstance):
print(f"/controller/list params:") # print(f"/controller/list params:")
# try:
# CFG.LLM_MODEL = request.model_name
# return Result.succ("success")
#
# except Exception as e:
# return Result.faild(code="E000X", msg=f"space list error {e}")
@router.get("/v1/worker/model/params")
async def model_params():
print(f"/worker/model/params")
try: try:
CFG.LLM_MODEL = request.model_name from pilot.model.cluster import WorkerManagerFactory
return Result.succ("success") worker_manager = CFG.SYSTEM_APP.get_component(
ComponentType.WORKER_MANAGER_FACTORY, WorkerManagerFactory
).create()
return Result.succ(await worker_manager.supported_models())
if not worker_instance:
return Result.faild(code="E000X", msg=f"can not find worker manager")
except Exception as e: except Exception as e:
return Result.faild(code="E000X", msg=f"space list error {e}") return Result.faild(code="E000X", msg=f"model stop failed {e}")
@router.get("/v1/worker/model/list") @router.get("/v1/worker/model/list")
@ -73,13 +87,12 @@ async def model_start(request: WorkerStartupRequest):
controller = CFG.SYSTEM_APP.get_component( controller = CFG.SYSTEM_APP.get_component(
ComponentType.MODEL_CONTROLLER, BaseModelController ComponentType.MODEL_CONTROLLER, BaseModelController
) )
instances = await controller.get_all_instances(model_name="WorkerManager@service", healthy_only=True) instances = await controller.get_all_instances(
model_name="WorkerManager@service", healthy_only=True
)
worker_instance = None worker_instance = None
for instance in instances: for instance in instances:
if ( if instance.host == request.host and instance.port == request.port:
instance.host == request.host
and instance.port == request.port
):
from pilot.model.cluster import ModelRegistryClient from pilot.model.cluster import ModelRegistryClient
from pilot.model.cluster import RemoteWorkerManager from pilot.model.cluster import RemoteWorkerManager
@ -101,13 +114,12 @@ async def model_start(request: WorkerStartupRequest):
controller = CFG.SYSTEM_APP.get_component( controller = CFG.SYSTEM_APP.get_component(
ComponentType.MODEL_CONTROLLER, BaseModelController ComponentType.MODEL_CONTROLLER, BaseModelController
) )
instances = await controller.get_all_instances(model_name="WorkerManager@service", healthy_only=True) instances = await controller.get_all_instances(
model_name="WorkerManager@service", healthy_only=True
)
worker_instance = None worker_instance = None
for instance in instances: for instance in instances:
if ( if instance.host == request.host and instance.port == request.port:
instance.host == request.host
and instance.port == request.port
):
from pilot.model.cluster import ModelRegistryClient from pilot.model.cluster import ModelRegistryClient
from pilot.model.cluster import RemoteWorkerManager from pilot.model.cluster import RemoteWorkerManager