11#!/usr/bin/env python
2- # -*- coding: utf-8 -*-
32# Copyright (c) 2024 Oracle and/or its affiliates.
43# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
54
87from tornado .web import HTTPError
98
109from ads .aqua .common .decorator import handle_exceptions
11- from ads .aqua .extension .errors import Errors
1210from ads .aqua .extension .base_handler import AquaAPIhandler
11+ from ads .aqua .extension .errors import Errors
1312from ads .aqua .modeldeployment import AquaDeploymentApp , MDInferenceResponse
1413from ads .aqua .modeldeployment .entities import ModelParams
1514from ads .config import COMPARTMENT_OCID , PROJECT_OCID
@@ -66,8 +65,8 @@ def post(self, *args, **kwargs):
6665 """
6766 try :
6867 input_data = self .get_json_body ()
69- except Exception :
70- raise HTTPError (400 , Errors .INVALID_INPUT_DATA_FORMAT )
68+ except Exception as ex :
69+ raise HTTPError (400 , Errors .INVALID_INPUT_DATA_FORMAT ) from ex
7170
7271 if not input_data :
7372 raise HTTPError (400 , Errors .NO_INPUT_DATA )
@@ -100,6 +99,8 @@ def post(self, *args, **kwargs):
10099 health_check_port = input_data .get ("health_check_port" )
101100 env_var = input_data .get ("env_var" )
102101 container_family = input_data .get ("container_family" )
102+ ocpus = input_data .get ("ocpus" )
103+ memory_in_gbs = input_data .get ("memory_in_gbs" )
103104
104105 self .finish (
105106 AquaDeploymentApp ().create (
@@ -119,6 +120,8 @@ def post(self, *args, **kwargs):
119120 health_check_port = health_check_port ,
120121 env_var = env_var ,
121122 container_family = container_family ,
123+ ocpus = ocpus ,
124+ memory_in_gbs = memory_in_gbs ,
122125 )
123126 )
124127
@@ -153,9 +156,7 @@ def validate_predict_url(endpoint):
153156 return False
154157 if not url .netloc :
155158 return False
156- if not url .path .endswith ("/predict" ):
157- return False
158- return True
159+ return url .path .endswith ("/predict" )
159160 except Exception :
160161 return False
161162
@@ -170,8 +171,8 @@ def post(self, *args, **kwargs):
170171 """
171172 try :
172173 input_data = self .get_json_body ()
173- except Exception :
174- raise HTTPError (400 , Errors .INVALID_INPUT_DATA_FORMAT )
174+ except Exception as ex :
175+ raise HTTPError (400 , Errors .INVALID_INPUT_DATA_FORMAT ) from ex
175176
176177 if not input_data :
177178 raise HTTPError (400 , Errors .NO_INPUT_DATA )
@@ -192,10 +193,10 @@ def post(self, *args, **kwargs):
192193 )
193194 try :
194195 model_params_obj = ModelParams (** model_params )
195- except :
196+ except Exception as ex :
196197 raise HTTPError (
197198 400 , Errors .INVALID_INPUT_DATA_FORMAT .format ("model_params" )
198- )
199+ ) from ex
199200
200201 return self .finish (
201202 MDInferenceResponse (prompt , model_params_obj ).get_model_deployment_response (
@@ -236,8 +237,8 @@ def post(self, *args, **kwargs):
236237 """
237238 try :
238239 input_data = self .get_json_body ()
239- except Exception :
240- raise HTTPError (400 , Errors .INVALID_INPUT_DATA_FORMAT )
240+ except Exception as ex :
241+ raise HTTPError (400 , Errors .INVALID_INPUT_DATA_FORMAT ) from ex
241242
242243 if not input_data :
243244 raise HTTPError (400 , Errors .NO_INPUT_DATA )
0 commit comments