2026-03-18 17:33:53 +08:00
|
|
|
"""Shared serialization helpers for omni engine request payloads."""
|
|
|
|
|
|
|
|
|
|
from __future__ import annotations
|
|
|
|
|
|
|
|
|
|
from typing import Any
|
|
|
|
|
|
|
|
|
|
from vllm.logger import init_logger
|
|
|
|
|
|
2026-04-25 15:45:38 +05:30
|
|
|
from vllm_omni.data_entry_keys import OmniPayload, deserialize_payload, serialize_payload
|
|
|
|
|
from vllm_omni.engine import AdditionalInformationPayload
|
2026-03-18 17:33:53 +08:00
|
|
|
|
|
|
|
|
logger = init_logger(__name__)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def serialize_additional_information(
|
|
|
|
|
raw_info: dict[str, Any] | AdditionalInformationPayload | None,
|
|
|
|
|
*,
|
|
|
|
|
log_prefix: str | None = None,
|
|
|
|
|
) -> AdditionalInformationPayload | None:
|
2026-04-25 15:45:38 +05:30
|
|
|
"""Serialize omni request metadata for EngineCore transport.
|
|
|
|
|
|
|
|
|
|
Delegates to ``serialize_payload`` which understands the nested
|
|
|
|
|
``OmniPayload`` TypedDict structure.
|
|
|
|
|
"""
|
2026-03-18 17:33:53 +08:00
|
|
|
if raw_info is None:
|
|
|
|
|
return None
|
|
|
|
|
if isinstance(raw_info, AdditionalInformationPayload):
|
|
|
|
|
return raw_info
|
|
|
|
|
|
2026-04-25 15:45:38 +05:30
|
|
|
payload: OmniPayload = raw_info # type: ignore[assignment]
|
|
|
|
|
return serialize_payload(payload)
|
2026-03-24 10:29:38 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
def deserialize_additional_information(
|
2026-04-25 15:45:38 +05:30
|
|
|
payload: dict | AdditionalInformationPayload | None,
|
2026-03-24 10:29:38 -04:00
|
|
|
) -> dict:
|
2026-04-25 15:45:38 +05:30
|
|
|
"""Deserialize an *additional_information* payload into a plain dict."""
|
2026-03-24 10:29:38 -04:00
|
|
|
if payload is None:
|
|
|
|
|
return {}
|
|
|
|
|
if isinstance(payload, dict):
|
|
|
|
|
return payload
|
2026-04-25 15:45:38 +05:30
|
|
|
return deserialize_payload(payload) # type: ignore[return-value]
|