Spaces:
Sleeping
Sleeping
Update agent.py
Browse files
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 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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)
|