import requests import gradio as gr API_KEY = "67f19ccdfd8fd9220e4f4ac8556d1942" # <-- Reemplaza esto con tu clave real de OpenWeather BASE_URL = "https://api.openweathermap.org/data/2.5/weather" def obtener_clima(ciudad: str): """Consulta el clima actual y da una recomendación de ropa.""" params = { "q": ciudad, "appid": API_KEY, "units": "metric", "lang": "es" } response = requests.get(BASE_URL, params=params) if response.status_code != 200: return f"No se pudo obtener el clima de {ciudad}. Verifica el nombre o tu API KEY." datos = response.json() temperatura = datos["main"]["temp"] clima = datos["weather"][0]["description"] # Recomendaciones de ropa según la temperatura if temperatura < 10: ropa = "Ponte ropa muy abrigada (chaqueta gruesa, bufanda, gorro)." elif 10 <= temperatura < 20: ropa = "Usa una chaqueta ligera o suéter." elif 20 <= temperatura < 28: ropa = "Ropa cómoda, como camiseta y pantalón liviano." else: ropa = "Hace calor, puedes usar ropa fresca como short o camiseta sin mangas." return f"En {ciudad} hace {temperatura}°C con {clima}. {ropa}" def responder_pregunta(pregunta): # Extraer ciudad de la pregunta import re ciudad = "" match = re.search(r"en ([A-Za-záéíóúñÁÉÍÓÚÑ\s]+)", pregunta) if match: ciudad = match.group(1).strip() else: return "Por favor, escribe una ciudad como: '¿Qué me pongo hoy en Medellín?'" return obtener_clima(ciudad) interfaz = gr.ChatInterface(responder_pregunta, title="Asistente del Clima y Ropa") interfaz.launch()