Segizu commited on
Commit
90e359d
·
1 Parent(s): c9b8157

Añadir cambios al chatbot

Browse files
Files changed (3) hide show
  1. __pycache__/utils.cpython-39.pyc +0 -0
  2. app.py +6 -8
  3. utils.py +30 -14
__pycache__/utils.cpython-39.pyc ADDED
Binary file (1.37 kB). View file
 
app.py CHANGED
@@ -16,30 +16,28 @@ st.write(
16
  )
17
 
18
  # Campo de texto para ingresar el mensaje del usuario (usando una key para poder manipular su valor)
19
- user_input = st.text_input("Escribe tu mensaje aquí:", key="user_input")
20
 
21
  # Botón de envío
22
  if st.button("Enviar"):
23
- if st.session_state.user_input: # Verifica que se haya escrito algo
24
  # Agregar el mensaje del usuario al historial
25
  st.session_state.chat_history.append({
26
  "role": "user",
27
- "message": st.session_state.user_input
28
  })
29
  # Obtener respuesta del bot y agregarla al historial
30
- response = get_bot_response(st.session_state.user_input)
31
  st.session_state.chat_history.append({
32
  "role": "bot",
33
  "message": response
34
  })
35
- # Limpiar el campo de texto
36
- st.session_state.user_input = ""
37
  # Forzar la actualización de la interfaz
38
- st.experimental_rerun()
39
  else:
40
  st.warning("Por favor, ingresa un mensaje.")
41
 
42
- # Mostrar el historial actualizado del chat
 
43
  for chat in st.session_state.chat_history:
44
  if chat["role"] == "user":
45
  st.markdown(f"**Tú:** {chat['message']}")
 
16
  )
17
 
18
  # Campo de texto para ingresar el mensaje del usuario (usando una key para poder manipular su valor)
19
+ user_input = st.text_input("Escribe tu mensaje aquí:")
20
 
21
  # Botón de envío
22
  if st.button("Enviar"):
23
+ if user_input: # Verifica que se haya escrito algo
24
  # Agregar el mensaje del usuario al historial
25
  st.session_state.chat_history.append({
26
  "role": "user",
27
+ "message": user_input
28
  })
29
  # Obtener respuesta del bot y agregarla al historial
30
+ response = get_bot_response(user_input)
31
  st.session_state.chat_history.append({
32
  "role": "bot",
33
  "message": response
34
  })
 
 
35
  # Forzar la actualización de la interfaz
 
36
  else:
37
  st.warning("Por favor, ingresa un mensaje.")
38
 
39
+ # Mostrar el historial actualizado del cha
40
+ #
41
  for chat in st.session_state.chat_history:
42
  if chat["role"] == "user":
43
  st.markdown(f"**Tú:** {chat['message']}")
utils.py CHANGED
@@ -1,19 +1,35 @@
 
 
 
 
 
1
  def get_bot_response(user_message: str) -> str:
2
  """
3
  Función que recibe el mensaje del usuario y devuelve una respuesta del chatbot.
4
- La lógica se basa en identificar palabras clave relacionadas con tus servicios.
5
  """
6
- message = user_message.lower()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
 
8
- if "web" in message or "sitio" in message:
9
- return "¡Claro! Desarrollo sitios web personalizados, optimizados y responsivos para potenciar tu negocio."
10
- elif "app" in message or "móvil" in message or "mobile" in message:
11
- return "¡Por supuesto! Creo aplicaciones móviles con una experiencia de usuario excepcional y alto rendimiento."
12
- elif "ia" in message or "inteligencia artificial" in message:
13
- return "La inteligencia artificial puede transformar procesos. ¿Te gustaría explorar cómo implementarla en tu proyecto?"
14
- elif "power bi" in message or "insights" in message:
15
- return "Power BI es una herramienta potente para convertir datos en insights. ¿Quieres saber más sobre cómo podemos aprovecharla?"
16
- elif "hola" in message or "buenos días" in message or "saludos" in message:
17
- return "¡Hola! ¿En qué puedo ayudarte hoy?"
18
- else:
19
- return "Gracias por tu mensaje. ¿Podrías darme más detalles o especificar en qué área estás interesado?"
 
1
+ import spacy
2
+
3
+ # Cargar el modelo de idioma en español
4
+ nlp = spacy.load("es_core_news_sm")
5
+
6
  def get_bot_response(user_message: str) -> str:
7
  """
8
  Función que recibe el mensaje del usuario y devuelve una respuesta del chatbot.
9
+ Utiliza spaCy para analizar el mensaje y proporcionar respuestas más precisas.
10
  """
11
+ doc = nlp(user_message.lower())
12
+
13
+ # Definir palabras clave y respuestas
14
+ keywords_responses = {
15
+ "web": "¡Claro! Desarrollo sitios web personalizados, optimizados y responsivos para potenciar tu negocio.",
16
+ "sitio": "¡Claro! Desarrollo sitios web personalizados, optimizados y responsivos para potenciar tu negocio.",
17
+ "app": "¡Por supuesto! Creo aplicaciones móviles con una experiencia de usuario excepcional y alto rendimiento.",
18
+ "móvil": "¡Por supuesto! Creo aplicaciones móviles con una experiencia de usuario excepcional y alto rendimiento.",
19
+ "mobile": "¡Por supuesto! Creo aplicaciones móviles con una experiencia de usuario excepcional y alto rendimiento.",
20
+ "ia": "La inteligencia artificial puede transformar procesos. ¿Te gustaría explorar cómo implementarla en tu proyecto?",
21
+ "inteligencia artificial": "La inteligencia artificial puede transformar procesos. ¿Te gustaría explorar cómo implementarla en tu proyecto?",
22
+ "power bi": "Power BI es una herramienta potente para convertir datos en insights. ¿Quieres saber más sobre cómo podemos aprovecharla?",
23
+ "insights": "Power BI es una herramienta potente para convertir datos en insights. ¿Quieres saber más sobre cómo podemos aprovecharla?",
24
+ "hola": "¡Hola! ¿En qué puedo ayudarte hoy?",
25
+ "buenos días": "¡Hola! ¿En qué puedo ayudarte hoy?",
26
+ "saludos": "¡Hola! ¿En qué puedo ayudarte hoy?"
27
+ }
28
+
29
+ # Buscar palabras clave en el mensaje del usuario
30
+ for token in doc:
31
+ if token.text in keywords_responses:
32
+ return keywords_responses[token.text]
33
 
34
+ # Respuesta predeterminada si no se encuentran palabras clave
35
+ return "Gracias por tu mensaje. ¿Podrías darme más detalles o especificar en qué área estás interesado?"