Skip to content

Commit 847ff0b

Browse files
release: 1.107.1 (#2619)
* chore(api): fix realtime GA types * release: 1.107.1 --------- Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com>
1 parent 0296375 commit 847ff0b

29 files changed

+94
-410
lines changed

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "1.107.0"
2+
".": "1.107.1"
33
}

.stats.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 118
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai%2Fopenai-7807ec6037efcee1af7decbfd3974a42b761fb6c6a71b4050fe43484d7fcbac4.yml
3-
openapi_spec_hash: da6851e3891ad2659a50ed6a736fd32a
4-
config_hash: 74d955cdc2377213f5268ea309090f6c
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai%2Fopenai-16cb18bed32bae8c5840fb39a1bf664026cc40463ad0c487dcb0df1bd3d72db0.yml
3+
openapi_spec_hash: 4cb51b22f98dee1a90bc7add82d1d132
4+
config_hash: 930dac3aa861344867e4ac84f037b5df

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# Changelog
22

3+
## 1.107.1 (2025-09-10)
4+
5+
Full Changelog: [v1.107.0...v1.107.1](https://github.com/openai/openai-python/compare/v1.107.0...v1.107.1)
6+
7+
### Chores
8+
9+
* **api:** fix realtime GA types ([570fc5a](https://github.com/openai/openai-python/commit/570fc5a28ada665fd658b24675361680cfeb086f))
10+
311
## 1.107.0 (2025-09-08)
412

513
Full Changelog: [v1.106.1...v1.107.0](https://github.com/openai/openai-python/compare/v1.106.1...v1.107.0)

api.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -892,7 +892,6 @@ from openai.types.realtime import (
892892
McpListToolsCompleted,
893893
McpListToolsFailed,
894894
McpListToolsInProgress,
895-
Models,
896895
NoiseReductionType,
897896
OutputAudioBufferClearEvent,
898897
RateLimitsUpdatedEvent,
@@ -909,6 +908,7 @@ from openai.types.realtime import (
909908
RealtimeConversationItemUserMessage,
910909
RealtimeError,
911910
RealtimeErrorEvent,
911+
RealtimeFunctionTool,
912912
RealtimeMcpApprovalRequest,
913913
RealtimeMcpApprovalResponse,
914914
RealtimeMcpListTools,
@@ -961,7 +961,6 @@ from openai.types.realtime import (
961961
SessionCreatedEvent,
962962
SessionUpdateEvent,
963963
SessionUpdatedEvent,
964-
TranscriptionSessionCreated,
965964
TranscriptionSessionUpdate,
966965
TranscriptionSessionUpdatedEvent,
967966
)
@@ -975,9 +974,7 @@ Types:
975974
from openai.types.realtime import (
976975
RealtimeSessionClientSecret,
977976
RealtimeSessionCreateResponse,
978-
RealtimeTranscriptionSessionClientSecret,
979977
RealtimeTranscriptionSessionCreateResponse,
980-
RealtimeTranscriptionSessionInputAudioTranscription,
981978
RealtimeTranscriptionSessionTurnDetection,
982979
ClientSecretCreateResponse,
983980
)

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "openai"
3-
version = "1.107.0"
3+
version = "1.107.1"
44
description = "The official Python library for the openai API"
55
dynamic = ["readme"]
66
license = "Apache-2.0"

src/openai/_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
22

33
__title__ = "openai"
4-
__version__ = "1.107.0" # x-release-please-version
4+
__version__ = "1.107.1" # x-release-please-version

src/openai/resources/realtime/realtime.py

Lines changed: 3 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
ClientSecretsWithStreamingResponse,
3333
AsyncClientSecretsWithStreamingResponse,
3434
)
35-
from ...types.realtime import session_update_event_param, transcription_session_update_param
35+
from ...types.realtime import session_update_event_param
3636
from ...types.websocket_connection_options import WebsocketConnectionOptions
3737
from ...types.realtime.realtime_client_event import RealtimeClientEvent
3838
from ...types.realtime.realtime_server_event import RealtimeServerEvent
@@ -199,7 +199,6 @@ class AsyncRealtimeConnection:
199199
input_audio_buffer: AsyncRealtimeInputAudioBufferResource
200200
conversation: AsyncRealtimeConversationResource
201201
output_audio_buffer: AsyncRealtimeOutputAudioBufferResource
202-
transcription_session: AsyncRealtimeTranscriptionSessionResource
203202

204203
_connection: AsyncWebsocketConnection
205204

@@ -211,7 +210,6 @@ def __init__(self, connection: AsyncWebsocketConnection) -> None:
211210
self.input_audio_buffer = AsyncRealtimeInputAudioBufferResource(self)
212211
self.conversation = AsyncRealtimeConversationResource(self)
213212
self.output_audio_buffer = AsyncRealtimeOutputAudioBufferResource(self)
214-
self.transcription_session = AsyncRealtimeTranscriptionSessionResource(self)
215213

216214
async def __aiter__(self) -> AsyncIterator[RealtimeServerEvent]:
217215
"""
@@ -381,7 +379,6 @@ class RealtimeConnection:
381379
input_audio_buffer: RealtimeInputAudioBufferResource
382380
conversation: RealtimeConversationResource
383381
output_audio_buffer: RealtimeOutputAudioBufferResource
384-
transcription_session: RealtimeTranscriptionSessionResource
385382

386383
_connection: WebsocketConnection
387384

@@ -393,7 +390,6 @@ def __init__(self, connection: WebsocketConnection) -> None:
393390
self.input_audio_buffer = RealtimeInputAudioBufferResource(self)
394391
self.conversation = RealtimeConversationResource(self)
395392
self.output_audio_buffer = RealtimeOutputAudioBufferResource(self)
396-
self.transcription_session = RealtimeTranscriptionSessionResource(self)
397393

398394
def __iter__(self) -> Iterator[RealtimeServerEvent]:
399395
"""
@@ -565,8 +561,7 @@ def update(self, *, session: session_update_event_param.Session, event_id: str |
565561
"""
566562
Send this event to update the session’s configuration.
567563
The client may send this event at any time to update any field
568-
except for `voice` and `model`. `voice` can be updated only if there have been no other
569-
audio outputs yet.
564+
except for `voice` and `model`. `voice` can be updated only if there have been no other audio outputs yet.
570565
571566
When the server receives a `session.update`, it will respond
572567
with a `session.updated` event showing the full, effective configuration.
@@ -800,19 +795,6 @@ def clear(self, *, event_id: str | NotGiven = NOT_GIVEN) -> None:
800795
)
801796

802797

803-
class RealtimeTranscriptionSessionResource(BaseRealtimeConnectionResource):
804-
def update(
805-
self, *, session: transcription_session_update_param.Session, event_id: str | NotGiven = NOT_GIVEN
806-
) -> None:
807-
"""Send this event to update a transcription session."""
808-
self._connection.send(
809-
cast(
810-
RealtimeClientEventParam,
811-
strip_not_given({"type": "transcription_session.update", "session": session, "event_id": event_id}),
812-
)
813-
)
814-
815-
816798
class BaseAsyncRealtimeConnectionResource:
817799
def __init__(self, connection: AsyncRealtimeConnection) -> None:
818800
self._connection = connection
@@ -825,8 +807,7 @@ async def update(
825807
"""
826808
Send this event to update the session’s configuration.
827809
The client may send this event at any time to update any field
828-
except for `voice` and `model`. `voice` can be updated only if there have been no other
829-
audio outputs yet.
810+
except for `voice` and `model`. `voice` can be updated only if there have been no other audio outputs yet.
830811
831812
When the server receives a `session.update`, it will respond
832813
with a `session.updated` event showing the full, effective configuration.
@@ -1058,16 +1039,3 @@ async def clear(self, *, event_id: str | NotGiven = NOT_GIVEN) -> None:
10581039
await self._connection.send(
10591040
cast(RealtimeClientEventParam, strip_not_given({"type": "output_audio_buffer.clear", "event_id": event_id}))
10601041
)
1061-
1062-
1063-
class AsyncRealtimeTranscriptionSessionResource(BaseAsyncRealtimeConnectionResource):
1064-
async def update(
1065-
self, *, session: transcription_session_update_param.Session, event_id: str | NotGiven = NOT_GIVEN
1066-
) -> None:
1067-
"""Send this event to update a transcription session."""
1068-
await self._connection.send(
1069-
cast(
1070-
RealtimeClientEventParam,
1071-
strip_not_given({"type": "transcription_session.update", "session": session, "event_id": event_id}),
1072-
)
1073-
)

src/openai/types/realtime/__init__.py

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
from __future__ import annotations
44

5-
from .models import Models as Models
6-
from .models_param import ModelsParam as ModelsParam
75
from .realtime_error import RealtimeError as RealtimeError
86
from .conversation_item import ConversationItem as ConversationItem
97
from .realtime_response import RealtimeResponse as RealtimeResponse
@@ -25,6 +23,7 @@
2523
from .session_updated_event import SessionUpdatedEvent as SessionUpdatedEvent
2624
from .conversation_item_done import ConversationItemDone as ConversationItemDone
2725
from .realtime_audio_formats import RealtimeAudioFormats as RealtimeAudioFormats
26+
from .realtime_function_tool import RealtimeFunctionTool as RealtimeFunctionTool
2827
from .realtime_mcp_tool_call import RealtimeMcpToolCall as RealtimeMcpToolCall
2928
from .realtime_mcphttp_error import RealtimeMcphttpError as RealtimeMcphttpError
3029
from .response_created_event import ResponseCreatedEvent as ResponseCreatedEvent
@@ -60,15 +59,14 @@
6059
from .response_mcp_call_completed import ResponseMcpCallCompleted as ResponseMcpCallCompleted
6160
from .realtime_audio_config_output import RealtimeAudioConfigOutput as RealtimeAudioConfigOutput
6261
from .realtime_audio_formats_param import RealtimeAudioFormatsParam as RealtimeAudioFormatsParam
62+
from .realtime_function_tool_param import RealtimeFunctionToolParam as RealtimeFunctionToolParam
6363
from .realtime_mcp_tool_call_param import RealtimeMcpToolCallParam as RealtimeMcpToolCallParam
6464
from .realtime_mcphttp_error_param import RealtimeMcphttpErrorParam as RealtimeMcphttpErrorParam
65-
from .transcription_session_update import TranscriptionSessionUpdate as TranscriptionSessionUpdate
6665
from .client_secret_create_response import ClientSecretCreateResponse as ClientSecretCreateResponse
6766
from .realtime_mcp_approval_request import RealtimeMcpApprovalRequest as RealtimeMcpApprovalRequest
6867
from .realtime_mcp_list_tools_param import RealtimeMcpListToolsParam as RealtimeMcpListToolsParam
6968
from .realtime_tracing_config_param import RealtimeTracingConfigParam as RealtimeTracingConfigParam
7069
from .response_mcp_call_in_progress import ResponseMcpCallInProgress as ResponseMcpCallInProgress
71-
from .transcription_session_created import TranscriptionSessionCreated as TranscriptionSessionCreated
7270
from .conversation_item_create_event import ConversationItemCreateEvent as ConversationItemCreateEvent
7371
from .conversation_item_delete_event import ConversationItemDeleteEvent as ConversationItemDeleteEvent
7472
from .input_audio_buffer_clear_event import InputAudioBufferClearEvent as InputAudioBufferClearEvent
@@ -100,11 +98,9 @@
10098
from .response_mcp_call_arguments_delta import ResponseMcpCallArgumentsDelta as ResponseMcpCallArgumentsDelta
10199
from .input_audio_buffer_committed_event import InputAudioBufferCommittedEvent as InputAudioBufferCommittedEvent
102100
from .realtime_audio_config_output_param import RealtimeAudioConfigOutputParam as RealtimeAudioConfigOutputParam
103-
from .transcription_session_update_param import TranscriptionSessionUpdateParam as TranscriptionSessionUpdateParam
104101
from .realtime_audio_input_turn_detection import RealtimeAudioInputTurnDetection as RealtimeAudioInputTurnDetection
105102
from .realtime_mcp_approval_request_param import RealtimeMcpApprovalRequestParam as RealtimeMcpApprovalRequestParam
106103
from .realtime_truncation_retention_ratio import RealtimeTruncationRetentionRatio as RealtimeTruncationRetentionRatio
107-
from .transcription_session_updated_event import TranscriptionSessionUpdatedEvent as TranscriptionSessionUpdatedEvent
108104
from .conversation_item_create_event_param import ConversationItemCreateEventParam as ConversationItemCreateEventParam
109105
from .conversation_item_delete_event_param import ConversationItemDeleteEventParam as ConversationItemDeleteEventParam
110106
from .input_audio_buffer_clear_event_param import InputAudioBufferClearEventParam as InputAudioBufferClearEventParam
@@ -181,9 +177,6 @@
181177
from .realtime_response_usage_output_token_details import (
182178
RealtimeResponseUsageOutputTokenDetails as RealtimeResponseUsageOutputTokenDetails,
183179
)
184-
from .realtime_transcription_session_client_secret import (
185-
RealtimeTranscriptionSessionClientSecret as RealtimeTranscriptionSessionClientSecret,
186-
)
187180
from .response_function_call_arguments_delta_event import (
188181
ResponseFunctionCallArgumentsDeltaEvent as ResponseFunctionCallArgumentsDeltaEvent,
189182
)
@@ -229,9 +222,6 @@
229222
from .conversation_item_input_audio_transcription_failed_event import (
230223
ConversationItemInputAudioTranscriptionFailedEvent as ConversationItemInputAudioTranscriptionFailedEvent,
231224
)
232-
from .realtime_transcription_session_input_audio_transcription import (
233-
RealtimeTranscriptionSessionInputAudioTranscription as RealtimeTranscriptionSessionInputAudioTranscription,
234-
)
235225
from .realtime_transcription_session_audio_input_turn_detection import (
236226
RealtimeTranscriptionSessionAudioInputTurnDetection as RealtimeTranscriptionSessionAudioInputTurnDetection,
237227
)

src/openai/types/realtime/client_secret_create_response.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
11
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
22

33
from typing import Union
4-
from typing_extensions import TypeAlias
4+
from typing_extensions import Annotated, TypeAlias
55

6+
from ..._utils import PropertyInfo
67
from ..._models import BaseModel
78
from .realtime_session_create_response import RealtimeSessionCreateResponse
89
from .realtime_transcription_session_create_response import RealtimeTranscriptionSessionCreateResponse
910

1011
__all__ = ["ClientSecretCreateResponse", "Session"]
1112

12-
Session: TypeAlias = Union[RealtimeSessionCreateResponse, RealtimeTranscriptionSessionCreateResponse]
13+
Session: TypeAlias = Annotated[
14+
Union[RealtimeSessionCreateResponse, RealtimeTranscriptionSessionCreateResponse], PropertyInfo(discriminator="type")
15+
]
1316

1417

1518
class ClientSecretCreateResponse(BaseModel):

src/openai/types/realtime/realtime_audio_input_turn_detection.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class RealtimeAudioInputTurnDetection(BaseModel):
2727
idle_timeout_ms: Optional[int] = None
2828
"""
2929
Optional idle timeout after which turn detection will auto-timeout when no
30-
additional audio is received.
30+
additional audio is received and emits a `timeout_triggered` event.
3131
"""
3232

3333
interrupt_response: Optional[bool] = None

0 commit comments

Comments
 (0)