Spaces:
Sleeping
Sleeping
Update tools/analysis_tools.py
Browse files- 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 |
-
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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."
|