55 lines
No EOL
2.1 KiB
Python
55 lines
No EOL
2.1 KiB
Python
# backend/main.py
|
|
import sys
|
|
import os
|
|
|
|
# Ajoutez le répertoire parent du fichier actuel (qui est 'backend/') au PYTHONPATH
|
|
# Cela permet d'importer des modules depuis 'backend.services', 'backend.routers', etc.
|
|
# sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
|
|
sys.path.insert(0, os.path.abspath(os.path.dirname(__file__)))
|
|
|
|
# AJOUTEZ CETTE LIGNE TEMPORAIREMENT POUR LE DEBUG
|
|
print(f"DEBUG: sys.path = {sys.path}")
|
|
# FIN DE L'AJOUT TEMPORAIRE
|
|
|
|
|
|
# Le reste de vos imports
|
|
from fastapi import FastAPI
|
|
from contextlib import asynccontextmanager
|
|
from core.database import Base, engine
|
|
from models import user
|
|
from models import document
|
|
from models import ai_interaction
|
|
from routers import auth
|
|
from routers import document as document_router
|
|
from routers import ai as ai_router
|
|
from routers import france_travail_offers
|
|
|
|
# Cette fonction sera appelée au démarrage et à l'arrêt de l'application
|
|
@asynccontextmanager
|
|
async def lifespan(app: FastAPI):
|
|
print("L'application démarre. Les migrations de DB sont gérées par Alembic.")
|
|
yield
|
|
print("L'application s'arrête.")
|
|
|
|
app = FastAPI(
|
|
title="Allons-y API",
|
|
description="API pour l'assistant de candidature basé sur l'IA.",
|
|
version="0.1.0",
|
|
lifespan=lifespan,
|
|
openapi_tags=[
|
|
{"name": "Authentication", "description": "Opérations liées à l'authentification des utilisateurs."},
|
|
{"name": "Documents", "description": "Gestion des CVs et autres documents de l'utilisateur."},
|
|
{"name": "Offers (France Travail)", "description": "Recherche et consultation des offres d'emploi via l'API France Travail."}, # <-- NOUVELLE SECTION TAG
|
|
{"name": "AI Analysis", "description": "Endpoints pour l'analyse IA de CVs et offres d'emploi."},
|
|
]
|
|
)
|
|
|
|
# Inclure les routeurs
|
|
app.include_router(auth.router)
|
|
app.include_router(document_router.router)
|
|
app.include_router(ai_router.router)
|
|
app.include_router(france_travail_offers.router, prefix="/france-travail/offers", tags=["Offers (France Travail)"])
|
|
|
|
@app.get("/")
|
|
async def read_root():
|
|
return {"message": "Bienvenue sur l'API Allons-y Alonzo!"} |