fix: populate batch req rids and per-request http_worker_ipc for mult… (#29882)
This commit is contained in:
@@ -86,6 +86,9 @@ class BaseBatchReq(msgspec.Struct, tag=True, kw_only=True, array_like=True):
|
||||
"""Base for batched IPC payloads."""
|
||||
|
||||
rids: Optional[List[str]] = None
|
||||
# Used by batch messages whose items are parallel arrays, such as scheduler
|
||||
# outputs. Tokenized input batches store routing on batch[i].http_worker_ipc
|
||||
# because the scheduler unpacks them into single-request handlers.
|
||||
http_worker_ipcs: Optional[List[Optional[str]]] = None
|
||||
|
||||
@classmethod
|
||||
@@ -881,6 +884,7 @@ class TokenizedGenerateReqInput(BaseReq, kw_only=True):
|
||||
|
||||
class BatchTokenizedGenerateReqInput(BaseBatchReq, kw_only=True):
|
||||
# The batch of tokenized requests
|
||||
# Routing for request i is batch[i].http_worker_ipc, not http_worker_ipcs[i].
|
||||
batch: List[TokenizedGenerateReqInput]
|
||||
|
||||
def __len__(self):
|
||||
@@ -1166,6 +1170,7 @@ class TokenizedEmbeddingReqInput(BaseReq, kw_only=True):
|
||||
|
||||
class BatchTokenizedEmbeddingReqInput(BaseBatchReq, kw_only=True):
|
||||
# The batch of tokenized embedding requests
|
||||
# Routing for request i is batch[i].http_worker_ipc, not http_worker_ipcs[i].
|
||||
batch: List[TokenizedEmbeddingReqInput]
|
||||
|
||||
def __len__(self):
|
||||
|
||||
@@ -3153,5 +3153,10 @@ class SignalHandler:
|
||||
def stamp_http_worker_ipc(obj: Any, ipc_name: str) -> None:
|
||||
if isinstance(obj, BaseReq):
|
||||
obj.http_worker_ipc = ipc_name
|
||||
elif isinstance(
|
||||
obj, (BatchTokenizedGenerateReqInput, BatchTokenizedEmbeddingReqInput)
|
||||
):
|
||||
for req in obj:
|
||||
req.http_worker_ipc = ipc_name
|
||||
elif isinstance(obj, BaseBatchReq):
|
||||
obj.http_worker_ipcs = [ipc_name] * len(obj.rids)
|
||||
|
||||
Reference in New Issue
Block a user