Spaces:
Runtime error
Runtime error
| from fastapi import FastAPI, File, UploadFile | |
| from fastapi.middleware.cors import CORSMiddleware | |
| from fastapi.responses import StreamingResponse,FileResponse , JSONResponse,HTMLResponse | |
| from pydantic import BaseModel | |
| import uvicorn | |
| import cv2 | |
| import tempfile | |
| import shutil | |
| import os | |
| import warnings | |
| import base64 | |
| import numpy as np | |
| from pathlib import Path | |
| from app.src.model_loader import vit_loader,vgg_loader | |
| from app.src.logger import setup_logger | |
| warnings.filterwarnings("ignore") | |
| app=FastAPI(title="Document_Classifire", | |
| description="FastAPI", | |
| version="0.115.4") | |
| # Allow all origins (replace * with specific origins if needed) | |
| app.add_middleware( | |
| CORSMiddleware, | |
| allow_origins=["*"], | |
| allow_credentials=True, | |
| allow_methods=["*"], | |
| allow_headers=["*"], | |
| ) | |
| async def root(): | |
| return {"Fast API":"API is woorking"} | |
| # Suppress warnings | |
| os.environ['TF_CPP_MIN_LOG_LEVEL'] = '0' # 0 = all logs, 1 = filter out info, 2 = filter out warnings, 3 = filter out errors | |
| warnings.filterwarnings("ignore") | |
| logger = setup_logger() | |
| async def vit_clf(cut_off:float=0.5,image_file: UploadFile = File(...)): | |
| try: | |
| # Create a temporary directory | |
| temp_dir = tempfile.mkdtemp() | |
| # Create a temporary file path | |
| temp_file_path = os.path.join(temp_dir,image_file.filename) | |
| # Write the uploaded file content to the temporary file | |
| with open(temp_file_path, "wb") as temp_file: | |
| shutil.copyfileobj(image_file.file, temp_file) | |
| result=vit_loader().predict(image_path=Path(temp_file_path), cut_off=cut_off) | |
| logger.info(result) | |
| if result is not None: | |
| return JSONResponse(content={"status":1,"document_classe":result}) | |
| else: | |
| return JSONResponse(content={"status":0,"document_classe":None}) | |
| except Exception as e: | |
| logger.error(str(e)) | |
| return JSONResponse(content={"status":0,"error_message":str(e)}) | |
| async def vgg_clf(image_file: UploadFile = File(...)): | |
| try: | |
| # Create a temporary directory | |
| temp_dir = tempfile.mkdtemp() | |
| # Create a temporary file path | |
| temp_file_path = os.path.join(temp_dir,image_file.filename) | |
| # Write the uploaded file content to the temporary file | |
| with open(temp_file_path, "wb") as temp_file: | |
| shutil.copyfileobj(image_file.file, temp_file) | |
| result=vgg_loader().predict(image_path=Path(temp_file_path)) | |
| logger.info(result) | |
| if result is not None: | |
| return JSONResponse(content={"status":1,"document_classe":result}) | |
| else: | |
| return JSONResponse(content={"status":0,"document_classe":None}) | |
| except Exception as e: | |
| logger.error(str(e)) | |
| return JSONResponse(content={"status":0,"document_classe":str(e)}) | |