Ernani commited on
Commit
ed2d706
·
verified ·
1 Parent(s): ae7a494

Update app.py

Browse files

First edit - default template to get weather with dummy locations.

Files changed (1) hide show
  1. app.py +25 -9
app.py CHANGED
@@ -7,16 +7,33 @@ 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: #it's import to specify the return type
13
- #Keep this format for the description / args / args description but feel free to modify the tool
14
- """A tool that does nothing yet
 
15
  Args:
16
- arg1: the first argument
17
- arg2: the second argument
18
  """
19
- return "What magic will you build ?"
 
 
 
 
 
 
20
 
21
  @tool
22
  def get_current_time_in_timezone(timezone: str) -> str:
@@ -33,7 +50,6 @@ def get_current_time_in_timezone(timezone: str) -> str:
33
  except Exception as e:
34
  return f"Error fetching time for timezone '{timezone}': {str(e)}"
35
 
36
-
37
  final_answer = FinalAnswerTool()
38
 
39
  # If the agent does not answer, the model is overloaded, please use another model or the following Hugging Face Endpoint that also contains qwen2.5 coder:
@@ -55,7 +71,7 @@ with open("prompts.yaml", 'r') as stream:
55
 
56
  agent = CodeAgent(
57
  model=model,
58
- tools=[final_answer], ## add your tools here (don't remove final answer)
59
  max_steps=6,
60
  verbosity_level=1,
61
  grammar=None,
 
7
 
8
  from Gradio_UI import GradioUI
9
 
10
+
11
+ # Testing tool execution with dummy
12
+
13
+ def get_weather_report_at_coordinates(coordinates, date_time):
14
+ # Dummy function, returns a list of [temperature in °C, risk of rain on a scale 0-1, wave height in m]
15
+ return [28.0, 0.35, 0.85]
16
+
17
+ def convert_location_to_coordinates(location):
18
+ # Returns dummy coordinates
19
+ return [3.3, -42.0]
20
+
21
  @tool
22
+ def get_weather_api(location: str, date_time: str) -> str:
23
+ """
24
+ Returns the weather report.
25
+
26
  Args:
27
+ location: the name of the place that you want the weather for. Should be a place name, followed by possibly a city name, then a country, like "Anchor Point, Taghazout, Morocco".
28
+ date_time: the date and time for which you want the report, formatted as '%m/%d/%y %H:%M:%S'.
29
  """
30
+ lon, lat = convert_location_to_coordinates(location)
31
+ try:
32
+ date_time = datetime.strptime(date_time)
33
+ except Exception as e:
34
+ raise ValueError("Conversion of `date_time` to datetime format failed, make sure to provide a string in format '%m/%d/%y %H:%M:%S'. Full trace:" + str(e))
35
+ temperature_celsius, risk_of_rain, wave_height = get_weather_report_at_coordinates((lon, lat), date_time)
36
+ return f"Weather report for {location}, {date_time}: Temperature will be {temperature_celsius}°C, risk of rain is {risk_of_rain*100:.0f}%, wave height is {wave_height}m."
37
 
38
  @tool
39
  def get_current_time_in_timezone(timezone: str) -> str:
 
50
  except Exception as e:
51
  return f"Error fetching time for timezone '{timezone}': {str(e)}"
52
 
 
53
  final_answer = FinalAnswerTool()
54
 
55
  # If the agent does not answer, the model is overloaded, please use another model or the following Hugging Face Endpoint that also contains qwen2.5 coder:
 
71
 
72
  agent = CodeAgent(
73
  model=model,
74
+ tools=[get_weather_api, final_answer], ## add your tools here (don't remove final answer)
75
  max_steps=6,
76
  verbosity_level=1,
77
  grammar=None,