File size: 1,653 Bytes
bf6dbfa
 
 
 
 
 
 
 
 
 
 
 
 
 
0643073
bf6dbfa
 
0643073
bf6dbfa
 
 
 
 
 
 
 
0643073
 
bf6dbfa
 
0643073
bf6dbfa
 
 
 
 
 
 
 
 
 
 
0643073
bf6dbfa
 
0643073
bf6dbfa
 
 
 
 
 
 
 
 
0643073
bf6dbfa
 
 
 
 
0643073
bf6dbfa
 
 
 
0643073
bf6dbfa
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
from langgraph.graph import StateGraph, START, END
from agent.state import AgentState
from agent.nodes import (
    detect_intent,
    handle_greeting,
    handle_unknown,
    retrieve_knowledge,
    generate_rag_response,
    process_lead,
    execute_tool
)
from agent.router import route_intent, route_after_lead

def build_graph():

    workflow = StateGraph(AgentState)


    workflow.add_node("detect_intent", detect_intent)
    workflow.add_node("handle_greeting", handle_greeting)
    workflow.add_node("handle_unknown", handle_unknown)
    workflow.add_node("retrieve_knowledge", retrieve_knowledge)
    workflow.add_node("generate_rag_response", generate_rag_response)
    workflow.add_node("process_lead", process_lead)
    workflow.add_node("execute_tool", execute_tool)



    workflow.add_edge(START, "detect_intent")


    workflow.add_conditional_edges(
        "detect_intent",
        route_intent,
        {
            "handle_greeting": "handle_greeting",
            "retrieve_knowledge": "retrieve_knowledge",
            "process_lead": "process_lead",
            "handle_unknown": "handle_unknown"
        }
    )


    workflow.add_edge("retrieve_knowledge", "generate_rag_response")


    workflow.add_conditional_edges(
        "process_lead",
        route_after_lead,
        {
            "execute_tool": "execute_tool",
            "__end__": END
        }
    )


    workflow.add_edge("handle_greeting", END)
    workflow.add_edge("handle_unknown", END)
    workflow.add_edge("generate_rag_response", END)
    workflow.add_edge("execute_tool", END)


    app = workflow.compile()

    return app


app = build_graph()