subashpoudel's picture
Created Ideation agent
3a3fe92
raw
history blame
1.59 kB
from langgraph.graph import StateGraph, START, END
from .utils.state import State
from .utils.nodes import ideator , critic , improver , validator1 , validator2 , validator3 , validator4 , route1_after_validation , route2_after_validation , route3_after_validation , route4_after_validation
def ideation_graph():
graph_builder= StateGraph(State)
graph_builder.add_node(ideator)
graph_builder.add_node(critic)
graph_builder.add_node(improver)
graph_builder.add_node(validator1)
graph_builder.add_node(validator2)
graph_builder.add_node(validator3)
graph_builder.add_node(validator4)
graph_builder.add_edge(START, "ideator") # Start the graph with node_1
graph_builder.add_edge("ideator", "critic")
graph_builder.add_edge("critic", "improver")
graph_builder.add_edge("improver", "validator1")
graph_builder.add_edge("validator1", "validator2")
graph_builder.add_edge("validator2", "validator3")
graph_builder.add_edge("validator3", "validator4")
graph_builder.add_edge("validator4", END)
# Use conditional routing from validator
graph_builder.add_conditional_edges("validator1", route1_after_validation,{False:'improver',True:'validator2'})
graph_builder.add_conditional_edges("validator2", route2_after_validation,{False:'improver',True:'validator3'})
graph_builder.add_conditional_edges("validator3", route3_after_validation,{False:'improver',True:'validator4'})
graph_builder.add_conditional_edges("validator4", route4_after_validation,{False:'improver',True:END})
return graph_builder.compile()