Outils de préparation des résumés

Permet de générer les rapports de chaque semaine du stage
This commit is contained in:
2026-02-08 13:28:54 +01:00
parent a9ff56c122
commit 52bf2d5a82

View File

@@ -4,6 +4,7 @@ from tavily import TavilyClient
from pathlib import Path
from typing import List, Dict, Annotated
import sys
import os
from langgraph.types import interrupt
from .StateElements.TodoElement import TodoElement
@@ -194,9 +195,72 @@ def search_in_files(query:str, state: Annotated[dict, InjectedState])->str:
return docs_content # Retourne la liste de documents trouvés
@tool
def write_week_report(numero_semaine:int, contenu:str)->str:
"""
Écrire un rapport sur une semaine du stage. Sauvegardera ce rapport dans un fichier en mémoire pour un usage futur.
Args:
numero_semaine (int): Semaine du stage. Commence à 1 pour la première semaine
contenu (str): Ce qu'il faut écrire dans ce rapport
Returns:
str: CHemin vers le fichier, ou une erreur en cas de problème
"""
try:
# 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
reports_dir.mkdir(parents=True, exist_ok=True) # Créer le dossier
file_name = f"rapport_semaine_{numero_semaine}.txt"
full_path = reports_dir / file_name
with open(full_path, "w", encoding="utf-8") as f: # Écrire le contenu
f.write(contenu)
return str(full_path)
except Exception as e:
return f"Erreur lors de l'écriture: {str(e)}"
@tool
def write_library_tools_details_on_internship(contenu:str)->str:
"""
Enregistrer les détails sur le stage.
Utilise cet outil pour enregistrer tous les outils, logiciels, programmes, entreprises, ect.. utilisés pendant le stage.
Args:
contenu (str): Une liste de tous les éléments intéréssants, avec quelques détails sur chacun.
Returns:
str: CHemin vers le fichier, ou une erreur en cas de problème
"""
try:
# 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
reports_dir.mkdir(parents=True, exist_ok=True) # Créer le dossier
file_name = f"rapport_outils.txt"
full_path = reports_dir / file_name
with open(full_path, "w", encoding="utf-8") as f: # Écrire le contenu
f.write(contenu)
return str(full_path)
except Exception as e:
return f"Erreur lors de l'écriture: {str(e)}"
def getTools()->List['Tools']:
"""
Récupérer la liste des tools
"""
return [internet_search, write_file, editTodo, read_file, ask_human, search_in_files, addTodo, removeTodo]
return [internet_search, write_file, editTodo, read_file, ask_human, search_in_files, addTodo, removeTodo]
def getWeeklyReportTools()->List['Tools']:
"""
Récupérer la liste des tools, POUR LE LLM EN CHARGE DE FAIRE LES RAPPORTS DE CHAQUE SEMAINE
"""
return [write_week_report, write_library_tools_details_on_internship, internet_search]