Smart-Notes-backend / app /graph /graph_builder.py
pluto90's picture
Update app/graph/graph_builder.py
647cde3 verified
Raw
History Blame Contribute Delete
4.75 kB
# # # app/graph/graph_builder.py
# from langgraph.graph import StateGraph, END
# from app.graph.state import GraphState
# from app.graph.nodes.router import router_node
# from app.graph.nodes.rag_agent import rag_agent_node
# from app.graph.nodes.synthesizer import synthesizer_node
# from app.graph.nodes.evaluator import evaluator_node
# from app.graph.nodes.general_agent import general_agent_node
# from app.graph.nodes.hybrid_agent import hybrid_agent_node
# def route_decision(state):
# return state["route"]
# def build_graph():
# builder = StateGraph(GraphState)
# # nodes
# builder.add_node("router", router_node)
# builder.add_node("synthesizer", synthesizer_node)
# builder.add_node("evaluator", evaluator_node)
# builder.add_node("rag_agent", rag_agent_node)
# builder.add_node("general_agent", general_agent_node)
# builder.add_node("hybrid_agent", hybrid_agent_node)
# # edges
# builder.set_entry_point("router")
# builder.add_conditional_edges(
# "router",
# route_decision,
# {
# "rag": "rag_agent",
# "hybrid": "hybrid_agent",
# "general": "general_agent"
# }
# )
# # ✅ both paths merge at synthesizer
# builder.add_edge("rag_agent", "synthesizer")
# builder.add_edge("hybrid_agent", "synthesizer")
# builder.add_edge("general_agent", "synthesizer")
# # ✅ synthesizer → evaluator → end
# builder.add_edge("synthesizer", "evaluator")
# builder.add_edge("evaluator", END)
# return builder.compile()
# from langgraph.graph import StateGraph, END
# from app.graph.state import GraphState
# from app.graph.nodes.router import router_node
# from app.graph.nodes.rag_agent import rag_agent_node
# from app.graph.nodes.general_agent import general_agent_node
# from app.graph.nodes.hybrid_agent import hybrid_agent_node
# from app.graph.nodes.synthesizer import synthesizer_node
# from app.graph.nodes.evaluator import evaluator_node
# def route_decision(state):
# return state["route"]
# def build_graph():
# builder = StateGraph(GraphState)
# # --------------------------
# # Nodes
# # --------------------------
# builder.add_node("router", router_node)
# builder.add_node("rag_agent", rag_agent_node)
# builder.add_node("general_agent", general_agent_node)
# builder.add_node("hybrid_agent", hybrid_agent_node)
# builder.add_node("synthesizer", synthesizer_node)
# builder.add_node("evaluator", evaluator_node)
# # --------------------------
# # Entry
# # --------------------------
# builder.set_entry_point("router")
# # --------------------------
# # Router
# # --------------------------
# builder.add_conditional_edges(
# "router",
# route_decision,
# {
# "rag": "rag_agent",
# "hybrid": "hybrid_agent",
# "general": "general_agent",
# },
# )
# # --------------------------
# # Merge
# # --------------------------
# builder.add_edge("rag_agent", "synthesizer")
# builder.add_edge("hybrid_agent", "synthesizer")
# builder.add_edge("general_agent", "synthesizer")
# # --------------------------
# # Finish
# # --------------------------
# builder.add_edge("synthesizer", "evaluator")
# builder.add_edge("evaluator", END)
# return builder.compile()
from langgraph.graph import StateGraph, END
from app.graph.state import GraphState
from app.graph.nodes.router import router_node
from app.graph.nodes.rag_agent import rag_agent_node
from app.graph.nodes.synthesizer import synthesizer_node
from app.graph.nodes.evaluator import evaluator_node
def route_decision(state):
return state["route"]
def build_graph():
builder = StateGraph(GraphState)
builder.add_node("router", router_node)
builder.add_node("rag_agent", rag_agent_node)
builder.add_node("synthesizer", synthesizer_node)
builder.add_node("evaluator", evaluator_node)
builder.set_entry_point("router")
builder.add_conditional_edges(
"router",
route_decision,
{
"rag": "rag_agent",
"hybrid": "synthesizer",
"general": "synthesizer",
},
)
builder.add_edge(
"rag_agent", "synthesizer"
)
builder.add_edge(
"synthesizer", "evaluator"
)
builder.add_edge(
"evaluator", END
)
return builder.compile()