Skip to content

vllm_omni.engine.duplex.session.history_calibration

Bounded output-audio retention and asynchronous heard-text calibration.

The runner owns this object on its event loop. A model callback receives an immutable snapshot and returns an original-text offset; only the engine session may apply that offset to the authoritative conversation history.

logger module-attribute

logger = init_logger(__name__)

HeardTextSnapshot dataclass

Original reply and confirmed playback cutoff in milliseconds.

Audio is mono float32 PCM from the reply's start. A policy that does not require audio receives empty bytes and a zero sample rate instead. The complete duration is supplied only after the final audio stage finishes; an interrupted generation's partial duration cannot calibrate its full text.

complete_audio_duration_ms class-attribute instance-attribute

complete_audio_duration_ms: int | None = None

pcm_f32le instance-attribute

pcm_f32le: bytes

played_ms instance-attribute

played_ms: int

response_id instance-attribute

response_id: str

sample_rate_hz instance-attribute

sample_rate_hz: int

text instance-attribute

text: str

HistoryCalibration

Own per-session output recordings, calibration tasks and writeback fences.

audio instance-attribute

audio: OrderedDict[str, _Audio] = OrderedDict()

calibrate instance-attribute

calibrate = calibrate

closed instance-attribute

closed = False

evicted instance-attribute

evicted: set[str] = set()

max_bytes instance-attribute

max_bytes = max_bytes

on_applied instance-attribute

on_applied = on_applied

requires_audio instance-attribute

requires_audio = requires_audio

retained_bytes property

retained_bytes: int

Return retained PCM bytes, excluding temporary callback copies.

session instance-attribute

session = session

tasks instance-attribute

tasks: dict[str, Task[None]] = {}

timeout_s instance-attribute

timeout_s = timeout_s

versions instance-attribute

versions: dict[str, tuple[str, int, int]] = {}

before_prompt async

before_prompt() -> None

Wait within one deadline for eligible work, including replacements.

close

close() -> None

Release recordings and prevent further calibration or writeback.

discard

discard(response_id: str) -> None

Release a reply's recording and revoke any pending calibration.

record

record(response_id: str, output: dict) -> None

Record projected output without restarting a discarded live reply.

release_confirmed

release_confirmed() -> None

Free fully acknowledged replies without running ASR on frequent ACKs.

request_ready

request_ready() -> None

Start only ended replies with a partial, client-confirmed playback cursor.

HistoryCalibrationPolicy dataclass

Model callback and its audio-retention requirement.

The callback returns an exclusive original-text character offset (zero means an empty prefix), or None to retain the existing history policy. It must not mutate session history; the framework validates its result.

calibrate instance-attribute

calibrate: Callable[
    [HeardTextSnapshot], Awaitable[int | None]
]

requires_audio class-attribute instance-attribute

requires_audio: bool = True