Spaces:
Sleeping
Sleeping
| from fastapi import APIRouter, File, UploadFile, HTTPException, status | |
| from fastapi.responses import JSONResponse | |
| # Import the controller instance | |
| from controller import controller | |
| # Create an API router | |
| router = APIRouter() | |
| async def classify_image_endpoint(image: UploadFile = File(...)): | |
| """ | |
| Accepts an image file and classifies it as 'real' or 'fake'. | |
| - **image**: The image file to be classified (e.g., JPEG, PNG). | |
| Returns a JSON object with the classification and a confidence score. | |
| """ | |
| # Check for a valid image content type | |
| if not image.content_type.startswith("image/"): | |
| raise HTTPException( | |
| status_code=status.HTTP_415_UNSUPPORTED_MEDIA_TYPE, | |
| detail="Unsupported file type. Please upload an image (e.g., JPEG, PNG)." | |
| ) | |
| # The controller expects a file-like object, which `image.file` provides | |
| result = controller.classify_image(image.file) | |
| if "error" in result: | |
| # If the controller returned an error, forward it as an HTTP exception | |
| raise HTTPException( | |
| status_code=status.HTTP_400_BAD_REQUEST, | |
| detail=result["error"] | |
| ) | |
| return JSONResponse(content=result, status_code=status.HTTP_200_OK) | |