|
13 | 13 |
|
14 | 14 |
|
15 | 15 | class EngineAPIResource(APIResource): |
16 | | - engine_required = True |
17 | 16 | plain_old_data = False |
18 | 17 |
|
19 | 18 | def __init__(self, engine: Optional[str] = None, **kwargs): |
@@ -71,14 +70,24 @@ def create( |
71 | 70 | organization=None, |
72 | 71 | **params, |
73 | 72 | ): |
74 | | - engine = params.pop("engine", None) |
| 73 | + deployment_id = params.pop("deployment_id", None) |
| 74 | + engine = params.pop("engine", deployment_id) |
| 75 | + model = params.get("model", None) |
75 | 76 | timeout = params.pop("timeout", None) |
76 | 77 | stream = params.get("stream", False) |
77 | 78 | headers = params.pop("headers", None) |
78 | | - if engine is None and cls.engine_required: |
79 | | - raise error.InvalidRequestError( |
80 | | - "Must provide an 'engine' parameter to create a %s" % cls, "engine" |
81 | | - ) |
| 79 | + |
| 80 | + typed_api_type = cls._get_api_type_and_version(api_type=api_type)[0] |
| 81 | + if typed_api_type in (util.ApiType.AZURE, util.ApiType.AZURE_AD): |
| 82 | + if deployment_id is None and engine is None: |
| 83 | + raise error.InvalidRequestError( |
| 84 | + "Must provide an 'engine' or 'deployment_id' parameter to create a %s" % cls, "engine" |
| 85 | + ) |
| 86 | + else: |
| 87 | + if model is None and engine is None: |
| 88 | + raise error.InvalidRequestError( |
| 89 | + "Must provide an 'engine' or 'model' parameter to create a %s" % cls, "engine" |
| 90 | + ) |
82 | 91 |
|
83 | 92 | if timeout is None: |
84 | 93 | # No special timeout handling |
|
0 commit comments