Spaces:
Sleeping
Sleeping
0xrushi
commited on
Commit
·
de49b6b
1
Parent(s):
6a3ad81
test
Browse files
agent.py
CHANGED
|
@@ -99,30 +99,36 @@ def build_graph():
|
|
| 99 |
llm_with_tools = llm.bind_tools(tools)
|
| 100 |
|
| 101 |
# Define nodes
|
| 102 |
-
def
|
| 103 |
-
|
| 104 |
-
|
| 105 |
-
response = llm_with_tools.invoke(messages)
|
| 106 |
-
return {"messages": [response]}
|
| 107 |
|
| 108 |
|
| 109 |
# Retriever node returns AIMessage
|
| 110 |
def retriever(state: MessagesState):
|
| 111 |
query = state["messages"][-1].content
|
| 112 |
-
|
| 113 |
|
| 114 |
-
|
| 115 |
-
|
| 116 |
-
|
| 117 |
else:
|
| 118 |
-
|
| 119 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 120 |
|
| 121 |
builder = StateGraph(MessagesState)
|
| 122 |
builder.add_node("retriever", retriever)
|
|
|
|
|
|
|
| 123 |
|
| 124 |
-
builder.
|
| 125 |
-
builder.
|
|
|
|
|
|
|
| 126 |
|
| 127 |
# Compile graph
|
| 128 |
return builder.compile()
|
|
|
|
| 99 |
llm_with_tools = llm.bind_tools(tools)
|
| 100 |
|
| 101 |
# Define nodes
|
| 102 |
+
def assistant(state: MessagesState):
|
| 103 |
+
return {"messages": [llm_with_tools.invoke(state["messages"])]}
|
| 104 |
+
|
|
|
|
|
|
|
| 105 |
|
| 106 |
|
| 107 |
# Retriever node returns AIMessage
|
| 108 |
def retriever(state: MessagesState):
|
| 109 |
query = state["messages"][-1].content
|
| 110 |
+
similar_docs = vector_store.similarity_search(query, k=1)
|
| 111 |
|
| 112 |
+
if similar_docs:
|
| 113 |
+
reference = similar_docs[0].page_content
|
| 114 |
+
context_msg = HumanMessage(content=f"Here is a similar question and answer for reference:\n\n{reference}")
|
| 115 |
else:
|
| 116 |
+
context_msg = HumanMessage(content="No relevant example found.")
|
| 117 |
+
|
| 118 |
+
return {
|
| 119 |
+
"messages": [sys_msg] + state["messages"] + [context_msg]
|
| 120 |
+
}
|
| 121 |
+
|
| 122 |
|
| 123 |
builder = StateGraph(MessagesState)
|
| 124 |
builder.add_node("retriever", retriever)
|
| 125 |
+
builder.add_node("assistant", assistant)
|
| 126 |
+
builder.add_node("tools", ToolNode(tools))
|
| 127 |
|
| 128 |
+
builder.add_edge(START, "retriever")
|
| 129 |
+
builder.add_edge("retriever", "assistant")
|
| 130 |
+
builder.add_conditional_edges("assistant", tools_condition)
|
| 131 |
+
builder.add_edge("tools", "assistant")
|
| 132 |
|
| 133 |
# Compile graph
|
| 134 |
return builder.compile()
|