llm_ticket3/agents/agent_report_generator.py.backup
2025-04-06 16:51:34 +02:00

48 lines
2.0 KiB
Plaintext

import json
from .base_agent import BaseAgent
from datetime import datetime
from typing import Dict, Any, Tuple
class AgentReportGenerator(BaseAgent):
"""
Agent pour générer un rapport à partir des informations collectées.
"""
def __init__(self, llm):
super().__init__("AgentReportGenerator", llm, "report_generator")
def executer(self, rapport_data: Dict, filename: str) -> Tuple[str, str]:
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
# Ajouter les métadonnées des LLM utilisés
if "metadata" not in rapport_data:
rapport_data["metadata"] = {}
rapport_data["metadata"]["report_generator"] = {
"model": getattr(self.llm, "modele", str(type(self.llm))),
"configuration": self.config.to_dict()
}
# Sauvegarde JSON
json_path = f"../reports/json_reports/{filename}_{timestamp}.json"
with open(json_path, "w", encoding="utf-8") as f_json:
json.dump(rapport_data, f_json, ensure_ascii=False, indent=4)
# Sauvegarde Markdown
md_path = f"../reports/markdown_reports/{filename}_{timestamp}.md"
with open(md_path, "w", encoding="utf-8") as f_md:
f_md.write(f"# Rapport {filename}\n\n")
# Ajouter les métadonnées des modèles utilisés
if "metadata" in rapport_data:
f_md.write("## Modèles et paramètres utilisés\n\n")
f_md.write("```json\n")
f_md.write(json.dumps(rapport_data["metadata"], indent=2))
f_md.write("\n```\n\n")
# Ajouter le contenu du rapport
for key, value in rapport_data.items():
if key != "metadata": # Ignorer la section metadata déjà traitée
f_md.write(f"## {key.capitalize()}\n{value}\n\n")
self.ajouter_historique("generation_rapport", filename, "Rapport généré")
return json_path, md_path