naman1102 commited on
Commit
d714e29
Β·
1 Parent(s): 04bd45b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -7
app.py CHANGED
@@ -127,13 +127,25 @@ def finalize_node(state: AgentState) -> AgentState:
127
  # ─── 4) Wrap tools in a ToolNode ───
128
  tool_node = ToolNode([web_search_tool, ocr_image_tool, parse_excel_tool])
129
 
 
 
 
 
 
 
 
 
 
 
 
130
  # ─── 5) Build the graph ───
131
  graph = StateGraph(AgentState)
132
 
133
  # 5.a) Register nodes
134
  graph.add_node("plan", plan_node)
 
135
  graph.add_node("tools", tool_node)
136
- graph.add_node("run_tools", run_tools)
137
  graph.add_node("finalize", finalize_node)
138
 
139
  # 5.b) Wire START β†’ plan
@@ -148,16 +160,19 @@ def route_plan(plan_out: AgentState) -> str:
148
  graph.add_conditional_edges(
149
  "plan",
150
  route_plan,
151
- {"tools": "tools", "finalize": "finalize"}
152
  )
153
 
154
- # 5.d) tools β†’ run_tools
155
- graph.add_edge("tools", "run_tools")
 
 
 
156
 
157
- # 5.e) run_tools β†’ finalize
158
- graph.add_edge("run_tools", "finalize")
159
 
160
- # 5.f) finalize β†’ END
161
  graph.add_edge("finalize", END)
162
 
163
  compiled_graph = graph.compile()
 
127
  # ─── 4) Wrap tools in a ToolNode ───
128
  tool_node = ToolNode([web_search_tool, ocr_image_tool, parse_excel_tool])
129
 
130
+ # Add a node to store the previous state
131
+
132
+ def store_prev_state(state: AgentState) -> AgentState:
133
+ return {**state, "prev_state": state.copy()}
134
+
135
+ def merge_tool_output(state: AgentState) -> AgentState:
136
+ prev_state = state.get("prev_state", {})
137
+ merged = {**prev_state, **state}
138
+ merged.pop("prev_state", None)
139
+ return merged
140
+
141
  # ─── 5) Build the graph ───
142
  graph = StateGraph(AgentState)
143
 
144
  # 5.a) Register nodes
145
  graph.add_node("plan", plan_node)
146
+ graph.add_node("store_prev_state", store_prev_state)
147
  graph.add_node("tools", tool_node)
148
+ graph.add_node("merge_tool_output", merge_tool_output)
149
  graph.add_node("finalize", finalize_node)
150
 
151
  # 5.b) Wire START β†’ plan
 
160
  graph.add_conditional_edges(
161
  "plan",
162
  route_plan,
163
+ {"tools": "store_prev_state", "finalize": "finalize"}
164
  )
165
 
166
+ # 5.d) store_prev_state β†’ tools
167
+ graph.add_edge("store_prev_state", "tools")
168
+
169
+ # 5.e) tools β†’ merge_tool_output
170
+ graph.add_edge("tools", "merge_tool_output")
171
 
172
+ # 5.f) merge_tool_output β†’ finalize
173
+ graph.add_edge("merge_tool_output", "finalize")
174
 
175
+ # 5.g) finalize β†’ END
176
  graph.add_edge("finalize", END)
177
 
178
  compiled_graph = graph.compile()