Skip to content

vllm_omni.engine.duplex_omni_engine

DuplexOmniEngine: the duplex engine sibling of AsyncOmniEngine.

It is deliberately small. The engine base owns the stage processes, the orchestrator thread and the correlated RPC transport; this class only knows how duplex session messages enter the engine (open/close/resume/touch through correlated RPC, session commands one-way) and which orchestrator to build (DuplexOrchestrator with the model plugin loaded).

logger module-attribute

logger = init_logger(__name__)

DuplexOmniEngine

Bases: AsyncOmniEngine

Engine for full-duplex models; sessions run inside DuplexOrchestrator.

duplex_capabilities property

duplex_capabilities: DuplexCapabilities

duplex_session_config instance-attribute

duplex_session_config: DuplexSessionRuntimeConfig

plugin class-attribute instance-attribute

plugin: DuplexModelPlugin | None = None

close_session_async async

close_session_async(
    session_id: str,
    *,
    reason: str = "client_close",
    timeout: float | None = _DEFAULT_CONTROL_TIMEOUT_S,
) -> DuplexControlResultMessage

open_session_async async

open_session_async(
    session_id: str,
    session_config: DuplexSessionConfig,
    *,
    timeout: float | None = _DEFAULT_CONTROL_TIMEOUT_S,
) -> DuplexControlResultMessage

resume_session_async async

resume_session_async(
    session_id: str,
    *,
    expected_lease_generation: int,
    timeout: float | None = _DEFAULT_CONTROL_TIMEOUT_S,
) -> DuplexControlResultMessage

submit_command_async async

submit_command_async(
    session_id: str, command: DuplexCommand
) -> None

touch_session_async async

touch_session_async(
    session_id: str,
    *,
    activity: str,
    timeout: float | None = _DEFAULT_CONTROL_TIMEOUT_S,
) -> DuplexControlResultMessage