mirror of
https://github.com/Ladebeze66/llm_ticket3.git
synced 2025-12-16 07:27:49 +01:00
48 lines
2.0 KiB
Plaintext
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 |