Spaces:
Running
Running
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) | |
} |