Dinesh310 commited on
Commit
028a330
·
verified ·
1 Parent(s): f35d7bb

Update src/graph_builder/graph_builder.py

Browse files
Files changed (1) hide show
  1. src/graph_builder/graph_builder.py +59 -59
src/graph_builder/graph_builder.py CHANGED
@@ -1,60 +1,60 @@
1
- """Graph builder for LangGraph workflow"""
2
-
3
- from langgraph.graph import StateGraph, END
4
- from src.state.rag_state import RAGState
5
- from src.node.reactnode import RAGNodes
6
-
7
- class GraphBuilder:
8
- """Builds and manages the LangGraph workflow"""
9
-
10
- def __init__(self, retriever, llm):
11
- """
12
- Initialize graph builder
13
-
14
- Args:
15
- retriever: Document retriever instance
16
- llm: Language model instance
17
- """
18
- self.nodes = RAGNodes(retriever, llm)
19
- self.graph = None
20
-
21
- def build(self):
22
- """
23
- Build the RAG workflow graph
24
-
25
- Returns:
26
- Compiled graph instance
27
- """
28
- # Create state graph
29
- builder = StateGraph(RAGState)
30
-
31
- # Add nodes
32
- builder.add_node("retriever", self.nodes.retrieve_docs)
33
- builder.add_node("responder", self.nodes.generate_answer)
34
-
35
- # Set entry point
36
- builder.set_entry_point("retriever")
37
-
38
- # Add edges
39
- builder.add_edge("retriever", "responder")
40
- builder.add_edge("responder", END)
41
-
42
- # Compile graph
43
- self.graph = builder.compile()
44
- return self.graph
45
-
46
- def run(self, question: str) -> dict:
47
- """
48
- Run the RAG workflow
49
-
50
- Args:
51
- question: User question
52
-
53
- Returns:
54
- Final state with answer
55
- """
56
- if self.graph is None:
57
- self.build()
58
-
59
- initial_state = RAGState(question=question)
60
  return self.graph.invoke(initial_state)
 
1
+ """Graph builder for LangGraph workflow"""
2
+
3
+ from langgraph.graph import StateGraph, END
4
+ from src.state.rag_state import RAGState
5
+ from src.node.nodes import RAGNodes
6
+
7
+ class GraphBuilder:
8
+ """Builds and manages the LangGraph workflow"""
9
+
10
+ def __init__(self, retriever, llm):
11
+ """
12
+ Initialize graph builder
13
+
14
+ Args:
15
+ retriever: Document retriever instance
16
+ llm: Language model instance
17
+ """
18
+ self.nodes = RAGNodes(retriever, llm)
19
+ self.graph = None
20
+
21
+ def build(self):
22
+ """
23
+ Build the RAG workflow graph
24
+
25
+ Returns:
26
+ Compiled graph instance
27
+ """
28
+ # Create state graph
29
+ builder = StateGraph(RAGState)
30
+
31
+ # Add nodes
32
+ builder.add_node("retriever", self.nodes.retrieve_docs)
33
+ builder.add_node("responder", self.nodes.generate_answer)
34
+
35
+ # Set entry point
36
+ builder.set_entry_point("retriever")
37
+
38
+ # Add edges
39
+ builder.add_edge("retriever", "responder")
40
+ builder.add_edge("responder", END)
41
+
42
+ # Compile graph
43
+ self.graph = builder.compile()
44
+ return self.graph
45
+
46
+ def run(self, question: str) -> dict:
47
+ """
48
+ Run the RAG workflow
49
+
50
+ Args:
51
+ question: User question
52
+
53
+ Returns:
54
+ Final state with answer
55
+ """
56
+ if self.graph is None:
57
+ self.build()
58
+
59
+ initial_state = RAGState(question=question)
60
  return self.graph.invoke(initial_state)