FelipeMena commited on
Commit
401e9a4
·
verified ·
1 Parent(s): 4a23809

Update app.py

Browse files

Se agrego la detección de saludos y frases comunes

Files changed (1) hide show
  1. app.py +35 -0
app.py CHANGED
@@ -29,6 +29,41 @@ index.add(embeddings_docs)
29
  # --- Pipeline de pregunta-respuesta ---
30
  qa_pipeline = pipeline("question-answering", model="PlanTL-GOB-ES/roberta-base-bne-sqac")
31
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
  # --- Función de chatbot ---
33
  def chat_biblioteca(pregunta):
34
  embedding = modelo_emb.encode([pregunta], convert_to_numpy=True)
 
29
  # --- Pipeline de pregunta-respuesta ---
30
  qa_pipeline = pipeline("question-answering", model="PlanTL-GOB-ES/roberta-base-bne-sqac")
31
 
32
+ # --- Detectar saludos y frases comunes ---
33
+ def respuesta_basica(texto):
34
+ texto = texto.lower().strip()
35
+ saludos = ["hola", "buenos días", "buenas tardes", "buenas noches", "qué tal", "hey", "buen día"]
36
+ despedidas = ["adiós", "hasta luego", "nos vemos"]
37
+ agradecimientos = ["gracias", "muchas gracias", "te lo agradezco"]
38
+
39
+ if any(s in texto for s in saludos):
40
+ return "¡Hola! ¿En qué puedo ayudarte con la biblioteca?"
41
+ elif any(d in texto for d in despedidas):
42
+ return "¡Hasta luego! No olvides devolver tus libros a tiempo 📚."
43
+ elif any(a in texto for a in agradecimientos):
44
+ return "¡De nada! Estoy aquí para ayudarte 😊."
45
+ else:
46
+ return None
47
+
48
+ # --- Función de chatbot con manejo de frases comunes ---
49
+ def chat_biblioteca(pregunta):
50
+ respuesta_simple = respuesta_basica(pregunta)
51
+ if respuesta_simple:
52
+ return respuesta_simple
53
+
54
+ # Si no es frase común, responder usando embeddings y modelo QA
55
+ embedding = modelo_emb.encode([pregunta], convert_to_numpy=True)
56
+ D, I = index.search(embedding, k=2)
57
+ contexto = " ".join([documentos[i] for i in I[0]])
58
+
59
+ try:
60
+ resultado = qa_pipeline(question=pregunta, context=contexto)
61
+ respuesta = resultado["answer"]
62
+ return respuesta
63
+ except:
64
+ return "Lo siento, no pude procesar tu pregunta. ¿Puedes intentar reformularla?"
65
+
66
+
67
  # --- Función de chatbot ---
68
  def chat_biblioteca(pregunta):
69
  embedding = modelo_emb.encode([pregunta], convert_to_numpy=True)