Yassine Mhirsi commited on
Commit
5eb5350
·
1 Parent(s): 06928e7

fix: Update error logging for route loading failures and enhance route debugging with detailed logging of available routes

Browse files
Files changed (3) hide show
  1. main.py +10 -2
  2. routes/__init__.py +1 -1
  3. routes/analysis.py +3 -3
main.py CHANGED
@@ -214,8 +214,14 @@ try:
214
  from routes import api_router
215
  app.include_router(api_router, prefix="/api/v1")
216
  logger.info("✓ Routes API principales chargées")
 
 
 
 
217
  except ImportError as e:
218
- logger.warning(f"⚠ Routes API principales non trouvées: {e}")
 
 
219
  # Fallback
220
  try:
221
  from routes.label import router as kpa_router
@@ -226,7 +232,9 @@ except ImportError as e:
226
  except ImportError:
227
  logger.warning("⚠ Fallback pour KPA/Stance échoué")
228
  except Exception as e:
229
- logger.warning(f"⚠ Échec chargement routes API principales: {e}")
 
 
230
 
231
  # MCP Routes - Routes FastAPI pour Swagger UI + mount pour compatibilité MCP
232
  if MCP_ENABLED:
 
214
  from routes import api_router
215
  app.include_router(api_router, prefix="/api/v1")
216
  logger.info("✓ Routes API principales chargées")
217
+ # Log all routes for debugging
218
+ for route in api_router.routes:
219
+ if hasattr(route, 'path'):
220
+ logger.info(f" - Route: {route.path} (methods: {getattr(route, 'methods', 'N/A')})")
221
  except ImportError as e:
222
+ logger.error(f"⚠ Routes API principales non trouvées: {e}")
223
+ import traceback
224
+ logger.error(traceback.format_exc())
225
  # Fallback
226
  try:
227
  from routes.label import router as kpa_router
 
232
  except ImportError:
233
  logger.warning("⚠ Fallback pour KPA/Stance échoué")
234
  except Exception as e:
235
+ logger.error(f"⚠ Échec chargement routes API principales: {e}")
236
+ import traceback
237
+ logger.error(traceback.format_exc())
238
 
239
  # MCP Routes - Routes FastAPI pour Swagger UI + mount pour compatibilité MCP
240
  if MCP_ENABLED:
routes/__init__.py CHANGED
@@ -14,7 +14,7 @@ api_router.include_router(label.router, prefix="/label")
14
  api_router.include_router(generate.router, prefix="/generate")
15
  api_router.include_router(topic.router, prefix="/topic")
16
  api_router.include_router(user.router, prefix="/user")
17
- api_router.include_router(analysis.router, prefix="analyse")
18
  api_router.include_router(audio_router)
19
 
20
  __all__ = ["api_router"]
 
14
  api_router.include_router(generate.router, prefix="/generate")
15
  api_router.include_router(topic.router, prefix="/topic")
16
  api_router.include_router(user.router, prefix="/user")
17
+ api_router.include_router(analysis.router, prefix="/analyse")
18
  api_router.include_router(audio_router)
19
 
20
  __all__ = ["api_router"]
routes/analysis.py CHANGED
@@ -1,7 +1,7 @@
1
  """Analysis endpoints for processing arguments, extracting topics, and predicting stance"""
2
 
3
  from fastapi import APIRouter, HTTPException, Header, UploadFile, File
4
- from typing import Optional
5
  import logging
6
  import csv
7
  import io
@@ -69,7 +69,7 @@ def parse_csv_file(file_content: bytes) -> List[str]:
69
  raise ValueError(f"Failed to parse CSV file: {str(e)}")
70
 
71
 
72
- @router.post("/stance", response_model=AnalysisResponse, tags=["Analysis"])
73
  async def analyse_arguments(
74
  request: Optional[AnalysisRequest] = None,
75
  file: Optional[UploadFile] = File(None),
@@ -146,7 +146,7 @@ async def analyse_arguments(
146
  raise HTTPException(status_code=500, detail=f"Analysis failed: {str(e)}")
147
 
148
 
149
- @router.get("/stance", response_model=GetAnalysisResponse, tags=["Analysis"])
150
  async def get_analysis_results(
151
  limit: int = 100,
152
  offset: int = 0,
 
1
  """Analysis endpoints for processing arguments, extracting topics, and predicting stance"""
2
 
3
  from fastapi import APIRouter, HTTPException, Header, UploadFile, File
4
+ from typing import Optional, List
5
  import logging
6
  import csv
7
  import io
 
69
  raise ValueError(f"Failed to parse CSV file: {str(e)}")
70
 
71
 
72
+ @router.post("", response_model=AnalysisResponse, tags=["Analysis"])
73
  async def analyse_arguments(
74
  request: Optional[AnalysisRequest] = None,
75
  file: Optional[UploadFile] = File(None),
 
146
  raise HTTPException(status_code=500, detail=f"Analysis failed: {str(e)}")
147
 
148
 
149
+ @router.get("", response_model=GetAnalysisResponse, tags=["Analysis"])
150
  async def get_analysis_results(
151
  limit: int = 100,
152
  offset: int = 0,