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:
@@ -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]
|
||||
|
||||
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]
|
||||
Reference in New Issue
Block a user