Spaces:
Sleeping
Sleeping
File size: 1,796 Bytes
64c1bdf | 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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | from __future__ import annotations
from typing import Any
class AppError(Exception):
def __init__(
self,
message: str,
*,
status_code: int = 400,
code: str = "bad_request",
details: Any = None,
extra: dict[str, Any] | None = None,
) -> None:
super().__init__(message)
self.message = message
self.status_code = status_code
self.code = code
self.details = details
self.extra = extra or {}
class InvalidRequestError(AppError):
def __init__(self, message: str, **kwargs: Any) -> None:
super().__init__(message, status_code=422, code="validation_error", **kwargs)
class PayloadTooLargeError(AppError):
def __init__(self, message: str, **kwargs: Any) -> None:
super().__init__(message, status_code=413, code="payload_too_large", **kwargs)
class NotFoundError(AppError):
def __init__(self, message: str, **kwargs: Any) -> None:
super().__init__(message, status_code=404, code="not_found", **kwargs)
class ConflictError(AppError):
def __init__(self, message: str, **kwargs: Any) -> None:
super().__init__(message, status_code=409, code="conflict", **kwargs)
class AudioProcessingError(AppError):
def __init__(self, message: str, **kwargs: Any) -> None:
super().__init__(message, status_code=422, code="audio_processing_failed", **kwargs)
class IntentExtractionError(AppError):
def __init__(self, message: str, **kwargs: Any) -> None:
super().__init__(message, status_code=422, code="intent_extraction_failed", **kwargs)
class LLMUnavailableError(AppError):
def __init__(self, message: str, **kwargs: Any) -> None:
super().__init__(message, status_code=503, code="llm_unavailable", **kwargs)
|