Mapu25 commited on
Commit
ff80541
·
verified ·
1 Parent(s): bf16bcb

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +55 -44
app.py CHANGED
@@ -10,22 +10,22 @@ base_conocimiento = [
10
  },
11
  {
12
  "claves": ["servicio", "hacen", "ofrecen"],
13
- "respuesta": "Ofrecemos préstamo de libros, asesorías, PRIMONDE, renovaciones y biblioteca digital."
14
  },
15
  {
16
  "claves": ["norma", "regla", "prohibido", "comer"],
17
  "respuesta": "Debes mantener el silencio, no consumir alimentos, no fumar y cuidar los materiales."
18
  },
19
  {
20
- "claves": ["primonde", "catalogo"],
21
- "respuesta": "PRIMON es el catálogo en línea donde puedes buscar, reservar y renovar libros...\n👉 [Ir al catálogo](https://primo.utb.edu.co/discovery/search?vid=57UTB_INST:57UTB_INST)"
22
  },
23
  {
24
  "claves": ["base de datos", "bases de datos", "bd", "recursos digitales", "biblioteca digital"],
25
  "respuesta": "Puedes acceder a nuestras bases de datos académicas desde la biblioteca digital 📊. Incluyen recursos como artículos científicos, revistas, libros electrónicos y más...\n👉 [Ir a la biblioteca digital](https://www.utb.edu.co/biblioteca-utb/biblioteca-digital/)"
26
  },
27
  {
28
- "claves": ["fototeca", "fotos", "archivo fotografico"],
29
  "respuesta": "🖼️ La fototeca de la UTB conserva material fotográfico institucional e histórico. Puedes consultarla para fines académicos o de investigación a través de la biblioteca...\n👉 [Visitar la fototeca](https://www.utb.edu.co/biblioteca/fototeca-historica-cartagena-de-indias/)"
30
  },
