thejarll commited on
Commit
0a63192
·
verified ·
1 Parent(s): 3109205

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -3
app.py CHANGED
@@ -56,16 +56,24 @@ llm = pipeline(
56
  trust_remote_code=True
57
  )
58
 
59
- @GPU # DECORADOR para que ZeroGPU ejecute esta función en CPU/GPU remota
60
  def responder(pregunta):
61
  if not pregunta:
62
  return "Por favor ingresa una pregunta."
63
 
64
  pregunta_embedding = generar_embedding(pregunta)
65
- distances, indices = index.search(pregunta_embedding.reshape(1, -1), k=50)
66
  result_chunks = [chunks[i] for i in indices[0]]
67
 
68
- contexto_final = "\n\n".join(result_chunks[:20])
 
 
 
 
 
 
 
 
69
 
70
  prompt = f"""
71
  Eres un experto en el Código de Policía, el Código de Tránsito y el Código Penal de Colombia. Tu función es responder la pregunta del usuario únicamente con base en el TEXTO LEGAL proporcionado como contexto. Debes interpretar el contenido legal y dar una respuesta clara, precisa y fácil de entender, sin inventar sanciones, valores de multas ni artículos que no estén explícitamente mencionados. No agregues enlaces, notas, aclaraciones ni contenido adicional fuera del contexto. Si no encuentras la información en el texto, responde claramente que no se encontró información suficiente en los documentos para responder la pregunta. Sé breve, formal y directo al responder.
 
56
  trust_remote_code=True
57
  )
58
 
59
+ @GPU
60
  def responder(pregunta):
61
  if not pregunta:
62
  return "Por favor ingresa una pregunta."
63
 
64
  pregunta_embedding = generar_embedding(pregunta)
65
+ distances, indices = index.search(pregunta_embedding.reshape(1, -1), k=75)
66
  result_chunks = [chunks[i] for i in indices[0]]
67
 
68
+ # Expandir sinónimos (opcional)
69
+ palabras_clave = pregunta.lower().split()
70
+ palabras_expandidas = expandir_con_sinonimos(palabras_clave, diccionario_sinonimos)
71
+
72
+ # Aplicar filtro, pero dejar más chunks como respaldo
73
+ filtrados = [c for c in result_chunks if any(p in c.lower() for p in palabras_expandidas)]
74
+ contexto_final = "\n\n".join(filtrados[:20]) if filtrados else "\n\n".join(result_chunks[:20])
75
+
76
+ # (El prompt vendría después de esto...)
77
 
78
  prompt = f"""
79
  Eres un experto en el Código de Policía, el Código de Tránsito y el Código Penal de Colombia. Tu función es responder la pregunta del usuario únicamente con base en el TEXTO LEGAL proporcionado como contexto. Debes interpretar el contenido legal y dar una respuesta clara, precisa y fácil de entender, sin inventar sanciones, valores de multas ni artículos que no estén explícitamente mencionados. No agregues enlaces, notas, aclaraciones ni contenido adicional fuera del contexto. Si no encuentras la información en el texto, responde claramente que no se encontró información suficiente en los documentos para responder la pregunta. Sé breve, formal y directo al responder.