Spaces:
Sleeping
Sleeping
import traceback | |
from .logger import get_logger | |
logger = get_logger(__name__) | |
# Define custom exceptions for different parts of the application | |
class ModelLoadingError(Exception): | |
"""Raised when a model fails to load properly.""" | |
class PreprocessingError(Exception): | |
"""Raised when an error occurs during data preprocessing.""" | |
class PredictionError(Exception): | |
"""Raised when there is an issue with generating predictions from the models.""" | |
class APIError(Exception): | |
"""Raised when there is an issue with the API call to the LLM or any external service.""" | |
def log_exception(e: Exception, custom_message: str = ""): | |
""" | |
Logs detailed information about an exception, including traceback. | |
Args: | |
e (Exception): The exception to log. | |
custom_message (str): Optional custom message to provide additional context in the log. | |
""" | |
exc_type, exc_value, exc_traceback = e.__class__, e, e.__traceback__ | |
trace_details = "".join(traceback.format_exception(exc_type, exc_value, exc_traceback)) | |
logger.error(f"{custom_message}\nException type: {exc_type}\nTraceback:\n{trace_details}") | |