pluto90 commited on
Commit
b1d65a7
·
verified ·
1 Parent(s): 7f42616

Upload 2 files

Browse files
Files changed (2) hide show
  1. app/graph/graph_builder.py +38 -0
  2. app/graph/state.py +18 -0
app/graph/graph_builder.py ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from langgraph.graph import StateGraph, END
2
+
3
+ from app.graph.state import GraphState
4
+ from app.graph.nodes.router import router_node
5
+ from app.graph.nodes.rag_agent import rag_agent_node
6
+ 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
+
38
+ return builder.compile()
app/graph/state.py ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from typing import TypedDict, Optional
2
+
3
+ class GraphState(TypedDict):
4
+ query: str
5
+ doc_id:str
6
+
7
+ route: Optional[str]
8
+
9
+ context: Optional[str]
10
+ sources: Optional[str]
11
+
12
+ history: Optional[str]
13
+
14
+ evaluation: Optional[dict]
15
+
16
+ general_answer: Optional[str]
17
+
18
+ final_answer: Optional[str]