Spaces:
Runtime error
Runtime error
Update agent.py
Browse files
agent.py
CHANGED
|
@@ -155,18 +155,28 @@ def build_graph(provider: str = "openai"):
|
|
| 155 |
|
| 156 |
from langchain_core.messages import AIMessage
|
| 157 |
|
| 158 |
-
def retriever(state: MessagesState):
|
| 159 |
-
|
| 160 |
-
|
| 161 |
-
|
| 162 |
-
|
| 163 |
-
|
| 164 |
-
|
| 165 |
-
|
| 166 |
-
|
| 167 |
-
|
| 168 |
-
|
| 169 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 170 |
|
| 171 |
|
| 172 |
builder = StateGraph(MessagesState)
|
|
|
|
| 155 |
|
| 156 |
from langchain_core.messages import AIMessage
|
| 157 |
|
| 158 |
+
def retriever(state: MessagesState):
|
| 159 |
+
query = state["messages"][-1].content
|
| 160 |
+
results = vector_store.similarity_search(query, k=1)
|
| 161 |
+
if not results:
|
| 162 |
+
return {"messages": [AIMessage(content="FINAL ANSWER: No relevant answer found.")]}
|
| 163 |
+
similar_doc = results[0]
|
| 164 |
+
content = similar_doc.page_content
|
| 165 |
+
if "FINAL ANSWER:" in content:
|
| 166 |
+
answer = content.split("FINAL ANSWER:")[-1].strip()
|
| 167 |
+
return {"messages": [AIMessage(content=f"FINAL ANSWER: {answer}")]}
|
| 168 |
+
else:
|
| 169 |
+
return {"messages": [AIMessage(content=content.strip())]}
|
| 170 |
+
|
| 171 |
+
|
| 172 |
+
builder = StateGraph(MessagesState)
|
| 173 |
+
builder.add_node("retriever", retriever)
|
| 174 |
+
builder.add_node("assistant", assistant)
|
| 175 |
+
builder.add_edge(START, "retriever")
|
| 176 |
+
builder.add_edge("retriever", "assistant")
|
| 177 |
+
builder.set_finish_point("assistant")
|
| 178 |
+
|
| 179 |
+
return builder.compile()
|
| 180 |
|
| 181 |
|
| 182 |
builder = StateGraph(MessagesState)
|