Skip to content

Commit f302387

Browse files
authored
Aqua/add modeldeployenvvar (#904)
2 parents 5c339ff + 7992e70 commit f302387

File tree

3 files changed

+27
-8
lines changed

3 files changed

+27
-8
lines changed

ads/aqua/common/utils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -251,9 +251,9 @@ def list_os_files_with_extension(oss_path: str, extension: str) -> [str]:
251251
files: List[ObjectSummary] = oss_client.list_objects().objects
252252

253253
return [
254-
file.name
254+
file.name[len(oss_client.filepath) :]
255255
for file in files
256-
if file.name.endswith(extension) and "/" not in file.name
256+
if file.name.endswith(extension)
257257
]
258258

259259

ads/aqua/model/model.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -364,8 +364,8 @@ def _build_ft_metrics(
364364
training_final,
365365
]
366366

367+
@staticmethod
367368
def to_aqua_model(
368-
self,
369369
model: Union[
370370
DataScienceModel,
371371
oci.data_science.models.model.Model,
@@ -375,7 +375,7 @@ def to_aqua_model(
375375
region: str,
376376
) -> AquaModel:
377377
"""Converts a model to an Aqua model."""
378-
return AquaModel(**self._process_model(model, region))
378+
return AquaModel(**AquaModelApp._process_model(model, region))
379379

380380
@staticmethod
381381
def _process_model(

ads/aqua/modeldeployment/deployment.py

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
load_config,
2626
)
2727
from ads.aqua.constants import (
28+
AQUA_MODEL_ARTIFACT_FILE,
2829
AQUA_MODEL_TYPE_CUSTOM,
2930
AQUA_MODEL_TYPE_SERVICE,
3031
MODEL_BY_REFERENCE_OSS_PATH_KEY,
@@ -39,6 +40,7 @@
3940
AquaDeploymentDetail,
4041
ContainerSpec,
4142
)
43+
from ads.aqua.ui import ModelFormat
4244
from ads.common.object_storage_details import ObjectStorageDetails
4345
from ads.common.utils import get_log_links
4446
from ads.config import (
@@ -210,6 +212,21 @@ def create(
210212

211213
env_var.update({"BASE_MODEL": f"{model_path_prefix}"})
212214

215+
model_format = aqua_model.freeform_tags.get(
216+
Tags.MODEL_FORMAT, ModelFormat.SAFETENSORS.value
217+
).upper()
218+
if model_format == ModelFormat.GGUF.value:
219+
try:
220+
model_file = aqua_model.custom_metadata_list.get(
221+
AQUA_MODEL_ARTIFACT_FILE
222+
).value
223+
except ValueError as err:
224+
raise AquaValueError(
225+
f"{AQUA_MODEL_ARTIFACT_FILE} key is not available in the custom metadata field "
226+
f"for model {aqua_model.id}."
227+
) from err
228+
env_var.update({"BASE_MODEL_FILE": f"{model_file}"})
229+
213230
if is_fine_tuned_model:
214231
_, fine_tune_output_path = get_model_by_reference_paths(
215232
aqua_model.model_file_description
@@ -302,13 +319,15 @@ def create(
302319

303320
deployment_params = get_combined_params(config_params, user_params)
304321

305-
if deployment_params:
306-
params = f"{params} {deployment_params}"
322+
params = f"{params} {deployment_params}".strip()
323+
if params:
324+
env_var.update({"PARAMS": params})
307325

308-
env_var.update({"PARAMS": params})
309326
for env in container_spec.get(ContainerSpec.ENV_VARS, []):
310327
if isinstance(env, dict):
311-
env_var.update(env)
328+
for key, _items in env.items():
329+
if key not in env_var:
330+
env_var.update(env)
312331

313332
logging.info(f"Env vars used for deploying {aqua_model.id} :{env_var}")
314333

0 commit comments

Comments
 (0)