mirror of
https://github.com/tiennm99/litellm.git
synced 2026-07-17 02:17:10 +00:00
* feat(realtime): OpenAI Realtime GA support and beta compatibility - Normalize beta-style session.update to GA for upstream OpenAI; optional GA→beta event translation when client sends OpenAI-Beta: realtime=v1 - Default upstream WebSocket without OpenAI-Beta; forward header when client opts in - Extend OpenAI realtime types for GA event names and conversation item shapes - Relax LiteLLMRealtimeStreamLoggingObject.results to List[Any] for GA events - Update proxy client_secrets fallback to omit beta header; dashboard RealtimePlayground - Add unit tests for remap, translation, and beta header helper Co-authored-by: Cursor <cursoragent@cursor.com> * fix results * fix greptile * Fix mypy issues * Remove unused class constants _GA_TEXT_DELTA_TYPES and _GA_AUDIO_DELTA_TYPES These frozensets were defined as class-level constants in realtime_streaming.py but never referenced anywhere in the codebase. Removing dead code. Co-authored-by: Sameer Kankute <Sameerlite@users.noreply.github.com> * fix(realtime): use GA-shaped session.update in guardrail injections The guardrail VAD injection code sent a beta-style session.update with a flat turn_detection field: {"session": {"turn_detection": {"create_response": false}}} When the upstream OpenAI backend operates in GA mode (no OpenAI-Beta header forwarded), it requires the nested GA shape: {"session": {"type": "realtime", "audio": {"input": {"turn_detection": {"create_response": false}}}}} The _remap_beta_session_to_ga helper was only applied to client- originated session.update messages in client_ack_messages. Internally- generated session.updates (sent via _send_to_backend) in two paths: - _handle_raw_backend_message (raw/no provider_config path, line 518) - backend_to_client_send_messages provider_config path (line 481) bypassed the remap, so GA upstreams ignored or rejected them, breaking audio transcription guardrails for all non-beta clients. Fix: add _make_disable_auto_response_message() helper that always emits the correct GA-shaped session.update, and replace both injection sites with it. Update existing tests to assert the GA nested shape instead of the old flat beta shape, and add a new unit test for the helper itself. Co-authored-by: Sameer Kankute <Sameerlite@users.noreply.github.com> * Log realtime session type * Fix beta realtime session payloads * Fix realtime audio format remapping edge case * Fix Azure realtime beta session shape --------- Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Sameer Kankute <Sameerlite@users.noreply.github.com> Co-authored-by: mateo-berri <277851410+mateo-berri@users.noreply.github.com>
In total litellm runs 1000+ tests
[02/20/2025] Update:
To make it easier to contribute and map what behavior is tested,
we've started mapping the litellm directory in tests/test_litellm
This folder can only run mock tests.