File size: 1,117 Bytes
5dfcdef
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
from langgraph.graph import START, END, StateGraph
from langgraph.prebuilt import tools_condition

from src.state import AgentState
from src.nodes import assistant, validate_answer, get_tool_node

# Build graph function
def build_graph():
    """Build the graph"""
    builder = StateGraph(AgentState)
    builder.add_node("assistant", assistant)
    builder.add_node("tools", get_tool_node)
    builder.add_node("validate_answer", validate_answer)

    builder.add_edge(START, "assistant")
    builder.add_conditional_edges(
        "assistant",
        tools_condition,
        {
            "tools": "tools",  # Route to tools if needed
            # END: "END"  # Route to end if no tools needed
            END: "validate_answer",  # Route to validate_answer if no tools needed
        },
    )
    builder.add_edge("tools", "assistant")
    # builder.add_edge("assistant", "validate_answer")
    # builder.add_conditional_edges(
    #     "assistant",
    #     ready_to_answer,
    #     {"validate_answer": "validate_answer"},
    # )
    builder.add_edge("validate_answer", END)

    return builder.compile()