C'est moche, bancal, et mal foutu, mais ça compile et ça crache un rapport de stage dans un fichier
33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
from langgraph.graph import START, END
|
|
from langgraph.graph.state import CompiledStateGraph
|
|
|
|
from utils.nodes import call_to_LLM, should_continue, task_ended, BasicToolNode, tool_node
|
|
from utils.state import getState
|
|
from utils.tools import getTools
|
|
|
|
def getGraph()->CompiledStateGraph:
|
|
"""
|
|
Récupérer le graphe compilé et prêt à invoquer
|
|
|
|
Returns:
|
|
CompiledStateGraph: Graphe compilé
|
|
"""
|
|
workflow = getState() # State prêt à utiliser
|
|
|
|
# Définition des sommets du graphe
|
|
workflow.add_node(call_to_LLM)
|
|
workflow.add_node("tool_node", tool_node)# BasicToolNode(tools=getTools())) # N'est pas une fonction, mais une classe instanciée, je dois précisier le nom du node
|
|
|
|
# Arrêtes
|
|
workflow.set_entry_point("call_to_LLM")
|
|
workflow.add_edge("tool_node", "call_to_LLM")
|
|
workflow.add_conditional_edges("call_to_LLM", should_continue, {
|
|
"tools":"tool_node",
|
|
"no_tools":END
|
|
})
|
|
|
|
return workflow.compile()
|
|
|
|
if __name__ == "__main__":
|
|
# Affichage du graphe
|
|
getGraph().get_graph().draw_mermaid_png(output_file_path="agent.png") |