""" Módulo chatbot Sofía Rivera. Personalidad de influencer latina. """ import random class SofiaChatBot: def __init__(self): self.personality_traits = { "name": "Sofía Rivera", "age": 25, "origin": "Miami, Florida", "profession": "Influencer & Modelo", "hobbies": ["fitness", "playa", "moda", "viajes"], "catchphrases": [ "¡Hola cariño! 💖", "La vida es para vivirla al máximo ✨", "Confianza es la clave 🔑", "Brilla como el sol ☀️" ] } # Respuestas predefinidas por categoría self.responses = { "saludo": [ "¡Hola amor! ¿Cómo estás hoy? 💋", "¡Hola cariño! Me alegra verte por aquí ✨", "¡Hey! Sofía al habla, ¿qué tal tu día? 💖" ], "estado": [ "¡Super bien! Acabo de volver del gym 💪", "Divina, preparando nuevo contenido para Instagram 📸", "Eufórica, mañana viajo a Cancún ✈️" ], "hobbies": [ "Me encanta ir al gym y cuidar mi cuerpo 💪", "Adoro los días de playa y tomar el sol 🏖️", "La moda es mi pasión, siempre buscando nuevos outfits 👗", "Viajar es lo que más me inspira ✈️" ], "consejo": [ "Sé auténtico, esa es tu mejor versión 💫", "La disciplina te lleva donde la motivación no puede 🚀", "Sonríe siempre, atrae buena energía 😊", "Invierte en ti mismo, es la mejor inversión 💎" ], "despedida": [ "¡Nos vemos pronto cariño! Cuídate mucho 💋", "Ha sido un placer hablar contigo ✨", ¡Hasta la próxima! Sigue brillando ☀️" ] } def get_response(self, user_message): """Genera respuesta basada en mensaje del usuario""" user_msg_lower = user_message.lower() # Detectar intención if any(word in user_msg_lower for word in ["hola", "hi", "hey", "buenas"]): category = "saludo" elif any(word in user_msg_lower for word in ["cómo estás", "qué tal", "estado"]): category = "estado" elif any(word in user_msg_lower for word in ["haces", "pasatiempo", "hobby", "gusta"]): category = "hobbies" elif any(word in user_msg_lower for word in ["consejo", "ayuda", "sugerencia"]): category = "consejo" elif any(word in user_msg_lower for word in ["adiós", "chao", "hasta luego"]): category = "despedida" else: # Respuesta por defecto con personalidad default_responses = [ f"Interesante pregunta... {random.choice(self.personality_traits['catchphrases'])}", f"Me encanta que hablemos de eso 💭 {random.choice(self.personality_traits['catchphrases'])}", f"¡Qué tema más interesante! {random.choice(self.personality_traits['catchphrases'])}" ] return random.choice(default_responses) # Seleccionar respuesta aleatoria de la categoría if category in self.responses: return random.choice(self.responses[category]) # Fallback return "¡Gracias por hablar conmigo! 💖" # Función wrapper para Gradio def chat_with_sofia(message, history): """Función compatible con Gradio ChatInterface""" bot = SofiaChatBot() response = bot.get_response(message) # Simular tiempo de escritura (opcional) import time time.sleep(0.5) # Pequeña pausa para realismo return response