Signed-off-by: Divyansh Singhvi <divyanshsinghvi@gmail.com> Signed-off-by: dsinghvi <divyanshsinghvi@gmail.com> Signed-off-by: tzhouam <tzhouam@connect.ust.hk> Co-authored-by: Zhou Taichang <tzhouam@connect.ust.hk> Co-authored-by: Hongsheng Liu <liuhongsheng4@huawei.com>
43 lines
1.3 KiB
Python
43 lines
1.3 KiB
Python
"""Shared serialization helpers for omni engine request payloads."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from typing import Any
|
|
|
|
from vllm.logger import init_logger
|
|
|
|
from vllm_omni.data_entry_keys import OmniPayload, deserialize_payload, serialize_payload
|
|
from vllm_omni.engine import AdditionalInformationPayload
|
|
|
|
logger = init_logger(__name__)
|
|
|
|
|
|
def serialize_additional_information(
|
|
raw_info: dict[str, Any] | AdditionalInformationPayload | None,
|
|
*,
|
|
log_prefix: str | None = None,
|
|
) -> AdditionalInformationPayload | None:
|
|
"""Serialize omni request metadata for EngineCore transport.
|
|
|
|
Delegates to ``serialize_payload`` which understands the nested
|
|
``OmniPayload`` TypedDict structure.
|
|
"""
|
|
if raw_info is None:
|
|
return None
|
|
if isinstance(raw_info, AdditionalInformationPayload):
|
|
return raw_info
|
|
|
|
payload: OmniPayload = raw_info # type: ignore[assignment]
|
|
return serialize_payload(payload)
|
|
|
|
|
|
def deserialize_additional_information(
|
|
payload: dict | AdditionalInformationPayload | None,
|
|
) -> dict:
|
|
"""Deserialize an *additional_information* payload into a plain dict."""
|
|
if payload is None:
|
|
return {}
|
|
if isinstance(payload, dict):
|
|
return payload
|
|
return deserialize_payload(payload) # type: ignore[return-value]
|