Skip to content

Commit bd46718

Browse files
author
Michiel De Witte
committed
Performance: only create the OpenAIRealtimeServerEvent TypeAdapter once
1 parent 2b8c408 commit bd46718

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

src/agents/realtime/openai_realtime.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,9 @@ def __init__(self) -> None:
142142
self._tracing_config: RealtimeModelTracingConfig | Literal["auto"] | None = None
143143
self._playback_tracker: RealtimePlaybackTracker | None = None
144144
self._created_session: OpenAISessionObject | None = None
145+
self._server_event_type_adapter: TypeAdapter[OpenAIRealtimeServerEvent] = TypeAdapter(
146+
OpenAIRealtimeServerEvent
147+
)
145148

146149
async def connect(self, options: RealtimeModelConfig) -> None:
147150
"""Establish a connection to the model and keep it alive."""
@@ -462,9 +465,9 @@ async def _handle_ws_event(self, event: dict[str, Any]):
462465
try:
463466
if "previous_item_id" in event and event["previous_item_id"] is None:
464467
event["previous_item_id"] = "" # TODO (rm) remove
465-
parsed: OpenAIRealtimeServerEvent = TypeAdapter(
466-
OpenAIRealtimeServerEvent
467-
).validate_python(event)
468+
parsed: OpenAIRealtimeServerEvent = self._server_event_type_adapter.validate_python(
469+
event
470+
)
468471
except pydantic.ValidationError as e:
469472
logger.error(f"Failed to validate server event: {event}", exc_info=True)
470473
await self._emit_event(

0 commit comments

Comments
 (0)