Spaces:
Sleeping
Sleeping
Respuestas personalizadas
Browse files
app.py
CHANGED
@@ -15,9 +15,27 @@ documentos = [
|
|
15 |
"Para renovar un libro, debes ingresar al sistema antes de la fecha de vencimiento.",
|
16 |
"Se realizan talleres de lectura y escritura todos los miércoles a las 3 p.m.",
|
17 |
"Los libros extraviados deben ser reportados inmediatamente al personal de la biblioteca.",
|
18 |
-
"Los usuarios deben mantener el silencio dentro de las instalaciones."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
]
|
20 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
# --- Cargar modelo de embeddings y crear índice FAISS ---
|
22 |
modelo_emb = SentenceTransformer('sentence-transformers/bert-base-nli-mean-tokens')
|
23 |
embeddings_docs = modelo_emb.encode(documentos, convert_to_numpy=True)
|
@@ -47,10 +65,16 @@ def respuesta_basica(texto):
|
|
47 |
|
48 |
# --- Función de chatbot con manejo de frases comunes ---
|
49 |
def chat_biblioteca(mensaje, historial=None):
|
|
|
|
|
50 |
respuesta_simple = respuesta_basica(mensaje)
|
51 |
if respuesta_simple:
|
52 |
return respuesta_simple
|
53 |
|
|
|
|
|
|
|
|
|
54 |
# Respuesta con embeddings y QA
|
55 |
embedding = modelo_emb.encode([mensaje], convert_to_numpy=True)
|
56 |
D, I = index.search(embedding, k=2)
|
@@ -70,9 +94,9 @@ gr.ChatInterface(
|
|
70 |
title="📚 BiblioBot",
|
71 |
description="¡Bienvenido a BiblioBot! Pregunta sobre libros, horarios o servicios de biblioteca.",
|
72 |
examples=[
|
73 |
-
"¿
|
74 |
"¿Puedo comer dentro de la biblioteca?",
|
75 |
-
"¿
|
76 |
"hola",
|
77 |
"gracias"
|
78 |
],
|
|
|
15 |
"Para renovar un libro, debes ingresar al sistema antes de la fecha de vencimiento.",
|
16 |
"Se realizan talleres de lectura y escritura todos los miércoles a las 3 p.m.",
|
17 |
"Los libros extraviados deben ser reportados inmediatamente al personal de la biblioteca.",
|
18 |
+
"Los usuarios deben mantener el silencio dentro de las instalaciones.",
|
19 |
+
"Los préstamos interbibliotecarios permiten acceder a libros de otras sedes universitarias.",
|
20 |
+
"Puedes solicitar ayuda al bibliotecario para encontrar libros o hacer búsquedas avanzadas.",
|
21 |
+
"Se ofrecen capacitaciones sobre el uso de bases de datos académicas.",
|
22 |
+
"La biblioteca dispone de computadoras para uso estudiantil.",
|
23 |
+
"El acceso a Internet es gratuito dentro de la biblioteca.",
|
24 |
+
"Las impresiones tienen un costo y se solicitan en el módulo de servicios.",
|
25 |
+
"Puedes devolver los libros en el buzón de devoluciones fuera del horario.",
|
26 |
+
"Los libros de reserva solo se prestan por 2 horas dentro de la biblioteca.",
|
27 |
+
"Cada estudiante tiene un historial de préstamos en su cuenta institucional.",
|
28 |
+
"Las multas por retraso en la devolución se calculan por día hábil de retraso."
|
29 |
]
|
30 |
|
31 |
+
# --- Preguntas frecuentes personalizadas ---
|
32 |
+
faq_personalizadas = {
|
33 |
+
"con quien estoy hablando": "Estás hablando con BiblioBot, el asistente virtual de la biblioteca 📚.",
|
34 |
+
"quien eres": "Soy BiblioBot, un chatbot creado para ayudarte con preguntas sobre la biblioteca.",
|
35 |
+
"cuales son los horarios de la biblioteca": "La biblioteca abre de lunes a viernes de 8:00 a.m. a 6:00 p.m.",
|
36 |
+
"que categoria de libros hay": "Hay libros de ciencia, literatura, ingeniería, arte, historia, tecnología y muchos más."
|
37 |
+
}
|
38 |
+
|
39 |
# --- Cargar modelo de embeddings y crear índice FAISS ---
|
40 |
modelo_emb = SentenceTransformer('sentence-transformers/bert-base-nli-mean-tokens')
|
41 |
embeddings_docs = modelo_emb.encode(documentos, convert_to_numpy=True)
|
|
|
65 |
|
66 |
# --- Función de chatbot con manejo de frases comunes ---
|
67 |
def chat_biblioteca(mensaje, historial=None):
|
68 |
+
mensaje_limpio = mensaje.lower().strip()
|
69 |
+
|
70 |
respuesta_simple = respuesta_basica(mensaje)
|
71 |
if respuesta_simple:
|
72 |
return respuesta_simple
|
73 |
|
74 |
+
for clave in faq_personalizadas:
|
75 |
+
if clave in mensaje_limpio:
|
76 |
+
return faq_personalizadas[clave]
|
77 |
+
|
78 |
# Respuesta con embeddings y QA
|
79 |
embedding = modelo_emb.encode([mensaje], convert_to_numpy=True)
|
80 |
D, I = index.search(embedding, k=2)
|
|
|
94 |
title="📚 BiblioBot",
|
95 |
description="¡Bienvenido a BiblioBot! Pregunta sobre libros, horarios o servicios de biblioteca.",
|
96 |
examples=[
|
97 |
+
"¿Cual es el horario de la biblioteca?",
|
98 |
"¿Puedo comer dentro de la biblioteca?",
|
99 |
+
"¿Que pasa si pierdo un libro?",
|
100 |
"hola",
|
101 |
"gracias"
|
102 |
],
|