ZeroTimo commited on
Commit
5ebc793
·
verified ·
1 Parent(s): 307dd38

Update agent.py

Browse files
Files changed (1) hide show
  1. agent.py +31 -6
agent.py CHANGED
@@ -178,13 +178,38 @@ def build_graph(provider: str = "google"):
178
  """Assistant node"""
179
  return {"messages": [llm_with_tools.invoke(state["messages"])]}
180
 
 
 
 
 
 
 
 
 
181
  def retriever(state: MessagesState):
182
- """Retriever node"""
183
- similar_question = vector_store.similarity_search(state["messages"][0].content)
184
- example_msg = HumanMessage(
185
- content=f"Here I provide a similar question and answer for reference: \n\n{similar_question[0].page_content}",
186
- )
187
- return {"messages": [sys_msg] + state["messages"] + [example_msg]}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
188
 
189
  builder = StateGraph(MessagesState)
190
  builder.add_node("retriever", retriever)
 
178
  """Assistant node"""
179
  return {"messages": [llm_with_tools.invoke(state["messages"])]}
180
 
181
+ # def retriever(state: MessagesState):
182
+ # """Retriever node"""
183
+ # similar_question = vector_store.similarity_search(state["messages"][0].content)
184
+ #example_msg = HumanMessage(
185
+ # content=f"Here I provide a similar question and answer for reference: \n\n{similar_question[0].page_content}",
186
+ # )
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)