subashpoudel's picture
Implemented the workflow and integrated in fast api
be3a5c4
raw
history blame
965 Bytes
from langgraph.graph import StateGraph, START, END
from .utils.state import State
from .utils.nodes import retrieve, generate_story, generate_brainstroming , generate_final_story, route_after_selection, select_preferred_topics
def build_graph():
builder = StateGraph(State)
builder.add_node(retrieve)
builder.add_node(generate_story)
builder.add_node(generate_brainstroming)
builder.add_node(select_preferred_topics)
builder.add_node(generate_final_story)
# Normal edges
builder.add_edge(START, "retrieve")
builder.add_edge("retrieve", "generate_story")
builder.add_edge("generate_story", "generate_brainstroming")
builder.add_edge("generate_brainstroming", "select_preferred_topics")
# Conditional edge
builder.add_conditional_edges("select_preferred_topics", route_after_selection,{True:'retrieve',False:'generate_final_story'})
builder.add_edge("generate_final_story",END)
return builder.compile()