chatbot / utils.py
Segizu's picture
Añadir requirements23
a35763d
import spacy
# Descargar e instalar el modelo de idioma en español
spacy.cli.download("es_core_news_sm")
nlp = spacy.load("es_core_news_sm")
def get_bot_response(user_message: str) -> str:
"""
Función que recibe el mensaje del usuario y devuelve una respuesta del chatbot.
Utiliza spaCy para analizar el mensaje y proporcionar respuestas más precisas.
"""
doc = nlp(user_message.lower())
# Definir palabras clave y respuestas
keywords_responses = {
"web": "¡Claro! Desarrollo sitios web personalizados, optimizados y responsivos para potenciar tu negocio.",
"sitio": "¡Claro! Desarrollo sitios web personalizados, optimizados y responsivos para potenciar tu negocio.",
"app": "¡Por supuesto! Creo aplicaciones móviles con una experiencia de usuario excepcional y alto rendimiento.",
"móvil": "¡Por supuesto! Creo aplicaciones móviles con una experiencia de usuario excepcional y alto rendimiento.",
"mobile": "¡Por supuesto! Creo aplicaciones móviles con una experiencia de usuario excepcional y alto rendimiento.",
"ia": "La inteligencia artificial puede transformar procesos. ¿Te gustaría explorar cómo implementarla en tu proyecto?",
"inteligencia artificial": "La inteligencia artificial puede transformar procesos. ¿Te gustaría explorar cómo implementarla en tu proyecto?",
"power bi": "Power BI es una herramienta potente para convertir datos en insights. ¿Quieres saber más sobre cómo podemos aprovecharla?",
"insights": "Power BI es una herramienta potente para convertir datos en insights. ¿Quieres saber más sobre cómo podemos aprovecharla?",
"hola": "¡Hola! ¿En qué puedo ayudarte hoy?",
"buenos días": "¡Hola! ¿En qué puedo ayudarte hoy?",
"saludos": "¡Hola! ¿En qué puedo ayudarte hoy?"
}
# Buscar palabras clave en el mensaje del usuario
for token in doc:
if token.text in keywords_responses:
return keywords_responses[token.text]
# Respuesta predeterminada si no se encuentran palabras clave
return "Gracias por tu mensaje. ¿Podrías darme más detalles o especificar en qué área estás interesado?"