ktluege commited on
Commit
41cd066
Β·
verified Β·
1 Parent(s): d0f9458

Update agent.py

Browse files
Files changed (1) hide show
  1. agent.py +41 -0
agent.py CHANGED
@@ -169,3 +169,44 @@ vector_store = SupabaseVectorStore(
169
  client=sup, embedding=emb,
170
  table_name=os.getenv("VECTORTABLE_NAME", "documents2"),
171
  query_name=os.getenv("VECTOR_QUERY_NAME","match_documents_langchain")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
169
  client=sup, embedding=emb,
170
  table_name=os.getenv("VECTORTABLE_NAME", "documents2"),
171
  query_name=os.getenv("VECTOR_QUERY_NAME","match_documents_langchain")
172
+
173
+ def build_graph():
174
+ """Build the LangGraph agent using OpenAI ChatGPT only."""
175
+ # Initialize the OpenAI LLM
176
+ from langchain_openai import ChatOpenAI
177
+
178
+ llm = ChatOpenAI(
179
+ model="gpt-3.5-turbo",
180
+ temperature=0,
181
+ openai_api_key=os.getenv("OPENAI_API_KEY")
182
+ )
183
+ llm_with_tools = llm.bind_tools(tools)
184
+
185
+ # Retriever: try vector lookup first, else prompt LLM
186
+ def retriever(state: MessagesState):
187
+ query = state["messages"][0].content
188
+ hits = vector_store.similarity_search(query, k=1)
189
+ if hits:
190
+ # return the raw snippet as the single message
191
+ return {"messages": [sys_msg, HumanMessage(content=hits[0].page_content)]}
192
+ # fall back to LLM-with-tools on the user prompt
193
+ resp = llm_with_tools.invoke([sys_msg] + state["messages"])
194
+ return {"messages": [resp]}
195
+
196
+ # Assistant: always call LLM-with-tools
197
+ def assistant(state: MessagesState):
198
+ resp = llm_with_tools.invoke(state["messages"])
199
+ return {"messages": [resp]}
200
+
201
+ # Wire up the graph
202
+ builder = StateGraph(MessagesState)
203
+ builder.add_node("retriever", retriever)
204
+ builder.add_node("assistant", assistant)
205
+ builder.add_node("tools", ToolNode(tools))
206
+ builder.add_edge(START, "retriever")
207
+ builder.add_edge("retriever", "assistant")
208
+ builder.add_conditional_edges("assistant", tools_condition)
209
+ builder.add_edge("tools", "assistant")
210
+
211
+ return builder.compile()
212
+