google-genai 1.9.0__py3-none-any.whl → 1.11.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 +192 -35
- google/genai/_automatic_function_calling_util.py +1 -1
- google/genai/_extra_utils.py +70 -10
- google/genai/_replay_api_client.py +32 -8
- google/genai/_transformers.py +172 -59
- google/genai/files.py +22 -6
- google/genai/live.py +136 -580
- google/genai/live_converters.py +1298 -0
- google/genai/models.py +97 -15
- google/genai/operations.py +17 -9
- google/genai/tunings.py +0 -3
- google/genai/types.py +1064 -78
- google/genai/version.py +1 -1
- {google_genai-1.9.0.dist-info → google_genai-1.11.0.dist-info}/METADATA +1 -1
- google_genai-1.11.0.dist-info/RECORD +28 -0
- google_genai-1.9.0.dist-info/RECORD +0 -27
- {google_genai-1.9.0.dist-info → google_genai-1.11.0.dist-info}/WHEEL +0 -0
- {google_genai-1.9.0.dist-info → google_genai-1.11.0.dist-info}/licenses/LICENSE +0 -0
- {google_genai-1.9.0.dist-info → google_genai-1.11.0.dist-info}/top_level.txt +0 -0
google/genai/models.py
CHANGED
@@ -176,6 +176,20 @@ def _Schema_to_mldev(
|
|
176
176
|
return to_object
|
177
177
|
|
178
178
|
|
179
|
+
def _ModelSelectionConfig_to_mldev(
|
180
|
+
api_client: BaseApiClient,
|
181
|
+
from_object: Union[dict, object],
|
182
|
+
parent_object: Optional[dict] = None,
|
183
|
+
) -> dict:
|
184
|
+
to_object: dict[str, Any] = {}
|
185
|
+
if getv(from_object, ['feature_selection_preference']) is not None:
|
186
|
+
raise ValueError(
|
187
|
+
'feature_selection_preference parameter is not supported in Gemini API.'
|
188
|
+
)
|
189
|
+
|
190
|
+
return to_object
|
191
|
+
|
192
|
+
|
179
193
|
def _SafetySetting_to_mldev(
|
180
194
|
api_client: BaseApiClient,
|
181
195
|
from_object: Union[dict, object],
|
@@ -393,6 +407,9 @@ def _SpeechConfig_to_mldev(
|
|
393
407
|
),
|
394
408
|
)
|
395
409
|
|
410
|
+
if getv(from_object, ['language_code']) is not None:
|
411
|
+
setv(to_object, ['languageCode'], getv(from_object, ['language_code']))
|
412
|
+
|
396
413
|
return to_object
|
397
414
|
|
398
415
|
|
@@ -407,6 +424,9 @@ def _ThinkingConfig_to_mldev(
|
|
407
424
|
to_object, ['includeThoughts'], getv(from_object, ['include_thoughts'])
|
408
425
|
)
|
409
426
|
|
427
|
+
if getv(from_object, ['thinking_budget']) is not None:
|
428
|
+
setv(to_object, ['thinkingBudget'], getv(from_object, ['thinking_budget']))
|
429
|
+
|
410
430
|
return to_object
|
411
431
|
|
412
432
|
|
@@ -494,6 +514,11 @@ def _GenerateContentConfig_to_mldev(
|
|
494
514
|
if getv(from_object, ['routing_config']) is not None:
|
495
515
|
raise ValueError('routing_config parameter is not supported in Gemini API.')
|
496
516
|
|
517
|
+
if getv(from_object, ['model_selection_config']) is not None:
|
518
|
+
raise ValueError(
|
519
|
+
'model_selection_config parameter is not supported in Gemini API.'
|
520
|
+
)
|
521
|
+
|
497
522
|
if getv(from_object, ['safety_settings']) is not None:
|
498
523
|
setv(
|
499
524
|
parent_object,
|
@@ -1267,6 +1292,22 @@ def _Schema_to_vertex(
|
|
1267
1292
|
return to_object
|
1268
1293
|
|
1269
1294
|
|
1295
|
+
def _ModelSelectionConfig_to_vertex(
|
1296
|
+
api_client: BaseApiClient,
|
1297
|
+
from_object: Union[dict, object],
|
1298
|
+
parent_object: Optional[dict] = None,
|
1299
|
+
) -> dict:
|
1300
|
+
to_object: dict[str, Any] = {}
|
1301
|
+
if getv(from_object, ['feature_selection_preference']) is not None:
|
1302
|
+
setv(
|
1303
|
+
to_object,
|
1304
|
+
['featureSelectionPreference'],
|
1305
|
+
getv(from_object, ['feature_selection_preference']),
|
1306
|
+
)
|
1307
|
+
|
1308
|
+
return to_object
|
1309
|
+
|
1310
|
+
|
1270
1311
|
def _SafetySetting_to_vertex(
|
1271
1312
|
api_client: BaseApiClient,
|
1272
1313
|
from_object: Union[dict, object],
|
@@ -1490,6 +1531,9 @@ def _SpeechConfig_to_vertex(
|
|
1490
1531
|
),
|
1491
1532
|
)
|
1492
1533
|
|
1534
|
+
if getv(from_object, ['language_code']) is not None:
|
1535
|
+
setv(to_object, ['languageCode'], getv(from_object, ['language_code']))
|
1536
|
+
|
1493
1537
|
return to_object
|
1494
1538
|
|
1495
1539
|
|
@@ -1504,6 +1548,9 @@ def _ThinkingConfig_to_vertex(
|
|
1504
1548
|
to_object, ['includeThoughts'], getv(from_object, ['include_thoughts'])
|
1505
1549
|
)
|
1506
1550
|
|
1551
|
+
if getv(from_object, ['thinking_budget']) is not None:
|
1552
|
+
setv(to_object, ['thinkingBudget'], getv(from_object, ['thinking_budget']))
|
1553
|
+
|
1507
1554
|
return to_object
|
1508
1555
|
|
1509
1556
|
|
@@ -1591,6 +1638,15 @@ def _GenerateContentConfig_to_vertex(
|
|
1591
1638
|
if getv(from_object, ['routing_config']) is not None:
|
1592
1639
|
setv(to_object, ['routingConfig'], getv(from_object, ['routing_config']))
|
1593
1640
|
|
1641
|
+
if getv(from_object, ['model_selection_config']) is not None:
|
1642
|
+
setv(
|
1643
|
+
to_object,
|
1644
|
+
['modelConfig'],
|
1645
|
+
_ModelSelectionConfig_to_vertex(
|
1646
|
+
api_client, getv(from_object, ['model_selection_config']), to_object
|
1647
|
+
),
|
1648
|
+
)
|
1649
|
+
|
1594
1650
|
if getv(from_object, ['safety_settings']) is not None:
|
1595
1651
|
setv(
|
1596
1652
|
parent_object,
|
@@ -2653,6 +2709,16 @@ def _GenerateVideosParameters_to_vertex(
|
|
2653
2709
|
return to_object
|
2654
2710
|
|
2655
2711
|
|
2712
|
+
def _FeatureSelectionPreference_to_mldev_enum_validate(enum_value: Any):
|
2713
|
+
if enum_value in set([
|
2714
|
+
'FEATURE_SELECTION_PREFERENCE_UNSPECIFIED',
|
2715
|
+
'PRIORITIZE_QUALITY',
|
2716
|
+
'BALANCED',
|
2717
|
+
'PRIORITIZE_COST',
|
2718
|
+
]):
|
2719
|
+
raise ValueError(f'{enum_value} enum value is not supported in Gemini API.')
|
2720
|
+
|
2721
|
+
|
2656
2722
|
def _SafetyFilterLevel_to_mldev_enum_validate(enum_value: Any):
|
2657
2723
|
if enum_value in set(['BLOCK_NONE']):
|
2658
2724
|
raise ValueError(f'{enum_value} enum value is not supported in Gemini API.')
|
@@ -3204,8 +3270,16 @@ def _GenerateVideosOperation_from_mldev(
|
|
3204
3270
|
if getv(from_object, ['error']) is not None:
|
3205
3271
|
setv(to_object, ['error'], getv(from_object, ['error']))
|
3206
3272
|
|
3207
|
-
if getv(from_object, ['response']) is not None:
|
3208
|
-
setv(
|
3273
|
+
if getv(from_object, ['response', 'generateVideoResponse']) is not None:
|
3274
|
+
setv(
|
3275
|
+
to_object,
|
3276
|
+
['response'],
|
3277
|
+
_GenerateVideosResponse_from_mldev(
|
3278
|
+
api_client,
|
3279
|
+
getv(from_object, ['response', 'generateVideoResponse']),
|
3280
|
+
to_object,
|
3281
|
+
),
|
3282
|
+
)
|
3209
3283
|
|
3210
3284
|
if getv(from_object, ['response', 'generateVideoResponse']) is not None:
|
3211
3285
|
setv(
|
@@ -3847,7 +3921,13 @@ def _GenerateVideosOperation_from_vertex(
|
|
3847
3921
|
setv(to_object, ['error'], getv(from_object, ['error']))
|
3848
3922
|
|
3849
3923
|
if getv(from_object, ['response']) is not None:
|
3850
|
-
setv(
|
3924
|
+
setv(
|
3925
|
+
to_object,
|
3926
|
+
['response'],
|
3927
|
+
_GenerateVideosResponse_from_vertex(
|
3928
|
+
api_client, getv(from_object, ['response']), to_object
|
3929
|
+
),
|
3930
|
+
)
|
3851
3931
|
|
3852
3932
|
if getv(from_object, ['response']) is not None:
|
3853
3933
|
setv(
|
@@ -4766,9 +4846,6 @@ class Models(_api_module.BaseModule):
|
|
4766
4846
|
self._api_client._verify_response(return_value)
|
4767
4847
|
return return_value
|
4768
4848
|
|
4769
|
-
@_common.experimental_warning(
|
4770
|
-
'This method is experimental and may change in future versions.'
|
4771
|
-
)
|
4772
4849
|
def generate_videos(
|
4773
4850
|
self,
|
4774
4851
|
*,
|
@@ -6269,9 +6346,6 @@ class AsyncModels(_api_module.BaseModule):
|
|
6269
6346
|
self._api_client._verify_response(return_value)
|
6270
6347
|
return return_value
|
6271
6348
|
|
6272
|
-
@_common.experimental_warning(
|
6273
|
-
'This method is experimental and may change in future versions.'
|
6274
|
-
)
|
6275
6349
|
async def generate_videos(
|
6276
6350
|
self,
|
6277
6351
|
*,
|
@@ -6419,7 +6493,9 @@ class AsyncModels(_api_module.BaseModule):
|
|
6419
6493
|
if remaining_remote_calls_afc == 0:
|
6420
6494
|
logger.info('Reached max remote calls for automatic function calling.')
|
6421
6495
|
|
6422
|
-
function_map = _extra_utils.get_function_map(
|
6496
|
+
function_map = _extra_utils.get_function_map(
|
6497
|
+
config, is_caller_method_async=True
|
6498
|
+
)
|
6423
6499
|
if not function_map:
|
6424
6500
|
break
|
6425
6501
|
if not response:
|
@@ -6430,8 +6506,10 @@ class AsyncModels(_api_module.BaseModule):
|
|
6430
6506
|
or not response.candidates[0].content.parts
|
6431
6507
|
):
|
6432
6508
|
break
|
6433
|
-
func_response_parts =
|
6434
|
-
|
6509
|
+
func_response_parts = (
|
6510
|
+
await _extra_utils.get_function_response_parts_async(
|
6511
|
+
response, function_map
|
6512
|
+
)
|
6435
6513
|
)
|
6436
6514
|
if not func_response_parts:
|
6437
6515
|
break
|
@@ -6551,7 +6629,9 @@ class AsyncModels(_api_module.BaseModule):
|
|
6551
6629
|
'Reached max remote calls for automatic function calling.'
|
6552
6630
|
)
|
6553
6631
|
|
6554
|
-
function_map = _extra_utils.get_function_map(
|
6632
|
+
function_map = _extra_utils.get_function_map(
|
6633
|
+
config, is_caller_method_async=True
|
6634
|
+
)
|
6555
6635
|
|
6556
6636
|
if i == 1:
|
6557
6637
|
# First request gets a function call.
|
@@ -6567,8 +6647,10 @@ class AsyncModels(_api_module.BaseModule):
|
|
6567
6647
|
or not chunk.candidates[0].content.parts
|
6568
6648
|
):
|
6569
6649
|
break
|
6570
|
-
func_response_parts =
|
6571
|
-
|
6650
|
+
func_response_parts = (
|
6651
|
+
await _extra_utils.get_function_response_parts_async(
|
6652
|
+
chunk, function_map
|
6653
|
+
)
|
6572
6654
|
)
|
6573
6655
|
if not func_response_parts:
|
6574
6656
|
yield chunk
|
google/genai/operations.py
CHANGED
@@ -178,8 +178,16 @@ def _GenerateVideosOperation_from_mldev(
|
|
178
178
|
if getv(from_object, ['error']) is not None:
|
179
179
|
setv(to_object, ['error'], getv(from_object, ['error']))
|
180
180
|
|
181
|
-
if getv(from_object, ['response']) is not None:
|
182
|
-
setv(
|
181
|
+
if getv(from_object, ['response', 'generateVideoResponse']) is not None:
|
182
|
+
setv(
|
183
|
+
to_object,
|
184
|
+
['response'],
|
185
|
+
_GenerateVideosResponse_from_mldev(
|
186
|
+
api_client,
|
187
|
+
getv(from_object, ['response', 'generateVideoResponse']),
|
188
|
+
to_object,
|
189
|
+
),
|
190
|
+
)
|
183
191
|
|
184
192
|
if getv(from_object, ['response', 'generateVideoResponse']) is not None:
|
185
193
|
setv(
|
@@ -285,7 +293,13 @@ def _GenerateVideosOperation_from_vertex(
|
|
285
293
|
setv(to_object, ['error'], getv(from_object, ['error']))
|
286
294
|
|
287
295
|
if getv(from_object, ['response']) is not None:
|
288
|
-
setv(
|
296
|
+
setv(
|
297
|
+
to_object,
|
298
|
+
['response'],
|
299
|
+
_GenerateVideosResponse_from_vertex(
|
300
|
+
api_client, getv(from_object, ['response']), to_object
|
301
|
+
),
|
302
|
+
)
|
289
303
|
|
290
304
|
if getv(from_object, ['response']) is not None:
|
291
305
|
setv(
|
@@ -427,9 +441,6 @@ class Operations(_api_module.BaseModule):
|
|
427
441
|
self._api_client._verify_response(return_value)
|
428
442
|
return return_value
|
429
443
|
|
430
|
-
@_common.experimental_warning(
|
431
|
-
'This method is experimental and may change in future versions.'
|
432
|
-
)
|
433
444
|
def get(
|
434
445
|
self,
|
435
446
|
operation: types.GenerateVideosOperation,
|
@@ -600,9 +611,6 @@ class AsyncOperations(_api_module.BaseModule):
|
|
600
611
|
self._api_client._verify_response(return_value)
|
601
612
|
return return_value
|
602
613
|
|
603
|
-
@_common.experimental_warning(
|
604
|
-
'This method is experimental and may change in future versions.'
|
605
|
-
)
|
606
614
|
async def get(
|
607
615
|
self,
|
608
616
|
operation: types.GenerateVideosOperation,
|
google/genai/tunings.py
CHANGED
@@ -545,9 +545,6 @@ def _Operation_from_mldev(
|
|
545
545
|
if getv(from_object, ['error']) is not None:
|
546
546
|
setv(to_object, ['error'], getv(from_object, ['error']))
|
547
547
|
|
548
|
-
if getv(from_object, ['response']) is not None:
|
549
|
-
setv(to_object, ['response'], getv(from_object, ['response']))
|
550
|
-
|
551
548
|
return to_object
|
552
549
|
|
553
550
|
|