Skip to content

Commit a408603

Browse files
committed
feat: realtime client secret added
1 parent 7092be6 commit a408603

4 files changed

Lines changed: 69 additions & 0 deletions

File tree

portkey_ai/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,8 @@
137137
AsyncWebhooks,
138138
MainRealtime,
139139
AsyncMainRealtime,
140+
ClientSecrets,
141+
AsyncClientSecrets,
140142
)
141143

142144
from portkey_ai.version import VERSION
@@ -293,4 +295,6 @@
293295
"AsyncWebhooks",
294296
"MainRealtime",
295297
"AsyncMainRealtime",
298+
"ClientSecrets",
299+
"AsyncClientSecrets",
296300
]

portkey_ai/api_resources/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,8 @@
125125
AsyncWebhooks,
126126
MainRealtime,
127127
AsyncMainRealtime,
128+
ClientSecrets,
129+
AsyncClientSecrets,
128130
)
129131
from .utils import (
130132
Modes,
@@ -285,4 +287,6 @@
285287
"AsyncWebhooks",
286288
"MainRealtime",
287289
"AsyncMainRealtime",
290+
"ClientSecrets",
291+
"AsyncClientSecrets",
288292
]

portkey_ai/api_resources/apis/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,8 @@
160160
from .main_realtime import (
161161
MainRealtime,
162162
AsyncMainRealtime,
163+
ClientSecrets,
164+
AsyncClientSecrets,
163165
)
164166

165167
sys.modules["openai"] = vendored_openai # For pydantic v1 and v2 compatibility
@@ -300,4 +302,6 @@
300302
"AsyncWebhooks",
301303
"MainRealtime",
302304
"AsyncMainRealtime",
305+
"ClientSecrets",
306+
"AsyncClientSecrets",
303307
]

portkey_ai/api_resources/apis/main_realtime.py

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from typing import Any
12
from portkey_ai._vendor.openai.resources.realtime.realtime import (
23
AsyncRealtimeConnectionManager,
34
RealtimeConnectionManager,
@@ -14,6 +15,7 @@ class MainRealtime(APIResource):
1415
def __init__(self, client: Portkey) -> None:
1516
super().__init__(client)
1617
self.openai_client = client.openai_client
18+
self.client_secrets = ClientSecrets(client)
1719

1820
def connect(
1921
self,
@@ -35,6 +37,7 @@ class AsyncMainRealtime(AsyncAPIResource):
3537
def __init__(self, client: AsyncPortkey) -> None:
3638
super().__init__(client)
3739
self.openai_client = client.openai_client
40+
self.client_secrets = AsyncClientSecrets(client)
3841

3942
def connect(
4043
self,
@@ -50,3 +53,57 @@ def connect(
5053
extra_headers=extra_headers,
5154
websocket_connection_options=websocket_connection_options,
5255
)
56+
57+
58+
class ClientSecrets(APIResource):
59+
def __init__(self, client: Portkey) -> None:
60+
super().__init__(client)
61+
self.openai_client = client.openai_client
62+
63+
def create(
64+
self,
65+
*,
66+
expires_after: Any,
67+
session: Any,
68+
**kwargs: Any,
69+
) -> Any:
70+
extra_headers = kwargs.pop("extra_headers", None)
71+
extra_query = kwargs.pop("extra_query", None)
72+
extra_body = kwargs.pop("extra_body", None)
73+
timeout = kwargs.pop("timeout", None)
74+
75+
return self.openai_client.realtime.client_secrets.create(
76+
expires_after=expires_after,
77+
session=session,
78+
extra_headers=extra_headers,
79+
extra_query=extra_query,
80+
extra_body={**(extra_body or {}), **kwargs},
81+
timeout=timeout,
82+
)
83+
84+
85+
class AsyncClientSecrets(AsyncAPIResource):
86+
def __init__(self, client: AsyncPortkey) -> None:
87+
super().__init__(client)
88+
self.openai_client = client.openai_client
89+
90+
async def create(
91+
self,
92+
*,
93+
expires_after: Any,
94+
session: Any,
95+
**kwargs: Any,
96+
) -> Any:
97+
extra_headers = kwargs.pop("extra_headers", None)
98+
extra_query = kwargs.pop("extra_query", None)
99+
extra_body = kwargs.pop("extra_body", None)
100+
timeout = kwargs.pop("timeout", None)
101+
102+
return await self.openai_client.realtime.client_secrets.create(
103+
expires_after=expires_after,
104+
session=session,
105+
extra_headers=extra_headers,
106+
extra_query=extra_query,
107+
extra_body={**(extra_body or {}), **kwargs},
108+
timeout=timeout,
109+
)

0 commit comments

Comments
 (0)