Ihor Kozar commited on
Commit
fa7f5a2
·
1 Parent(s): 8989d02
Files changed (3) hide show
  1. agent.py +9 -8
  2. requirements.txt +0 -1
  3. test.py +1 -1
agent.py CHANGED
@@ -1,13 +1,14 @@
1
  import time
 
2
  from typing import TypedDict, Annotated, Optional
3
  from langchain_core.messages import AnyMessage, SystemMessage, HumanMessage
4
- from langchain_openai import ChatOpenAI
5
  from langgraph.graph import StateGraph, START
6
  from langgraph.graph.message import add_messages, MessagesState
7
  from langgraph.prebuilt import ToolNode, tools_condition
8
  from langchain.vectorstores import Chroma
9
- from langchain.embeddings.openai import OpenAIEmbeddings
10
  from langchain.chains import RetrievalQA
 
11
 
12
  from agent_tools import *
13
 
@@ -45,8 +46,7 @@ class CUSTOM_AGENT:
45
  """
46
 
47
  def __init__(self):
48
- self.llm = ChatOpenAI(name="gpt-4o",
49
- api_key=os.getenv("OPENAI_API_KEY"))
50
  self.tools = TOOLS
51
  self.llm_with_tools = self.llm.bind_tools(self.tools)
52
  self.sys_msg = sys_msg
@@ -78,15 +78,16 @@ class CUSTOM_AGENT:
78
 
79
  def _retriever_node(self, state: MessagesState):
80
  """Retriever node"""
81
- question = state["messages"][-1].content
82
  docs = self.retriever.get_relevant_documents(question)
83
 
84
  if docs:
85
- content = "\n".join([d.page_content for d in docs])
86
  else:
87
- content = "No relevant documents found"
88
 
89
- return {"messages": [HumanMessage(content=content)]}
 
90
 
91
  def _assistant(self, state: MessagesState):
92
  """Assistant node"""
 
1
  import time
2
+ import os
3
  from typing import TypedDict, Annotated, Optional
4
  from langchain_core.messages import AnyMessage, SystemMessage, HumanMessage
5
+ from langchain_openai import ChatOpenAI, OpenAIEmbeddings
6
  from langgraph.graph import StateGraph, START
7
  from langgraph.graph.message import add_messages, MessagesState
8
  from langgraph.prebuilt import ToolNode, tools_condition
9
  from langchain.vectorstores import Chroma
 
10
  from langchain.chains import RetrievalQA
11
+ from dotenv import load_dotenv
12
 
13
  from agent_tools import *
14
 
 
46
  """
47
 
48
  def __init__(self):
49
+ self.llm = ChatOpenAI(model="gpt-4o", api_key=os.getenv("OPENAI_API_KEY"), temperature=0)
 
50
  self.tools = TOOLS
51
  self.llm_with_tools = self.llm.bind_tools(self.tools)
52
  self.sys_msg = sys_msg
 
78
 
79
  def _retriever_node(self, state: MessagesState):
80
  """Retriever node"""
81
+ question = state["messages"][ -1 ].content
82
  docs = self.retriever.get_relevant_documents(question)
83
 
84
  if docs:
85
+ context = "\n\n".join([d.page_content for d in docs])
86
  else:
87
+ context = "No relevant documents found"
88
 
89
+ combined = f"Context:\n{context}\n\nQuestion:\n{question}"
90
+ return {"messages": [HumanMessage(content=combined)]}
91
 
92
  def _assistant(self, state: MessagesState):
93
  """Assistant node"""
requirements.txt CHANGED
@@ -22,7 +22,6 @@ ddgs
22
  rank_bm25
23
  openai
24
  langchain_openrouter
25
- langchain_google_genai
26
  langchain_openai
27
  google-genai
28
  openpyxl
 
22
  rank_bm25
23
  openai
24
  langchain_openrouter
 
25
  langchain_openai
26
  google-genai
27
  openpyxl
test.py CHANGED
@@ -107,7 +107,7 @@ questions = [
107
  # Test
108
  if __name__ == "__main__":
109
  agent = CUSTOM_AGENT()
110
- q = questions[0]
111
  print("Question:", q["question"])
112
  answer = agent.run(q)
113
  print("Answer:", answer)
 
107
  # Test
108
  if __name__ == "__main__":
109
  agent = CUSTOM_AGENT()
110
+ q = questions[4]
111
  print("Question:", q["question"])
112
  answer = agent.run(q)
113
  print("Answer:", answer)