aaabulkhair commited on
Commit
258aed8
·
verified ·
1 Parent(s): c356aaf

fix docstring for time fn

Browse files
Files changed (1) hide show
  1. app.py +23 -16
app.py CHANGED
@@ -4,21 +4,34 @@ import requests
4
  import pytz
5
  import yaml
6
  from tools.final_answer import FinalAnswerTool
 
7
  from Gradio_UI import GradioUI
8
 
 
 
 
 
 
9
 
 
 
 
 
 
 
 
 
10
 
11
- # Tool to get current local time in a specified timezone
12
  @tool
13
  def get_current_time_in_timezone(timezone: str) -> str:
14
  """
15
  A tool that fetches the current local time in a specified timezone.
16
-
17
  Args:
18
  timezone (str): A valid timezone string (e.g., 'America/New_York').
19
-
20
  Returns:
21
- str: A message with the current local time or an error message if the timezone is invalid.
22
  """
23
  try:
24
  tz = pytz.timezone(timezone)
@@ -27,21 +40,20 @@ def get_current_time_in_timezone(timezone: str) -> str:
27
  except Exception as e:
28
  return f"Error fetching time for timezone '{timezone}': {str(e)}"
29
 
30
- # Calculator tool that evaluates mathematical expressions
31
  @tool
32
  def calculator_tool(expression: str) -> str:
33
  """
34
  A calculator tool that evaluates a mathematical expression.
35
-
36
  Args:
37
  expression (str): A string representing a mathematical expression.
38
  Supported operators: +, -, *, /, **, and %.
39
-
40
  Returns:
41
  str: The result of the calculation as a string, or an error message if evaluation fails.
42
  """
43
  try:
44
- # Evaluate the expression with a restricted environment for safety.
45
  result = eval(expression, {"__builtins__": {}}, {})
46
  if isinstance(result, float) and result.is_integer():
47
  result = int(result)
@@ -49,28 +61,24 @@ def calculator_tool(expression: str) -> str:
49
  except Exception as e:
50
  return f"Error evaluating expression: {e}"
51
 
52
- # Instantiate the final answer tool
53
  final_answer = FinalAnswerTool()
54
 
55
- # Create an instance of the language model
56
  model = HfApiModel(
57
  max_tokens=2096,
58
  temperature=0.5,
59
- model_id='Qwen/Qwen2.5-Coder-32B-Instruct',
60
  custom_role_conversions=None,
61
  )
62
 
63
- # Import tool from Hub (e.g., for image generation)
64
  image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)
65
 
66
- # Load prompt templates from YAML file
67
  with open("prompts.yaml", 'r') as stream:
68
  prompt_templates = yaml.safe_load(stream)
69
 
70
- # Create the CodeAgent with the desired tools. Notice that we add our calculator_tool
71
  agent = CodeAgent(
72
  model=model,
73
- tools=[final_answer, calculator_tool], # You can add more tools here
74
  max_steps=6,
75
  verbosity_level=1,
76
  grammar=None,
@@ -80,5 +88,4 @@ agent = CodeAgent(
80
  prompt_templates=prompt_templates
81
  )
82
 
83
- # Launch the Gradio UI for interacting with the agent
84
  GradioUI(agent).launch()
 
4
  import pytz
5
  import yaml
6
  from tools.final_answer import FinalAnswerTool
7
+
8
  from Gradio_UI import GradioUI
9
 
10
+ # Below is an example of a tool that does nothing. Amaze us with your creativity!
11
+ @tool
12
+ def my_custom_tool(arg1: str, arg2: int) -> str:
13
+ """
14
+ A tool that does nothing yet.
15
 
16
+ Args:
17
+ arg1 (str): The first argument.
18
+ arg2 (int): The second argument.
19
+
20
+ Returns:
21
+ str: A placeholder message.
22
+ """
23
+ return "What magic will you build ?"
24
 
 
25
  @tool
26
  def get_current_time_in_timezone(timezone: str) -> str:
27
  """
28
  A tool that fetches the current local time in a specified timezone.
29
+
30
  Args:
31
  timezone (str): A valid timezone string (e.g., 'America/New_York').
32
+
33
  Returns:
34
+ str: A message with the current local time in the given timezone or an error message if the timezone is invalid.
35
  """
36
  try:
37
  tz = pytz.timezone(timezone)
 
40
  except Exception as e:
41
  return f"Error fetching time for timezone '{timezone}': {str(e)}"
42
 
 
43
  @tool
44
  def calculator_tool(expression: str) -> str:
45
  """
46
  A calculator tool that evaluates a mathematical expression.
47
+
48
  Args:
49
  expression (str): A string representing a mathematical expression.
50
  Supported operators: +, -, *, /, **, and %.
51
+
52
  Returns:
53
  str: The result of the calculation as a string, or an error message if evaluation fails.
54
  """
55
  try:
56
+ # Evaluate the expression in a restricted environment for safety.
57
  result = eval(expression, {"__builtins__": {}}, {})
58
  if isinstance(result, float) and result.is_integer():
59
  result = int(result)
 
61
  except Exception as e:
62
  return f"Error evaluating expression: {e}"
63
 
 
64
  final_answer = FinalAnswerTool()
65
 
 
66
  model = HfApiModel(
67
  max_tokens=2096,
68
  temperature=0.5,
69
+ model_id='Qwen/Qwen2.5-Coder-32B-Instruct', # It is possible that this model may be overloaded.
70
  custom_role_conversions=None,
71
  )
72
 
73
+ # Import tool from Hub
74
  image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)
75
 
 
76
  with open("prompts.yaml", 'r') as stream:
77
  prompt_templates = yaml.safe_load(stream)
78
 
 
79
  agent = CodeAgent(
80
  model=model,
81
+ tools=[final_answer, calculator_tool], # Added our calculator tool along with final_answer.
82
  max_steps=6,
83
  verbosity_level=1,
84
  grammar=None,
 
88
  prompt_templates=prompt_templates
89
  )
90
 
 
91
  GradioUI(agent).launch()