Spaces:
Sleeping
Sleeping
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()
|