GatinhoEducado commited on
Commit
df444eb
·
verified ·
1 Parent(s): e28aa86

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +43 -1
app.py CHANGED
@@ -21,6 +21,48 @@ def my_cutom_tool(arg1:str, arg2:int)-> str: #it's import to specify the return
21
  """
22
  return "What magic will you build ?"
23
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  @tool
25
  def model_download_tool(task: str) -> str:
26
  """
@@ -111,7 +153,7 @@ model = HfApiModel(
111
 
112
  agent = CodeAgent(
113
  model=model,
114
- tools=[final_answer, image_generation_tool, get_stock_data_baostock], ## add your tools here (don't remove final answer)
115
  max_steps=6,
116
  verbosity_level=1,
117
  grammar=None,
 
21
  """
22
  return "What magic will you build ?"
23
 
24
+ # Weather Data Tool using weatherapi.com API
25
+ @tool
26
+ def weather_data_tool(location: str, api_key: str) -> str:
27
+ """
28
+ A tool that fetches the current weather data for a given location using the weatherapi.com API.
29
+
30
+ Args:
31
+ location: The location for which to retrieve weather data (e.g., "London", "Paris", or "New York").
32
+ api_key: d3d95d8e1ada4f48a83112710251202
33
+
34
+ Returns:
35
+ A string with the current weather details (temperature, condition, etc.) or an error message.
36
+ """
37
+ try:
38
+ # Construct the API URL for current weather data
39
+ url = f"http://api.weatherapi.com/v1/current.json?key={api_key}&q={location}&aqi=no"
40
+ response = requests.get(url)
41
+ if response.status_code != 200:
42
+ return f"Error: Unable to retrieve data. HTTP Status Code: {response.status_code}"
43
+ data = response.json()
44
+ # If the response includes an error, return its message
45
+ if "error" in data:
46
+ return f"Error: {data['error'].get('message', 'Unknown error')}"
47
+ # Extract location and current weather details
48
+ location_info = data.get("location", {})
49
+ current = data.get("current", {})
50
+ location_name = location_info.get("name", location)
51
+ region = location_info.get("region", "")
52
+ country = location_info.get("country", "")
53
+ temp_c = current.get("temp_c", "N/A")
54
+ condition = current.get("condition", {}).get("text", "N/A")
55
+ # Build a result string
56
+ result = f"Weather in {location_name}"
57
+ if region:
58
+ result += f", {region}"
59
+ if country:
60
+ result += f", {country}"
61
+ result += f": {temp_c}°C, {condition}."
62
+ return result
63
+ except Exception as e:
64
+ return f"An exception occurred: {str(e)}"
65
+
66
  @tool
67
  def model_download_tool(task: str) -> str:
68
  """
 
153
 
154
  agent = CodeAgent(
155
  model=model,
156
+ tools=[final_answer, image_generation_tool, get_stock_data_baostock, weather_data_tool], ## add your tools here (don't remove final answer)
157
  max_steps=6,
158
  verbosity_level=1,
159
  grammar=None,