|
25 | 25 | load_config, |
26 | 26 | ) |
27 | 27 | from ads.aqua.constants import ( |
| 28 | + AQUA_MODEL_ARTIFACT_FILE, |
28 | 29 | AQUA_MODEL_TYPE_CUSTOM, |
29 | 30 | AQUA_MODEL_TYPE_SERVICE, |
30 | 31 | MODEL_BY_REFERENCE_OSS_PATH_KEY, |
|
39 | 40 | AquaDeploymentDetail, |
40 | 41 | ContainerSpec, |
41 | 42 | ) |
| 43 | +from ads.aqua.ui import ModelFormat |
42 | 44 | from ads.common.object_storage_details import ObjectStorageDetails |
43 | 45 | from ads.common.utils import get_log_links |
44 | 46 | from ads.config import ( |
@@ -210,6 +212,21 @@ def create( |
210 | 212 |
|
211 | 213 | env_var.update({"BASE_MODEL": f"{model_path_prefix}"}) |
212 | 214 |
|
| 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 | + |
213 | 230 | if is_fine_tuned_model: |
214 | 231 | _, fine_tune_output_path = get_model_by_reference_paths( |
215 | 232 | aqua_model.model_file_description |
@@ -302,13 +319,15 @@ def create( |
302 | 319 |
|
303 | 320 | deployment_params = get_combined_params(config_params, user_params) |
304 | 321 |
|
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}) |
307 | 325 |
|
308 | | - env_var.update({"PARAMS": params}) |
309 | 326 | for env in container_spec.get(ContainerSpec.ENV_VARS, []): |
310 | 327 | 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) |
312 | 331 |
|
313 | 332 | logging.info(f"Env vars used for deploying {aqua_model.id} :{env_var}") |
314 | 333 |
|
|
0 commit comments