Download backend/core/exceptions.py from salvirezwan/Research-Paper-RAG-chatbot: direct link, hf CLI and curl.
- Browser
- Download file 1.89 kB
-
https://huggingface.co/spaces/salvirezwan/Research-Paper-RAG-chatbot/resolve/main/backend/core/exceptions.py
- Command line
-
hf download hf://spaces/salvirezwan/Research-Paper-RAG-chatbot/backend/core/exceptions.py
-
curl -L -o exceptions.py https://huggingface.co/spaces/salvirezwan/Research-Paper-RAG-chatbot/resolve/main/backend/core/exceptions.py
1.89 kB
| from fastapi.responses import JSONResponse | |
| from fastapi import Request | |
| class BaseAppException(Exception): | |
| status_code = 500 | |
| message = "An error occurred" | |
| def __init__(self, message: str = None): | |
| self.message = message or self.message | |
| super().__init__(self.message) | |
| class InvalidFileTypeError(BaseAppException): | |
| status_code = 415 | |
| message = "Invalid file type. Only PDF files are allowed." | |
| class FileSizeExceededError(BaseAppException): | |
| status_code = 400 | |
| message = "File size exceeds maximum allowed size." | |
| class DuplicateDocumentError(BaseAppException): | |
| status_code = 409 | |
| message = "Document with this file hash already exists." | |
| class ProcessingError(BaseAppException): | |
| status_code = 500 | |
| message = "Document processing failed." | |
| class ParsingError(BaseAppException): | |
| status_code = 500 | |
| message = "PDF parsing failed." | |
| class IndexingError(BaseAppException): | |
| status_code = 500 | |
| message = "Indexing to vector database failed." | |
| class EmbeddingError(BaseAppException): | |
| status_code = 500 | |
| message = "Embedding generation failed." | |
| class DocumentNotFoundError(BaseAppException): | |
| status_code = 404 | |
| message = "Document not found." | |
| class PaperFetchError(BaseAppException): | |
| status_code = 502 | |
| message = "Failed to fetch paper from external source." | |
| async def global_exception_handler(request: Request, exc: Exception): | |
| if isinstance(exc, BaseAppException): | |
| return JSONResponse( | |
| status_code=exc.status_code, | |
| content={ | |
| "error": exc.__class__.__name__, | |
| "message": exc.message, | |
| } | |
| ) | |
| return JSONResponse( | |
| status_code=500, | |
| content={ | |
| "error": "Internal Server Error", | |
| "details": str(exc) if request.app.debug else "An unexpected error occurred", | |
| } | |
| ) | |