zico-agent / src /llm /exceptions.py
ColettoG's picture
deploy
92f2b7d
"""
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)