kostasang commited on
Commit
ddb29ab
·
verified ·
1 Parent(s): a985768

Upload 2 files

Browse files
Files changed (2) hide show
  1. src/agent.py +11 -0
  2. src/tools.py +8 -9
src/agent.py CHANGED
@@ -1,6 +1,7 @@
1
  import json
2
 
3
  from langchain_core.messages import SystemMessage, HumanMessage
 
4
  from langchain_openai.chat_models import ChatOpenAI
5
  from langfuse import Langfuse, get_client
6
  from langfuse.langchain import CallbackHandler
@@ -31,9 +32,19 @@ class Agent:
31
  :param langfuse_callback_handler: Langfuse callback handler for
32
  tracking and logging interactions.
33
  """
 
 
 
 
 
 
 
 
34
  self.chat_model = ChatOpenAI(
35
  model=model,
36
  api_key=openai_api_key,
 
 
37
  )
38
  with open(system_prompt_path, "r") as file:
39
  self.system_prompt = file.read()
 
1
  import json
2
 
3
  from langchain_core.messages import SystemMessage, HumanMessage
4
+ from langchain_core.rate_limiters import InMemoryRateLimiter
5
  from langchain_openai.chat_models import ChatOpenAI
6
  from langfuse import Langfuse, get_client
7
  from langfuse.langchain import CallbackHandler
 
32
  :param langfuse_callback_handler: Langfuse callback handler for
33
  tracking and logging interactions.
34
  """
35
+ rate_limiter = InMemoryRateLimiter(
36
+ # <-- Super slow! We can only make a request once every 10 seconds
37
+ requests_per_second=0.1,
38
+ # Wake up every 100 ms to check whether allowed to make a request,
39
+ check_every_n_seconds=0.1,
40
+ # Controls the maximum burst size.
41
+ max_bucket_size=10,
42
+ )
43
  self.chat_model = ChatOpenAI(
44
  model=model,
45
  api_key=openai_api_key,
46
+ json_mode=True,
47
+ rate_limiter=rate_limiter
48
  )
49
  with open(system_prompt_path, "r") as file:
50
  self.system_prompt = file.read()
src/tools.py CHANGED
@@ -75,13 +75,12 @@ def wiki_search(query: str) -> str:
75
  Args:
76
  query: The search query."""
77
  search_docs = WikipediaLoader(query=query, load_max_docs=2).load()
78
- formatted_search_docs = "\n\n---\n\n".join(
79
- [
80
- {
81
- "source": doc.metadata["source"],
82
- "page": doc.metadata.get("page", ""),
83
- "content": doc.page_content,
84
- }
85
- for doc in search_docs
86
- ])
87
  return json.dumps({"wiki_results": formatted_search_docs})
 
75
  Args:
76
  query: The search query."""
77
  search_docs = WikipediaLoader(query=query, load_max_docs=2).load()
78
+ formatted_search_docs = [
79
+ {
80
+ "source": doc.metadata["source"],
81
+ "page": doc.metadata.get("page", ""),
82
+ "content": doc.page_content,
83
+ }
84
+ for doc in search_docs
85
+ ]
 
86
  return json.dumps({"wiki_results": formatted_search_docs})