From e86c8702125f9861795e3f0a6ef28f66827bad94 Mon Sep 17 00:00:00 2001 From: Agrim Khanna Date: Wed, 30 Jul 2025 16:09:22 +0530 Subject: [PATCH 1/8] added support for custom model name for single MD --- ads/aqua/model/model.py | 4 ++++ ads/aqua/modeldeployment/deployment.py | 3 ++- ads/aqua/modeldeployment/entities.py | 3 +++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/ads/aqua/model/model.py b/ads/aqua/model/model.py index 2b5d7108f..d5dffb978 100644 --- a/ads/aqua/model/model.py +++ b/ads/aqua/model/model.py @@ -147,6 +147,7 @@ class AquaModelApp(AquaApp): def create( self, model_id: Union[str, AquaMultiModelRef], + display_name: Optional[str] = None, project_id: Optional[str] = None, compartment_id: Optional[str] = None, freeform_tags: Optional[Dict] = None, @@ -204,6 +205,9 @@ def create( **(defined_tags or {}), } + if display_name: + service_model.display_name = display_name + custom_model = ( DataScienceModel() .with_compartment_id(target_compartment) diff --git a/ads/aqua/modeldeployment/deployment.py b/ads/aqua/modeldeployment/deployment.py index 3e93f38ee..c11425f17 100644 --- a/ads/aqua/modeldeployment/deployment.py +++ b/ads/aqua/modeldeployment/deployment.py @@ -214,6 +214,7 @@ def create( ) aqua_model = model_app.create( model_id=create_deployment_details.model_id, + display_name=create_deployment_details.model_name, compartment_id=compartment_id, project_id=project_id, freeform_tags=freeform_tags, @@ -446,6 +447,7 @@ def _create( cmd_var_string = aqua_model.custom_metadata_list.get( AQUA_DEPLOYMENT_CONTAINER_CMD_VAR_METADATA_NAME ).value + default_cmd_var = shlex.split(cmd_var_string) if default_cmd_var: cmd_var = validate_cmd_var(default_cmd_var, cmd_var) @@ -538,7 +540,6 @@ def _create( ) deployment_params = get_combined_params(config_params, user_params) - params = f"{params} {deployment_params}".strip() if params: env_var.update({"PARAMS": params}) diff --git a/ads/aqua/modeldeployment/entities.py b/ads/aqua/modeldeployment/entities.py index ebce26dc8..5b31f1611 100644 --- a/ads/aqua/modeldeployment/entities.py +++ b/ads/aqua/modeldeployment/entities.py @@ -233,6 +233,9 @@ class CreateModelDeploymentDetails(BaseModel): None, description="The description of the deployment." ) model_id: Optional[str] = Field(None, description="The model OCID to deploy.") + model_name: Optional[str] = Field( + None, description="The model name specified by user to deploy." + ) models: Optional[List[AquaMultiModelRef]] = Field( None, description="List of models for multimodel deployment." ) From 2b7120de7e19f4dad3b325cbdbed5f15ec3a6021 Mon Sep 17 00:00:00 2001 From: Agrim Khanna Date: Fri, 1 Aug 2025 15:41:48 +0530 Subject: [PATCH 2/8] PR review comments --- ads/aqua/model/model.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ads/aqua/model/model.py b/ads/aqua/model/model.py index d5dffb978..c848b2103 100644 --- a/ads/aqua/model/model.py +++ b/ads/aqua/model/model.py @@ -147,11 +147,11 @@ class AquaModelApp(AquaApp): def create( self, model_id: Union[str, AquaMultiModelRef], - display_name: Optional[str] = None, project_id: Optional[str] = None, compartment_id: Optional[str] = None, freeform_tags: Optional[Dict] = None, defined_tags: Optional[Dict] = None, + display_name: Optional[str] = None, **kwargs, ) -> DataScienceModel: """ @@ -170,6 +170,8 @@ def create( Freeform tags for the model. defined_tags : Optional[Dict] Defined tags for the model. + display_name: ptional[str] + The display name of the custom model. Returns ------- From b902ae5ef0ef3c1aae80bb12b636fb8f66486ce7 Mon Sep 17 00:00:00 2001 From: Agrim Khanna Date: Tue, 2 Sep 2025 23:45:36 +0530 Subject: [PATCH 3/8] added container runtime param instead of changing MC display name --- ads/aqua/model/model.py | 7 -- ads/aqua/modeldeployment/deployment.py | 2 +- .../deployment/model_deployment_runtime.py | 65 ++++++++++++++++++- 3 files changed, 65 insertions(+), 9 deletions(-) diff --git a/ads/aqua/model/model.py b/ads/aqua/model/model.py index c848b2103..e105f39ad 100644 --- a/ads/aqua/model/model.py +++ b/ads/aqua/model/model.py @@ -151,7 +151,6 @@ def create( compartment_id: Optional[str] = None, freeform_tags: Optional[Dict] = None, defined_tags: Optional[Dict] = None, - display_name: Optional[str] = None, **kwargs, ) -> DataScienceModel: """ @@ -170,8 +169,6 @@ def create( Freeform tags for the model. defined_tags : Optional[Dict] Defined tags for the model. - display_name: ptional[str] - The display name of the custom model. Returns ------- @@ -207,15 +204,11 @@ def create( **(defined_tags or {}), } - if display_name: - service_model.display_name = display_name - custom_model = ( DataScienceModel() .with_compartment_id(target_compartment) .with_project_id(target_project) .with_model_file_description(json_dict=service_model.model_file_description) - .with_display_name(service_model.display_name) .with_description(service_model.description) .with_freeform_tags(**combined_freeform_tags) .with_defined_tags(**combined_defined_tags) diff --git a/ads/aqua/modeldeployment/deployment.py b/ads/aqua/modeldeployment/deployment.py index 4ed4fd601..bda8beac7 100644 --- a/ads/aqua/modeldeployment/deployment.py +++ b/ads/aqua/modeldeployment/deployment.py @@ -227,7 +227,6 @@ def create( ) aqua_model = model_app.create( model_id=create_deployment_details.model_id, - display_name=create_deployment_details.model_name, compartment_id=compartment_id, project_id=project_id, freeform_tags=freeform_tags, @@ -758,6 +757,7 @@ def _create_deployment( .with_image(container_image_uri) .with_server_port(server_port) .with_health_check_port(health_check_port) + .with_custom_model_name(create_deployment_details.model_name) .with_env(env_var) .with_deployment_mode(ModelDeploymentMode.HTTPS) .with_model_uri(aqua_model_id) diff --git a/ads/model/deployment/model_deployment_runtime.py b/ads/model/deployment/model_deployment_runtime.py index 26e31f9cd..3f8736c18 100644 --- a/ads/model/deployment/model_deployment_runtime.py +++ b/ads/model/deployment/model_deployment_runtime.py @@ -1,11 +1,11 @@ #!/usr/bin/env python -# -*- coding: utf-8; -*- # Copyright (c) 2023 Oracle and/or its affiliates. # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/from typing import Dict from typing import Dict, List + from ads.jobs.builders.base import Builder MODEL_DEPLOYMENT_RUNTIME_KIND = "runtime" @@ -519,6 +519,8 @@ class ModelDeploymentContainerRuntime(ModelDeploymentRuntime): The server port of model deployment container runtime. health_check_port: int The health check port of model deployment container runtime. + custom_model_name : str + The custom model name for single model deployment, to be used in predict calls Methods ------- @@ -534,6 +536,8 @@ class ModelDeploymentContainerRuntime(ModelDeploymentRuntime): Sets the server port of model deployment container runtime with_health_check_port(health_check_port) Sets the health check port of model deployment container runtime + with_custom_model_name(custom_model_name) + Sets a custom model name for single model deployment, to be used in predict calls Examples -------- @@ -560,6 +564,7 @@ class ModelDeploymentContainerRuntime(ModelDeploymentRuntime): CONST_SERVER_PORT = "serverPort" CONST_HEALTH_CHECK_PORT = "healthCheckPort" CONST_INFERENCE_SERVER = "inferenceServer" + CONST_CUSTOM_MODEL_NAME = "customModelName" attribute_map = { **ModelDeploymentRuntime.attribute_map, @@ -570,6 +575,7 @@ class ModelDeploymentContainerRuntime(ModelDeploymentRuntime): CONST_SERVER_PORT: "server_port", CONST_HEALTH_CHECK_PORT: "health_check_port", CONST_INFERENCE_SERVER: "inference_server", + CONST_CUSTOM_MODEL_NAME: "custom_model_name", } payload_attribute_map = { @@ -580,6 +586,7 @@ class ModelDeploymentContainerRuntime(ModelDeploymentRuntime): CONST_ENTRYPOINT: f"{ModelDeploymentRuntime.ENVIRONMENT_CONFIG_DETAILS_PATH}.entrypoint", CONST_SERVER_PORT: f"{ModelDeploymentRuntime.ENVIRONMENT_CONFIG_DETAILS_PATH}.server_port", CONST_HEALTH_CHECK_PORT: f"{ModelDeploymentRuntime.ENVIRONMENT_CONFIG_DETAILS_PATH}.health_check_port", + CONST_CUSTOM_MODEL_NAME: f"{ModelDeploymentRuntime.ENVIRONMENT_CONFIG_DETAILS_PATH}.custom_model_name", } @property @@ -820,6 +827,62 @@ def with_inference_server( """ return self.set_spec(self.CONST_INFERENCE_SERVER, inference_server.lower()) + @property + def custom_model_name(self) -> str: + """Returns the custom model name. + + Returns + ------- + str + The custom model name. + """ + return self.get_spec(self.CONST_CUSTOM_MODEL_NAME, None) + + def with_custom_model_name( + self, custom_model_name: str = "odsc-llm" + ) -> "ModelDeploymentContainerRuntime": + """Sets the custom model name. Defaults to odsc-llm if you do not set the custom model name. + + Parameters + ---------- + custom_model_name: str + Set the custom model name to be used for inferencing. + + Returns + ------- + ModelDeploymentContainerRuntime + The ModelDeploymentContainerRuntime instance (self). + + Example + ------- + >>> from ads.model.deployment import ModelDeployment, ModelDeploymentContainerRuntime, ModelDeploymentInfrastructure + >>> import ads + >>> ads.set_auth("resource_principal") + >>> infrastructure = ModelDeploymentInfrastructure()\ + ... .with_project_id()\ + ... .with_compartment_id()\ + ... .with_shape_name("VM.Standard.E4.Flex")\ + ... .with_replica(2)\ + ... .with_bandwidth_mbps(10)\ + ... .with_access_log(log_group_id=, log_id=)\ + ... .with_predict_log(log_group_id=, log_id=) + + >>> runtime = ModelDeploymentContainerRuntime()\ + ... .with_image()\ + ... .with_server_port()\ + ... .with_health_check_port()\ + ... .with_model_uri()\ + ... .with_env({"key":"value", "key2":"value2"})\ + ... .with_inference_server("triton") + >>> deployment = ModelDeployment()\ + ... .with_display_name("Triton Example")\ + ... .with_infrastructure(infrastructure)\ + ... .with_runtime(runtime) + .with_custom_model_name("myModel") + >>> deployment.deploy() + """ + return self.set_spec(self.CONST_CUSTOM_MODEL_NAME, custom_model_name) + def init(self, **kwargs) -> "ModelDeploymentContainerRuntime": """Initializes a starter specification for the runtime. From 132802b37cf57ba1c50344b449f80eec76686681 Mon Sep 17 00:00:00 2001 From: Agrim Khanna Date: Wed, 3 Sep 2025 21:33:52 +0530 Subject: [PATCH 4/8] added custom model name in user params --- ads/aqua/model/model.py | 1 + ads/aqua/modeldeployment/deployment.py | 16 ++++- .../deployment/model_deployment_runtime.py | 63 ------------------- 3 files changed, 15 insertions(+), 65 deletions(-) diff --git a/ads/aqua/model/model.py b/ads/aqua/model/model.py index e105f39ad..2b5d7108f 100644 --- a/ads/aqua/model/model.py +++ b/ads/aqua/model/model.py @@ -209,6 +209,7 @@ def create( .with_compartment_id(target_compartment) .with_project_id(target_project) .with_model_file_description(json_dict=service_model.model_file_description) + .with_display_name(service_model.display_name) .with_description(service_model.description) .with_freeform_tags(**combined_freeform_tags) .with_defined_tags(**combined_defined_tags) diff --git a/ads/aqua/modeldeployment/deployment.py b/ads/aqua/modeldeployment/deployment.py index bda8beac7..ac4ecd72e 100644 --- a/ads/aqua/modeldeployment/deployment.py +++ b/ads/aqua/modeldeployment/deployment.py @@ -530,6 +530,15 @@ def _create( # validate user provided params user_params = env_var.get("PARAMS", UNKNOWN) + + if ( + create_deployment_details.model_name + and "--served-model-name" not in user_params + ): + user_params = f"{user_params} --served-model-name {create_deployment_details.model_name}" + elif "--served-model-name" not in user_params: + user_params = f"{user_params} --served-model-name odsc-llm" + if user_params: # todo: remove this check in the future version, logic to be moved to container_index if ( @@ -546,6 +555,7 @@ def _create( restricted_params = find_restricted_params( params, user_params, container_type_key ) + if restricted_params: raise AquaValueError( f"Parameters {restricted_params} are set by Aqua " @@ -553,7 +563,9 @@ def _create( ) deployment_params = get_combined_params(config_params, user_params) + params = f"{params} {deployment_params}".strip() + if params: env_var.update({"PARAMS": params}) env_vars = container_spec.env_vars if container_spec else [] @@ -614,7 +626,7 @@ def _create_multi( """ model_name_list = [] env_var = {**(create_deployment_details.env_var or UNKNOWN_DICT)} - + logger.info(f"**** Env vars used for deploying : {env_var}.") container_type_key = self._get_container_type_key( model=aqua_model, container_family=create_deployment_details.container_family, @@ -623,6 +635,7 @@ def _create_multi( container_spec = container_config.spec if container_config else UNKNOWN container_params = container_spec.cli_param if container_spec else UNKNOWN + logger.info(f"Env vars used for deploying {aqua_model.id} : {env_var}.") multi_model_config = ModelGroupConfig.from_create_model_deployment_details( create_deployment_details, @@ -757,7 +770,6 @@ def _create_deployment( .with_image(container_image_uri) .with_server_port(server_port) .with_health_check_port(health_check_port) - .with_custom_model_name(create_deployment_details.model_name) .with_env(env_var) .with_deployment_mode(ModelDeploymentMode.HTTPS) .with_model_uri(aqua_model_id) diff --git a/ads/model/deployment/model_deployment_runtime.py b/ads/model/deployment/model_deployment_runtime.py index 3f8736c18..0e2be6d35 100644 --- a/ads/model/deployment/model_deployment_runtime.py +++ b/ads/model/deployment/model_deployment_runtime.py @@ -519,8 +519,6 @@ class ModelDeploymentContainerRuntime(ModelDeploymentRuntime): The server port of model deployment container runtime. health_check_port: int The health check port of model deployment container runtime. - custom_model_name : str - The custom model name for single model deployment, to be used in predict calls Methods ------- @@ -536,8 +534,6 @@ class ModelDeploymentContainerRuntime(ModelDeploymentRuntime): Sets the server port of model deployment container runtime with_health_check_port(health_check_port) Sets the health check port of model deployment container runtime - with_custom_model_name(custom_model_name) - Sets a custom model name for single model deployment, to be used in predict calls Examples -------- @@ -564,7 +560,6 @@ class ModelDeploymentContainerRuntime(ModelDeploymentRuntime): CONST_SERVER_PORT = "serverPort" CONST_HEALTH_CHECK_PORT = "healthCheckPort" CONST_INFERENCE_SERVER = "inferenceServer" - CONST_CUSTOM_MODEL_NAME = "customModelName" attribute_map = { **ModelDeploymentRuntime.attribute_map, @@ -575,7 +570,6 @@ class ModelDeploymentContainerRuntime(ModelDeploymentRuntime): CONST_SERVER_PORT: "server_port", CONST_HEALTH_CHECK_PORT: "health_check_port", CONST_INFERENCE_SERVER: "inference_server", - CONST_CUSTOM_MODEL_NAME: "custom_model_name", } payload_attribute_map = { @@ -586,7 +580,6 @@ class ModelDeploymentContainerRuntime(ModelDeploymentRuntime): CONST_ENTRYPOINT: f"{ModelDeploymentRuntime.ENVIRONMENT_CONFIG_DETAILS_PATH}.entrypoint", CONST_SERVER_PORT: f"{ModelDeploymentRuntime.ENVIRONMENT_CONFIG_DETAILS_PATH}.server_port", CONST_HEALTH_CHECK_PORT: f"{ModelDeploymentRuntime.ENVIRONMENT_CONFIG_DETAILS_PATH}.health_check_port", - CONST_CUSTOM_MODEL_NAME: f"{ModelDeploymentRuntime.ENVIRONMENT_CONFIG_DETAILS_PATH}.custom_model_name", } @property @@ -827,62 +820,6 @@ def with_inference_server( """ return self.set_spec(self.CONST_INFERENCE_SERVER, inference_server.lower()) - @property - def custom_model_name(self) -> str: - """Returns the custom model name. - - Returns - ------- - str - The custom model name. - """ - return self.get_spec(self.CONST_CUSTOM_MODEL_NAME, None) - - def with_custom_model_name( - self, custom_model_name: str = "odsc-llm" - ) -> "ModelDeploymentContainerRuntime": - """Sets the custom model name. Defaults to odsc-llm if you do not set the custom model name. - - Parameters - ---------- - custom_model_name: str - Set the custom model name to be used for inferencing. - - Returns - ------- - ModelDeploymentContainerRuntime - The ModelDeploymentContainerRuntime instance (self). - - Example - ------- - >>> from ads.model.deployment import ModelDeployment, ModelDeploymentContainerRuntime, ModelDeploymentInfrastructure - >>> import ads - >>> ads.set_auth("resource_principal") - >>> infrastructure = ModelDeploymentInfrastructure()\ - ... .with_project_id()\ - ... .with_compartment_id()\ - ... .with_shape_name("VM.Standard.E4.Flex")\ - ... .with_replica(2)\ - ... .with_bandwidth_mbps(10)\ - ... .with_access_log(log_group_id=, log_id=)\ - ... .with_predict_log(log_group_id=, log_id=) - - >>> runtime = ModelDeploymentContainerRuntime()\ - ... .with_image()\ - ... .with_server_port()\ - ... .with_health_check_port()\ - ... .with_model_uri()\ - ... .with_env({"key":"value", "key2":"value2"})\ - ... .with_inference_server("triton") - >>> deployment = ModelDeployment()\ - ... .with_display_name("Triton Example")\ - ... .with_infrastructure(infrastructure)\ - ... .with_runtime(runtime) - .with_custom_model_name("myModel") - >>> deployment.deploy() - """ - return self.set_spec(self.CONST_CUSTOM_MODEL_NAME, custom_model_name) - def init(self, **kwargs) -> "ModelDeploymentContainerRuntime": """Initializes a starter specification for the runtime. From 4ed0220128e0cf70cc41ee00a3b9f340a64665d9 Mon Sep 17 00:00:00 2001 From: Agrim Khanna Date: Wed, 3 Sep 2025 21:38:54 +0530 Subject: [PATCH 5/8] reverting extra white space --- ads/aqua/modeldeployment/deployment.py | 6 +----- ads/model/deployment/model_deployment_runtime.py | 2 +- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/ads/aqua/modeldeployment/deployment.py b/ads/aqua/modeldeployment/deployment.py index ac4ecd72e..dc194529e 100644 --- a/ads/aqua/modeldeployment/deployment.py +++ b/ads/aqua/modeldeployment/deployment.py @@ -460,7 +460,6 @@ def _create( cmd_var_string = aqua_model.custom_metadata_list.get( AQUA_DEPLOYMENT_CONTAINER_CMD_VAR_METADATA_NAME ).value - default_cmd_var = shlex.split(cmd_var_string) if default_cmd_var: cmd_var = validate_cmd_var(default_cmd_var, cmd_var) @@ -555,7 +554,6 @@ def _create( restricted_params = find_restricted_params( params, user_params, container_type_key ) - if restricted_params: raise AquaValueError( f"Parameters {restricted_params} are set by Aqua " @@ -565,7 +563,6 @@ def _create( deployment_params = get_combined_params(config_params, user_params) params = f"{params} {deployment_params}".strip() - if params: env_var.update({"PARAMS": params}) env_vars = container_spec.env_vars if container_spec else [] @@ -626,7 +623,7 @@ def _create_multi( """ model_name_list = [] env_var = {**(create_deployment_details.env_var or UNKNOWN_DICT)} - logger.info(f"**** Env vars used for deploying : {env_var}.") + container_type_key = self._get_container_type_key( model=aqua_model, container_family=create_deployment_details.container_family, @@ -635,7 +632,6 @@ def _create_multi( container_spec = container_config.spec if container_config else UNKNOWN container_params = container_spec.cli_param if container_spec else UNKNOWN - logger.info(f"Env vars used for deploying {aqua_model.id} : {env_var}.") multi_model_config = ModelGroupConfig.from_create_model_deployment_details( create_deployment_details, diff --git a/ads/model/deployment/model_deployment_runtime.py b/ads/model/deployment/model_deployment_runtime.py index 0e2be6d35..26e31f9cd 100644 --- a/ads/model/deployment/model_deployment_runtime.py +++ b/ads/model/deployment/model_deployment_runtime.py @@ -1,11 +1,11 @@ #!/usr/bin/env python +# -*- coding: utf-8; -*- # Copyright (c) 2023 Oracle and/or its affiliates. # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/from typing import Dict from typing import Dict, List - from ads.jobs.builders.base import Builder MODEL_DEPLOYMENT_RUNTIME_KIND = "runtime" From 6804547d78078994a9ed73dcced9cd2f914d5081 Mon Sep 17 00:00:00 2001 From: Agrim Khanna Date: Thu, 4 Sep 2025 16:52:27 +0530 Subject: [PATCH 6/8] added custom model name in final params --- ads/aqua/modeldeployment/deployment.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/ads/aqua/modeldeployment/deployment.py b/ads/aqua/modeldeployment/deployment.py index dc194529e..fd40ed863 100644 --- a/ads/aqua/modeldeployment/deployment.py +++ b/ads/aqua/modeldeployment/deployment.py @@ -530,14 +530,6 @@ def _create( # validate user provided params user_params = env_var.get("PARAMS", UNKNOWN) - if ( - create_deployment_details.model_name - and "--served-model-name" not in user_params - ): - user_params = f"{user_params} --served-model-name {create_deployment_details.model_name}" - elif "--served-model-name" not in user_params: - user_params = f"{user_params} --served-model-name odsc-llm" - if user_params: # todo: remove this check in the future version, logic to be moved to container_index if ( @@ -563,6 +555,13 @@ def _create( deployment_params = get_combined_params(config_params, user_params) params = f"{params} {deployment_params}".strip() + + if create_deployment_details.model_name and "--served-model-name" in params: + params = params.replace("--served-model-name odsc-llm", "") + params = ( + f"{params} --served-model-name {create_deployment_details.model_name}" + ) + if params: env_var.update({"PARAMS": params}) env_vars = container_spec.env_vars if container_spec else [] From ea04433d04bbb3744fb00bfa8cc43419c75aa952 Mon Sep 17 00:00:00 2001 From: Dmitrii Cherkasov Date: Thu, 4 Sep 2025 13:37:13 -0700 Subject: [PATCH 7/8] Enhances the logic --- ads/aqua/modeldeployment/deployment.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/ads/aqua/modeldeployment/deployment.py b/ads/aqua/modeldeployment/deployment.py index fd40ed863..52d7613b6 100644 --- a/ads/aqua/modeldeployment/deployment.py +++ b/ads/aqua/modeldeployment/deployment.py @@ -68,10 +68,7 @@ ModelDeploymentConfigSummary, MultiModelDeploymentConfigLoader, ) -from ads.aqua.modeldeployment.constants import ( - DEFAULT_POLL_INTERVAL, - DEFAULT_WAIT_TIME, -) +from ads.aqua.modeldeployment.constants import DEFAULT_POLL_INTERVAL, DEFAULT_WAIT_TIME from ads.aqua.modeldeployment.entities import ( AquaDeployment, AquaDeploymentDetail, @@ -556,11 +553,16 @@ def _create( params = f"{params} {deployment_params}".strip() - if create_deployment_details.model_name and "--served-model-name" in params: - params = params.replace("--served-model-name odsc-llm", "") - params = ( - f"{params} --served-model-name {create_deployment_details.model_name}" - ) + if create_deployment_details.model_name: + # Replace existing --served-model-name argument if present, otherwise add it + if "--served-model-name" in params: + params = re.sub( + r"--served-model-name\s+\S+", + f"--served-model-name {create_deployment_details.model_name}", + params, + ) + else: + params += f" --served-model-name {create_deployment_details.model_name}" if params: env_var.update({"PARAMS": params}) From a9ea2d5d01684980debae1b7a0bdf618b64483e3 Mon Sep 17 00:00:00 2001 From: Dmitrii Cherkasov Date: Thu, 4 Sep 2025 16:32:32 -0700 Subject: [PATCH 8/8] Fixes unit tests --- tests/unitary/with_extras/aqua/test_common_utils.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/tests/unitary/with_extras/aqua/test_common_utils.py b/tests/unitary/with_extras/aqua/test_common_utils.py index e10e146ed..85cb57941 100644 --- a/tests/unitary/with_extras/aqua/test_common_utils.py +++ b/tests/unitary/with_extras/aqua/test_common_utils.py @@ -5,6 +5,7 @@ # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/ import pytest + from ads.aqua.common.utils import get_preferred_compatible_family @@ -14,15 +15,15 @@ class TestCommonUtils: [ ( {"odsc-vllm-serving", "odsc-vllm-serving-v1"}, - "odsc-vllm-serving-v1", + "odsc-vllm-serving-openai", ), ( {"odsc-vllm-serving", "odsc-vllm-serving-llama4"}, - "odsc-vllm-serving-llama4", + "odsc-vllm-serving-openai", ), ( {"odsc-vllm-serving-v1", "odsc-vllm-serving-llama4"}, - "odsc-vllm-serving-llama4", + "odsc-vllm-serving-openai", ), ( { @@ -30,7 +31,7 @@ class TestCommonUtils: "odsc-vllm-serving-v1", "odsc-vllm-serving-llama4", }, - "odsc-vllm-serving-llama4", + "odsc-vllm-serving-openai", ), ({"odsc-tgi-serving", "odsc-vllm-serving"}, None), ({"non-existing-one", "odsc-tgi-serving"}, None),