Skip to content

Commit e3cb8d5

Browse files
update evaluation validation for create API
1 parent adace88 commit e3cb8d5

File tree

2 files changed

+12
-12
lines changed

2 files changed

+12
-12
lines changed

ads/aqua/common/utils.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
)
3232
from oci.data_science.models import JobRun, Model
3333
from oci.object_storage.models import ObjectSummary
34+
from pydantic import BaseModel, ValidationError
3435

3536
from ads.aqua.common.enums import (
3637
InferenceContainerParamType,
@@ -75,7 +76,7 @@
7576
from ads.model import DataScienceModel, ModelVersionSet
7677

7778
logger = logging.getLogger("ads.aqua")
78-
T = TypeVar("T")
79+
T = TypeVar("T", bound=Union[BaseModel, Any])
7980

8081

8182
class LifecycleStatus(str, metaclass=ExtendedEnumMeta):
@@ -1204,3 +1205,8 @@ def validate_dataclass_params(dataclass_type: Type[T], **kwargs: Any) -> Optiona
12041205
raise AquaValueError(
12051206
"Invalid parameters. Allowable parameters are: " f"{allowed_params}."
12061207
) from ex
1208+
except ValidationError as ex:
1209+
custom_errors = {".".join(map(str, e["loc"])): e["msg"] for e in ex.errors()}
1210+
raise AquaValueError(
1211+
f"Invalid parameters. Error details: {custom_errors}."
1212+
) from ex

ads/aqua/evaluation/evaluation.py

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/usr/bin/env python
2-
# Copyright (c) 2024 Oracle and/or its affiliates.
2+
# Copyright (c) 2024, 2025 Oracle and/or its affiliates.
33
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
44
import base64
55
import json
@@ -43,6 +43,7 @@
4343
get_container_image,
4444
is_valid_ocid,
4545
upload_local_to_os,
46+
validate_dataclass_params,
4647
)
4748
from ads.aqua.config.config import get_evaluation_service_config
4849
from ads.aqua.constants import (
@@ -155,16 +156,9 @@ def create(
155156
The instance of AquaEvaluationSummary.
156157
"""
157158
if not create_aqua_evaluation_details:
158-
try:
159-
create_aqua_evaluation_details = CreateAquaEvaluationDetails(**kwargs)
160-
except Exception as ex:
161-
custom_errors = {
162-
".".join(map(str, e["loc"])): e["msg"]
163-
for e in json.loads(ex.json())
164-
}
165-
raise AquaValueError(
166-
f"Invalid create evaluation parameters. Error details: {custom_errors}."
167-
) from ex
159+
create_aqua_evaluation_details = validate_dataclass_params(
160+
CreateAquaEvaluationDetails, **kwargs
161+
)
168162

169163
if not is_valid_ocid(create_aqua_evaluation_details.evaluation_source_id):
170164
raise AquaValueError(

0 commit comments

Comments
 (0)