Start conditionnel

Permet de ne pas regénérer tous les résumés, et de gagner du temps et des tokens
This commit is contained in:
2026-02-08 22:50:09 +01:00
parent bdf5b7dd98
commit 8b32c0ac64
4 changed files with 26 additions and 4 deletions

View File

@@ -24,7 +24,10 @@ def getGraph()->CompiledStateGraph:
workflow.add_node("weekly_report_tools", weekly_report_tools) workflow.add_node("weekly_report_tools", weekly_report_tools)
# Arrêtes # 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_edge("inject_preparation_prompt", "preparation_docs")
workflow.add_conditional_edges("preparation_docs", should_continue, { workflow.add_conditional_edges("preparation_docs", should_continue, {
"tools":"weekly_report_tools", "tools":"weekly_report_tools",

View File

@@ -5,6 +5,9 @@ from langchain.chat_models import init_chat_model
from langgraph.graph import START, END from langgraph.graph import START, END
from langchain.messages import HumanMessage, AIMessage, SystemMessage from langchain.messages import HumanMessage, AIMessage, SystemMessage
from langgraph.types import interrupt from langgraph.types import interrupt
import os
import sys
from pathlib import Path
from .tools import getTools, getWeeklyReportTools from .tools import getTools, getWeeklyReportTools
from .state import CustomState from .state import CustomState
@@ -123,3 +126,19 @@ class BasicToolNode: # De mon ancien projet, https://github.com/LJ5O/Assistant/b
) )
) )
return {"messages": outputs} 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"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -16,13 +16,13 @@
- [X] Préparation des nœuds - [X] Préparation des nœuds
- [X] Branchement des nœuds entre-eux, **MVP** - [X] Branchement des nœuds entre-eux, **MVP**
- [X] Human in the loop - [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 ## Amélioration de l'agent
- [ ] Cross-encoding sur la sortie du **RAG** - [ ] Cross-encoding sur la sortie du **RAG**
- [ ] Sauvegarde de l'état de l'agent - [ ] Sauvegarde de l'état de l'agent
- [ ] Système de redémarrage après un arrêt - [ ] 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* - [ ] Détection de *prompt injection*
- [ ] Génération d'un PDF en sortie du système - [ ] Génération d'un PDF en sortie du système