From 8b32c0ac640b44a728b3af42a3c106a67af21077 Mon Sep 17 00:00:00 2001 From: LJ5O <75009579+LJ5O@users.noreply.github.com> Date: Sun, 8 Feb 2026 22:50:09 +0100 Subject: [PATCH] Start conditionnel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Permet de ne pas regénérer tous les résumés, et de gagner du temps et des tokens --- AgentReact/agent.py | 5 ++++- AgentReact/utils/nodes.py | 21 ++++++++++++++++++++- imgs/agent.png | Bin 29550 -> 36287 bytes roadmap.md | 4 ++-- 4 files changed, 26 insertions(+), 4 deletions(-) diff --git a/AgentReact/agent.py b/AgentReact/agent.py index b9a87b2..86b28ff 100644 --- a/AgentReact/agent.py +++ b/AgentReact/agent.py @@ -24,7 +24,10 @@ def getGraph()->CompiledStateGraph: workflow.add_node("weekly_report_tools", weekly_report_tools) # Arrêtes - workflow.set_entry_point("inject_preparation_prompt") + workflow.set_conditional_entry_point(is_resumes_reports_already_initialised, { + "résumés non disponibles": "inject_preparation_prompt", + "résumés déjà générés": "user_prompt" + }) workflow.add_edge("inject_preparation_prompt", "preparation_docs") workflow.add_conditional_edges("preparation_docs", should_continue, { "tools":"weekly_report_tools", diff --git a/AgentReact/utils/nodes.py b/AgentReact/utils/nodes.py index 6fd3020..0d1bb23 100644 --- a/AgentReact/utils/nodes.py +++ b/AgentReact/utils/nodes.py @@ -5,6 +5,9 @@ from langchain.chat_models import init_chat_model from langgraph.graph import START, END from langchain.messages import HumanMessage, AIMessage, SystemMessage from langgraph.types import interrupt +import os +import sys +from pathlib import Path from .tools import getTools, getWeeklyReportTools from .state import CustomState @@ -122,4 +125,20 @@ class BasicToolNode: # De mon ancien projet, https://github.com/LJ5O/Assistant/b tool_call_id=tool_call["id"], ) ) - return {"messages": outputs} \ No newline at end of file + return {"messages": outputs} + +# UTILS + +def is_resumes_reports_already_initialised(state: CustomState)->str: + """Permet de savoirr si les résumés de comptes-rendu ont déjà été générés. + S'ils le sont, inutile de recréer ce dossier. + + Returns: + str: Faut-il générer les résumés ? + """ + # Récupérer le chemin vers le point d'entrée + base_dir: Path = Path(sys.argv[0]).resolve().parent + reports_dir = base_dir / "rapports_resumes" # Chemin du dossier des rapports + if os.path.isdir(reports_dir): + return "résumés déjà générés" + else: return "résumés non disponibles" \ No newline at end of file diff --git a/imgs/agent.png b/imgs/agent.png index b255b9dd570757f0d20b44340b137daa3f988fee..d4c44c0168f9f54d4ad028481bd243af7a7d2fa0 100644 GIT binary patch literal 36287 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 diff --git a/roadmap.md b/roadmap.md index 9911193..48fefee 100644 --- a/roadmap.md +++ b/roadmap.md @@ -16,13 +16,13 @@ - [X] Préparation des nœuds - [X] Branchement des nœuds entre-eux, **MVP** - [X] Human in the loop -- [ ] Amélioration du workflow +- [X] Amélioration du workflow +- [ ] Gestion de la taille du contexte - Résumé de l'historique des messages ## Amélioration de l'agent - [ ] Cross-encoding sur la sortie du **RAG** - [ ] Sauvegarde de l'état de l'agent - [ ] Système de redémarrage après un arrêt -- [ ] Gestion de la taille du contexte - Résumé de l'historique des messages - [ ] Détection de *prompt injection* - [ ] Génération d'un PDF en sortie du système