Spaces:
Running
Running
| """ | |
| Custom exceptions for LLM module. | |
| """ | |
| class LLMError(Exception): | |
| """Base exception for LLM-related errors.""" | |
| def __init__(self, message: str, provider: str | None = None, model: str | None = None): | |
| self.provider = provider | |
| self.model = model | |
| super().__init__(message) | |
| class LLMProviderError(LLMError): | |
| """Raised when there's an error with the LLM provider.""" | |
| pass | |
| class LLMTimeoutError(LLMError): | |
| """Raised when an LLM request times out.""" | |
| pass | |
| class LLMRateLimitError(LLMError): | |
| """Raised when rate limit is exceeded.""" | |
| def __init__( | |
| self, | |
| message: str, | |
| provider: str | None = None, | |
| model: str | None = None, | |
| retry_after: int | None = None, | |
| ): | |
| self.retry_after = retry_after | |
| super().__init__(message, provider, model) | |
| class LLMInvalidModelError(LLMError): | |
| """Raised when an invalid model is specified.""" | |
| def __init__(self, model: str, available_models: list[str] | None = None): | |
| self.available_models = available_models or [] | |
| message = f"Invalid model: {model}" | |
| if available_models: | |
| message += f". Available models: {', '.join(available_models)}" | |
| super().__init__(message, model=model) | |