Spaces:
Sleeping
Sleeping
Update src/services/cv_service.py
Browse files- src/services/cv_service.py +12 -3
src/services/cv_service.py
CHANGED
|
@@ -6,13 +6,13 @@ from typing import Dict, Any, List
|
|
| 6 |
from src.config import load_pdf
|
| 7 |
from src.agents.cv_agents import CVAgentOrchestrator
|
| 8 |
from src.agents.scoring_agent import SimpleScoringAgent
|
|
|
|
|
|
|
| 9 |
|
| 10 |
logger = logging.getLogger(__name__)
|
| 11 |
|
| 12 |
async def parse_cv(pdf_path: str) -> Dict[str, Any]:
|
| 13 |
-
|
| 14 |
-
# For simplicity, initializing them here. In a real app, consider dependency injection.
|
| 15 |
-
orchestrator = CVAgentOrchestrator(llm=None) # LLM will be passed to agents directly
|
| 16 |
scoring_agent = SimpleScoringAgent()
|
| 17 |
cv_text = load_pdf(pdf_path)
|
| 18 |
if not cv_text or not cv_text.strip():
|
|
@@ -38,7 +38,16 @@ async def parse_cv(pdf_path: str) -> Dict[str, Any]:
|
|
| 38 |
else:
|
| 39 |
logger.warning("No skill levels calculated, adding empty analysis")
|
| 40 |
cv_data["candidat"]["analyse_competences"] = []
|
|
|
|
|
|
|
|
|
|
|
|
|
| 41 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 42 |
return cv_data
|
| 43 |
|
| 44 |
def _create_fallback_data() -> Dict[str, Any]:
|
|
|
|
| 6 |
from src.config import load_pdf
|
| 7 |
from src.agents.cv_agents import CVAgentOrchestrator
|
| 8 |
from src.agents.scoring_agent import SimpleScoringAgent
|
| 9 |
+
from src.agents.analysis_agent import AnalysisAgent
|
| 10 |
+
|
| 11 |
|
| 12 |
logger = logging.getLogger(__name__)
|
| 13 |
|
| 14 |
async def parse_cv(pdf_path: str) -> Dict[str, Any]:
|
| 15 |
+
orchestrator = CVAgentOrchestrator(llm=None)
|
|
|
|
|
|
|
| 16 |
scoring_agent = SimpleScoringAgent()
|
| 17 |
cv_text = load_pdf(pdf_path)
|
| 18 |
if not cv_text or not cv_text.strip():
|
|
|
|
| 38 |
else:
|
| 39 |
logger.warning("No skill levels calculated, adding empty analysis")
|
| 40 |
cv_data["candidat"]["analyse_competences"] = []
|
| 41 |
+
|
| 42 |
+
logger.info("Lancement de l'analyse enrichie du profil...")
|
| 43 |
+
analysis_agent = AnalysisAgent()
|
| 44 |
+
enriched_analysis = analysis_agent.analyze_candidate(cv_data)
|
| 45 |
|
| 46 |
+
if enriched_analysis:
|
| 47 |
+
cv_data["candidat"]["analyse_globale"] = enriched_analysis
|
| 48 |
+
logger.info("Analyse enrichie ajoutée avec succès")
|
| 49 |
+
else:
|
| 50 |
+
logger.warning("Aucune analyse enrichie générée")
|
| 51 |
return cv_data
|
| 52 |
|
| 53 |
def _create_fallback_data() -> Dict[str, Any]:
|