Spaces:
Running
Running
File size: 1,071 Bytes
6ff1f88 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
class APIError(Exception):
"""Base exception for API related errors."""
pass
class APIKeyError(APIError):
"""Exception raised for API key related errors."""
pass
class ModelError(APIError):
"""Exception raised for model related errors."""
pass
class ProviderError(APIError):
"""Exception raised for provider related errors."""
pass
class ValidationError(APIError):
"""Exception raised for input validation errors."""
pass
def handle_api_error(error: APIError) -> dict:
"""Convert API errors to response dictionaries."""
error_types = {
APIKeyError: (400, "API Key Error"),
ModelError: (400, "Model Error"),
ProviderError: (500, "Provider Error"),
ValidationError: (400, "Validation Error"),
APIError: (500, "Internal Server Error")
}
error_class = type(error)
status_code, error_type = error_types.get(error_class, (500, "Unknown Error"))
return {
"status_code": status_code,
"error_type": error_type,
"detail": str(error)
} |