google-genai 1.31.0__py3-none-any.whl → 1.32.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/_base_transformers.py +26 -0
- google/genai/_local_tokenizer_loader.py +223 -0
- google/genai/_operations_converters.py +307 -0
- google/genai/_transformers.py +0 -10
- google/genai/caches.py +14 -2
- google/genai/files.py +10 -2
- google/genai/local_tokenizer.py +362 -0
- google/genai/models.py +144 -17
- google/genai/tunings.py +134 -0
- google/genai/types.py +251 -82
- google/genai/version.py +1 -1
- {google_genai-1.31.0.dist-info → google_genai-1.32.0.dist-info}/METADATA +6 -6
- {google_genai-1.31.0.dist-info → google_genai-1.32.0.dist-info}/RECORD +16 -12
- {google_genai-1.31.0.dist-info → google_genai-1.32.0.dist-info}/WHEEL +0 -0
- {google_genai-1.31.0.dist-info → google_genai-1.32.0.dist-info}/licenses/LICENSE +0 -0
- {google_genai-1.31.0.dist-info → google_genai-1.32.0.dist-info}/top_level.txt +0 -0
google/genai/models.py
CHANGED
@@ -21,6 +21,7 @@ from typing import Any, AsyncIterator, Awaitable, Iterator, Optional, Union
|
|
21
21
|
from urllib.parse import urlencode
|
22
22
|
|
23
23
|
from . import _api_module
|
24
|
+
from . import _base_transformers as base_t
|
24
25
|
from . import _common
|
25
26
|
from . import _extra_utils
|
26
27
|
from . import _mcp_utils
|
@@ -1260,7 +1261,7 @@ def _Image_to_mldev(
|
|
1260
1261
|
setv(
|
1261
1262
|
to_object,
|
1262
1263
|
['bytesBase64Encoded'],
|
1263
|
-
|
1264
|
+
base_t.t_bytes(getv(from_object, ['image_bytes'])),
|
1264
1265
|
)
|
1265
1266
|
|
1266
1267
|
if getv(from_object, ['mime_type']) is not None:
|
@@ -1269,6 +1270,29 @@ def _Image_to_mldev(
|
|
1269
1270
|
return to_object
|
1270
1271
|
|
1271
1272
|
|
1273
|
+
def _GenerateVideosSource_to_mldev(
|
1274
|
+
from_object: Union[dict[str, Any], object],
|
1275
|
+
parent_object: Optional[dict[str, Any]] = None,
|
1276
|
+
) -> dict[str, Any]:
|
1277
|
+
to_object: dict[str, Any] = {}
|
1278
|
+
if getv(from_object, ['prompt']) is not None:
|
1279
|
+
setv(
|
1280
|
+
parent_object, ['instances[0]', 'prompt'], getv(from_object, ['prompt'])
|
1281
|
+
)
|
1282
|
+
|
1283
|
+
if getv(from_object, ['image']) is not None:
|
1284
|
+
setv(
|
1285
|
+
parent_object,
|
1286
|
+
['instances[0]', 'image'],
|
1287
|
+
_Image_to_mldev(getv(from_object, ['image']), to_object),
|
1288
|
+
)
|
1289
|
+
|
1290
|
+
if getv(from_object, ['video']) is not None:
|
1291
|
+
raise ValueError('video parameter is not supported in Gemini API.')
|
1292
|
+
|
1293
|
+
return to_object
|
1294
|
+
|
1295
|
+
|
1272
1296
|
def _GenerateVideosConfig_to_mldev(
|
1273
1297
|
from_object: Union[dict[str, Any], object],
|
1274
1298
|
parent_object: Optional[dict[str, Any]] = None,
|
@@ -1377,6 +1401,15 @@ def _GenerateVideosParameters_to_mldev(
|
|
1377
1401
|
if getv(from_object, ['video']) is not None:
|
1378
1402
|
raise ValueError('video parameter is not supported in Gemini API.')
|
1379
1403
|
|
1404
|
+
if getv(from_object, ['source']) is not None:
|
1405
|
+
setv(
|
1406
|
+
to_object,
|
1407
|
+
['config'],
|
1408
|
+
_GenerateVideosSource_to_mldev(
|
1409
|
+
getv(from_object, ['source']), to_object
|
1410
|
+
),
|
1411
|
+
)
|
1412
|
+
|
1380
1413
|
if getv(from_object, ['config']) is not None:
|
1381
1414
|
setv(
|
1382
1415
|
to_object,
|
@@ -2502,7 +2535,7 @@ def _Image_to_vertex(
|
|
2502
2535
|
setv(
|
2503
2536
|
to_object,
|
2504
2537
|
['bytesBase64Encoded'],
|
2505
|
-
|
2538
|
+
base_t.t_bytes(getv(from_object, ['image_bytes'])),
|
2506
2539
|
)
|
2507
2540
|
|
2508
2541
|
if getv(from_object, ['mime_type']) is not None:
|
@@ -2797,6 +2830,13 @@ def _UpscaleImageAPIConfig_to_vertex(
|
|
2797
2830
|
) -> dict[str, Any]:
|
2798
2831
|
to_object: dict[str, Any] = {}
|
2799
2832
|
|
2833
|
+
if getv(from_object, ['output_gcs_uri']) is not None:
|
2834
|
+
setv(
|
2835
|
+
parent_object,
|
2836
|
+
['parameters', 'storageUri'],
|
2837
|
+
getv(from_object, ['output_gcs_uri']),
|
2838
|
+
)
|
2839
|
+
|
2800
2840
|
if getv(from_object, ['include_rai_reason']) is not None:
|
2801
2841
|
setv(
|
2802
2842
|
parent_object,
|
@@ -2973,6 +3013,13 @@ def _RecontextImageConfig_to_vertex(
|
|
2973
3013
|
getv(from_object, ['person_generation']),
|
2974
3014
|
)
|
2975
3015
|
|
3016
|
+
if getv(from_object, ['add_watermark']) is not None:
|
3017
|
+
setv(
|
3018
|
+
parent_object,
|
3019
|
+
['parameters', 'addWatermark'],
|
3020
|
+
getv(from_object, ['add_watermark']),
|
3021
|
+
)
|
3022
|
+
|
2976
3023
|
if getv(from_object, ['output_mime_type']) is not None:
|
2977
3024
|
setv(
|
2978
3025
|
parent_object,
|
@@ -3387,7 +3434,7 @@ def _Video_to_vertex(
|
|
3387
3434
|
setv(
|
3388
3435
|
to_object,
|
3389
3436
|
['bytesBase64Encoded'],
|
3390
|
-
|
3437
|
+
base_t.t_bytes(getv(from_object, ['video_bytes'])),
|
3391
3438
|
)
|
3392
3439
|
|
3393
3440
|
if getv(from_object, ['mime_type']) is not None:
|
@@ -3396,6 +3443,33 @@ def _Video_to_vertex(
|
|
3396
3443
|
return to_object
|
3397
3444
|
|
3398
3445
|
|
3446
|
+
def _GenerateVideosSource_to_vertex(
|
3447
|
+
from_object: Union[dict[str, Any], object],
|
3448
|
+
parent_object: Optional[dict[str, Any]] = None,
|
3449
|
+
) -> dict[str, Any]:
|
3450
|
+
to_object: dict[str, Any] = {}
|
3451
|
+
if getv(from_object, ['prompt']) is not None:
|
3452
|
+
setv(
|
3453
|
+
parent_object, ['instances[0]', 'prompt'], getv(from_object, ['prompt'])
|
3454
|
+
)
|
3455
|
+
|
3456
|
+
if getv(from_object, ['image']) is not None:
|
3457
|
+
setv(
|
3458
|
+
parent_object,
|
3459
|
+
['instances[0]', 'image'],
|
3460
|
+
_Image_to_vertex(getv(from_object, ['image']), to_object),
|
3461
|
+
)
|
3462
|
+
|
3463
|
+
if getv(from_object, ['video']) is not None:
|
3464
|
+
setv(
|
3465
|
+
parent_object,
|
3466
|
+
['instances[0]', 'video'],
|
3467
|
+
_Video_to_vertex(getv(from_object, ['video']), to_object),
|
3468
|
+
)
|
3469
|
+
|
3470
|
+
return to_object
|
3471
|
+
|
3472
|
+
|
3399
3473
|
def _VideoGenerationReferenceImage_to_vertex(
|
3400
3474
|
from_object: Union[dict[str, Any], object],
|
3401
3475
|
parent_object: Optional[dict[str, Any]] = None,
|
@@ -3553,6 +3627,15 @@ def _GenerateVideosParameters_to_vertex(
|
|
3553
3627
|
_Video_to_vertex(getv(from_object, ['video']), to_object),
|
3554
3628
|
)
|
3555
3629
|
|
3630
|
+
if getv(from_object, ['source']) is not None:
|
3631
|
+
setv(
|
3632
|
+
to_object,
|
3633
|
+
['config'],
|
3634
|
+
_GenerateVideosSource_to_vertex(
|
3635
|
+
getv(from_object, ['source']), to_object
|
3636
|
+
),
|
3637
|
+
)
|
3638
|
+
|
3556
3639
|
if getv(from_object, ['config']) is not None:
|
3557
3640
|
setv(
|
3558
3641
|
to_object,
|
@@ -3914,7 +3997,7 @@ def _Image_from_mldev(
|
|
3914
3997
|
setv(
|
3915
3998
|
to_object,
|
3916
3999
|
['image_bytes'],
|
3917
|
-
|
4000
|
+
base_t.t_bytes(getv(from_object, ['bytesBase64Encoded'])),
|
3918
4001
|
)
|
3919
4002
|
|
3920
4003
|
if getv(from_object, ['mimeType']) is not None:
|
@@ -4101,6 +4184,10 @@ def _DeleteModelResponse_from_mldev(
|
|
4101
4184
|
parent_object: Optional[dict[str, Any]] = None,
|
4102
4185
|
) -> dict[str, Any]:
|
4103
4186
|
to_object: dict[str, Any] = {}
|
4187
|
+
if getv(from_object, ['sdkHttpResponse']) is not None:
|
4188
|
+
setv(
|
4189
|
+
to_object, ['sdk_http_response'], getv(from_object, ['sdkHttpResponse'])
|
4190
|
+
)
|
4104
4191
|
|
4105
4192
|
return to_object
|
4106
4193
|
|
@@ -4140,7 +4227,7 @@ def _Video_from_mldev(
|
|
4140
4227
|
setv(
|
4141
4228
|
to_object,
|
4142
4229
|
['video_bytes'],
|
4143
|
-
|
4230
|
+
base_t.t_bytes(getv(from_object, ['video', 'encodedVideo'])),
|
4144
4231
|
)
|
4145
4232
|
|
4146
4233
|
if getv(from_object, ['encoding']) is not None:
|
@@ -4606,7 +4693,7 @@ def _Image_from_vertex(
|
|
4606
4693
|
setv(
|
4607
4694
|
to_object,
|
4608
4695
|
['image_bytes'],
|
4609
|
-
|
4696
|
+
base_t.t_bytes(getv(from_object, ['bytesBase64Encoded'])),
|
4610
4697
|
)
|
4611
4698
|
|
4612
4699
|
if getv(from_object, ['mimeType']) is not None:
|
@@ -4968,6 +5055,10 @@ def _DeleteModelResponse_from_vertex(
|
|
4968
5055
|
parent_object: Optional[dict[str, Any]] = None,
|
4969
5056
|
) -> dict[str, Any]:
|
4970
5057
|
to_object: dict[str, Any] = {}
|
5058
|
+
if getv(from_object, ['sdkHttpResponse']) is not None:
|
5059
|
+
setv(
|
5060
|
+
to_object, ['sdk_http_response'], getv(from_object, ['sdkHttpResponse'])
|
5061
|
+
)
|
4971
5062
|
|
4972
5063
|
return to_object
|
4973
5064
|
|
@@ -5016,7 +5107,7 @@ def _Video_from_vertex(
|
|
5016
5107
|
setv(
|
5017
5108
|
to_object,
|
5018
5109
|
['video_bytes'],
|
5019
|
-
|
5110
|
+
base_t.t_bytes(getv(from_object, ['bytesBase64Encoded'])),
|
5020
5111
|
)
|
5021
5112
|
|
5022
5113
|
if getv(from_object, ['mimeType']) is not None:
|
@@ -6050,7 +6141,9 @@ class Models(_api_module.BaseModule):
|
|
6050
6141
|
return_value = types.DeleteModelResponse._from_response(
|
6051
6142
|
response=response_dict, kwargs=parameter_model.model_dump()
|
6052
6143
|
)
|
6053
|
-
|
6144
|
+
return_value.sdk_http_response = types.HttpResponse(
|
6145
|
+
headers=response.headers
|
6146
|
+
)
|
6054
6147
|
self._api_client._verify_response(return_value)
|
6055
6148
|
return return_value
|
6056
6149
|
|
@@ -6235,6 +6328,7 @@ class Models(_api_module.BaseModule):
|
|
6235
6328
|
prompt: Optional[str] = None,
|
6236
6329
|
image: Optional[types.ImageOrDict] = None,
|
6237
6330
|
video: Optional[types.VideoOrDict] = None,
|
6331
|
+
source: Optional[types.GenerateVideosSourceOrDict] = None,
|
6238
6332
|
config: Optional[types.GenerateVideosConfigOrDict] = None,
|
6239
6333
|
) -> types.GenerateVideosOperation:
|
6240
6334
|
"""Generates videos based on an input (text, image, or video) and configuration.
|
@@ -6276,6 +6370,7 @@ class Models(_api_module.BaseModule):
|
|
6276
6370
|
prompt=prompt,
|
6277
6371
|
image=image,
|
6278
6372
|
video=video,
|
6373
|
+
source=source,
|
6279
6374
|
config=config,
|
6280
6375
|
)
|
6281
6376
|
|
@@ -6794,6 +6889,7 @@ class Models(_api_module.BaseModule):
|
|
6794
6889
|
config_dct = dict(config)
|
6795
6890
|
api_config = types._UpscaleImageAPIConfigDict(
|
6796
6891
|
http_options=config_dct.get('http_options', None),
|
6892
|
+
output_gcs_uri=config_dct.get('output_gcs_uri', None),
|
6797
6893
|
include_rai_reason=config_dct.get('include_rai_reason', None),
|
6798
6894
|
output_mime_type=config_dct.get('output_mime_type', None),
|
6799
6895
|
output_compression_quality=config_dct.get(
|
@@ -6823,6 +6919,7 @@ class Models(_api_module.BaseModule):
|
|
6823
6919
|
prompt: Optional[str] = None,
|
6824
6920
|
image: Optional[types.ImageOrDict] = None,
|
6825
6921
|
video: Optional[types.VideoOrDict] = None,
|
6922
|
+
source: Optional[types.GenerateVideosSourceOrDict] = None,
|
6826
6923
|
config: Optional[types.GenerateVideosConfigOrDict] = None,
|
6827
6924
|
) -> types.GenerateVideosOperation:
|
6828
6925
|
"""Generates videos based on an input (text, image, or video) and configuration.
|
@@ -6837,11 +6934,15 @@ class Models(_api_module.BaseModule):
|
|
6837
6934
|
Args:
|
6838
6935
|
model: The model to use.
|
6839
6936
|
prompt: The text prompt for generating the videos. Optional for image to
|
6840
|
-
video and video extension use cases.
|
6937
|
+
video and video extension use cases. This argument is deprecated, please
|
6938
|
+
use source instead.
|
6841
6939
|
image: The input image for generating the videos. Optional if prompt is
|
6842
|
-
provided.
|
6940
|
+
provided. This argument is deprecated, please use source instead.
|
6843
6941
|
video: The input video for video extension use cases. Optional if prompt
|
6844
|
-
or image is provided.
|
6942
|
+
or image is provided. This argument is deprecated, please use source
|
6943
|
+
instead.
|
6944
|
+
source: The input source for generating the videos (prompt, image, and/or
|
6945
|
+
video)
|
6845
6946
|
config: Configuration for generation.
|
6846
6947
|
|
6847
6948
|
Usage:
|
@@ -6849,7 +6950,9 @@ class Models(_api_module.BaseModule):
|
|
6849
6950
|
```
|
6850
6951
|
operation = client.models.generate_videos(
|
6851
6952
|
model="veo-2.0-generate-001",
|
6852
|
-
|
6953
|
+
source=types.GenerateVideosSource(
|
6954
|
+
prompt="A neon hologram of a cat driving at top speed",
|
6955
|
+
),
|
6853
6956
|
)
|
6854
6957
|
while not operation.done:
|
6855
6958
|
time.sleep(10)
|
@@ -6858,11 +6961,17 @@ class Models(_api_module.BaseModule):
|
|
6858
6961
|
operation.result.generated_videos[0].video.uri
|
6859
6962
|
```
|
6860
6963
|
"""
|
6964
|
+
if (prompt or image or video) and source:
|
6965
|
+
raise ValueError(
|
6966
|
+
'Source and prompt/image/video are mutually exclusive.'
|
6967
|
+
+ ' Please only use source.'
|
6968
|
+
)
|
6861
6969
|
return self._generate_videos(
|
6862
6970
|
model=model,
|
6863
6971
|
prompt=prompt,
|
6864
6972
|
image=image,
|
6865
6973
|
video=video,
|
6974
|
+
source=source,
|
6866
6975
|
config=config,
|
6867
6976
|
)
|
6868
6977
|
|
@@ -7869,7 +7978,9 @@ class AsyncModels(_api_module.BaseModule):
|
|
7869
7978
|
return_value = types.DeleteModelResponse._from_response(
|
7870
7979
|
response=response_dict, kwargs=parameter_model.model_dump()
|
7871
7980
|
)
|
7872
|
-
|
7981
|
+
return_value.sdk_http_response = types.HttpResponse(
|
7982
|
+
headers=response.headers
|
7983
|
+
)
|
7873
7984
|
self._api_client._verify_response(return_value)
|
7874
7985
|
return return_value
|
7875
7986
|
|
@@ -8053,6 +8164,7 @@ class AsyncModels(_api_module.BaseModule):
|
|
8053
8164
|
prompt: Optional[str] = None,
|
8054
8165
|
image: Optional[types.ImageOrDict] = None,
|
8055
8166
|
video: Optional[types.VideoOrDict] = None,
|
8167
|
+
source: Optional[types.GenerateVideosSourceOrDict] = None,
|
8056
8168
|
config: Optional[types.GenerateVideosConfigOrDict] = None,
|
8057
8169
|
) -> types.GenerateVideosOperation:
|
8058
8170
|
"""Generates videos based on an input (text, image, or video) and configuration.
|
@@ -8094,6 +8206,7 @@ class AsyncModels(_api_module.BaseModule):
|
|
8094
8206
|
prompt=prompt,
|
8095
8207
|
image=image,
|
8096
8208
|
video=video,
|
8209
|
+
source=source,
|
8097
8210
|
config=config,
|
8098
8211
|
)
|
8099
8212
|
|
@@ -8645,6 +8758,7 @@ class AsyncModels(_api_module.BaseModule):
|
|
8645
8758
|
config_dct = dict(config)
|
8646
8759
|
api_config = types._UpscaleImageAPIConfigDict(
|
8647
8760
|
http_options=config_dct.get('http_options', None),
|
8761
|
+
output_gcs_uri=config_dct.get('output_gcs_uri', None),
|
8648
8762
|
include_rai_reason=config_dct.get('include_rai_reason', None),
|
8649
8763
|
output_mime_type=config_dct.get('output_mime_type', None),
|
8650
8764
|
output_compression_quality=config_dct.get(
|
@@ -8674,6 +8788,7 @@ class AsyncModels(_api_module.BaseModule):
|
|
8674
8788
|
prompt: Optional[str] = None,
|
8675
8789
|
image: Optional[types.ImageOrDict] = None,
|
8676
8790
|
video: Optional[types.VideoOrDict] = None,
|
8791
|
+
source: Optional[types.GenerateVideosSourceOrDict] = None,
|
8677
8792
|
config: Optional[types.GenerateVideosConfigOrDict] = None,
|
8678
8793
|
) -> types.GenerateVideosOperation:
|
8679
8794
|
"""Generates videos based on an input (text, image, or video) and configuration.
|
@@ -8688,11 +8803,15 @@ class AsyncModels(_api_module.BaseModule):
|
|
8688
8803
|
Args:
|
8689
8804
|
model: The model to use.
|
8690
8805
|
prompt: The text prompt for generating the videos. Optional for image to
|
8691
|
-
video and video extension use cases.
|
8806
|
+
video and video extension use cases. This argument is deprecated, please
|
8807
|
+
use source instead.
|
8692
8808
|
image: The input image for generating the videos. Optional if prompt is
|
8693
|
-
provided.
|
8809
|
+
provided. This argument is deprecated, please use source instead.
|
8694
8810
|
video: The input video for video extension use cases. Optional if prompt
|
8695
|
-
or image is provided.
|
8811
|
+
or image is provided. This argument is deprecated, please use source
|
8812
|
+
instead.
|
8813
|
+
source: The input source for generating the videos (prompt, image, and/or
|
8814
|
+
video)
|
8696
8815
|
config: Configuration for generation.
|
8697
8816
|
|
8698
8817
|
Usage:
|
@@ -8700,7 +8819,9 @@ class AsyncModels(_api_module.BaseModule):
|
|
8700
8819
|
```
|
8701
8820
|
operation = client.models.generate_videos(
|
8702
8821
|
model="veo-2.0-generate-001",
|
8703
|
-
|
8822
|
+
source=types.GenerateVideosSource(
|
8823
|
+
prompt="A neon hologram of a cat driving at top speed",
|
8824
|
+
),
|
8704
8825
|
)
|
8705
8826
|
while not operation.done:
|
8706
8827
|
time.sleep(10)
|
@@ -8709,10 +8830,16 @@ class AsyncModels(_api_module.BaseModule):
|
|
8709
8830
|
operation.result.generated_videos[0].video.uri
|
8710
8831
|
```
|
8711
8832
|
"""
|
8833
|
+
if (prompt or image or video) and source:
|
8834
|
+
raise ValueError(
|
8835
|
+
'Source and prompt/image/video are mutually exclusive.'
|
8836
|
+
+ ' Please only use source.'
|
8837
|
+
)
|
8712
8838
|
return await self._generate_videos(
|
8713
8839
|
model=model,
|
8714
8840
|
prompt=prompt,
|
8715
8841
|
image=image,
|
8716
8842
|
video=video,
|
8843
|
+
source=source,
|
8717
8844
|
config=config,
|
8718
8845
|
)
|
google/genai/tunings.py
CHANGED
@@ -87,6 +87,20 @@ def _ListTuningJobsParameters_to_mldev(
|
|
87
87
|
return to_object
|
88
88
|
|
89
89
|
|
90
|
+
def _CancelTuningJobParameters_to_mldev(
|
91
|
+
from_object: Union[dict[str, Any], object],
|
92
|
+
parent_object: Optional[dict[str, Any]] = None,
|
93
|
+
) -> dict[str, Any]:
|
94
|
+
to_object: dict[str, Any] = {}
|
95
|
+
if getv(from_object, ['name']) is not None:
|
96
|
+
setv(to_object, ['_url', 'name'], getv(from_object, ['name']))
|
97
|
+
|
98
|
+
if getv(from_object, ['config']) is not None:
|
99
|
+
setv(to_object, ['config'], getv(from_object, ['config']))
|
100
|
+
|
101
|
+
return to_object
|
102
|
+
|
103
|
+
|
90
104
|
def _TuningExample_to_mldev(
|
91
105
|
from_object: Union[dict[str, Any], object],
|
92
106
|
parent_object: Optional[dict[str, Any]] = None,
|
@@ -285,6 +299,20 @@ def _ListTuningJobsParameters_to_vertex(
|
|
285
299
|
return to_object
|
286
300
|
|
287
301
|
|
302
|
+
def _CancelTuningJobParameters_to_vertex(
|
303
|
+
from_object: Union[dict[str, Any], object],
|
304
|
+
parent_object: Optional[dict[str, Any]] = None,
|
305
|
+
) -> dict[str, Any]:
|
306
|
+
to_object: dict[str, Any] = {}
|
307
|
+
if getv(from_object, ['name']) is not None:
|
308
|
+
setv(to_object, ['_url', 'name'], getv(from_object, ['name']))
|
309
|
+
|
310
|
+
if getv(from_object, ['config']) is not None:
|
311
|
+
setv(to_object, ['config'], getv(from_object, ['config']))
|
312
|
+
|
313
|
+
return to_object
|
314
|
+
|
315
|
+
|
288
316
|
def _TuningDataset_to_vertex(
|
289
317
|
from_object: Union[dict[str, Any], object],
|
290
318
|
parent_object: Optional[dict[str, Any]] = None,
|
@@ -1060,6 +1088,59 @@ class Tunings(_api_module.BaseModule):
|
|
1060
1088
|
self._api_client._verify_response(return_value)
|
1061
1089
|
return return_value
|
1062
1090
|
|
1091
|
+
def cancel(
|
1092
|
+
self,
|
1093
|
+
*,
|
1094
|
+
name: str,
|
1095
|
+
config: Optional[types.CancelTuningJobConfigOrDict] = None,
|
1096
|
+
) -> None:
|
1097
|
+
"""Cancels a tuning job.
|
1098
|
+
|
1099
|
+
Args:
|
1100
|
+
name (str): TuningJob resource name.
|
1101
|
+
"""
|
1102
|
+
|
1103
|
+
parameter_model = types._CancelTuningJobParameters(
|
1104
|
+
name=name,
|
1105
|
+
config=config,
|
1106
|
+
)
|
1107
|
+
|
1108
|
+
request_url_dict: Optional[dict[str, str]]
|
1109
|
+
|
1110
|
+
if self._api_client.vertexai:
|
1111
|
+
request_dict = _CancelTuningJobParameters_to_vertex(parameter_model)
|
1112
|
+
request_url_dict = request_dict.get('_url')
|
1113
|
+
if request_url_dict:
|
1114
|
+
path = '{name}:cancel'.format_map(request_url_dict)
|
1115
|
+
else:
|
1116
|
+
path = '{name}:cancel'
|
1117
|
+
else:
|
1118
|
+
request_dict = _CancelTuningJobParameters_to_mldev(parameter_model)
|
1119
|
+
request_url_dict = request_dict.get('_url')
|
1120
|
+
if request_url_dict:
|
1121
|
+
path = '{name}:cancel'.format_map(request_url_dict)
|
1122
|
+
else:
|
1123
|
+
path = '{name}:cancel'
|
1124
|
+
query_params = request_dict.get('_query')
|
1125
|
+
if query_params:
|
1126
|
+
path = f'{path}?{urlencode(query_params)}'
|
1127
|
+
# TODO: remove the hack that pops config.
|
1128
|
+
request_dict.pop('config', None)
|
1129
|
+
|
1130
|
+
http_options: Optional[types.HttpOptions] = None
|
1131
|
+
if (
|
1132
|
+
parameter_model.config is not None
|
1133
|
+
and parameter_model.config.http_options is not None
|
1134
|
+
):
|
1135
|
+
http_options = parameter_model.config.http_options
|
1136
|
+
|
1137
|
+
request_dict = _common.convert_to_dict(request_dict)
|
1138
|
+
request_dict = _common.encode_unserializable_types(request_dict)
|
1139
|
+
|
1140
|
+
response = self._api_client.request(
|
1141
|
+
'post', path, request_dict, http_options
|
1142
|
+
)
|
1143
|
+
|
1063
1144
|
def _tune(
|
1064
1145
|
self,
|
1065
1146
|
*,
|
@@ -1457,6 +1538,59 @@ class AsyncTunings(_api_module.BaseModule):
|
|
1457
1538
|
self._api_client._verify_response(return_value)
|
1458
1539
|
return return_value
|
1459
1540
|
|
1541
|
+
async def cancel(
|
1542
|
+
self,
|
1543
|
+
*,
|
1544
|
+
name: str,
|
1545
|
+
config: Optional[types.CancelTuningJobConfigOrDict] = None,
|
1546
|
+
) -> None:
|
1547
|
+
"""Cancels a tuning job asynchronously.
|
1548
|
+
|
1549
|
+
Args:
|
1550
|
+
name (str): A TuningJob resource name.
|
1551
|
+
"""
|
1552
|
+
|
1553
|
+
parameter_model = types._CancelTuningJobParameters(
|
1554
|
+
name=name,
|
1555
|
+
config=config,
|
1556
|
+
)
|
1557
|
+
|
1558
|
+
request_url_dict: Optional[dict[str, str]]
|
1559
|
+
|
1560
|
+
if self._api_client.vertexai:
|
1561
|
+
request_dict = _CancelTuningJobParameters_to_vertex(parameter_model)
|
1562
|
+
request_url_dict = request_dict.get('_url')
|
1563
|
+
if request_url_dict:
|
1564
|
+
path = '{name}:cancel'.format_map(request_url_dict)
|
1565
|
+
else:
|
1566
|
+
path = '{name}:cancel'
|
1567
|
+
else:
|
1568
|
+
request_dict = _CancelTuningJobParameters_to_mldev(parameter_model)
|
1569
|
+
request_url_dict = request_dict.get('_url')
|
1570
|
+
if request_url_dict:
|
1571
|
+
path = '{name}:cancel'.format_map(request_url_dict)
|
1572
|
+
else:
|
1573
|
+
path = '{name}:cancel'
|
1574
|
+
query_params = request_dict.get('_query')
|
1575
|
+
if query_params:
|
1576
|
+
path = f'{path}?{urlencode(query_params)}'
|
1577
|
+
# TODO: remove the hack that pops config.
|
1578
|
+
request_dict.pop('config', None)
|
1579
|
+
|
1580
|
+
http_options: Optional[types.HttpOptions] = None
|
1581
|
+
if (
|
1582
|
+
parameter_model.config is not None
|
1583
|
+
and parameter_model.config.http_options is not None
|
1584
|
+
):
|
1585
|
+
http_options = parameter_model.config.http_options
|
1586
|
+
|
1587
|
+
request_dict = _common.convert_to_dict(request_dict)
|
1588
|
+
request_dict = _common.encode_unserializable_types(request_dict)
|
1589
|
+
|
1590
|
+
response = await self._api_client.async_request(
|
1591
|
+
'post', path, request_dict, http_options
|
1592
|
+
)
|
1593
|
+
|
1460
1594
|
async def _tune(
|
1461
1595
|
self,
|
1462
1596
|
*,
|