Spaces:
Running
Running
| 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 | |
| def build_graph(): | |
| builder = StateGraph(GraphState) | |
| # nodes | |
| 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.add_node("general_agent", general_agent_node) | |
| # edges | |
| builder.set_entry_point("router") | |
| builder.add_conditional_edges( | |
| "router", | |
| lambda state: state["route"], | |
| { | |
| "rag": "rag_agent", | |
| "general": "general_agent" | |
| } | |
| ) | |
| builder.add_edge("rag_agent", "synthesizer") | |
| builder.add_edge("general_agent", "synthesizer") | |
| builder.add_edge("synthesizer", "evaluator") | |
| builder.add_edge("evaluator", END) | |
| return builder.compile() |