SamiKLN commited on
Commit
bfcdd10
·
verified ·
1 Parent(s): ccf72f9

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +29 -23
main.py CHANGED
@@ -14,6 +14,16 @@ import pandas as pd
14
  from docx import Document
15
  from pptx import Presentation
16
 
 
 
 
 
 
 
 
 
 
 
17
  # Initialisation de l'application FastAPI
18
  app = FastAPI()
19
 
@@ -29,22 +39,18 @@ app.add_middleware(
29
  # Chemins des fichiers
30
  BASE_DIR = Path(__file__).parent
31
  UPLOAD_FOLDER = BASE_DIR / "uploads"
32
- LOGS_DIR = BASE_DIR / "logs"
33
 
34
- # Création des répertoires nécessaires avec les permissions appropriées
35
- os.makedirs(UPLOAD_FOLDER, exist_ok=True)
36
- os.makedirs(LOGS_DIR, exist_ok=True)
37
-
38
- # Configuration du logging avec le nouveau répertoire de logs
39
- logging.basicConfig(
40
- level=logging.INFO,
41
- format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
42
- handlers=[
43
- logging.FileHandler(LOGS_DIR / "app.log"),
44
- logging.StreamHandler()
45
- ]
46
- )
47
- logger = logging.getLogger(__name__)
48
 
49
  # Configuration des modèles Hugging Face
50
  HF_TOKEN = os.getenv("HF_TOKEN", "votre_token_ici")
@@ -94,12 +100,8 @@ async def read_root():
94
 
95
  @app.get("/logs")
96
  async def get_logs():
97
- """Endpoint pour récupérer les logs"""
98
- try:
99
- with open(LOGS_DIR / "app.log", "r") as f:
100
- return {"logs": f.read()}
101
- except FileNotFoundError:
102
- raise HTTPException(404, "Aucun log disponible")
103
 
104
  # Fonctions utilitaires
105
  def extract_text_from_pdf(file_path: str) -> str:
@@ -259,11 +261,15 @@ Fournissez une réponse précise et concise. [/INST]"""
259
  logger.error(f"QA error: {e}")
260
  raise HTTPException(500, f"Erreur de réponse: {str(e)}")
261
 
262
- # Montage des fichiers statiques
263
- app.mount("/static", StaticFiles(directory="static"), name="static")
 
 
 
264
 
265
  if __name__ == "__main__":
266
  import uvicorn
 
267
  uvicorn.run(
268
  "main:app",
269
  host="0.0.0.0",
 
14
  from docx import Document
15
  from pptx import Presentation
16
 
17
+ # Configuration du logging vers stdout seulement
18
+ logging.basicConfig(
19
+ level=logging.INFO,
20
+ format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
21
+ handlers=[
22
+ logging.StreamHandler() # Log uniquement vers stdout
23
+ ]
24
+ )
25
+ logger = logging.getLogger(__name__)
26
+
27
  # Initialisation de l'application FastAPI
28
  app = FastAPI()
29
 
 
39
  # Chemins des fichiers
40
  BASE_DIR = Path(__file__).parent
41
  UPLOAD_FOLDER = BASE_DIR / "uploads"
 
42
 
43
+ # Tentative de création du répertoire uploads s'il n'existe pas déjà
44
+ # avec gestion des erreurs de permission
45
+ try:
46
+ os.makedirs(UPLOAD_FOLDER, exist_ok=True)
47
+ logger.info(f"Répertoire d'upload créé: {UPLOAD_FOLDER}")
48
+ except PermissionError:
49
+ # Fallback to a temporary directory if /app is not writable
50
+ import tempfile
51
+ UPLOAD_FOLDER = Path(tempfile.gettempdir()) / "uploads"
52
+ os.makedirs(UPLOAD_FOLDER, exist_ok=True)
53
+ logger.warning(f"Permission refusée pour créer {BASE_DIR / 'uploads'}, utilisation du répertoire temporaire: {UPLOAD_FOLDER}")
 
 
 
54
 
55
  # Configuration des modèles Hugging Face
56
  HF_TOKEN = os.getenv("HF_TOKEN", "votre_token_ici")
 
100
 
101
  @app.get("/logs")
102
  async def get_logs():
103
+ """Endpoint pour récupérer les logs (maintenant retourne un message informatif)"""
104
+ return {"message": "Les logs sont uniquement disponibles via stdout dans cette configuration"}
 
 
 
 
105
 
106
  # Fonctions utilitaires
107
  def extract_text_from_pdf(file_path: str) -> str:
 
261
  logger.error(f"QA error: {e}")
262
  raise HTTPException(500, f"Erreur de réponse: {str(e)}")
263
 
264
+ # Montage des fichiers statiques (avec gestion d'erreur)
265
+ try:
266
+ app.mount("/static", StaticFiles(directory="static"), name="static")
267
+ except Exception as e:
268
+ logger.warning(f"Impossible de monter le répertoire statique: {e}")
269
 
270
  if __name__ == "__main__":
271
  import uvicorn
272
+ logger.info(f"Démarrage de l'application avec répertoire d'uploads: {UPLOAD_FOLDER}")
273
  uvicorn.run(
274
  "main:app",
275
  host="0.0.0.0",