Skip to content

vllm_omni.protocol.realtime.commands

OpenAI Realtime client events as typed commands.

A Realtime server's first job is turning a client JSON event into something typed. These are the 10 client events OpenAI's Realtime API defines, as frozen dataclasses carrying the fields that survive decoding.

vLLM-Omni's own client events (barge-in, playback acknowledgement, text append, heartbeat, explicit close, generic turn signals) are a separate vocabulary in vllm_omni.protocol.duplex.commands.

Decoding a payload into these stays with the consumer, because which command a given event becomes can depend on what that consumer supports --- see vllm_omni.engine.duplex.realtime_commands.translate_realtime_command.

AppendAudio dataclass

Bases: RealtimeCommand

audio class-attribute instance-attribute

audio: bytes = b''

wire_type class-attribute

wire_type: str = 'input_audio_buffer.append'

CancelResponse dataclass

Bases: RealtimeCommand

response_id class-attribute instance-attribute

response_id: str | None = None

wire_type class-attribute

wire_type: str = 'response.cancel'

ClearInput dataclass

Bases: RealtimeCommand

wire_type class-attribute

wire_type: str = 'input_audio_buffer.clear'

ClearOutputAudio dataclass

Bases: RealtimeCommand

response_id class-attribute instance-attribute

response_id: str | None = None

wire_type class-attribute

wire_type: str = 'output_audio_buffer.clear'

Commit dataclass

Bases: RealtimeCommand

final class-attribute instance-attribute

final: bool = True

wire_type class-attribute

wire_type: str = 'input_audio_buffer.commit'

CreateItem dataclass

Bases: RealtimeCommand

conversation.item.create (history injection or function-call output).

item instance-attribute

item: Mapping[str, object]

previous_item_id class-attribute instance-attribute

previous_item_id: str | None = None

wire_type class-attribute

wire_type: str = 'conversation.item.create'

CreateResponse dataclass

Bases: RealtimeCommand

options class-attribute instance-attribute

options: Mapping[str, object] = field(default_factory=dict)

wire_type class-attribute

wire_type: str = 'response.create'

DeleteItem dataclass

Bases: RealtimeCommand

item_id instance-attribute

item_id: str

wire_type class-attribute

wire_type: str = 'conversation.item.delete'

RealtimeCommand dataclass

One decoded OpenAI Realtime client event.

wire_type is the event type the client sent; the typed fields are what survived decoding, so a consumer reads them instead of re-parsing JSON.

There is deliberately no rendering method here. A server receives commands, it does not emit them, and how a runtime represents one internally is its own business --- the duplex engine renders its mailbox dictionary in vllm_omni.engine.duplex.commands.

event_id class-attribute instance-attribute

event_id: str | None = None

wire_type class-attribute

wire_type: str = ''

TruncateItem dataclass

Bases: RealtimeCommand

audio_end_ms instance-attribute

audio_end_ms: int

content_index class-attribute instance-attribute

content_index: int = 0

item_id instance-attribute

item_id: str

wire_type class-attribute

wire_type: str = 'conversation.item.truncate'

UpdateSession dataclass

Bases: RealtimeCommand

session.update: a Realtime session object patch.

patch class-attribute instance-attribute

patch: Mapping[str, object] = field(default_factory=dict)

wire_type class-attribute

wire_type: str = 'session.update'