Class OpenAiRealtimeCodec
wss://api.openai.com/v1/realtime. It hand-assembles the provider-correct server event JSON frames a
client receives, so an application using the Realtime SDK can be tested fully offline. Every user-supplied
string is routed through JsonEscape.escape(String) before embedding.
Event coverage. The codec produces, for one response.create, the GA event lifecycle:
response.created → response.output_item.added → response.content_part.added →
(per token) response.output_audio_transcript.delta + response.output_audio.delta (audio
modality) or response.output_text.delta (text modality) →
response.output_audio_transcript.done/response.output_text.done →
response.output_audio.done (audio) → response.content_part.done →
response.output_item.done → response.done (with usage). It also produces the connect-time
session.created, and the session.updated / conversation.item.created acknowledgements.
Deferred protocol corners (documented rather than half-implemented, see
docs/code/ai-protocol-mocking.md): server-side VAD / input-audio-buffer events
(input_audio_buffer.speech_started etc.), input-audio transcription events, function-call output
items, rate_limits.updated, and error frames. The audio bytes are opaque silence
placeholders — the fidelity target is the event protocol, not audio DSP.
-
Method Summary
Modifier and TypeMethodDescriptionstatic StringconversationItemCreated(String itemId) Theconversation.item.createdacknowledgement returned in response to a clientconversation.item.create.static List<RealtimeEvent>responseSequence(RealtimeTurn turn, RealtimeModality modality, RealtimeStreamingPhysics physics) The full ordered server event sequence emitted for a singleresponse.create.static StringsessionCreated(String model, String sessionId) Thesession.createdframe a Realtime server sends immediately after the WebSocket handshake.static StringsessionUpdated(String model, String sessionId) Thesession.updatedacknowledgement returned in response to a clientsession.update.
-
Method Details
-
sessionCreated
Thesession.createdframe a Realtime server sends immediately after the WebSocket handshake. -
sessionUpdated
Thesession.updatedacknowledgement returned in response to a clientsession.update. -
conversationItemCreated
Theconversation.item.createdacknowledgement returned in response to a clientconversation.item.create. -
responseSequence
public static List<RealtimeEvent> responseSequence(RealtimeTurn turn, RealtimeModality modality, RealtimeStreamingPhysics physics) The full ordered server event sequence emitted for a singleresponse.create.- Parameters:
turn- the scripted assistant responsemodality-RealtimeModality.AUDIO(transcript + audio deltas) orRealtimeModality.TEXTphysics- streaming timing (per-delta delay, time-to-first-token)- Returns:
- ordered event frames with per-frame delays
-