QuentinL52 commited on
Commit
30d70f7
·
verified ·
1 Parent(s): f9e10a2

Update src/cv_parsing_agents.py

Browse files
Files changed (1) hide show
  1. src/cv_parsing_agents.py +1 -22
src/cv_parsing_agents.py CHANGED
@@ -7,7 +7,6 @@ import logging
7
 
8
  logger = logging.getLogger(__name__)
9
 
10
- # Gestion des imports avec fallback
11
  try:
12
  from src.crew.crew_pool import analyse_cv
13
  CREW_POOL_AVAILABLE = True
@@ -27,15 +26,7 @@ except ImportError as e:
27
  load_pdf = None
28
 
29
  def clean_dict_keys(data):
30
- """
31
- Nettoie les clés d'un dictionnaire en les convertissant en string.
32
-
33
- Args:
34
- data: Données à nettoyer (dict, list, ou autre)
35
-
36
- Returns:
37
- Données nettoyées avec des clés string
38
- """
39
  if isinstance(data, dict):
40
  return {str(key): clean_dict_keys(value) for key, value in data.items()}
41
  elif isinstance(data, list):
@@ -44,12 +35,6 @@ def clean_dict_keys(data):
44
  return data
45
 
46
  class CvParserAgent:
47
- """
48
- Agent de parsing de CV utilisant CrewAI.
49
-
50
- Cette classe traite un fichier PDF de CV et en extrait les informations
51
- structurées (compétences, expériences, formations, etc.)
52
- """
53
  def __init__(self, pdf_path: str):
54
  if not pdf_path or not isinstance(pdf_path, str):
55
  raise ValueError("Le chemin du fichier PDF doit être une chaîne non vide")
@@ -67,7 +52,6 @@ class CvParserAgent:
67
  if not CREW_POOL_AVAILABLE or not CONFIG_AVAILABLE:
68
  logger.error("Dépendances manquantes pour le traitement complet")
69
  return self._create_fallback_data()
70
-
71
  try:
72
  cv_text_content = load_pdf(self.pdf_path)
73
  if not cv_text_content or not cv_text_content.strip():
@@ -79,14 +63,9 @@ class CvParserAgent:
79
  if not crew_output or not hasattr(crew_output, 'raw') or not crew_output.raw.strip():
80
  logger.error("L'analyse par le crew n'a pas retourné de résultat.")
81
  return self._create_fallback_data()
82
-
83
  raw_string = crew_output.raw
84
  logger.info(f"Résultat brut du crew: {raw_string[:200]}...")
85
-
86
- # Nettoyer le JSON si nécessaire
87
  json_string_cleaned = self._clean_json_string(raw_string)
88
-
89
- # Parser le JSON
90
  profile_data = json.loads(json_string_cleaned)
91
  logger.info("Parsing JSON réussi")
92
 
 
7
 
8
  logger = logging.getLogger(__name__)
9
 
 
10
  try:
11
  from src.crew.crew_pool import analyse_cv
12
  CREW_POOL_AVAILABLE = True
 
26
  load_pdf = None
27
 
28
  def clean_dict_keys(data):
29
+
 
 
 
 
 
 
 
 
30
  if isinstance(data, dict):
31
  return {str(key): clean_dict_keys(value) for key, value in data.items()}
32
  elif isinstance(data, list):
 
35
  return data
36
 
37
  class CvParserAgent:
 
 
 
 
 
 
38
  def __init__(self, pdf_path: str):
39
  if not pdf_path or not isinstance(pdf_path, str):
40
  raise ValueError("Le chemin du fichier PDF doit être une chaîne non vide")
 
52
  if not CREW_POOL_AVAILABLE or not CONFIG_AVAILABLE:
53
  logger.error("Dépendances manquantes pour le traitement complet")
54
  return self._create_fallback_data()
 
55
  try:
56
  cv_text_content = load_pdf(self.pdf_path)
57
  if not cv_text_content or not cv_text_content.strip():
 
63
  if not crew_output or not hasattr(crew_output, 'raw') or not crew_output.raw.strip():
64
  logger.error("L'analyse par le crew n'a pas retourné de résultat.")
65
  return self._create_fallback_data()
 
66
  raw_string = crew_output.raw
67
  logger.info(f"Résultat brut du crew: {raw_string[:200]}...")
 
 
68
  json_string_cleaned = self._clean_json_string(raw_string)
 
 
69
  profile_data = json.loads(json_string_cleaned)
70
  logger.info("Parsing JSON réussi")
71