22import os
33from typing import (Optional , Dict , Union , List )
44from pydantic import (BaseModel , validator )
5+ from .errors import InfuzuAPIError
56
67
78class ModelWeights (BaseModel ):
@@ -10,6 +11,9 @@ class ModelWeights(BaseModel):
1011 start_latency : Optional [float ] = None
1112 end_latency : Optional [float ] = None
1213
14+ class Config :
15+ extra : str = "allow"
16+
1317
1418class InfuzuModelParams (BaseModel ):
1519 llms : Optional [List [str ]] = None
@@ -19,13 +23,19 @@ class InfuzuModelParams(BaseModel):
1923 max_input_cost : Optional [float ] = None
2024 max_output_cost : Optional [float ] = None
2125
26+ class Config :
27+ extra : str = "allow"
28+
2229
2330class ChatCompletionsRequestContentPart (BaseModel ):
2431 type : str
2532 text : Optional [str ] = None
2633 image_url : Optional [str ] = None
2734 input_audio : Optional [str ] = None
2835
36+ class Config :
37+ extra : str = "allow"
38+
2939 @validator ("text" , always = True )
3040 def check_content_fields (cls , value , values ):
3141 if "type" in values :
@@ -42,6 +52,9 @@ class ChatCompletionsHandlerRequestMessage(BaseModel):
4252 role : str
4353 name : Optional [str ] = None
4454
55+ class Config :
56+ extra : str = "allow"
57+
4558 @validator ('role' )
4659 def role_must_be_valid (cls , v ):
4760 if v not in ('system' , 'user' , 'assistant' ):
@@ -111,11 +124,4 @@ def create_chat_completion(
111124 return response .json ()
112125
113126 except httpx .HTTPStatusError as e :
114- print (f"HTTP Error: { e } " )
115- raise
116- except httpx .RequestError as e :
117- print (f"Request Error: { e } " )
118- raise
119- except Exception as e :
120- print (f"An unexpected error occurred: { e } " )
121- raise
127+ raise InfuzuAPIError (e )
0 commit comments