Skip to content

Commit ec0160c

Browse files
Merge pull request #1 from Infuzu/dev
Dev
2 parents 3aa611c + b7a6c66 commit ec0160c

2 files changed

Lines changed: 20 additions & 8 deletions

File tree

src/infuzu/api_client.py

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import os
33
from typing import (Optional, Dict, Union, List)
44
from pydantic import (BaseModel, validator)
5+
from .errors import InfuzuAPIError
56

67

78
class 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

1418
class 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

2330
class 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)

src/infuzu/errors.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import httpx
2+
3+
4+
class InfuzuAPIError(Exception):
5+
def __init__(self, base_error: httpx.HTTPError) -> None:
6+
super().__init__(f"HTTP Error: {str(base_error)}")

0 commit comments

Comments
 (0)