Aya1610 commited on
Commit
9be756d
·
verified ·
1 Parent(s): c9bc8e0

Update agent.py

Browse files
Files changed (1) hide show
  1. agent.py +56 -13
agent.py CHANGED
@@ -195,27 +195,20 @@ def build_graph(provider: str = "openai"):
195
  response = llm_with_tools.invoke(messages)
196
  # Return new state with appended message
197
  return {"messages": messages + [response]}
198
-
199
  def retriever(state: MessagesState):
200
  """Retriever node - provides context from vector store"""
201
- # Get current messages
202
  messages = state["messages"]
203
- # Last message is the user query
204
  query = messages[-1].content
205
 
206
  # Retrieve similar documents
207
  similar_docs = vector_store.similarity_search(query, k=1)
208
 
209
  if not similar_docs:
210
- # Return original messages if no context found
211
  return {"messages": messages}
212
 
213
- # Get context from first document
214
  context = similar_docs[0].page_content
215
- # Create system message with context
216
  context_msg = SystemMessage(content=f"Reference context:\n{context}")
217
 
218
- # Append context to messages
219
  return {"messages": messages + [context_msg]}
220
 
221
  # Build graph
@@ -235,18 +228,68 @@ def build_graph(provider: str = "openai"):
235
  "assistant",
236
  tools_condition,
237
  {
238
- # Continue to tools if needed
239
- "continue": "tools",
240
- # End conversation if no tools needed
241
- "end": END
242
  }
243
  )
244
 
245
- # After tools execute, return to assistant for response generation
246
  builder.add_edge("tools", "assistant")
247
 
248
- # builder.add_finish_point(END) # Explicitly declare END as finish point
249
  return builder.compile()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
250
 
251
 
252
  # def build_graph(provider: str = "openai"):
 
195
  response = llm_with_tools.invoke(messages)
196
  # Return new state with appended message
197
  return {"messages": messages + [response]}
 
198
  def retriever(state: MessagesState):
199
  """Retriever node - provides context from vector store"""
 
200
  messages = state["messages"]
 
201
  query = messages[-1].content
202
 
203
  # Retrieve similar documents
204
  similar_docs = vector_store.similarity_search(query, k=1)
205
 
206
  if not similar_docs:
 
207
  return {"messages": messages}
208
 
 
209
  context = similar_docs[0].page_content
 
210
  context_msg = SystemMessage(content=f"Reference context:\n{context}")
211
 
 
212
  return {"messages": messages + [context_msg]}
213
 
214
  # Build graph
 
228
  "assistant",
229
  tools_condition,
230
  {
231
+ "continue": "tools", # If tools needed
232
+ "end": END # If no tools needed
 
 
233
  }
234
  )
235
 
236
+ # After tools execute, go back to assistant
237
  builder.add_edge("tools", "assistant")
238
 
239
+ # Compile graph
240
  return builder.compile()
241
+
242
+ # def retriever(state: MessagesState):
243
+ # """Retriever node - provides context from vector store"""
244
+ # # Get current messages
245
+ # messages = state["messages"]
246
+ # # Last message is the user query
247
+ # query = messages[-1].content
248
+
249
+ # # Retrieve similar documents
250
+ # similar_docs = vector_store.similarity_search(query, k=1)
251
+
252
+ # if not similar_docs:
253
+ # # Return original messages if no context found
254
+ # return {"messages": messages}
255
+
256
+ # # Get context from first document
257
+ # context = similar_docs[0].page_content
258
+ # # Create system message with context
259
+ # context_msg = SystemMessage(content=f"Reference context:\n{context}")
260
+
261
+ # # Append context to messages
262
+ # return {"messages": messages + [context_msg]}
263
+
264
+ # # Build graph
265
+ # builder = StateGraph(MessagesState)
266
+
267
+ # # Add nodes
268
+ # builder.add_node("retriever", retriever)
269
+ # builder.add_node("assistant", assistant)
270
+ # builder.add_node("tools", ToolNode(tools))
271
+
272
+ # # Set up edges
273
+ # builder.set_entry_point("retriever")
274
+ # builder.add_edge("retriever", "assistant")
275
+
276
+ # # Conditional tool usage
277
+ # builder.add_conditional_edges(
278
+ # "assistant",
279
+ # tools_condition,
280
+ # {
281
+ # # Continue to tools if needed
282
+ # "continue": "tools",
283
+ # # End conversation if no tools needed
284
+ # "end": END
285
+ # }
286
+ # )
287
+
288
+ # # After tools execute, return to assistant for response generation
289
+ # builder.add_edge("tools", "assistant")
290
+
291
+ # # builder.add_finish_point(END) # Explicitly declare END as finish point
292
+ # return builder.compile()
293
 
294
 
295
  # def build_graph(provider: str = "openai"):