pluto90 commited on
Commit
e8cbb38
·
verified ·
1 Parent(s): 0d1464c

Upload 2 files

Browse files
Files changed (2) hide show
  1. app/graph/graph_builder.py +14 -2
  2. app/graph/state.py +3 -2
app/graph/graph_builder.py CHANGED
@@ -7,31 +7,43 @@ from app.graph.nodes.synthesizer import synthesizer_node
7
  from app.graph.nodes.evaluator import evaluator_node
8
  from app.graph.nodes.general_agent import general_agent_node
9
 
 
 
 
 
10
 
11
  def build_graph():
12
  builder = StateGraph(GraphState)
13
 
14
  # nodes
15
  builder.add_node("router", router_node)
16
- builder.add_node("rag_agent", rag_agent_node)
17
  builder.add_node("synthesizer", synthesizer_node)
18
  builder.add_node("evaluator", evaluator_node)
 
 
19
  builder.add_node("general_agent", general_agent_node)
 
 
20
 
21
  # edges
22
  builder.set_entry_point("router")
23
 
24
  builder.add_conditional_edges(
25
  "router",
26
- lambda state: state["route"],
27
  {
28
  "rag": "rag_agent",
 
29
  "general": "general_agent"
30
  }
31
  )
32
 
 
33
  builder.add_edge("rag_agent", "synthesizer")
 
34
  builder.add_edge("general_agent", "synthesizer")
 
 
35
  builder.add_edge("synthesizer", "evaluator")
36
  builder.add_edge("evaluator", END)
37
 
 
7
  from app.graph.nodes.evaluator import evaluator_node
8
  from app.graph.nodes.general_agent import general_agent_node
9
 
10
+ from app.graph.nodes.hybrid_agent import hybrid_agent_node
11
+
12
+ def route_decision(state):
13
+ return state["route"]
14
 
15
  def build_graph():
16
  builder = StateGraph(GraphState)
17
 
18
  # nodes
19
  builder.add_node("router", router_node)
 
20
  builder.add_node("synthesizer", synthesizer_node)
21
  builder.add_node("evaluator", evaluator_node)
22
+
23
+ builder.add_node("rag_agent", rag_agent_node)
24
  builder.add_node("general_agent", general_agent_node)
25
+ builder.add_node("hybrid_agent", hybrid_agent_node)
26
+
27
 
28
  # edges
29
  builder.set_entry_point("router")
30
 
31
  builder.add_conditional_edges(
32
  "router",
33
+ route_decision,
34
  {
35
  "rag": "rag_agent",
36
+ "hybrid": "hybrid_agent",
37
  "general": "general_agent"
38
  }
39
  )
40
 
41
+ # ✅ both paths merge at synthesizer
42
  builder.add_edge("rag_agent", "synthesizer")
43
+ builder.add_edge("hybrid_agent", "synthesizer")
44
  builder.add_edge("general_agent", "synthesizer")
45
+
46
+ # ✅ synthesizer → evaluator → end
47
  builder.add_edge("synthesizer", "evaluator")
48
  builder.add_edge("evaluator", END)
49
 
app/graph/state.py CHANGED
@@ -1,4 +1,4 @@
1
- from typing import TypedDict, Optional
2
 
3
  class GraphState(TypedDict):
4
  query: str
@@ -7,7 +7,8 @@ class GraphState(TypedDict):
7
  route: Optional[str]
8
 
9
  context: Optional[str]
10
- sources: Optional[str]
 
11
 
12
  history: Optional[str]
13
 
 
1
+ from typing import TypedDict, Optional, List
2
 
3
  class GraphState(TypedDict):
4
  query: str
 
7
  route: Optional[str]
8
 
9
  context: Optional[str]
10
+ sources: Optional[List]
11
+ score: Optional[float]
12
 
13
  history: Optional[str]
14