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, "*.png")): os.remove(f) if __name__ == "__main__": inputs = { "messages" : [HumanMessage(content="Je veux un tableu excel qui resume : le nombre d'achat par chaque pays , nombre de vendre par chaque sales personne , et par produit , essai de les croiser pour bien analyser mon dataset ")] , #messages": [HumanMessage(content="je veux voir par graphiques les produits les plus vendus en Belgique et par quel fournisseur ")] , #"messages" : [HumanMessage(content = " 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