Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -18,7 +18,7 @@ HF_TOKEN = os.getenv("HF_TOKEN", "default_hf_token_if_not_found")
|
|
| 18 |
|
| 19 |
@tool
|
| 20 |
def get_weather(city: str) -> str:
|
| 21 |
-
"""Fetches
|
| 22 |
Args:
|
| 23 |
city: The name of the city.
|
| 24 |
"""
|
|
@@ -33,15 +33,23 @@ def get_weather(city: str) -> str:
|
|
| 33 |
else:
|
| 34 |
return f"Error: Unable to find location for '{city}'."
|
| 35 |
|
| 36 |
-
# Fetch weather data
|
| 37 |
-
weather_url = f"https://api.open-meteo.com/v1/forecast?latitude={lat}&longitude={lon}¤t_weather=true"
|
| 38 |
weather_response = requests.get(weather_url)
|
| 39 |
|
| 40 |
if weather_response.status_code == 200:
|
| 41 |
weather_data = weather_response.json()["current_weather"]
|
|
|
|
| 42 |
temp = weather_data["temperature"]
|
| 43 |
wind_speed = weather_data["windspeed"]
|
| 44 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 45 |
else:
|
| 46 |
return "Error fetching weather data."
|
| 47 |
|
|
|
|
| 18 |
|
| 19 |
@tool
|
| 20 |
def get_weather(city: str) -> str:
|
| 21 |
+
"""Fetches detailed weather information for a specified city using Open-Meteo API (No API Key Needed).
|
| 22 |
Args:
|
| 23 |
city: The name of the city.
|
| 24 |
"""
|
|
|
|
| 33 |
else:
|
| 34 |
return f"Error: Unable to find location for '{city}'."
|
| 35 |
|
| 36 |
+
# Fetch detailed weather data
|
| 37 |
+
weather_url = f"https://api.open-meteo.com/v1/forecast?latitude={lat}&longitude={lon}¤t_weather=true&hourly=precipitation_probability,temperature_2m,humidity_2m,wind_speed_10m"
|
| 38 |
weather_response = requests.get(weather_url)
|
| 39 |
|
| 40 |
if weather_response.status_code == 200:
|
| 41 |
weather_data = weather_response.json()["current_weather"]
|
| 42 |
+
hourly_data = weather_response.json()["hourly"]
|
| 43 |
temp = weather_data["temperature"]
|
| 44 |
wind_speed = weather_data["windspeed"]
|
| 45 |
+
humidity = hourly_data["humidity_2m"][0]
|
| 46 |
+
precipitation_chance = hourly_data["precipitation_probability"][0]
|
| 47 |
+
|
| 48 |
+
return (f"Weather in {city}:\n"
|
| 49 |
+
f"Temperature: {temp}°C\n"
|
| 50 |
+
f"Humidity: {humidity}%\n"
|
| 51 |
+
f"Wind Speed: {wind_speed} m/s\n"
|
| 52 |
+
f"Chance of Rain: {precipitation_chance}%")
|
| 53 |
else:
|
| 54 |
return "Error fetching weather data."
|
| 55 |
|