mirror of
https://github.com/Ladebeze66/llm_ticket3.git
synced 2025-12-15 21:26:50 +01:00
1804-10:15
This commit is contained in:
parent
7847829bfc
commit
d6e27dc18c
@ -98,34 +98,13 @@ class Orchestrator:
|
|||||||
|
|
||||||
def trouver_rapport(self, extraction_path: str, ticket_id: str) -> Dict[str, Optional[str]]:
|
def trouver_rapport(self, extraction_path: str, ticket_id: str) -> Dict[str, Optional[str]]:
|
||||||
"""
|
"""
|
||||||
Cherche les rapports disponibles (JSON et/ou MD) pour un ticket
|
Cherche le rapport JSON.
|
||||||
|
|
||||||
Args:
|
|
||||||
extraction_path: Chemin vers l'extraction
|
|
||||||
ticket_id: ID du ticket
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
Dictionnaire avec {"json": chemin_json, "markdown": chemin_md}
|
|
||||||
"""
|
"""
|
||||||
# Utiliser la méthode du TicketDataLoader pour trouver les fichiers
|
|
||||||
result = self.ticket_loader.trouver_ticket(extraction_path, ticket_id)
|
result = self.ticket_loader.trouver_ticket(extraction_path, ticket_id)
|
||||||
|
if not result or not result.get("json"):
|
||||||
# S'assurer que nous avons un dictionnaire avec la structure correcte
|
logger.warning(f"Aucun fichier JSON trouvé pour le ticket {ticket_id}")
|
||||||
rapports: Dict[str, Optional[str]] = {"json": None, "markdown": None} if result is None else result
|
return {"json": None}
|
||||||
|
return {"json": result.get("json")}
|
||||||
# Si on a un JSON mais pas de Markdown, générer le Markdown à partir du JSON
|
|
||||||
json_path = rapports.get("json")
|
|
||||||
if json_path and not rapports.get("markdown"):
|
|
||||||
logger.info(f"Rapport JSON trouvé sans Markdown correspondant, génération du Markdown: {json_path}")
|
|
||||||
|
|
||||||
md_path = generer_rapport_markdown(json_path, True)
|
|
||||||
if md_path:
|
|
||||||
rapports["markdown"] = md_path
|
|
||||||
logger.info(f"Markdown généré avec succès: {md_path}")
|
|
||||||
else:
|
|
||||||
logger.warning(f"Erreur lors de la génération du Markdown")
|
|
||||||
|
|
||||||
return rapports
|
|
||||||
|
|
||||||
def executer(self, ticket_specifique: Optional[str] = None):
|
def executer(self, ticket_specifique: Optional[str] = None):
|
||||||
"""
|
"""
|
||||||
@ -383,58 +362,30 @@ class Orchestrator:
|
|||||||
|
|
||||||
def _preparer_donnees_ticket(self, rapports: Dict[str, Optional[str]], ticket_id: str) -> Optional[Dict]:
|
def _preparer_donnees_ticket(self, rapports: Dict[str, Optional[str]], ticket_id: str) -> Optional[Dict]:
|
||||||
"""
|
"""
|
||||||
Prépare les données du ticket à partir des rapports trouvés (JSON et/ou MD)
|
Prépare les données du ticket à partir du rapport trouvé (JSON)
|
||||||
|
|
||||||
Args:
|
|
||||||
rapports: Dictionnaire avec les chemins des rapports JSON et MD
|
|
||||||
ticket_id: ID du ticket
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
Dictionnaire avec les données du ticket, ou None si aucun rapport n'est trouvé
|
|
||||||
"""
|
"""
|
||||||
ticket_data = None
|
ticket_data = None
|
||||||
|
|
||||||
# Si aucun rapport n'est trouvé
|
# Charger le fichier JSON
|
||||||
if not rapports or (not rapports.get("json") and not rapports.get("markdown")):
|
|
||||||
logger.warning(f"Aucun rapport trouvé pour le ticket {ticket_id}")
|
|
||||||
return None
|
|
||||||
|
|
||||||
# Privilégier le format JSON (format principal)
|
|
||||||
if rapports.get("json") and rapports["json"] is not None:
|
if rapports.get("json") and rapports["json"] is not None:
|
||||||
try:
|
try:
|
||||||
ticket_data = self.ticket_loader.charger(rapports["json"])
|
ticket_data = self.ticket_loader.charger(rapports["json"])
|
||||||
logger.info(f"Données JSON chargées depuis: {rapports['json']}")
|
logger.info(f"Données JSON chargées depuis: {rapports['json']}")
|
||||||
print(f" Rapport JSON chargé: {os.path.basename(rapports['json'])}")
|
print(f" Rapport JSON chargé: {os.path.basename(rapports['json'])}")
|
||||||
|
|
||||||
# Ajouter une métadonnée sur le format source
|
# Ajouter une métadonnée sur le format source
|
||||||
if ticket_data and "metadata" not in ticket_data:
|
if "metadata" not in ticket_data:
|
||||||
ticket_data["metadata"] = {}
|
ticket_data["metadata"] = {}
|
||||||
if ticket_data:
|
ticket_data["metadata"]["format_source"] = "json"
|
||||||
ticket_data["metadata"]["format_source"] = "json"
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"Erreur lors du chargement du JSON: {e}")
|
logger.error(f"Erreur lors du chargement du JSON: {e}")
|
||||||
print(f" ERREUR: Impossible de charger le fichier JSON: {e}")
|
print(f" ERREUR: Impossible de charger le fichier JSON: {e}")
|
||||||
|
return None
|
||||||
# Fallback sur le Markdown uniquement si JSON non disponible
|
|
||||||
if not ticket_data and rapports.get("markdown") and rapports["markdown"] is not None:
|
else:
|
||||||
try:
|
logger.warning(f"Aucun fichier JSON trouvé pour le ticket {ticket_id}")
|
||||||
# Utiliser le loader pour charger les données depuis le Markdown
|
print(f" ERREUR: Aucun fichier JSON trouvé pour le ticket {ticket_id}")
|
||||||
ticket_data = self.ticket_loader.charger(rapports["markdown"])
|
return None
|
||||||
logger.info(f"Données Markdown chargées depuis: {rapports['markdown']} (fallback)")
|
|
||||||
print(f" Rapport Markdown chargé (fallback): {os.path.basename(rapports['markdown'])}")
|
|
||||||
# Ajouter une métadonnée sur le format source
|
|
||||||
if ticket_data and "metadata" not in ticket_data:
|
|
||||||
ticket_data["metadata"] = {}
|
|
||||||
if ticket_data:
|
|
||||||
ticket_data["metadata"]["format_source"] = "markdown"
|
|
||||||
except Exception as e:
|
|
||||||
logger.error(f"Erreur lors du chargement du Markdown: {e}")
|
|
||||||
print(f" ERREUR: Impossible de charger le fichier Markdown: {e}")
|
|
||||||
|
|
||||||
# Assurer que l'ID du ticket est correct
|
|
||||||
if ticket_data:
|
|
||||||
ticket_data["code"] = ticket_id
|
|
||||||
|
|
||||||
return ticket_data
|
|
||||||
|
|
||||||
def _get_timestamp(self) -> str:
|
def _get_timestamp(self) -> str:
|
||||||
"""Retourne un timestamp au format YYYYMMDD_HHMMSS"""
|
"""Retourne un timestamp au format YYYYMMDD_HHMMSS"""
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user