google-genai 1.46.0__py3-none-any.whl → 1.47.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/tunings.py CHANGED
@@ -35,6 +35,7 @@ logger = logging.getLogger('google_genai.tunings')
35
35
  def _CancelTuningJobParameters_to_mldev(
36
36
  from_object: Union[dict[str, Any], object],
37
37
  parent_object: Optional[dict[str, Any]] = None,
38
+ root_object: Optional[Union[dict[str, Any], object]] = None,
38
39
  ) -> dict[str, Any]:
39
40
  to_object: dict[str, Any] = {}
40
41
  if getv(from_object, ['name']) is not None:
@@ -46,6 +47,7 @@ def _CancelTuningJobParameters_to_mldev(
46
47
  def _CancelTuningJobParameters_to_vertex(
47
48
  from_object: Union[dict[str, Any], object],
48
49
  parent_object: Optional[dict[str, Any]] = None,
50
+ root_object: Optional[Union[dict[str, Any], object]] = None,
49
51
  ) -> dict[str, Any]:
50
52
  to_object: dict[str, Any] = {}
51
53
  if getv(from_object, ['name']) is not None:
@@ -57,6 +59,7 @@ def _CancelTuningJobParameters_to_vertex(
57
59
  def _CreateTuningJobConfig_to_mldev(
58
60
  from_object: Union[dict[str, Any], object],
59
61
  parent_object: Optional[dict[str, Any]] = None,
62
+ root_object: Optional[Union[dict[str, Any], object]] = None,
60
63
  ) -> dict[str, Any]:
61
64
  to_object: dict[str, Any] = {}
62
65
 
@@ -125,23 +128,41 @@ def _CreateTuningJobConfig_to_mldev(
125
128
  if getv(from_object, ['labels']) is not None:
126
129
  raise ValueError('labels parameter is not supported in Gemini API.')
127
130
 
131
+ if getv(from_object, ['beta']) is not None:
132
+ raise ValueError('beta parameter is not supported in Gemini API.')
133
+
128
134
  return to_object
129
135
 
130
136
 
131
137
  def _CreateTuningJobConfig_to_vertex(
132
138
  from_object: Union[dict[str, Any], object],
133
139
  parent_object: Optional[dict[str, Any]] = None,
140
+ root_object: Optional[Union[dict[str, Any], object]] = None,
134
141
  ) -> dict[str, Any]:
135
142
  to_object: dict[str, Any] = {}
136
143
 
137
- if getv(from_object, ['validation_dataset']) is not None:
138
- setv(
139
- parent_object,
140
- ['supervisedTuningSpec'],
141
- _TuningValidationDataset_to_vertex(
142
- getv(from_object, ['validation_dataset']), to_object
143
- ),
144
- )
144
+ discriminator = getv(root_object, ['config', 'method'])
145
+ if discriminator is None:
146
+ discriminator = 'SUPERVISED_FINE_TUNING'
147
+ if discriminator == 'SUPERVISED_FINE_TUNING':
148
+ if getv(from_object, ['validation_dataset']) is not None:
149
+ setv(
150
+ parent_object,
151
+ ['supervisedTuningSpec'],
152
+ _TuningValidationDataset_to_vertex(
153
+ getv(from_object, ['validation_dataset']), to_object, root_object
154
+ ),
155
+ )
156
+
157
+ elif discriminator == 'PREFERENCE_TUNING':
158
+ if getv(from_object, ['validation_dataset']) is not None:
159
+ setv(
160
+ parent_object,
161
+ ['preferenceOptimizationSpec'],
162
+ _TuningValidationDataset_to_vertex(
163
+ getv(from_object, ['validation_dataset']), to_object, root_object
164
+ ),
165
+ )
145
166
 
146
167
  if getv(from_object, ['tuned_model_display_name']) is not None:
147
168
  setv(
@@ -153,33 +174,85 @@ def _CreateTuningJobConfig_to_vertex(
153
174
  if getv(from_object, ['description']) is not None:
154
175
  setv(parent_object, ['description'], getv(from_object, ['description']))
155
176
 
156
- if getv(from_object, ['epoch_count']) is not None:
157
- setv(
158
- parent_object,
159
- ['supervisedTuningSpec', 'hyperParameters', 'epochCount'],
160
- getv(from_object, ['epoch_count']),
161
- )
177
+ discriminator = getv(root_object, ['config', 'method'])
178
+ if discriminator is None:
179
+ discriminator = 'SUPERVISED_FINE_TUNING'
180
+ if discriminator == 'SUPERVISED_FINE_TUNING':
181
+ if getv(from_object, ['epoch_count']) is not None:
182
+ setv(
183
+ parent_object,
184
+ ['supervisedTuningSpec', 'hyperParameters', 'epochCount'],
185
+ getv(from_object, ['epoch_count']),
186
+ )
162
187
 
163
- if getv(from_object, ['learning_rate_multiplier']) is not None:
164
- setv(
165
- parent_object,
166
- ['supervisedTuningSpec', 'hyperParameters', 'learningRateMultiplier'],
167
- getv(from_object, ['learning_rate_multiplier']),
168
- )
188
+ elif discriminator == 'PREFERENCE_TUNING':
189
+ if getv(from_object, ['epoch_count']) is not None:
190
+ setv(
191
+ parent_object,
192
+ ['preferenceOptimizationSpec', 'hyperParameters', 'epochCount'],
193
+ getv(from_object, ['epoch_count']),
194
+ )
169
195
 
170
- if getv(from_object, ['export_last_checkpoint_only']) is not None:
171
- setv(
172
- parent_object,
173
- ['supervisedTuningSpec', 'exportLastCheckpointOnly'],
174
- getv(from_object, ['export_last_checkpoint_only']),
175
- )
196
+ discriminator = getv(root_object, ['config', 'method'])
197
+ if discriminator is None:
198
+ discriminator = 'SUPERVISED_FINE_TUNING'
199
+ if discriminator == 'SUPERVISED_FINE_TUNING':
200
+ if getv(from_object, ['learning_rate_multiplier']) is not None:
201
+ setv(
202
+ parent_object,
203
+ ['supervisedTuningSpec', 'hyperParameters', 'learningRateMultiplier'],
204
+ getv(from_object, ['learning_rate_multiplier']),
205
+ )
176
206
 
177
- if getv(from_object, ['adapter_size']) is not None:
178
- setv(
179
- parent_object,
180
- ['supervisedTuningSpec', 'hyperParameters', 'adapterSize'],
181
- getv(from_object, ['adapter_size']),
182
- )
207
+ elif discriminator == 'PREFERENCE_TUNING':
208
+ if getv(from_object, ['learning_rate_multiplier']) is not None:
209
+ setv(
210
+ parent_object,
211
+ [
212
+ 'preferenceOptimizationSpec',
213
+ 'hyperParameters',
214
+ 'learningRateMultiplier',
215
+ ],
216
+ getv(from_object, ['learning_rate_multiplier']),
217
+ )
218
+
219
+ discriminator = getv(root_object, ['config', 'method'])
220
+ if discriminator is None:
221
+ discriminator = 'SUPERVISED_FINE_TUNING'
222
+ if discriminator == 'SUPERVISED_FINE_TUNING':
223
+ if getv(from_object, ['export_last_checkpoint_only']) is not None:
224
+ setv(
225
+ parent_object,
226
+ ['supervisedTuningSpec', 'exportLastCheckpointOnly'],
227
+ getv(from_object, ['export_last_checkpoint_only']),
228
+ )
229
+
230
+ elif discriminator == 'PREFERENCE_TUNING':
231
+ if getv(from_object, ['export_last_checkpoint_only']) is not None:
232
+ setv(
233
+ parent_object,
234
+ ['preferenceOptimizationSpec', 'exportLastCheckpointOnly'],
235
+ getv(from_object, ['export_last_checkpoint_only']),
236
+ )
237
+
238
+ discriminator = getv(root_object, ['config', 'method'])
239
+ if discriminator is None:
240
+ discriminator = 'SUPERVISED_FINE_TUNING'
241
+ if discriminator == 'SUPERVISED_FINE_TUNING':
242
+ if getv(from_object, ['adapter_size']) is not None:
243
+ setv(
244
+ parent_object,
245
+ ['supervisedTuningSpec', 'hyperParameters', 'adapterSize'],
246
+ getv(from_object, ['adapter_size']),
247
+ )
248
+
249
+ elif discriminator == 'PREFERENCE_TUNING':
250
+ if getv(from_object, ['adapter_size']) is not None:
251
+ setv(
252
+ parent_object,
253
+ ['preferenceOptimizationSpec', 'hyperParameters', 'adapterSize'],
254
+ getv(from_object, ['adapter_size']),
255
+ )
183
256
 
184
257
  if getv(from_object, ['batch_size']) is not None:
185
258
  raise ValueError('batch_size parameter is not supported in Vertex AI.')
@@ -187,24 +260,46 @@ def _CreateTuningJobConfig_to_vertex(
187
260
  if getv(from_object, ['learning_rate']) is not None:
188
261
  raise ValueError('learning_rate parameter is not supported in Vertex AI.')
189
262
 
190
- if getv(from_object, ['evaluation_config']) is not None:
191
- setv(
192
- parent_object,
193
- ['supervisedTuningSpec', 'evaluationConfig'],
194
- _EvaluationConfig_to_vertex(
195
- getv(from_object, ['evaluation_config']), to_object
196
- ),
197
- )
263
+ discriminator = getv(root_object, ['config', 'method'])
264
+ if discriminator is None:
265
+ discriminator = 'SUPERVISED_FINE_TUNING'
266
+ if discriminator == 'SUPERVISED_FINE_TUNING':
267
+ if getv(from_object, ['evaluation_config']) is not None:
268
+ setv(
269
+ parent_object,
270
+ ['supervisedTuningSpec', 'evaluationConfig'],
271
+ _EvaluationConfig_to_vertex(
272
+ getv(from_object, ['evaluation_config']), to_object, root_object
273
+ ),
274
+ )
275
+
276
+ elif discriminator == 'PREFERENCE_TUNING':
277
+ if getv(from_object, ['evaluation_config']) is not None:
278
+ setv(
279
+ parent_object,
280
+ ['preferenceOptimizationSpec', 'evaluationConfig'],
281
+ _EvaluationConfig_to_vertex(
282
+ getv(from_object, ['evaluation_config']), to_object, root_object
283
+ ),
284
+ )
198
285
 
199
286
  if getv(from_object, ['labels']) is not None:
200
287
  setv(parent_object, ['labels'], getv(from_object, ['labels']))
201
288
 
289
+ if getv(from_object, ['beta']) is not None:
290
+ setv(
291
+ parent_object,
292
+ ['preferenceOptimizationSpec', 'hyperParameters', 'beta'],
293
+ getv(from_object, ['beta']),
294
+ )
295
+
202
296
  return to_object
203
297
 
204
298
 
205
299
  def _CreateTuningJobParametersPrivate_to_mldev(
206
300
  from_object: Union[dict[str, Any], object],
207
301
  parent_object: Optional[dict[str, Any]] = None,
302
+ root_object: Optional[Union[dict[str, Any], object]] = None,
208
303
  ) -> dict[str, Any]:
209
304
  to_object: dict[str, Any] = {}
210
305
  if getv(from_object, ['base_model']) is not None:
@@ -214,16 +309,14 @@ def _CreateTuningJobParametersPrivate_to_mldev(
214
309
  setv(to_object, ['preTunedModel'], getv(from_object, ['pre_tuned_model']))
215
310
 
216
311
  if getv(from_object, ['training_dataset']) is not None:
217
- setv(
218
- to_object,
219
- ['tuningTask', 'trainingData'],
220
- _TuningDataset_to_mldev(
221
- getv(from_object, ['training_dataset']), to_object
222
- ),
312
+ _TuningDataset_to_mldev(
313
+ getv(from_object, ['training_dataset']), to_object, root_object
223
314
  )
224
315
 
225
316
  if getv(from_object, ['config']) is not None:
226
- _CreateTuningJobConfig_to_mldev(getv(from_object, ['config']), to_object)
317
+ _CreateTuningJobConfig_to_mldev(
318
+ getv(from_object, ['config']), to_object, root_object
319
+ )
227
320
 
228
321
  return to_object
229
322
 
@@ -231,6 +324,7 @@ def _CreateTuningJobParametersPrivate_to_mldev(
231
324
  def _CreateTuningJobParametersPrivate_to_vertex(
232
325
  from_object: Union[dict[str, Any], object],
233
326
  parent_object: Optional[dict[str, Any]] = None,
327
+ root_object: Optional[Union[dict[str, Any], object]] = None,
234
328
  ) -> dict[str, Any]:
235
329
  to_object: dict[str, Any] = {}
236
330
  if getv(from_object, ['base_model']) is not None:
@@ -240,16 +334,14 @@ def _CreateTuningJobParametersPrivate_to_vertex(
240
334
  setv(to_object, ['preTunedModel'], getv(from_object, ['pre_tuned_model']))
241
335
 
242
336
  if getv(from_object, ['training_dataset']) is not None:
243
- setv(
244
- to_object,
245
- ['supervisedTuningSpec', 'trainingDatasetUri'],
246
- _TuningDataset_to_vertex(
247
- getv(from_object, ['training_dataset']), to_object
248
- ),
337
+ _TuningDataset_to_vertex(
338
+ getv(from_object, ['training_dataset']), to_object, root_object
249
339
  )
250
340
 
251
341
  if getv(from_object, ['config']) is not None:
252
- _CreateTuningJobConfig_to_vertex(getv(from_object, ['config']), to_object)
342
+ _CreateTuningJobConfig_to_vertex(
343
+ getv(from_object, ['config']), to_object, root_object
344
+ )
253
345
 
254
346
  return to_object
255
347
 
@@ -257,6 +349,7 @@ def _CreateTuningJobParametersPrivate_to_vertex(
257
349
  def _EvaluationConfig_from_vertex(
258
350
  from_object: Union[dict[str, Any], object],
259
351
  parent_object: Optional[dict[str, Any]] = None,
352
+ root_object: Optional[Union[dict[str, Any], object]] = None,
260
353
  ) -> dict[str, Any]:
261
354
  to_object: dict[str, Any] = {}
262
355
  if getv(from_object, ['metrics']) is not None:
@@ -276,6 +369,7 @@ def _EvaluationConfig_from_vertex(
276
369
  def _EvaluationConfig_to_vertex(
277
370
  from_object: Union[dict[str, Any], object],
278
371
  parent_object: Optional[dict[str, Any]] = None,
372
+ root_object: Optional[Union[dict[str, Any], object]] = None,
279
373
  ) -> dict[str, Any]:
280
374
  to_object: dict[str, Any] = {}
281
375
  if getv(from_object, ['metrics']) is not None:
@@ -295,6 +389,7 @@ def _EvaluationConfig_to_vertex(
295
389
  def _GetTuningJobParameters_to_mldev(
296
390
  from_object: Union[dict[str, Any], object],
297
391
  parent_object: Optional[dict[str, Any]] = None,
392
+ root_object: Optional[Union[dict[str, Any], object]] = None,
298
393
  ) -> dict[str, Any]:
299
394
  to_object: dict[str, Any] = {}
300
395
  if getv(from_object, ['name']) is not None:
@@ -306,6 +401,7 @@ def _GetTuningJobParameters_to_mldev(
306
401
  def _GetTuningJobParameters_to_vertex(
307
402
  from_object: Union[dict[str, Any], object],
308
403
  parent_object: Optional[dict[str, Any]] = None,
404
+ root_object: Optional[Union[dict[str, Any], object]] = None,
309
405
  ) -> dict[str, Any]:
310
406
  to_object: dict[str, Any] = {}
311
407
  if getv(from_object, ['name']) is not None:
@@ -317,6 +413,7 @@ def _GetTuningJobParameters_to_vertex(
317
413
  def _ListTuningJobsConfig_to_mldev(
318
414
  from_object: Union[dict[str, Any], object],
319
415
  parent_object: Optional[dict[str, Any]] = None,
416
+ root_object: Optional[Union[dict[str, Any], object]] = None,
320
417
  ) -> dict[str, Any]:
321
418
  to_object: dict[str, Any] = {}
322
419
 
@@ -341,6 +438,7 @@ def _ListTuningJobsConfig_to_mldev(
341
438
  def _ListTuningJobsConfig_to_vertex(
342
439
  from_object: Union[dict[str, Any], object],
343
440
  parent_object: Optional[dict[str, Any]] = None,
441
+ root_object: Optional[Union[dict[str, Any], object]] = None,
344
442
  ) -> dict[str, Any]:
345
443
  to_object: dict[str, Any] = {}
346
444
 
@@ -365,10 +463,13 @@ def _ListTuningJobsConfig_to_vertex(
365
463
  def _ListTuningJobsParameters_to_mldev(
366
464
  from_object: Union[dict[str, Any], object],
367
465
  parent_object: Optional[dict[str, Any]] = None,
466
+ root_object: Optional[Union[dict[str, Any], object]] = None,
368
467
  ) -> dict[str, Any]:
369
468
  to_object: dict[str, Any] = {}
370
469
  if getv(from_object, ['config']) is not None:
371
- _ListTuningJobsConfig_to_mldev(getv(from_object, ['config']), to_object)
470
+ _ListTuningJobsConfig_to_mldev(
471
+ getv(from_object, ['config']), to_object, root_object
472
+ )
372
473
 
373
474
  return to_object
374
475
 
@@ -376,10 +477,13 @@ def _ListTuningJobsParameters_to_mldev(
376
477
  def _ListTuningJobsParameters_to_vertex(
377
478
  from_object: Union[dict[str, Any], object],
378
479
  parent_object: Optional[dict[str, Any]] = None,
480
+ root_object: Optional[Union[dict[str, Any], object]] = None,
379
481
  ) -> dict[str, Any]:
380
482
  to_object: dict[str, Any] = {}
381
483
  if getv(from_object, ['config']) is not None:
382
- _ListTuningJobsConfig_to_vertex(getv(from_object, ['config']), to_object)
484
+ _ListTuningJobsConfig_to_vertex(
485
+ getv(from_object, ['config']), to_object, root_object
486
+ )
383
487
 
384
488
  return to_object
385
489
 
@@ -387,6 +491,7 @@ def _ListTuningJobsParameters_to_vertex(
387
491
  def _ListTuningJobsResponse_from_mldev(
388
492
  from_object: Union[dict[str, Any], object],
389
493
  parent_object: Optional[dict[str, Any]] = None,
494
+ root_object: Optional[Union[dict[str, Any], object]] = None,
390
495
  ) -> dict[str, Any]:
391
496
  to_object: dict[str, Any] = {}
392
497
  if getv(from_object, ['sdkHttpResponse']) is not None:
@@ -402,7 +507,7 @@ def _ListTuningJobsResponse_from_mldev(
402
507
  to_object,
403
508
  ['tuning_jobs'],
404
509
  [
405
- _TuningJob_from_mldev(item, to_object)
510
+ _TuningJob_from_mldev(item, to_object, root_object)
406
511
  for item in getv(from_object, ['tunedModels'])
407
512
  ],
408
513
  )
@@ -413,6 +518,7 @@ def _ListTuningJobsResponse_from_mldev(
413
518
  def _ListTuningJobsResponse_from_vertex(
414
519
  from_object: Union[dict[str, Any], object],
415
520
  parent_object: Optional[dict[str, Any]] = None,
521
+ root_object: Optional[Union[dict[str, Any], object]] = None,
416
522
  ) -> dict[str, Any]:
417
523
  to_object: dict[str, Any] = {}
418
524
  if getv(from_object, ['sdkHttpResponse']) is not None:
@@ -428,7 +534,7 @@ def _ListTuningJobsResponse_from_vertex(
428
534
  to_object,
429
535
  ['tuning_jobs'],
430
536
  [
431
- _TuningJob_from_vertex(item, to_object)
537
+ _TuningJob_from_vertex(item, to_object, root_object)
432
538
  for item in getv(from_object, ['tuningJobs'])
433
539
  ],
434
540
  )
@@ -439,6 +545,7 @@ def _ListTuningJobsResponse_from_vertex(
439
545
  def _TunedModel_from_mldev(
440
546
  from_object: Union[dict[str, Any], object],
441
547
  parent_object: Optional[dict[str, Any]] = None,
548
+ root_object: Optional[Union[dict[str, Any], object]] = None,
442
549
  ) -> dict[str, Any]:
443
550
  to_object: dict[str, Any] = {}
444
551
  if getv(from_object, ['name']) is not None:
@@ -453,6 +560,7 @@ def _TunedModel_from_mldev(
453
560
  def _TuningDataset_to_mldev(
454
561
  from_object: Union[dict[str, Any], object],
455
562
  parent_object: Optional[dict[str, Any]] = None,
563
+ root_object: Optional[Union[dict[str, Any], object]] = None,
456
564
  ) -> dict[str, Any]:
457
565
  to_object: dict[str, Any] = {}
458
566
  if getv(from_object, ['gcs_uri']) is not None:
@@ -476,21 +584,47 @@ def _TuningDataset_to_mldev(
476
584
  def _TuningDataset_to_vertex(
477
585
  from_object: Union[dict[str, Any], object],
478
586
  parent_object: Optional[dict[str, Any]] = None,
587
+ root_object: Optional[Union[dict[str, Any], object]] = None,
479
588
  ) -> dict[str, Any]:
480
589
  to_object: dict[str, Any] = {}
481
- if getv(from_object, ['gcs_uri']) is not None:
482
- setv(
483
- parent_object,
484
- ['supervisedTuningSpec', 'trainingDatasetUri'],
485
- getv(from_object, ['gcs_uri']),
486
- )
487
590
 
488
- if getv(from_object, ['vertex_dataset_resource']) is not None:
489
- setv(
490
- parent_object,
491
- ['supervisedTuningSpec', 'trainingDatasetUri'],
492
- getv(from_object, ['vertex_dataset_resource']),
493
- )
591
+ discriminator = getv(root_object, ['config', 'method'])
592
+ if discriminator is None:
593
+ discriminator = 'SUPERVISED_FINE_TUNING'
594
+ if discriminator == 'SUPERVISED_FINE_TUNING':
595
+ if getv(from_object, ['gcs_uri']) is not None:
596
+ setv(
597
+ parent_object,
598
+ ['supervisedTuningSpec', 'trainingDatasetUri'],
599
+ getv(from_object, ['gcs_uri']),
600
+ )
601
+
602
+ elif discriminator == 'PREFERENCE_TUNING':
603
+ if getv(from_object, ['gcs_uri']) is not None:
604
+ setv(
605
+ parent_object,
606
+ ['preferenceOptimizationSpec', 'trainingDatasetUri'],
607
+ getv(from_object, ['gcs_uri']),
608
+ )
609
+
610
+ discriminator = getv(root_object, ['config', 'method'])
611
+ if discriminator is None:
612
+ discriminator = 'SUPERVISED_FINE_TUNING'
613
+ if discriminator == 'SUPERVISED_FINE_TUNING':
614
+ if getv(from_object, ['vertex_dataset_resource']) is not None:
615
+ setv(
616
+ parent_object,
617
+ ['supervisedTuningSpec', 'trainingDatasetUri'],
618
+ getv(from_object, ['vertex_dataset_resource']),
619
+ )
620
+
621
+ elif discriminator == 'PREFERENCE_TUNING':
622
+ if getv(from_object, ['vertex_dataset_resource']) is not None:
623
+ setv(
624
+ parent_object,
625
+ ['preferenceOptimizationSpec', 'trainingDatasetUri'],
626
+ getv(from_object, ['vertex_dataset_resource']),
627
+ )
494
628
 
495
629
  if getv(from_object, ['examples']) is not None:
496
630
  raise ValueError('examples parameter is not supported in Vertex AI.')
@@ -501,6 +635,7 @@ def _TuningDataset_to_vertex(
501
635
  def _TuningJob_from_mldev(
502
636
  from_object: Union[dict[str, Any], object],
503
637
  parent_object: Optional[dict[str, Any]] = None,
638
+ root_object: Optional[Union[dict[str, Any], object]] = None,
504
639
  ) -> dict[str, Any]:
505
640
  to_object: dict[str, Any] = {}
506
641
  if getv(from_object, ['sdkHttpResponse']) is not None:
@@ -548,7 +683,9 @@ def _TuningJob_from_mldev(
548
683
  setv(
549
684
  to_object,
550
685
  ['tuned_model'],
551
- _TunedModel_from_mldev(getv(from_object, ['_self']), to_object),
686
+ _TunedModel_from_mldev(
687
+ getv(from_object, ['_self']), to_object, root_object
688
+ ),
552
689
  )
553
690
 
554
691
  return to_object
@@ -557,6 +694,7 @@ def _TuningJob_from_mldev(
557
694
  def _TuningJob_from_vertex(
558
695
  from_object: Union[dict[str, Any], object],
559
696
  parent_object: Optional[dict[str, Any]] = None,
697
+ root_object: Optional[Union[dict[str, Any], object]] = None,
560
698
  ) -> dict[str, Any]:
561
699
  to_object: dict[str, Any] = {}
562
700
  if getv(from_object, ['sdkHttpResponse']) is not None:
@@ -608,6 +746,13 @@ def _TuningJob_from_vertex(
608
746
  getv(from_object, ['supervisedTuningSpec']),
609
747
  )
610
748
 
749
+ if getv(from_object, ['preferenceOptimizationSpec']) is not None:
750
+ setv(
751
+ to_object,
752
+ ['preference_optimization_spec'],
753
+ getv(from_object, ['preferenceOptimizationSpec']),
754
+ )
755
+
611
756
  if getv(from_object, ['tuningDataStats']) is not None:
612
757
  setv(
613
758
  to_object, ['tuning_data_stats'], getv(from_object, ['tuningDataStats'])
@@ -628,7 +773,7 @@ def _TuningJob_from_vertex(
628
773
  to_object,
629
774
  ['evaluation_config'],
630
775
  _EvaluationConfig_from_vertex(
631
- getv(from_object, ['evaluationConfig']), to_object
776
+ getv(from_object, ['evaluationConfig']), to_object, root_object
632
777
  ),
633
778
  )
634
779
 
@@ -668,6 +813,7 @@ def _TuningJob_from_vertex(
668
813
  def _TuningOperation_from_mldev(
669
814
  from_object: Union[dict[str, Any], object],
670
815
  parent_object: Optional[dict[str, Any]] = None,
816
+ root_object: Optional[Union[dict[str, Any], object]] = None,
671
817
  ) -> dict[str, Any]:
672
818
  to_object: dict[str, Any] = {}
673
819
  if getv(from_object, ['sdkHttpResponse']) is not None:
@@ -693,6 +839,7 @@ def _TuningOperation_from_mldev(
693
839
  def _TuningValidationDataset_to_vertex(
694
840
  from_object: Union[dict[str, Any], object],
695
841
  parent_object: Optional[dict[str, Any]] = None,
842
+ root_object: Optional[Union[dict[str, Any], object]] = None,
696
843
  ) -> dict[str, Any]:
697
844
  to_object: dict[str, Any] = {}
698
845
  if getv(from_object, ['gcs_uri']) is not None:
@@ -700,8 +847,8 @@ def _TuningValidationDataset_to_vertex(
700
847
 
701
848
  if getv(from_object, ['vertex_dataset_resource']) is not None:
702
849
  setv(
703
- parent_object,
704
- ['supervisedTuningSpec', 'trainingDatasetUri'],
850
+ to_object,
851
+ ['validationDatasetUri'],
705
852
  getv(from_object, ['vertex_dataset_resource']),
706
853
  )
707
854
 
@@ -733,14 +880,18 @@ class Tunings(_api_module.BaseModule):
733
880
  request_url_dict: Optional[dict[str, str]]
734
881
 
735
882
  if self._api_client.vertexai:
736
- request_dict = _GetTuningJobParameters_to_vertex(parameter_model)
883
+ request_dict = _GetTuningJobParameters_to_vertex(
884
+ parameter_model, None, parameter_model
885
+ )
737
886
  request_url_dict = request_dict.get('_url')
738
887
  if request_url_dict:
739
888
  path = '{name}'.format_map(request_url_dict)
740
889
  else:
741
890
  path = '{name}'
742
891
  else:
743
- request_dict = _GetTuningJobParameters_to_mldev(parameter_model)
892
+ request_dict = _GetTuningJobParameters_to_mldev(
893
+ parameter_model, None, parameter_model
894
+ )
744
895
  request_url_dict = request_dict.get('_url')
745
896
  if request_url_dict:
746
897
  path = '{name}'.format_map(request_url_dict)
@@ -800,14 +951,18 @@ class Tunings(_api_module.BaseModule):
800
951
  request_url_dict: Optional[dict[str, str]]
801
952
 
802
953
  if self._api_client.vertexai:
803
- request_dict = _ListTuningJobsParameters_to_vertex(parameter_model)
954
+ request_dict = _ListTuningJobsParameters_to_vertex(
955
+ parameter_model, None, parameter_model
956
+ )
804
957
  request_url_dict = request_dict.get('_url')
805
958
  if request_url_dict:
806
959
  path = 'tuningJobs'.format_map(request_url_dict)
807
960
  else:
808
961
  path = 'tuningJobs'
809
962
  else:
810
- request_dict = _ListTuningJobsParameters_to_mldev(parameter_model)
963
+ request_dict = _ListTuningJobsParameters_to_mldev(
964
+ parameter_model, None, parameter_model
965
+ )
811
966
  request_url_dict = request_dict.get('_url')
812
967
  if request_url_dict:
813
968
  path = 'tunedModels'.format_map(request_url_dict)
@@ -868,14 +1023,18 @@ class Tunings(_api_module.BaseModule):
868
1023
  request_url_dict: Optional[dict[str, str]]
869
1024
 
870
1025
  if self._api_client.vertexai:
871
- request_dict = _CancelTuningJobParameters_to_vertex(parameter_model)
1026
+ request_dict = _CancelTuningJobParameters_to_vertex(
1027
+ parameter_model, None, parameter_model
1028
+ )
872
1029
  request_url_dict = request_dict.get('_url')
873
1030
  if request_url_dict:
874
1031
  path = '{name}:cancel'.format_map(request_url_dict)
875
1032
  else:
876
1033
  path = '{name}:cancel'
877
1034
  else:
878
- request_dict = _CancelTuningJobParameters_to_mldev(parameter_model)
1035
+ request_dict = _CancelTuningJobParameters_to_mldev(
1036
+ parameter_model, None, parameter_model
1037
+ )
879
1038
  request_url_dict = request_dict.get('_url')
880
1039
  if request_url_dict:
881
1040
  path = '{name}:cancel'.format_map(request_url_dict)
@@ -909,7 +1068,7 @@ class Tunings(_api_module.BaseModule):
909
1068
  training_dataset: types.TuningDatasetOrDict,
910
1069
  config: Optional[types.CreateTuningJobConfigOrDict] = None,
911
1070
  ) -> types.TuningJob:
912
- """Creates a supervised fine-tuning job and returns the TuningJob object.
1071
+ """Creates a tuning job and returns the TuningJob object.
913
1072
 
914
1073
  Args:
915
1074
  base_model: The name of the model to tune.
@@ -932,7 +1091,7 @@ class Tunings(_api_module.BaseModule):
932
1091
  raise ValueError('This method is only supported in the Vertex AI client.')
933
1092
  else:
934
1093
  request_dict = _CreateTuningJobParametersPrivate_to_vertex(
935
- parameter_model
1094
+ parameter_model, None, parameter_model
936
1095
  )
937
1096
  request_url_dict = request_dict.get('_url')
938
1097
  if request_url_dict:
@@ -982,7 +1141,7 @@ class Tunings(_api_module.BaseModule):
982
1141
  training_dataset: types.TuningDatasetOrDict,
983
1142
  config: Optional[types.CreateTuningJobConfigOrDict] = None,
984
1143
  ) -> types.TuningOperation:
985
- """Creates a supervised fine-tuning job and returns the TuningJob object.
1144
+ """Creates a tuning job and returns the TuningJob object.
986
1145
 
987
1146
  Args:
988
1147
  base_model: The name of the model to tune.
@@ -1006,7 +1165,9 @@ class Tunings(_api_module.BaseModule):
1006
1165
  'This method is only supported in the Gemini Developer client.'
1007
1166
  )
1008
1167
  else:
1009
- request_dict = _CreateTuningJobParametersPrivate_to_mldev(parameter_model)
1168
+ request_dict = _CreateTuningJobParametersPrivate_to_mldev(
1169
+ parameter_model, None, parameter_model
1170
+ )
1010
1171
  request_url_dict = request_dict.get('_url')
1011
1172
  if request_url_dict:
1012
1173
  path = 'tunedModels'.format_map(request_url_dict)
@@ -1184,14 +1345,18 @@ class AsyncTunings(_api_module.BaseModule):
1184
1345
  request_url_dict: Optional[dict[str, str]]
1185
1346
 
1186
1347
  if self._api_client.vertexai:
1187
- request_dict = _GetTuningJobParameters_to_vertex(parameter_model)
1348
+ request_dict = _GetTuningJobParameters_to_vertex(
1349
+ parameter_model, None, parameter_model
1350
+ )
1188
1351
  request_url_dict = request_dict.get('_url')
1189
1352
  if request_url_dict:
1190
1353
  path = '{name}'.format_map(request_url_dict)
1191
1354
  else:
1192
1355
  path = '{name}'
1193
1356
  else:
1194
- request_dict = _GetTuningJobParameters_to_mldev(parameter_model)
1357
+ request_dict = _GetTuningJobParameters_to_mldev(
1358
+ parameter_model, None, parameter_model
1359
+ )
1195
1360
  request_url_dict = request_dict.get('_url')
1196
1361
  if request_url_dict:
1197
1362
  path = '{name}'.format_map(request_url_dict)
@@ -1253,14 +1418,18 @@ class AsyncTunings(_api_module.BaseModule):
1253
1418
  request_url_dict: Optional[dict[str, str]]
1254
1419
 
1255
1420
  if self._api_client.vertexai:
1256
- request_dict = _ListTuningJobsParameters_to_vertex(parameter_model)
1421
+ request_dict = _ListTuningJobsParameters_to_vertex(
1422
+ parameter_model, None, parameter_model
1423
+ )
1257
1424
  request_url_dict = request_dict.get('_url')
1258
1425
  if request_url_dict:
1259
1426
  path = 'tuningJobs'.format_map(request_url_dict)
1260
1427
  else:
1261
1428
  path = 'tuningJobs'
1262
1429
  else:
1263
- request_dict = _ListTuningJobsParameters_to_mldev(parameter_model)
1430
+ request_dict = _ListTuningJobsParameters_to_mldev(
1431
+ parameter_model, None, parameter_model
1432
+ )
1264
1433
  request_url_dict = request_dict.get('_url')
1265
1434
  if request_url_dict:
1266
1435
  path = 'tunedModels'.format_map(request_url_dict)
@@ -1323,14 +1492,18 @@ class AsyncTunings(_api_module.BaseModule):
1323
1492
  request_url_dict: Optional[dict[str, str]]
1324
1493
 
1325
1494
  if self._api_client.vertexai:
1326
- request_dict = _CancelTuningJobParameters_to_vertex(parameter_model)
1495
+ request_dict = _CancelTuningJobParameters_to_vertex(
1496
+ parameter_model, None, parameter_model
1497
+ )
1327
1498
  request_url_dict = request_dict.get('_url')
1328
1499
  if request_url_dict:
1329
1500
  path = '{name}:cancel'.format_map(request_url_dict)
1330
1501
  else:
1331
1502
  path = '{name}:cancel'
1332
1503
  else:
1333
- request_dict = _CancelTuningJobParameters_to_mldev(parameter_model)
1504
+ request_dict = _CancelTuningJobParameters_to_mldev(
1505
+ parameter_model, None, parameter_model
1506
+ )
1334
1507
  request_url_dict = request_dict.get('_url')
1335
1508
  if request_url_dict:
1336
1509
  path = '{name}:cancel'.format_map(request_url_dict)
@@ -1364,7 +1537,7 @@ class AsyncTunings(_api_module.BaseModule):
1364
1537
  training_dataset: types.TuningDatasetOrDict,
1365
1538
  config: Optional[types.CreateTuningJobConfigOrDict] = None,
1366
1539
  ) -> types.TuningJob:
1367
- """Creates a supervised fine-tuning job and returns the TuningJob object.
1540
+ """Creates a tuning job and returns the TuningJob object.
1368
1541
 
1369
1542
  Args:
1370
1543
  base_model: The name of the model to tune.
@@ -1387,7 +1560,7 @@ class AsyncTunings(_api_module.BaseModule):
1387
1560
  raise ValueError('This method is only supported in the Vertex AI client.')
1388
1561
  else:
1389
1562
  request_dict = _CreateTuningJobParametersPrivate_to_vertex(
1390
- parameter_model
1563
+ parameter_model, None, parameter_model
1391
1564
  )
1392
1565
  request_url_dict = request_dict.get('_url')
1393
1566
  if request_url_dict:
@@ -1437,7 +1610,7 @@ class AsyncTunings(_api_module.BaseModule):
1437
1610
  training_dataset: types.TuningDatasetOrDict,
1438
1611
  config: Optional[types.CreateTuningJobConfigOrDict] = None,
1439
1612
  ) -> types.TuningOperation:
1440
- """Creates a supervised fine-tuning job and returns the TuningJob object.
1613
+ """Creates a tuning job and returns the TuningJob object.
1441
1614
 
1442
1615
  Args:
1443
1616
  base_model: The name of the model to tune.
@@ -1461,7 +1634,9 @@ class AsyncTunings(_api_module.BaseModule):
1461
1634
  'This method is only supported in the Gemini Developer client.'
1462
1635
  )
1463
1636
  else:
1464
- request_dict = _CreateTuningJobParametersPrivate_to_mldev(parameter_model)
1637
+ request_dict = _CreateTuningJobParametersPrivate_to_mldev(
1638
+ parameter_model, None, parameter_model
1639
+ )
1465
1640
  request_url_dict = request_dict.get('_url')
1466
1641
  if request_url_dict:
1467
1642
  path = 'tunedModels'.format_map(request_url_dict)