mirror of
https://github.com/Ladebeze66/llm_ticket3.git
synced 2025-12-13 15:56: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]]:
|
||||
"""
|
||||
Cherche les rapports disponibles (JSON et/ou MD) pour un ticket
|
||||
|
||||
Args:
|
||||
extraction_path: Chemin vers l'extraction
|
||||
ticket_id: ID du ticket
|
||||
|
||||
Returns:
|
||||
Dictionnaire avec {"json": chemin_json, "markdown": chemin_md}
|
||||
Cherche le rapport JSON.
|
||||
"""
|
||||
# Utiliser la méthode du TicketDataLoader pour trouver les fichiers
|
||||
result = self.ticket_loader.trouver_ticket(extraction_path, ticket_id)
|
||||
|
||||
# S'assurer que nous avons un dictionnaire avec la structure correcte
|
||||
rapports: Dict[str, Optional[str]] = {"json": None, "markdown": None} if result is None else result
|
||||
|
||||
# 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
|
||||
if not result or not result.get("json"):
|
||||
logger.warning(f"Aucun fichier JSON trouvé pour le ticket {ticket_id}")
|
||||
return {"json": None}
|
||||
return {"json": result.get("json")}
|
||||
|
||||
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]:
|
||||
"""
|
||||
Prépare les données du ticket à partir des rapports trouvés (JSON et/ou MD)
|
||||
|
||||
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é
|
||||
Prépare les données du ticket à partir du rapport trouvé (JSON)
|
||||
"""
|
||||
ticket_data = None
|
||||
|
||||
# Si aucun rapport n'est trouvé
|
||||
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)
|
||||
# Charger le fichier JSON
|
||||
if rapports.get("json") and rapports["json"] is not None:
|
||||
try:
|
||||
ticket_data = self.ticket_loader.charger(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
|
||||
if ticket_data and "metadata" not in ticket_data:
|
||||
if "metadata" not in ticket_data:
|
||||
ticket_data["metadata"] = {}
|
||||
if ticket_data:
|
||||
ticket_data["metadata"]["format_source"] = "json"
|
||||
ticket_data["metadata"]["format_source"] = "json"
|
||||
except Exception as e:
|
||||
logger.error(f"Erreur lors du chargement du JSON: {e}")
|
||||
print(f" ERREUR: Impossible de charger le fichier JSON: {e}")
|
||||
|
||||
# Fallback sur le Markdown uniquement si JSON non disponible
|
||||
if not ticket_data and rapports.get("markdown") and rapports["markdown"] is not None:
|
||||
try:
|
||||
# Utiliser le loader pour charger les données depuis le Markdown
|
||||
ticket_data = self.ticket_loader.charger(rapports["markdown"])
|
||||
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
|
||||
print(f" ERREUR: Impossible de charger le fichier JSON: {e}")
|
||||
return None
|
||||
|
||||
else:
|
||||
logger.warning(f"Aucun fichier JSON trouvé pour le ticket {ticket_id}")
|
||||
print(f" ERREUR: Aucun fichier JSON trouvé pour le ticket {ticket_id}")
|
||||
return None
|
||||
|
||||
def _get_timestamp(self) -> str:
|
||||
"""Retourne un timestamp au format YYYYMMDD_HHMMSS"""
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user