This commit is contained in:
Timothy J. Baek 2024-06-10 21:05:06 -07:00
parent 6589464ddf
commit c5683dd24c

View File

@ -56,6 +56,44 @@ class Tools:
print(e) print(e)
return "Invalid equation" return "Invalid equation"
def get_current_weather(self, city: str) -> str:
"""
Get the current weather for a given city.
:param city: The name of the city to get the weather for.
:return: The current weather information or an error message.
"""
api_key = os.getenv('OPENWEATHER_API_KEY')
if not api_key:
return "API key is not set in the environment variable 'OPENWEATHER_API_KEY'."
base_url = "http://api.openweathermap.org/data/2.5/weather"
params = {
'q': city,
'appid': api_key,
'units': 'metric' # Optional: Use 'imperial' for Fahrenheit
}
try:
response = requests.get(base_url, params=params)
response.raise_for_status() # Raise HTTPError for bad responses (4xx and 5xx)
data = response.json()
if data.get('cod') != 200:
return f"Error fetching weather data: {data.get('message')}"
weather_description = data['weather'][0]['description']
temperature = data['main']['temp']
humidity = data['main']['humidity']
wind_speed = data['wind']['speed']
return (f"Weather in {city}:\n"
f"Description: {weather_description}\n"
f"Temperature: {temperature}°C\n"
f"Humidity: {humidity}%\n"
f"Wind Speed: {wind_speed} m/s")
except requests.RequestException as e:
return f"Error fetching weather data: {str(e)}"
`; `;
export const formatHandler = async () => { export const formatHandler = async () => {