31
  {
@@ -33,7 +33,7 @@ base_conocimiento = [
33
  "respuesta": "🏛️ Encuentra artículos de investigación, libros, revistas, fotos y demás recursos de tu interés, producidos por la Universidad Tecnológica de Bolívar...\n👉 [Ir al repositorio](https://repositorio.utb.edu.co/home)"
34
  },
35
  {
36
- "claves": ["biblioteca utb", "pagina biblioteca", "informacion de biblioteca", "web biblioteca"],
37
  "respuesta": "🌐 En la página oficial...\n👉 [Visitar biblioteca UTB](https://www.utb.edu.co/biblioteca-utb/)"
38
  },
39
 
@@ -86,63 +86,74 @@ def responder(mensaje, historial):
86
  mensaje = mensaje.lower()
87
  historial_global.append(mensaje)
88
 
89
- # 👋 Saludo inteligente (no interrumpe)
90
- saludo_detectado = any(s in mensaje for s in saludos)
91
-
92
- # Si SOLO es saludo
93
- if saludo_detectado and len(mensaje.split()) <= 3:
94
- return random.choice([
95
- "¡Hola! 😊 ¿En qué puedo ayudarte?",
96
- "¡Hola! 😄 ¿Qué necesitas saber?"
97
- ])
98
-
99
- # 🎓 CAPACITACIONES (AQUÍ 👇)
100
- if any(p in mensaje for p in ["capacitacion", "capacitaciones", "asesoria", "asesorias","capacitación", "asesoría", "asesorías"]):
101
- return random.choice([
102
- "¡Claro! 😊 Puedes agendar tu capacitación aquí 👇\n👉 [Agenda de capacitaciones](https://outlook.office365.com/book/ServiciosBibliotecarios@utb.edu.co/?ismsaljsauthenabled=true)",
103
- "Te ayudo con eso 😄\n\nAgenda tu capacitación en el siguiente enlace 👇\n👉 [Agendar capacitación](https://outlook.office365.com/book/ServiciosBibliotecarios@utb.edu.co/?ismsaljsauthenabled=true)"
104
- ])
 
 
 
 
 
 
 
 
 
 
 
 
 
 
105
 
106
  # 🔎 BÚSQUEDA DE LIBROS
107
  if (
108
  any(p in mensaje for p in ["libro", "autor"]) or
109
  ("buscar" in mensaje and "libro" in mensaje)
110
  ):
111
-
112
  consulta = limpiar_consulta(mensaje).strip()
113
 
114
- if consulta == "":
115
- return "¿Qué libro deseas buscar? 😊"
116
-
117
- consultas = separar_consultas(consulta)
118
 
119
- respuesta = "🔎 Claro 😊 encontré lo siguiente:\n\n"
120
 
121
- for c in consultas:
122
- link = generar_link_primo(c)
123
- respuesta += f"📚 **{c.capitalize()}**\n👉 [Ver en PRIMO]({link})\n\n"
124
 
125
- return respuesta
126
 
127
- # 📚 RESPUESTAS DE BASE DE CONOCIMIENTO
128
  for item in base_conocimiento:
129
  if any(p in mensaje for p in item["claves"]):
130
- return random.choice([
131
- f"Claro 😊\n\n{item['respuesta']}",
132
- f"Te explico 👇\n\n{item['respuesta']}",
133
- f"¡Buena pregunta! 😄\n\n{item['respuesta']}"
134
- ])
135
-
136
- # 🤖 RESPUESTA POR DEFECTO
137
- return random.choice([
138
- "Puedo ayudarte con horarios, servicios o búsqueda de libros 📚😊",
139
- "No tengo esa información exacta 😅, pero puedo ayudarte con la biblioteca."
140
- ])
141
 
 
 
142
  # 🎨 Interfaz
143
  chat = gr.ChatInterface(
144
  responder,
145
- title="📚 Biblioteca PRIMONDE",
146
  description="Asistente virtual de la biblioteca",
147
  chatbot=gr.Chatbot(
148
  value=[
 
10
  },
11
  {
12
  "claves": ["servicio", "hacen", "ofrecen"],
13
+ "respuesta": "Ofrecemos préstamo de libros, asesorías, Catálogo PRIMO, renovaciones y biblioteca digital."
14
  },
15
  {
16
  "claves": ["norma", "regla", "prohibido", "comer"],
17
  "respuesta": "Debes mantener el silencio, no consumir alimentos, no fumar y cuidar los materiales."
18
  },
19
  {
20
+ "claves": ["primo", "catalogo", "catálogo"],
21
+ "respuesta": "PRIMO es el catálogo en línea donde puedes buscar, reservar y renovar libros...\n👉 [Ir al catálogo](https://primo.utb.edu.co/discovery/search?vid=57UTB_INST:57UTB_INST)"
22
  },
23
  {
24
  "claves": ["base de datos", "bases de datos", "bd", "recursos digitales", "biblioteca digital"],
25
  "respuesta": "Puedes acceder a nuestras bases de datos académicas desde la biblioteca digital 📊. Incluyen recursos como artículos científicos, revistas, libros electrónicos y más...\n👉 [Ir a la biblioteca digital](https://www.utb.edu.co/biblioteca-utb/biblioteca-digital/)"
26
  },
27
  {
28
+ "claves": ["fototeca", "fotos", "archivo fotografico","archivo fotográfico"],
29
  "respuesta": "🖼️ La fototeca de la UTB conserva material fotográfico institucional e histórico. Puedes consultarla para fines académicos o de investigación a través de la biblioteca...\n👉 [Visitar la fototeca](https://www.utb.edu.co/biblioteca/fototeca-historica-cartagena-de-indias/)"
30
  },
31
  {
 
33
  "respuesta": "🏛️ Encuentra artículos de investigación, libros, revistas, fotos y demás recursos de tu interés, producidos por la Universidad Tecnológica de Bolívar...\n👉 [Ir al repositorio](https://repositorio.utb.edu.co/home)"
34
  },
35
  {
36
+ "claves": ["biblioteca utb", "pagina biblioteca","página biblioteca", "informacion de biblioteca", "web biblioteca","información de biblioteca"],
37
  "respuesta": "🌐 En la página oficial...\n👉 [Visitar biblioteca UTB](https://www.utb.edu.co/biblioteca-utb/)"
38
  },
39
 
 
86
  mensaje = mensaje.lower()
87
  historial_global.append(mensaje)
88
 
89
+ respuestas = []
90
+ saludo = ""
91
+
92
+ # 👋 Detectar saludo
93
+ if any(s in mensaje for s in saludos):
94
+ saludo = "¡Hola! 😊\n\n"
95
+
96
+ # 🎓 CAPACITACIONES
97
+ if any(p in mensaje for p in ["capacitacion", "capacitaciones", "asesoria", "asesorias", "capacitación", "asesoría"]):
98
+ respuestas.append(
99
+ "🎓 Puedes agendar tu capacitación aquí:\n👉 [Agendar capacitación](https://outlook.office365.com/book/ServiciosBibliotecarios@utb.edu.co/?ismsaljsauthenabled=true)"
100
+ )
101
+
102
+ # 📚 HORARIO
103
+ if any(p in mensaje for p in ["horario", "hora", "abren", "atienden"]):
104
+ respuestas.append(
105
+ "📚 Nuestro horario es:\nCampus Tecnológico: 7am a 7pm\nCasa Lemaitre: 7am a 5pm"
106
+ )
107
+
108
+ # 📊 BASES DE DATOS
109
+ if any(p in mensaje for p in ["base de datos", "bases de datos", "bd", "biblioteca digital"]):
110
+ respuestas.append(
111
+ "📊 Puedes acceder a nuestras bases de datos aquí:\n👉 [Biblioteca digital](https://www.utb.edu.co/biblioteca-utb/biblioteca-digital/)"
112
+ )
113
+
114
+ # 🏛️ REPOSITORIO
115
+ if any(p in mensaje for p in ["repositorio", "tesis", "trabajos de grado"]):
116
+ respuestas.append(
117
+ "🏛️ Puedes consultar el repositorio aquí:\n👉 [Repositorio UTB](https://repositorio.utb.edu.co/home)"
118
+ )
119
 
120
  # 🔎 BÚSQUEDA DE LIBROS
121
  if (
122
  any(p in mensaje for p in ["libro", "autor"]) or
123
  ("buscar" in mensaje and "libro" in mensaje)
124
  ):
 
125
  consulta = limpiar_consulta(mensaje).strip()
126
 
127
+ if consulta:
128
+ consultas = separar_consultas(consulta)
 
 
129
 
130
+ texto_libros = "🔎 Encontré esto:\n\n"
131
 
132
+ for c in consultas:
133
+ link = generar_link_primo(c)
134
+ texto_libros += f"📚 **{c.capitalize()}**\n👉 [Ver en PRIMO]({link})\n\n"
135
 
136
+ respuestas.append(texto_libros)
137
 
138
+ # 📚 BASE DE CONOCIMIENTO (otros)
139
  for item in base_conocimiento:
140
  if any(p in mensaje for p in item["claves"]):
141
+ respuestas.append(item["respuesta"])
142
+ break
143
+
144
+ # 🤖 SI NO ENTENDIÓ NADA
145
+ if not respuestas:
146
+ return random.choice([
147
+ "No tengo esa información exacta 😅, pero puedo ayudarte con la biblioteca.",
148
+ "Intenta preguntarme sobre libros, horarios o servicios 📚"
149
+ ])
 
 
150
 
151
+ # 🎯 RESPUESTA FINAL
152
+ return saludo + "\n\n".join(respuestas)
153
  # 🎨 Interfaz
154
  chat = gr.ChatInterface(
155
  responder,
156
+ title="📚 Biblioteca UTB",
157
  description="Asistente virtual de la biblioteca",
158
  chatbot=gr.Chatbot(
159
  value=[