google-genai 1.1.0__py3-none-any.whl → 1.3.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- google/genai/_api_client.py +152 -48
- google/genai/_api_module.py +5 -0
- google/genai/_common.py +12 -0
- google/genai/_extra_utils.py +7 -2
- google/genai/_replay_api_client.py +32 -1
- google/genai/_transformers.py +40 -10
- google/genai/batches.py +6 -3
- google/genai/caches.py +13 -10
- google/genai/client.py +22 -11
- google/genai/errors.py +18 -3
- google/genai/files.py +8 -5
- google/genai/live.py +64 -41
- google/genai/models.py +661 -87
- google/genai/{_operations.py → operations.py} +260 -20
- google/genai/tunings.py +3 -0
- google/genai/types.py +439 -7
- google/genai/version.py +1 -1
- {google_genai-1.1.0.dist-info → google_genai-1.3.0.dist-info}/METADATA +126 -15
- google_genai-1.3.0.dist-info/RECORD +27 -0
- google_genai-1.1.0.dist-info/RECORD +0 -27
- {google_genai-1.1.0.dist-info → google_genai-1.3.0.dist-info}/LICENSE +0 -0
- {google_genai-1.1.0.dist-info → google_genai-1.3.0.dist-info}/WHEEL +0 -0
- {google_genai-1.1.0.dist-info → google_genai-1.3.0.dist-info}/top_level.txt +0 -0
@@ -15,15 +15,19 @@
|
|
15
15
|
|
16
16
|
# Code generated by the Google Gen AI SDK generator DO NOT EDIT.
|
17
17
|
|
18
|
+
import logging
|
18
19
|
from typing import Optional, Union
|
19
20
|
from urllib.parse import urlencode
|
20
21
|
from . import _api_module
|
21
22
|
from . import _common
|
23
|
+
from . import _transformers as t
|
22
24
|
from . import types
|
23
25
|
from ._api_client import ApiClient
|
24
26
|
from ._common import get_value_by_path as getv
|
25
27
|
from ._common import set_value_by_path as setv
|
26
28
|
|
29
|
+
logger = logging.getLogger('google_genai.operations')
|
30
|
+
|
27
31
|
|
28
32
|
def _GetOperationParameters_to_mldev(
|
29
33
|
api_client: ApiClient,
|
@@ -103,7 +107,149 @@ def _FetchPredictOperationParameters_to_vertex(
|
|
103
107
|
return to_object
|
104
108
|
|
105
109
|
|
106
|
-
def
|
110
|
+
def _Video_from_mldev(
|
111
|
+
api_client: ApiClient,
|
112
|
+
from_object: Union[dict, object],
|
113
|
+
parent_object: dict = None,
|
114
|
+
) -> dict:
|
115
|
+
to_object = {}
|
116
|
+
if getv(from_object, ['uri']) is not None:
|
117
|
+
setv(to_object, ['uri'], getv(from_object, ['uri']))
|
118
|
+
|
119
|
+
if getv(from_object, ['encodedVideo']) is not None:
|
120
|
+
setv(
|
121
|
+
to_object,
|
122
|
+
['video_bytes'],
|
123
|
+
t.t_bytes(api_client, getv(from_object, ['encodedVideo'])),
|
124
|
+
)
|
125
|
+
|
126
|
+
if getv(from_object, ['encoding']) is not None:
|
127
|
+
setv(to_object, ['mime_type'], getv(from_object, ['encoding']))
|
128
|
+
|
129
|
+
return to_object
|
130
|
+
|
131
|
+
|
132
|
+
def _Video_from_vertex(
|
133
|
+
api_client: ApiClient,
|
134
|
+
from_object: Union[dict, object],
|
135
|
+
parent_object: dict = None,
|
136
|
+
) -> dict:
|
137
|
+
to_object = {}
|
138
|
+
if getv(from_object, ['gcsUri']) is not None:
|
139
|
+
setv(to_object, ['uri'], getv(from_object, ['gcsUri']))
|
140
|
+
|
141
|
+
if getv(from_object, ['bytesBase64Encoded']) is not None:
|
142
|
+
setv(
|
143
|
+
to_object,
|
144
|
+
['video_bytes'],
|
145
|
+
t.t_bytes(api_client, getv(from_object, ['bytesBase64Encoded'])),
|
146
|
+
)
|
147
|
+
|
148
|
+
if getv(from_object, ['mimeType']) is not None:
|
149
|
+
setv(to_object, ['mime_type'], getv(from_object, ['mimeType']))
|
150
|
+
|
151
|
+
return to_object
|
152
|
+
|
153
|
+
|
154
|
+
def _GeneratedVideo_from_mldev(
|
155
|
+
api_client: ApiClient,
|
156
|
+
from_object: Union[dict, object],
|
157
|
+
parent_object: dict = None,
|
158
|
+
) -> dict:
|
159
|
+
to_object = {}
|
160
|
+
if getv(from_object, ['_self']) is not None:
|
161
|
+
setv(
|
162
|
+
to_object,
|
163
|
+
['video'],
|
164
|
+
_Video_from_mldev(api_client, getv(from_object, ['_self']), to_object),
|
165
|
+
)
|
166
|
+
|
167
|
+
return to_object
|
168
|
+
|
169
|
+
|
170
|
+
def _GeneratedVideo_from_vertex(
|
171
|
+
api_client: ApiClient,
|
172
|
+
from_object: Union[dict, object],
|
173
|
+
parent_object: dict = None,
|
174
|
+
) -> dict:
|
175
|
+
to_object = {}
|
176
|
+
if getv(from_object, ['_self']) is not None:
|
177
|
+
setv(
|
178
|
+
to_object,
|
179
|
+
['video'],
|
180
|
+
_Video_from_vertex(api_client, getv(from_object, ['_self']), to_object),
|
181
|
+
)
|
182
|
+
|
183
|
+
return to_object
|
184
|
+
|
185
|
+
|
186
|
+
def _GenerateVideosResponse_from_mldev(
|
187
|
+
api_client: ApiClient,
|
188
|
+
from_object: Union[dict, object],
|
189
|
+
parent_object: dict = None,
|
190
|
+
) -> dict:
|
191
|
+
to_object = {}
|
192
|
+
if getv(from_object, ['videos']) is not None:
|
193
|
+
setv(
|
194
|
+
to_object,
|
195
|
+
['generated_videos'],
|
196
|
+
[
|
197
|
+
_GeneratedVideo_from_mldev(api_client, item, to_object)
|
198
|
+
for item in getv(from_object, ['videos'])
|
199
|
+
],
|
200
|
+
)
|
201
|
+
|
202
|
+
if getv(from_object, ['raiMediaFilteredCount']) is not None:
|
203
|
+
setv(
|
204
|
+
to_object,
|
205
|
+
['rai_media_filtered_count'],
|
206
|
+
getv(from_object, ['raiMediaFilteredCount']),
|
207
|
+
)
|
208
|
+
|
209
|
+
if getv(from_object, ['raiMediaFilteredReasons']) is not None:
|
210
|
+
setv(
|
211
|
+
to_object,
|
212
|
+
['rai_media_filtered_reasons'],
|
213
|
+
getv(from_object, ['raiMediaFilteredReasons']),
|
214
|
+
)
|
215
|
+
|
216
|
+
return to_object
|
217
|
+
|
218
|
+
|
219
|
+
def _GenerateVideosResponse_from_vertex(
|
220
|
+
api_client: ApiClient,
|
221
|
+
from_object: Union[dict, object],
|
222
|
+
parent_object: dict = None,
|
223
|
+
) -> dict:
|
224
|
+
to_object = {}
|
225
|
+
if getv(from_object, ['videos']) is not None:
|
226
|
+
setv(
|
227
|
+
to_object,
|
228
|
+
['generated_videos'],
|
229
|
+
[
|
230
|
+
_GeneratedVideo_from_vertex(api_client, item, to_object)
|
231
|
+
for item in getv(from_object, ['videos'])
|
232
|
+
],
|
233
|
+
)
|
234
|
+
|
235
|
+
if getv(from_object, ['raiMediaFilteredCount']) is not None:
|
236
|
+
setv(
|
237
|
+
to_object,
|
238
|
+
['rai_media_filtered_count'],
|
239
|
+
getv(from_object, ['raiMediaFilteredCount']),
|
240
|
+
)
|
241
|
+
|
242
|
+
if getv(from_object, ['raiMediaFilteredReasons']) is not None:
|
243
|
+
setv(
|
244
|
+
to_object,
|
245
|
+
['rai_media_filtered_reasons'],
|
246
|
+
getv(from_object, ['raiMediaFilteredReasons']),
|
247
|
+
)
|
248
|
+
|
249
|
+
return to_object
|
250
|
+
|
251
|
+
|
252
|
+
def _GenerateVideosOperation_from_mldev(
|
107
253
|
api_client: ApiClient,
|
108
254
|
from_object: Union[dict, object],
|
109
255
|
parent_object: dict = None,
|
@@ -124,10 +270,21 @@ def _Operation_from_mldev(
|
|
124
270
|
if getv(from_object, ['response']) is not None:
|
125
271
|
setv(to_object, ['response'], getv(from_object, ['response']))
|
126
272
|
|
273
|
+
if getv(from_object, ['response', 'generateVideoResponse']) is not None:
|
274
|
+
setv(
|
275
|
+
to_object,
|
276
|
+
['result'],
|
277
|
+
_GenerateVideosResponse_from_mldev(
|
278
|
+
api_client,
|
279
|
+
getv(from_object, ['response', 'generateVideoResponse']),
|
280
|
+
to_object,
|
281
|
+
),
|
282
|
+
)
|
283
|
+
|
127
284
|
return to_object
|
128
285
|
|
129
286
|
|
130
|
-
def
|
287
|
+
def _GenerateVideosOperation_from_vertex(
|
131
288
|
api_client: ApiClient,
|
132
289
|
from_object: Union[dict, object],
|
133
290
|
parent_object: dict = None,
|
@@ -148,17 +305,26 @@ def _Operation_from_vertex(
|
|
148
305
|
if getv(from_object, ['response']) is not None:
|
149
306
|
setv(to_object, ['response'], getv(from_object, ['response']))
|
150
307
|
|
308
|
+
if getv(from_object, ['response']) is not None:
|
309
|
+
setv(
|
310
|
+
to_object,
|
311
|
+
['result'],
|
312
|
+
_GenerateVideosResponse_from_vertex(
|
313
|
+
api_client, getv(from_object, ['response']), to_object
|
314
|
+
),
|
315
|
+
)
|
316
|
+
|
151
317
|
return to_object
|
152
318
|
|
153
319
|
|
154
|
-
class
|
320
|
+
class Operations(_api_module.BaseModule):
|
155
321
|
|
156
322
|
def _get_operation(
|
157
323
|
self,
|
158
324
|
*,
|
159
325
|
operation_name: str,
|
160
326
|
config: Optional[types.GetOperationConfigOrDict] = None,
|
161
|
-
) -> types.
|
327
|
+
) -> types.GenerateVideosOperation:
|
162
328
|
parameter_model = types._GetOperationParameters(
|
163
329
|
operation_name=operation_name,
|
164
330
|
config=config,
|
@@ -194,11 +360,15 @@ class _operations(_api_module.BaseModule):
|
|
194
360
|
)
|
195
361
|
|
196
362
|
if self._api_client.vertexai:
|
197
|
-
response_dict =
|
363
|
+
response_dict = _GenerateVideosOperation_from_vertex(
|
364
|
+
self._api_client, response_dict
|
365
|
+
)
|
198
366
|
else:
|
199
|
-
response_dict =
|
367
|
+
response_dict = _GenerateVideosOperation_from_mldev(
|
368
|
+
self._api_client, response_dict
|
369
|
+
)
|
200
370
|
|
201
|
-
return_value = types.
|
371
|
+
return_value = types.GenerateVideosOperation._from_response(
|
202
372
|
response=response_dict, kwargs=parameter_model
|
203
373
|
)
|
204
374
|
self._api_client._verify_response(return_value)
|
@@ -210,7 +380,7 @@ class _operations(_api_module.BaseModule):
|
|
210
380
|
operation_name: str,
|
211
381
|
resource_name: str,
|
212
382
|
config: Optional[types.FetchPredictOperationConfigOrDict] = None,
|
213
|
-
) -> types.
|
383
|
+
) -> types.GenerateVideosOperation:
|
214
384
|
parameter_model = types._FetchPredictOperationParameters(
|
215
385
|
operation_name=operation_name,
|
216
386
|
resource_name=resource_name,
|
@@ -247,25 +417,59 @@ class _operations(_api_module.BaseModule):
|
|
247
417
|
)
|
248
418
|
|
249
419
|
if self._api_client.vertexai:
|
250
|
-
response_dict =
|
420
|
+
response_dict = _GenerateVideosOperation_from_vertex(
|
421
|
+
self._api_client, response_dict
|
422
|
+
)
|
251
423
|
else:
|
252
|
-
response_dict =
|
424
|
+
response_dict = _GenerateVideosOperation_from_mldev(
|
425
|
+
self._api_client, response_dict
|
426
|
+
)
|
253
427
|
|
254
|
-
return_value = types.
|
428
|
+
return_value = types.GenerateVideosOperation._from_response(
|
255
429
|
response=response_dict, kwargs=parameter_model
|
256
430
|
)
|
257
431
|
self._api_client._verify_response(return_value)
|
258
432
|
return return_value
|
259
433
|
|
434
|
+
@_common.experimental_warning(
|
435
|
+
'This method is experimental and may change in future versions.'
|
436
|
+
)
|
437
|
+
def get(
|
438
|
+
self,
|
439
|
+
operation: types.GenerateVideosOperation,
|
440
|
+
*,
|
441
|
+
config: Optional[types.GetOperationConfigOrDict] = None,
|
442
|
+
) -> types.GenerateVideosOperation:
|
443
|
+
"""Gets the status of an operation."""
|
444
|
+
# Currently, only GenerateVideosOperation is supported.
|
445
|
+
# TODO(b/398040607): Support short form names
|
446
|
+
operation_name = operation.name
|
447
|
+
if not operation_name:
|
448
|
+
raise ValueError('Operation name is empty.')
|
449
|
+
|
450
|
+
# TODO(b/398233524): Cast operation types
|
451
|
+
if self._api_client.vertexai:
|
452
|
+
resource_name = operation_name.rpartition('/operations/')[0]
|
453
|
+
return self._fetch_predict_operation(
|
454
|
+
operation_name=operation_name,
|
455
|
+
resource_name=resource_name,
|
456
|
+
config=config,
|
457
|
+
)
|
458
|
+
else:
|
459
|
+
return self._get_operation(
|
460
|
+
operation_name=operation_name,
|
461
|
+
config=config,
|
462
|
+
)
|
463
|
+
|
260
464
|
|
261
|
-
class
|
465
|
+
class AsyncOperations(_api_module.BaseModule):
|
262
466
|
|
263
467
|
async def _get_operation(
|
264
468
|
self,
|
265
469
|
*,
|
266
470
|
operation_name: str,
|
267
471
|
config: Optional[types.GetOperationConfigOrDict] = None,
|
268
|
-
) -> types.
|
472
|
+
) -> types.GenerateVideosOperation:
|
269
473
|
parameter_model = types._GetOperationParameters(
|
270
474
|
operation_name=operation_name,
|
271
475
|
config=config,
|
@@ -301,11 +505,15 @@ class Async_operations(_api_module.BaseModule):
|
|
301
505
|
)
|
302
506
|
|
303
507
|
if self._api_client.vertexai:
|
304
|
-
response_dict =
|
508
|
+
response_dict = _GenerateVideosOperation_from_vertex(
|
509
|
+
self._api_client, response_dict
|
510
|
+
)
|
305
511
|
else:
|
306
|
-
response_dict =
|
512
|
+
response_dict = _GenerateVideosOperation_from_mldev(
|
513
|
+
self._api_client, response_dict
|
514
|
+
)
|
307
515
|
|
308
|
-
return_value = types.
|
516
|
+
return_value = types.GenerateVideosOperation._from_response(
|
309
517
|
response=response_dict, kwargs=parameter_model
|
310
518
|
)
|
311
519
|
self._api_client._verify_response(return_value)
|
@@ -317,7 +525,7 @@ class Async_operations(_api_module.BaseModule):
|
|
317
525
|
operation_name: str,
|
318
526
|
resource_name: str,
|
319
527
|
config: Optional[types.FetchPredictOperationConfigOrDict] = None,
|
320
|
-
) -> types.
|
528
|
+
) -> types.GenerateVideosOperation:
|
321
529
|
parameter_model = types._FetchPredictOperationParameters(
|
322
530
|
operation_name=operation_name,
|
323
531
|
resource_name=resource_name,
|
@@ -354,12 +562,44 @@ class Async_operations(_api_module.BaseModule):
|
|
354
562
|
)
|
355
563
|
|
356
564
|
if self._api_client.vertexai:
|
357
|
-
response_dict =
|
565
|
+
response_dict = _GenerateVideosOperation_from_vertex(
|
566
|
+
self._api_client, response_dict
|
567
|
+
)
|
358
568
|
else:
|
359
|
-
response_dict =
|
569
|
+
response_dict = _GenerateVideosOperation_from_mldev(
|
570
|
+
self._api_client, response_dict
|
571
|
+
)
|
360
572
|
|
361
|
-
return_value = types.
|
573
|
+
return_value = types.GenerateVideosOperation._from_response(
|
362
574
|
response=response_dict, kwargs=parameter_model
|
363
575
|
)
|
364
576
|
self._api_client._verify_response(return_value)
|
365
577
|
return return_value
|
578
|
+
|
579
|
+
@_common.experimental_warning(
|
580
|
+
'This method is experimental and may change in future versions.'
|
581
|
+
)
|
582
|
+
async def get(
|
583
|
+
self,
|
584
|
+
operation: types.GenerateVideosOperation,
|
585
|
+
*,
|
586
|
+
config: Optional[types.GetOperationConfigOrDict] = None,
|
587
|
+
) -> types.GenerateVideosOperation:
|
588
|
+
"""Gets the status of an operation."""
|
589
|
+
# Currently, only GenerateVideosOperation is supported.
|
590
|
+
operation_name = operation.name
|
591
|
+
if not operation_name:
|
592
|
+
raise ValueError('Operation name is empty.')
|
593
|
+
|
594
|
+
if self._api_client.vertexai:
|
595
|
+
resource_name = operation_name.rpartition('/operations/')[0]
|
596
|
+
return await self._fetch_predict_operation(
|
597
|
+
operation_name=operation_name,
|
598
|
+
resource_name=resource_name,
|
599
|
+
config=config,
|
600
|
+
)
|
601
|
+
else:
|
602
|
+
return await self._get_operation(
|
603
|
+
operation_name=operation_name,
|
604
|
+
config=config,
|
605
|
+
)
|
google/genai/tunings.py
CHANGED
@@ -15,6 +15,7 @@
|
|
15
15
|
|
16
16
|
# Code generated by the Google Gen AI SDK generator DO NOT EDIT.
|
17
17
|
|
18
|
+
import logging
|
18
19
|
from typing import Optional, Union
|
19
20
|
from urllib.parse import urlencode
|
20
21
|
from . import _api_module
|
@@ -26,6 +27,8 @@ from ._common import get_value_by_path as getv
|
|
26
27
|
from ._common import set_value_by_path as setv
|
27
28
|
from .pagers import AsyncPager, Pager
|
28
29
|
|
30
|
+
logger = logging.getLogger('google_genai.tunings')
|
31
|
+
|
29
32
|
|
30
33
|
def _GetTuningJobParameters_to_mldev(
|
31
34
|
api_client: ApiClient,
|