15
15
from ads .aqua import ODSC_MODEL_COMPARTMENT_OCID , logger
16
16
from ads .aqua .app import AquaApp
17
17
from ads .aqua .common .enums import (
18
+ CustomInferenceContainerTypeFamily ,
18
19
FineTuningContainerTypeFamily ,
19
20
InferenceContainerTypeFamily ,
20
21
Tags ,
@@ -376,8 +377,10 @@ def delete_model(self, model_id):
376
377
f"Failed to delete model:{ model_id } . Only registered models or finetuned model can be deleted."
377
378
)
378
379
379
- @telemetry (entry_point = "plugin=model&action=delete" , name = "aqua" )
380
- def edit_registered_model (self , id , inference_container , enable_finetuning , task ):
380
+ @telemetry (entry_point = "plugin=model&action=edit" , name = "aqua" )
381
+ def edit_registered_model (
382
+ self , id , inference_container , inference_container_uri , enable_finetuning , task
383
+ ):
381
384
"""Edits the default config of unverified registered model.
382
385
383
386
Parameters
@@ -386,6 +389,8 @@ def edit_registered_model(self, id, inference_container, enable_finetuning, task
386
389
The model OCID.
387
390
inference_container: str.
388
391
The inference container family name
392
+ inference_container_uri: str
393
+ The inference container uri for embedding models
389
394
enable_finetuning: str
390
395
Flag to enable or disable finetuning over the model. Defaults to None
391
396
task:
@@ -401,19 +406,44 @@ def edit_registered_model(self, id, inference_container, enable_finetuning, task
401
406
if ds_model .freeform_tags .get (Tags .BASE_MODEL_CUSTOM , None ):
402
407
if ds_model .freeform_tags .get (Tags .AQUA_SERVICE_MODEL_TAG , None ):
403
408
raise AquaRuntimeError (
404
- f"Failed to edit model: { id } . Only registered unverified models can be edited."
409
+ " Only registered unverified models can be edited."
405
410
)
406
411
else :
407
412
custom_metadata_list = ds_model .custom_metadata_list
408
413
freeform_tags = ds_model .freeform_tags
409
414
if inference_container :
410
- custom_metadata_list .add (
411
- key = ModelCustomMetadataFields .DEPLOYMENT_CONTAINER ,
412
- value = inference_container ,
413
- category = MetadataCustomCategory .OTHER ,
414
- description = "Deployment container mapping for SMC" ,
415
- replace = True ,
416
- )
415
+ if (
416
+ inference_container in CustomInferenceContainerTypeFamily
417
+ and inference_container_uri is None
418
+ ):
419
+ raise AquaRuntimeError (
420
+ "Inference container URI must be provided."
421
+ )
422
+ else :
423
+ custom_metadata_list .add (
424
+ key = ModelCustomMetadataFields .DEPLOYMENT_CONTAINER ,
425
+ value = inference_container ,
426
+ category = MetadataCustomCategory .OTHER ,
427
+ description = "Deployment container mapping for SMC" ,
428
+ replace = True ,
429
+ )
430
+ if inference_container_uri :
431
+ if (
432
+ inference_container in CustomInferenceContainerTypeFamily
433
+ or inference_container is None
434
+ ):
435
+ custom_metadata_list .add (
436
+ key = ModelCustomMetadataFields .DEPLOYMENT_CONTAINER_URI ,
437
+ value = inference_container_uri ,
438
+ category = MetadataCustomCategory .OTHER ,
439
+ description = f"Inference container URI for { ds_model .display_name } " ,
440
+ replace = True ,
441
+ )
442
+ else :
443
+ raise AquaRuntimeError (
444
+ f"Inference container URI can be edited only with container values: { CustomInferenceContainerTypeFamily .values ()} "
445
+ )
446
+
417
447
if enable_finetuning is not None :
418
448
if enable_finetuning .lower () == "true" :
419
449
custom_metadata_list .add (
@@ -448,9 +478,7 @@ def edit_registered_model(self, id, inference_container, enable_finetuning, task
448
478
)
449
479
AquaApp ().update_model (id , update_model_details )
450
480
else :
451
- raise AquaRuntimeError (
452
- f"Failed to edit model:{ id } . Only registered unverified models can be edited."
453
- )
481
+ raise AquaRuntimeError ("Only registered unverified models can be edited." )
454
482
455
483
def _fetch_metric_from_metadata (
456
484
self ,
@@ -869,8 +897,7 @@ def _create_model_catalog_entry(
869
897
# only add cmd vars if inference container is not an SMC
870
898
if (
871
899
inference_container not in smc_container_set
872
- and inference_container
873
- == InferenceContainerTypeFamily .AQUA_TEI_CONTAINER_FAMILY
900
+ and inference_container in CustomInferenceContainerTypeFamily .values ()
874
901
):
875
902
cmd_vars = generate_tei_cmd_var (os_path )
876
903
metadata .add (
0 commit comments