| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- 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
|