[Session] Update session control interface (#2635)
This commit is contained in:
@@ -53,6 +53,7 @@ from sglang.srt.managers.io_struct import (
|
||||
OpenSessionReqInput,
|
||||
OpenSessionReqOutput,
|
||||
ProfileReq,
|
||||
SessionParams,
|
||||
TokenizedEmbeddingReqInput,
|
||||
TokenizedGenerateReqInput,
|
||||
UpdateWeightFromDiskReqInput,
|
||||
@@ -264,8 +265,9 @@ class TokenizerManager:
|
||||
return_logprob = obj.return_logprob
|
||||
logprob_start_len = obj.logprob_start_len
|
||||
top_logprobs_num = obj.top_logprobs_num
|
||||
session_id = obj.session[0] if obj.session else None
|
||||
session_rid = obj.session[1] if obj.session else None
|
||||
session_params = (
|
||||
SessionParams(**obj.session_params) if obj.session_params else None
|
||||
)
|
||||
|
||||
if obj.input_ids is not None and len(input_ids) >= self.context_len:
|
||||
raise ValueError(
|
||||
@@ -292,8 +294,7 @@ class TokenizerManager:
|
||||
obj.stream,
|
||||
lora_path=obj.lora_path,
|
||||
input_embeds=input_embeds,
|
||||
session_id=session_id,
|
||||
session_rid=session_rid,
|
||||
session_params=session_params,
|
||||
)
|
||||
elif isinstance(obj, EmbeddingReqInput):
|
||||
tokenized_obj = TokenizedEmbeddingReqInput(
|
||||
@@ -552,12 +553,16 @@ class TokenizerManager:
|
||||
):
|
||||
self.auto_create_handle_loop()
|
||||
|
||||
session_id = uuid.uuid4().hex
|
||||
obj.session_id = session_id
|
||||
if obj.session_id is None:
|
||||
obj.session_id = uuid.uuid4().hex
|
||||
elif obj.session_id in self.session_futures:
|
||||
return None
|
||||
|
||||
self.send_to_scheduler.send_pyobj(obj)
|
||||
self.session_futures[session_id] = asyncio.Future()
|
||||
session_id = await self.session_futures[session_id]
|
||||
del self.session_futures[session_id]
|
||||
|
||||
self.session_futures[obj.session_id] = asyncio.Future()
|
||||
session_id = await self.session_futures[obj.session_id]
|
||||
del self.session_futures[obj.session_id]
|
||||
return session_id
|
||||
|
||||
async def close_session(
|
||||
@@ -709,7 +714,7 @@ class TokenizerManager:
|
||||
)
|
||||
elif isinstance(recv_obj, OpenSessionReqOutput):
|
||||
self.session_futures[recv_obj.session_id].set_result(
|
||||
recv_obj.session_id
|
||||
recv_obj.session_id if recv_obj.success else None
|
||||
)
|
||||
elif isinstance(recv_obj, UpdateWeightFromDiskReqOutput):
|
||||
if self.server_args.dp_size == 1:
|
||||
|
||||
Reference in New Issue
Block a user