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