from langchain_core.messages import HumanMessage from workflow_Agent import app import os import glob # --- Préparation de l'environnement --- output_dir = "outputs" if not os.path.exists(output_dir): os.makedirs(output_dir) # Nettoyage des anciens graphiques pour ne pas mélanger les analyses for f in glob.glob(os.path.join(output_dir, "*")): os.remove(f) if __name__ == "__main__": inputs = { #"messages" : [HumanMessage("Je veux un fichier excel qui stock les equiquipe restant acteuellemet en champions league (huitiemme final 2026) , avec leur dernier resultats et le prochain adversaire et des infos supplimentaire en relation avec se sujet ")], #"messages" : [HumanMessage("Je veux un fichier excel ou y'a un tableau qui croiss les ventes et les pays , a ces coté ( a l'interieur de meme fichier ) un graphique pour visualier ca ")], #"messages" : [HumanMessage(content="Génère un fichier Excel 'outputs/Rapport_Analytique.xlsx' via xlsxwriter. Pleusieures feuille sur tt les teste statistiques possible , voicie 4 feuilles premiere : 'Synthèse Pays', 'Performance Vendeurs', 'Analyse Produits' et 'Croisement Global'. Pour chaque feuille, insère un graphique natif Excel (add_chart) illustrant les données (Barres pour pays/vendeurs, Pie pour produits). en total je veux 10 feulles , le dernier graphique de la dernier feuille doit etre un camambert ")] , #"messages": [HumanMessage(content="je veux voir par graphiques les produits les plus vendus en Belgique et par quel fournisseur ")] , "messages" : [HumanMessage(content = " je veux un fichier excel pour faire les diffirentes stats sur les sales , et Je veux savoir qui les meilleurs sales personne dans ma campany , egalement les produit et categorie les mieux vendu , tu me fais des graphs beau avec seaborn egalement pour me montrer ca , et un graph ou tu les crois pour voir le produit le plus vendu par categorie par les top vendeurs ")] , #"messages": [HumanMessage(content="Cherche la tandance de croissance du marché des Ecrans gaming ( ecran dans le dataset ) pour 2026 , puis calucle une Demande_Prevue dans mon dataset (Formule : Stock actuel * (1 + %croissance_trouvé)) , Identifie si le stock actuel d'Ecrans est suffisant ou s'il y a un risque de rupture , Génère un graphique de type 'Gauge' ou un 'Bar chart' comparant le Stock Actuel vs Demande Prévue. ")], "current_df_path": "ventes_materiel_informatique.csv" } # On stocke les événements pour pouvoir récupérer les graphiques à la fin final_events = [] for event in app.stream(inputs): final_events.append(event) # On garde une trace du dernier état for node, value in event.items(): print(f"\n[Nœud : {node}]") if "messages" in value: last_msg = value["messages"][-1] content = last_msg.content if last_msg.content else f"Appel d'outil: {last_msg.tool_calls}" print(content) # --- Récupération des graphiques après le stream --- print("\n--- Analyse terminée : Récupération des visuels ---") current_plots = glob.glob(os.path.join(output_dir, "*.png")) if current_plots: print(f"Graphiques générés pour cette requête : {current_plots}") else: print("Aucun graphique n'a été généré.") import matplotlib matplotlib.use('Agg') # À placer AVANT d'importer pyplot import matplotlib.pyplot as plt