File size: 1,521 Bytes
4ce246c
 
 
 
 
b72ccd7
4ce246c
b72ccd7
4ce246c
 
 
 
 
 
 
b72ccd7
 
 
 
 
 
 
 
4ce246c
b72ccd7
4ce246c
 
 
 
b72ccd7
 
d02cede
b72ccd7
4ce246c
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import gradio as gr
import requests
import os

def get_weather(city_name):
    API_Key = os.getenv("OPENWEATHER_API_KEY")
    if not API_Key:
        return "API Key is not set. Please set the OPENWEATHER_API_KEY environment variable."
        
    url = f'https://api.openweathermap.org/data/2.5/weather?q={city_name}&appid={API_Key}&units=metric'
    response = requests.get(url)
    
    if response.status_code == 200:
        data = response.json()
        weather = data['weather'][0]['description']
        temp = data['main']['temp']
        humidity = data['main']['humidity']

        # Adding emojis and creative text
        weather_emoji = "☀️" if "clear" in weather else "☁️" if "cloud" in weather else "🌧️" if "rain" in weather else "❄️" if "snow" in weather else "🌫️"
        return (f"In {city_name}, the weather is currently {weather} {weather_emoji}. "
                f"The temperature is a comfy {temp}°C 🌡️. "
                f"Also, humidity levels are at {humidity}%, so keep hydrated! 💧")
    else:
        return "Failed to retrieve data. Please check the city name and try again."

# Define Gradio interface
iface = gr.Interface(
    fn=get_weather,
    inputs=gr.Textbox(label="Enter City Name", placeholder="Type here..."),
    outputs=gr.Textbox(label="Weather Update"),
    title="WeatherAssistantApp",
    description="Enter a city name to get a lively description of the current weather, temperature, and humidity."
)

# Launch the interface
iface.launch()