Spaces:
Sleeping
Sleeping
| """ | |
| 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 | |