diff --git a/AgentReact/utils/StateElements/TodoElement.py b/AgentReact/utils/StateElements/TodoElement.py new file mode 100644 index 0000000..dc79d64 --- /dev/null +++ b/AgentReact/utils/StateElements/TodoElement.py @@ -0,0 +1,40 @@ +# Classes utilisées pour représenter des données +class TodoElement(): + STATE_NOT_STARTED = 0 # Sorte d'enum qui représente l'état d'une tâche + STATE_STARTED = 1 + STATE_COMPLETED = 2 + + name: str + state: int + + def __init__(self, name:str, description:str=None): + self.name = name + self.description = description + self.state = TodoElement.STATE_NOT_STARTED + + def __str__(self)->str: + """ + Affiche la tâche, son nom et son statut + Affichera aussi la description de la tâche si elle a été définie ET est en cours + + Returns: + str: Représentation écrite de la tâche + """ + return f"Tâche \"{self.name}\": {self.__getStateName()}." + \ + (f" Description: {self.description}" if self.description and self.state == TodoElement.STATE_STARTED else '') + + def __getStateName(self)->str: + if self.state == TodoElement.STATE_NOT_STARTED: + return "Non commencée" + elif self.state == TodoElement.STATE_STARTED: + return "En cours" + elif self.state == TodoElement.STATE_COMPLETED: + return "Terminée" + else: + return "Inconnu" + +if __name__ == "__main__": + test = TodoElement("TEST tâche", "OUI") + test.state = TodoElement.STATE_STARTED + print(test) + print([str(test)]) diff --git a/AgentReact/utils/state.py b/AgentReact/utils/state.py index da1fa34..3224440 100644 --- a/AgentReact/utils/state.py +++ b/AgentReact/utils/state.py @@ -1,7 +1,17 @@ from langgraph.graph import StateGraph, MessagesState +from typing import List + +from .StateElements.TodoElement import TodoElement + + +class CustomState(MessagesState): + todo: List[TodoElement] # Les tâches en cours + + ragQuery: str # Requête envoyée au RAG, pour le cross-encodeur + ragDocuments: List[str] # Documents retrouvés par le RAG, pour le cross-encodeur + + # TODO: Ajouter la source des documents sélectionnés pour la fin du rapport ? -class hjgzefvuiyguhzfvihuozdef(MessagesState): # J'ai du mal à nommer mes classes ._. - pass def getState()->StateGraph: """ @@ -10,4 +20,4 @@ def getState()->StateGraph: Returns: StateGraph: prêt à utiliser """ - return StateGraph(hjgzefvuiyguhzfvihuozdef) \ No newline at end of file + return StateGraph(CustomState) \ No newline at end of file diff --git a/roadmap.md b/roadmap.md index 247feed..2215d44 100644 --- a/roadmap.md +++ b/roadmap.md @@ -11,7 +11,7 @@ - [X] Lecture des documents et mise en base de données vectorielle ## Mise en place de l'agent -- [ ] Préparation du `State` +- [X] Préparation du `State` - [ ] Développement des outils de l'agent - [ ] Préparation des nœuds - [ ] Branchement des nœuds entre-eux