QuentinL52 commited on
Commit
ae434c1
·
verified ·
1 Parent(s): 0bd8472

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +16 -3
main.py CHANGED
@@ -84,17 +84,30 @@ class MongoJSONEncoder(json.JSONEncoder):
84
  return super().default(o)
85
 
86
 
87
- @app.post("/api/v1/simulate-interview/")
88
  async def simulate_interview(request: Request):
 
 
 
 
89
  try:
90
  payload = await request.json()
 
 
 
91
  processor = GraphInterviewProcessor(payload)
92
  result = processor.invoke(payload.get("messages", []))
93
  return JSONResponse(content=result)
94
 
 
 
 
95
  except Exception as e:
96
- logger.error(f"Error in simulate-interview endpoint: {e}", exc_info=True)
97
- return JSONResponse(content={"error": str(e)}, status_code=500)
 
 
 
98
 
99
  @app.post("/parse-cv/", tags=["CV Parsing"])
100
  async def parse_cv(file: UploadFile = File(...)):
 
84
  return super().default(o)
85
 
86
 
87
+ @app.post("/simulate-interview/")
88
  async def simulate_interview(request: Request):
89
+ """
90
+ Ce endpoint reçoit les données de l'entretien, instancie le processeur de graphe
91
+ et lance la conversation.
92
+ """
93
  try:
94
  payload = await request.json()
95
+ if not all(k in payload for k in ["user_id", "job_offer_id", "cv_document", "job_offer"]):
96
+ raise HTTPException(status_code=400, detail="Données manquantes dans le payload (user_id, job_offer_id, cv_document, job_offer).")
97
+ logger.info(f"Début de la simulation pour l'utilisateur : {payload['user_id']}")
98
  processor = GraphInterviewProcessor(payload)
99
  result = processor.invoke(payload.get("messages", []))
100
  return JSONResponse(content=result)
101
 
102
+ except ValueError as ve:
103
+ logger.error(f"Erreur de validation des données : {ve}", exc_info=True)
104
+ return JSONResponse(content={"error": str(ve)}, status_code=400)
105
  except Exception as e:
106
+ logger.error(f"Erreur interne dans le endpoint simulate-interview: {e}", exc_info=True)
107
+ return JSONResponse(
108
+ content={"error": "Une erreur interne est survenue sur le serveur de l'assistant."},
109
+ status_code=500
110
+ )
111
 
112
  @app.post("/parse-cv/", tags=["CV Parsing"])
113
  async def parse_cv(file: UploadFile = File(...)):