SergeyO7 commited on
Commit
65b3309
·
verified ·
1 Parent(s): bf960a4

Update agent.py

Browse files
Files changed (1) hide show
  1. agent.py +12 -13
agent.py CHANGED
@@ -275,41 +275,40 @@ class MagAgent:
275
  ExcelReaderTool()
276
  # LocalFileAudioTool()
277
  ],
278
- verbosity_level=2,
279
  add_base_tools=True,
280
  max_steps=20
281
  )
282
  print("MagAgent initialized.")
283
 
284
- async def __call__(self, question: str, tast_id) -> str:
285
  """Process a question asynchronously using the MagAgent."""
286
  print(f"MagAgent received question (first 50 chars): {question[:50]}... Task ID: {task_id}")
287
-
288
  try:
289
  if self.rate_limiter:
290
  while not self.rate_limiter.consume(1):
291
- await asyncio.sleep(60 / RATE_LIMIT)
292
- # Define a task with fallback search logic
 
293
  task = (
294
  f"Answer the following question accurately and concisely: {question}\n"
295
  f"If the question references an attachment, use the download_file tool with task_id: {task_id}\n"
296
  f"Return the answer as a string."
297
  )
 
298
  response = await asyncio.to_thread(
299
  self.agent.run,
300
  task=task
301
  )
302
-
303
- # Ensure response is a string, fixing the integer error
304
- response = str(response)
305
- if response is None:
306
- print(f"No answer found.")
307
-
308
  print(f"MagAgent response: {response[:50]}...")
309
  return response
310
-
311
  except Exception as e:
312
- error_msg = f"Error processing question: {str(e)}. Check API key or network connectivity."
313
  print(error_msg)
314
  return error_msg
315
 
 
275
  ExcelReaderTool()
276
  # LocalFileAudioTool()
277
  ],
278
+ verbosity_level=3,
279
  add_base_tools=True,
280
  max_steps=20
281
  )
282
  print("MagAgent initialized.")
283
 
284
+ async def __call__(self, question: str, task_id: str) -> str:
285
  """Process a question asynchronously using the MagAgent."""
286
  print(f"MagAgent received question (first 50 chars): {question[:50]}... Task ID: {task_id}")
 
287
  try:
288
  if self.rate_limiter:
289
  while not self.rate_limiter.consume(1):
290
+ print(f"Rate limit reached for task {task_id}. Waiting...")
291
+ await asyncio.sleep(60 / 15) # Assuming 15 RPM
292
+ # Include task_id in the task prompt to guide the agent
293
  task = (
294
  f"Answer the following question accurately and concisely: {question}\n"
295
  f"If the question references an attachment, use the download_file tool with task_id: {task_id}\n"
296
  f"Return the answer as a string."
297
  )
298
+ print(f"Calling agent.run for task {task_id}...")
299
  response = await asyncio.to_thread(
300
  self.agent.run,
301
  task=task
302
  )
303
+ print(f"Agent.run completed for task {task_id}.")
304
+ response = str(response)
305
+ if not response:
306
+ print(f"No answer found for task {task_id}.")
307
+ response = "No answer found."
 
308
  print(f"MagAgent response: {response[:50]}...")
309
  return response
 
310
  except Exception as e:
311
+ error_msg = f"Error processing question for task {task_id}: {str(e)}. Check API key or network connectivity."
312
  print(error_msg)
313
  return error_msg
314