ZeroTimo commited on
Commit
84a7f24
·
verified ·
1 Parent(s): 902a19b

Update agent.py

Browse files
Files changed (1) hide show
  1. agent.py +23 -20
agent.py CHANGED
@@ -187,41 +187,44 @@ def build_graph(provider: str = "google"):
187
  # return {"messages": [sys_msg] + state["messages"] + [example_msg]}
188
 
189
  def retriever(state: MessagesState):
190
- """Retriever node"""
191
  current_question = state["messages"][-1].content
192
  similar_doc = vector_store.similarity_search(current_question, k=1)[0]
193
  page_content = similar_doc.page_content.strip()
194
 
195
- # Versuche, die Antwort aus dem bekannten Format zu extrahieren
196
- # Erwartetes Format:
197
- # "Question : ...\n\nFinal answer : ..."
198
  try:
199
  lines = page_content.splitlines()
200
- final_line = next(line for line in lines if line.strip().lower().startswith("final answer"))
201
  extracted_answer = final_line.split(":", 1)[1].strip()
 
202
  return {
203
- "messages": [HumanMessage(content=f"FINAL ANSWER: {extracted_answer}")],
204
  "should_end": True
205
  }
206
- except Exception as e:
207
- # Falls Parsing fehlschlägt, trotzdem sinnvoll weitermachen
208
  return {
209
- "messages": [sys_msg] + state["messages"] + [
210
- HumanMessage(content=f"(Retriever parsing failed, fallback triggered):\n\n{page_content}")
211
- ]
212
  }
213
 
 
 
 
 
 
 
 
 
 
 
 
 
214
  builder = StateGraph(MessagesState)
215
  builder.add_node("retriever", retriever)
216
- builder.add_node("assistant", assistant)
217
- builder.add_node("tools", ToolNode(tools))
218
- builder.add_edge(START, "retriever")
219
- builder.add_edge("retriever", "assistant")
220
- builder.add_conditional_edges(
221
- "assistant",
222
- tools_condition,
223
- )
224
- builder.add_edge("tools", "assistant")
225
 
226
  # Compile graph
227
  return builder.compile()
 
187
  # return {"messages": [sys_msg] + state["messages"] + [example_msg]}
188
 
189
  def retriever(state: MessagesState):
190
+ """Retriever node – gibt direkt die extrahierte Antwort zurück"""
191
  current_question = state["messages"][-1].content
192
  similar_doc = vector_store.similarity_search(current_question, k=1)[0]
193
  page_content = similar_doc.page_content.strip()
194
 
 
 
 
195
  try:
196
  lines = page_content.splitlines()
197
+ final_line = next(line for line in lines if "final answer" in line.lower())
198
  extracted_answer = final_line.split(":", 1)[1].strip()
199
+
200
  return {
201
+ "messages": [{"type": "system", "content": extracted_answer}],
202
  "should_end": True
203
  }
204
+ except Exception:
 
205
  return {
206
+ "messages": [{"type": "system", "content": "Retriever error: no answer found."}],
207
+ "should_end": True
 
208
  }
209
 
210
+ # builder = StateGraph(MessagesState)
211
+ #builder.add_node("retriever", retriever)
212
+ #builder.add_node("assistant", assistant)
213
+ #builder.add_node("tools", ToolNode(tools))
214
+ #builder.add_edge(START, "retriever")
215
+ #builder.add_edge("retriever", "assistant")
216
+ #builder.add_conditional_edges(
217
+ # "assistant",
218
+ # tools_condition,
219
+ #)
220
+ #builder.add_edge("tools", "assistant")
221
+
222
  builder = StateGraph(MessagesState)
223
  builder.add_node("retriever", retriever)
224
+
225
+ # Retriever ist Start und Endpunkt
226
+ builder.set_entry_point("retriever")
227
+ builder.set_finish_point("retriever")
 
 
 
 
 
228
 
229
  # Compile graph
230
  return builder.compile()