Agent_V2 #2
@@ -4,6 +4,7 @@ from tavily import TavilyClient
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import List, Dict, Annotated
|
from typing import List, Dict, Annotated
|
||||||
import sys
|
import sys
|
||||||
|
import os
|
||||||
from langgraph.types import interrupt
|
from langgraph.types import interrupt
|
||||||
|
|
||||||
from .StateElements.TodoElement import TodoElement
|
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
|
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']:
|
def getTools()->List['Tools']:
|
||||||
"""
|
"""
|
||||||
Récupérer la liste des 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]
|
||||||
Reference in New Issue
Block a user