Spaces:
Running
on
Zero
Running
on
Zero
Update app.py
Browse files
app.py
CHANGED
@@ -56,16 +56,24 @@ llm = pipeline(
|
|
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=
|
66 |
result_chunks = [chunks[i] for i in indices[0]]
|
67 |
|
68 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|