from fastapi import FastAPI, APIRouter from fastapi.staticfiles import StaticFiles from starlette.responses import FileResponse from transformers import pipeline from pydantic import BaseModel from fastapi.middleware.cors import CORSMiddleware import time import base64 app = FastAPI() router = APIRouter() # Monter les fichiers statiques @router.get("/") async def index() -> FileResponse: return FileResponse(path="front/dist/index.html", media_type="text/html") @router.get("/verification") async def verif() -> FileResponse: return FileResponse(path="front/dist/index.html", media_type="text/html") app.include_router(router) app.mount("/", StaticFiles(directory="front/dist", html=True), name="static") origins = [ "http://localhost:7860", # Exemple d'origine (ajoutez vos origines ici) "https://example.com", ] app.add_middleware( CORSMiddleware, allow_origins=origins, # Liste des origines autorisées allow_credentials=True, allow_methods=["*"], # Autorise toutes les méthodes (GET, POST, etc.) allow_headers=["*"], # Autorise tous les en-têtes ) class ImageData(BaseModel): image: str class ImagesData(BaseModel): idCard: str profileImage: str @app.post("/uploadpdf") async def upload_pdf(image_data: ImageData): # Extraire le contenu Base64 header, encoded = image_data.image.split(',', 1) # Séparer le header des données binary_data = base64.b64decode(encoded) # Décoder les données time.sleep(20); return {"message": "Image reçue et sauvegardée"} @app.post("/uploadids") async def upload_ids(images_data: ImagesData): header, encoded = images_data.idCard.split(',', 1) # Séparer le header des données id_card_binary_data = base64.b64decode(encoded) header, encoded = images_data.idCard.split(',', 1) # Séparer le header des données profile_image_binary_data = base64.b64decode(encoded) time.sleep(20); return {"message": "Image reçue et sauvegardée"}