Produit Minimal Viable #1
40
AgentReact/utils/StateElements/TodoElement.py
Normal file
40
AgentReact/utils/StateElements/TodoElement.py
Normal file
@@ -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)])
|
||||
@@ -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)
|
||||
return StateGraph(CustomState)
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user