Spaces:
Sleeping
Sleeping
import gradio as gr | |
from transformers import pipeline | |
from datetime import datetime | |
import pytz | |
import requests | |
# Crear el chatbot usando el modelo de transformers | |
pipe = pipeline("text-generation", model="Isotonic/gpt-human-assistant") | |
# Lista de malas palabras a filtrar | |
malas_palabras = ["maldito", "estúpido", "imbécil", "tonto"] # Puedes agregar más malas palabras aquí | |
# Función para obtener el clima en Viña del Mar con Open-Meteo | |
def get_weather(): | |
url = "https://api.open-meteo.com/v1/forecast?latitude=-33.0153&longitude=-71.5503¤t_weather=true" | |
response = requests.get(url) | |
if response.status_code == 200: | |
data = response.json() | |
temp = data["current_weather"]["temperature"] | |
windspeed = data["current_weather"]["windspeed"] | |
return f"El clima es de {temp}°C con una velocidad de viento de {windspeed} km/h." | |
else: | |
return "Lo siento, no pude obtener el clima en este momento." | |
# Función para filtrar malas palabras | |
def filtrar_malas_palabras(texto): | |
for palabra in malas_palabras: | |
if palabra in texto.lower(): | |
return True | |
return False | |
import wikipedia | |
# Configura el idioma de Wikipedia | |
wikipedia.set_lang("es") # Español | |
def get_species_info(): | |
try: | |
# Realiza una búsqueda y obtén un resumen | |
summary = wikipedia.summary("Jardín Botánico Nacional de Viña del Mar", sentences=2) | |
return summary | |
except wikipedia.exceptions.DisambiguationError as e: | |
return "Hay muchos temas relacionados. Por favor, especifica más tu búsqueda." | |
except wikipedia.exceptions.PageError: | |
return "No encontré información sobre ese tema en mis sistemas, lo siento." | |
except Exception as e: | |
return "Lo siento, ocurrió un error al buscar la información." | |
# Función para obtener la respuesta del bot | |
def get_response(user_input): | |
# Comportamiento general | |
if filtrar_malas_palabras(user_input): | |
return "Por favor, mantén un lenguaje respetuoso. No se toleran malas palabras." | |
# Respuestas personalizadas según ciertas palabras clave | |
if "hola" in user_input.lower(): | |
return "¡Hola, soy Jarbot! ¿Cómo puedo ayudarte hoy?" | |
if "horario" in user_input.lower(): | |
return "El Jardín está abierto de [9:00 hasta las 17:30]. ¡Espero que vengas!" | |
if "actividades" in user_input.lower(): | |
return "¡Sii! Hoy tenemos..." | |
if "especies" in user_input.lower(): | |
return "Pues hay muchas! Aquí puedes encontrar una variedad de plantas como [cactarios, colecciones de la isla de Juan Fernández, algunos del bosque esclerófilo de la zona central y mucho más] y también hay animales como [ganzos, tortugas, etc]. ¿No es lindo?" | |
if "reglas" in user_input.lower(): | |
return "Pues, para preservar el entorno, te pido que no recojas plantas, respetes las áreas designadas y mantengas el Jardín limpio, nos encanta saber que cuidas del Jardín" | |
if "picnic" in user_input.lower(): | |
return "!Si por supuesto! Contamos con áreas de picnic y negocios donde podrás disfrutar de snacks. ¡Así descansas, comes algo y admiras el Jardín!" | |
if "movilidad reducida" in user_input.lower(): | |
return "Sí, el Jardín cuenta con caminos accesibles y rampas para que todos puedan disfrutar del espacio" | |
if "historia" in user_input.lower(): | |
return "El Jardín Botánico fue fundado en [1951] y tiene una historia fascinante de preservación y estudio de especies vegetales. Tristemente, gracias al incendio se quemó el 90% del Jardín :( " | |
elif "hora" in user_input.lower(): | |
# Configura la zona horaria de Chile | |
chile_tz = pytz.timezone("America/Santiago") | |
chile_time = datetime.now(chile_tz).strftime('%H:%M') | |
return f"Son las {chile_time}. ¿Hay algo más en lo que pueda ayudarte?" | |
elif "clima" in user_input.lower(): | |
return get_weather() | |
elif "adiós" in user_input.lower(): | |
return "¡Bye amigo! Que tengas un buen día." | |
else: | |
# Si la pregunta no es entendida, pide reformularla | |
return "Lo siento, no entendí bien la pregunta. ¿Podrías reformularla?" | |
# Crear la interfaz con Gradio | |
iface = gr.Interface(fn=get_response, inputs="text", outputs="text", | |
title="Asistente Virtual", description="¡Escribe algo para interactuar con el asistente!") | |
# Lanzar la interfaz | |
iface.launch() | |