Update main.py
Browse files
main.py
CHANGED
|
@@ -5,8 +5,7 @@ import json
|
|
| 5 |
import tempfile
|
| 6 |
from datetime import datetime
|
| 7 |
|
| 8 |
-
|
| 9 |
-
from fastapi import FastAPI, Request, HTTPException, UploadFile, File, BackgroundTasks
|
| 10 |
from fastapi.responses import JSONResponse
|
| 11 |
from fastapi.concurrency import run_in_threadpool
|
| 12 |
from fastapi.middleware.cors import CORSMiddleware
|
|
@@ -14,22 +13,16 @@ from pydantic import BaseModel, Field
|
|
| 14 |
from typing import List, Dict, Any, Optional
|
| 15 |
from bson import ObjectId
|
| 16 |
|
| 17 |
-
# --- Imports de vos services et classes ---
|
| 18 |
from src.models import load_all_models
|
| 19 |
from src.services.cv_service import CVParsingService
|
| 20 |
from src.services.analysis_service import AnalysisService
|
| 21 |
from services.graph_service import GraphInterviewProcessor
|
| 22 |
|
| 23 |
-
# --- Configuration du logging ---
|
| 24 |
logging.basicConfig(level=logging.INFO)
|
| 25 |
-
# Le logger global est utilisé pour les messages au démarrage de l'application.
|
| 26 |
logger = logging.getLogger(__name__)
|
| 27 |
|
| 28 |
-
# --- Configuration de l'environnement pour les fichiers temporaires ---
|
| 29 |
os.makedirs('/tmp/feedbacks', exist_ok=True)
|
| 30 |
|
| 31 |
-
|
| 32 |
-
# --- Initialisation de l'application FastAPI ---
|
| 33 |
app = FastAPI(
|
| 34 |
title="AIrh Interview Assistant",
|
| 35 |
description="API pour l'analyse de CV et la simulation d'entretiens d'embauche avec analyse asynchrone.",
|
|
@@ -102,7 +95,7 @@ async def simulate_interview(request: Request):
|
|
| 102 |
@app.post("/parse-cv/", tags=["CV Parsing"])
|
| 103 |
async def parse_cv(
|
| 104 |
file: UploadFile = File(...),
|
| 105 |
-
user_id: str = None
|
| 106 |
):
|
| 107 |
"""
|
| 108 |
Analyse un fichier CV (PDF) et le stocke automatiquement dans MongoDB.
|
|
|
|
| 5 |
import tempfile
|
| 6 |
from datetime import datetime
|
| 7 |
|
| 8 |
+
from fastapi import FastAPI, Request, HTTPException, UploadFile, File, BackgroundTasks, Query
|
|
|
|
| 9 |
from fastapi.responses import JSONResponse
|
| 10 |
from fastapi.concurrency import run_in_threadpool
|
| 11 |
from fastapi.middleware.cors import CORSMiddleware
|
|
|
|
| 13 |
from typing import List, Dict, Any, Optional
|
| 14 |
from bson import ObjectId
|
| 15 |
|
|
|
|
| 16 |
from src.models import load_all_models
|
| 17 |
from src.services.cv_service import CVParsingService
|
| 18 |
from src.services.analysis_service import AnalysisService
|
| 19 |
from services.graph_service import GraphInterviewProcessor
|
| 20 |
|
|
|
|
| 21 |
logging.basicConfig(level=logging.INFO)
|
|
|
|
| 22 |
logger = logging.getLogger(__name__)
|
| 23 |
|
|
|
|
| 24 |
os.makedirs('/tmp/feedbacks', exist_ok=True)
|
| 25 |
|
|
|
|
|
|
|
| 26 |
app = FastAPI(
|
| 27 |
title="AIrh Interview Assistant",
|
| 28 |
description="API pour l'analyse de CV et la simulation d'entretiens d'embauche avec analyse asynchrone.",
|
|
|
|
| 95 |
@app.post("/parse-cv/", tags=["CV Parsing"])
|
| 96 |
async def parse_cv(
|
| 97 |
file: UploadFile = File(...),
|
| 98 |
+
user_id: str = Query(None, description="ID de l'utilisateur pour lier le CV")
|
| 99 |
):
|
| 100 |
"""
|
| 101 |
Analyse un fichier CV (PDF) et le stocke automatiquement dans MongoDB.
|