@@ -21,6 +21,14 @@ class ProviderNotFoundError(Exception):
21
21
pass
22
22
23
23
24
+ class ProviderModelsNotFoundError (Exception ):
25
+ pass
26
+
27
+
28
+ class ProviderInvalidAuthConfigError (Exception ):
29
+ pass
30
+
31
+
24
32
class ProviderCrud :
25
33
"""The CRUD operations for the provider endpoint references within
26
34
Codegate.
@@ -87,12 +95,12 @@ async def add_endpoint(
87
95
88
96
models = []
89
97
if endpoint .auth_type == apimodelsv1 .ProviderAuthType .api_key and not endpoint .api_key :
90
- raise ValueError ("API key must be provided for API auth type" )
98
+ raise ProviderInvalidAuthConfigError ("API key must be provided for API auth type" )
91
99
if endpoint .auth_type != apimodelsv1 .ProviderAuthType .passthrough :
92
100
try :
93
101
models = prov .models (endpoint = endpoint .endpoint , api_key = endpoint .api_key )
94
102
except Exception as err :
95
- raise ValueError ( "Unable to get models from provider: {}" . format ( str ( err )) )
103
+ raise ProviderModelsNotFoundError ( f "Unable to get models from provider: { err } " )
96
104
97
105
dbendpoint = await self ._db_writer .add_provider_endpoint (dbend )
98
106
@@ -143,22 +151,14 @@ async def configure_auth_material(
143
151
):
144
152
"""Add an API key."""
145
153
if config .auth_type == apimodelsv1 .ProviderAuthType .api_key and not config .api_key :
146
- raise ValueError ("API key must be provided for API auth type" )
154
+ raise ProviderInvalidAuthConfigError ("API key must be provided for API auth type" )
147
155
elif config .auth_type != apimodelsv1 .ProviderAuthType .api_key and config .api_key :
148
- raise ValueError ("API key provided for non-API auth type" )
156
+ raise ProviderInvalidAuthConfigError ("API key provided for non-API auth type" )
149
157
150
158
dbendpoint = await self ._db_reader .get_provider_endpoint_by_id (str (provider_id ))
151
159
if dbendpoint is None :
152
160
raise ProviderNotFoundError ("Provider not found" )
153
161
154
- await self ._db_writer .push_provider_auth_material (
155
- dbmodels .ProviderAuthMaterial (
156
- provider_endpoint_id = dbendpoint .id ,
157
- auth_type = config .auth_type ,
158
- auth_blob = config .api_key if config .api_key else "" ,
159
- )
160
- )
161
-
162
162
endpoint = apimodelsv1 .ProviderEndpoint .from_db_model (dbendpoint )
163
163
endpoint .auth_type = config .auth_type
164
164
provider_registry = get_provider_registry ()
@@ -169,7 +169,15 @@ async def configure_auth_material(
169
169
try :
170
170
models = prov .models (endpoint = endpoint .endpoint , api_key = config .api_key )
171
171
except Exception as err :
172
- raise ValueError ("Unable to get models from provider: {}" .format (str (err )))
172
+ raise ProviderModelsNotFoundError (f"Unable to get models from provider: { err } " )
173
+
174
+ await self ._db_writer .push_provider_auth_material (
175
+ dbmodels .ProviderAuthMaterial (
176
+ provider_endpoint_id = dbendpoint .id ,
177
+ auth_type = config .auth_type ,
178
+ auth_blob = config .api_key if config .api_key else "" ,
179
+ )
180
+ )
173
181
174
182
models_set = set (models )
175
183
0 commit comments