QuentinL52 commited on
Commit
516d7a6
·
verified ·
1 Parent(s): 2c95b57

Update tools/analysis_tools.py

Browse files
Files changed (1) hide show
  1. tools/analysis_tools.py +18 -5
tools/analysis_tools.py CHANGED
@@ -2,9 +2,13 @@ import logging
2
  from langchain_core.tools import tool
3
  from src.services.analysis_service import AnalysisService
4
  import json
 
 
5
  from pydantic.v1 import BaseModel, Field
6
  from typing import List, Dict, Any
7
  from src.models import load_all_models
 
 
8
  logging.basicConfig(level=logging.INFO)
9
  logger = logging.getLogger(__name__)
10
 
@@ -26,18 +30,27 @@ def trigger_interview_analysis(user_id: str, job_offer_id: str, job_description:
26
  if '@' in user_id or ' ' in job_offer_id:
27
  logger.error(f"Appel de l'outil avec des données invalides. User ID: {user_id}, Job Offer ID: {job_offer_id}")
28
  return "Erreur: Appel de l'outil avec des paramètres invalides. L'analyse n'a pas pu être lancée."
 
 
 
 
29
  models = load_all_models()
30
  analysis_service = AnalysisService(models=models)
31
  feedback_data = analysis_service.run_analysis(
32
  conversation_history=conversation_history,
33
  job_description=job_description
34
  )
35
- feedback_path = f"/tmp/feedbacks/{user_id}.json"
36
- with open(feedback_path, "w", encoding="utf-8") as f:
37
- json.dump({"status": "completed", "feedback_data": feedback_data}, f, ensure_ascii=False, indent=4)
38
- logger.info(f"Analyse pour l'utilisateur {user_id} terminée et sauvegardée dans {feedback_path}.")
 
 
 
 
 
39
  return "L'analyse a été déclenchée et terminée avec succès."
40
 
41
  except Exception as e:
42
  logger.error(f"Erreur dans l'outil d'analyse : {e}", exc_info=True)
43
- return "Une erreur est survenue lors du lancement de l'analyse."
 
2
  from langchain_core.tools import tool
3
  from src.services.analysis_service import AnalysisService
4
  import json
5
+ import os
6
+ from datetime import datetime
7
  from pydantic.v1 import BaseModel, Field
8
  from typing import List, Dict, Any
9
  from src.models import load_all_models
10
+ from pymongo import MongoClient
11
+
12
  logging.basicConfig(level=logging.INFO)
13
  logger = logging.getLogger(__name__)
14
 
 
30
  if '@' in user_id or ' ' in job_offer_id:
31
  logger.error(f"Appel de l'outil avec des données invalides. User ID: {user_id}, Job Offer ID: {job_offer_id}")
32
  return "Erreur: Appel de l'outil avec des paramètres invalides. L'analyse n'a pas pu être lancée."
33
+ mongo_client = MongoClient(os.getenv("MONGO_URI"))
34
+ db = mongo_client[os.getenv("MONGO_DB_NAME")]
35
+ collection = db[os.getenv("MONGO_INTERVIEW_COLLECTION")]
36
+
37
  models = load_all_models()
38
  analysis_service = AnalysisService(models=models)
39
  feedback_data = analysis_service.run_analysis(
40
  conversation_history=conversation_history,
41
  job_description=job_description
42
  )
43
+ mongo_document = {
44
+ "user_id": user_id,
45
+ "job_offer_id": job_offer_id,
46
+ "feedback_data": feedback_data,
47
+ "updated_at": datetime.utcnow()
48
+ }
49
+ result = collection.insert_one(mongo_document)
50
+ logger.info(f"Analyse pour l'utilisateur {user_id} terminée et sauvegardée dans MongoDB avec l'ID: {result.inserted_id}")
51
+
52
  return "L'analyse a été déclenchée et terminée avec succès."
53
 
54
  except Exception as e:
55
  logger.error(f"Erreur dans l'outil d'analyse : {e}", exc_info=True)
56
+ return "Une erreur est survenue lors du lancement de l'analyse."