Spaces:
Running
on
Zero
Running
on
Zero
Update app.py
Browse files
app.py
CHANGED
@@ -1,6 +1,7 @@
|
|
1 |
import gradio as gr
|
2 |
import pickle
|
3 |
import os
|
|
|
4 |
from transformers import AutoTokenizer, AutoModel, pipeline
|
5 |
import torch
|
6 |
import faiss
|
@@ -17,6 +18,19 @@ if os.path.exists("index.pkl"):
|
|
17 |
else:
|
18 |
raise FileNotFoundError("No se encontró el archivo 'index.pkl'.")
|
19 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
# Modelo de embeddings
|
21 |
model_id = "jinaai/jina-embeddings-v2-base-es"
|
22 |
tokenizer = AutoTokenizer.from_pretrained(model_id)
|
@@ -51,11 +65,10 @@ def responder(pregunta):
|
|
51 |
result_chunks = [chunks[i] for i in indices[0]]
|
52 |
|
53 |
palabras_clave = pregunta.lower().split()
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
print("\n\n".join(result_chunks[:3]))
|
59 |
|
60 |
prompt = f"""
|
61 |
Eres un abogado colombiano especializado en el Código de Tránsito, Código de Policía y Código Penal.
|
@@ -104,4 +117,4 @@ demo = gr.Interface(
|
|
104 |
)
|
105 |
|
106 |
if __name__ == "__main__":
|
107 |
-
demo.launch()
|
|
|
1 |
import gradio as gr
|
2 |
import pickle
|
3 |
import os
|
4 |
+
import json
|
5 |
from transformers import AutoTokenizer, AutoModel, pipeline
|
6 |
import torch
|
7 |
import faiss
|
|
|
18 |
else:
|
19 |
raise FileNotFoundError("No se encontró el archivo 'index.pkl'.")
|
20 |
|
21 |
+
# Cargar diccionario de sinónimos
|
22 |
+
with open("sinonimos.json", "r", encoding="utf-8") as f:
|
23 |
+
diccionario_sinonimos = json.load(f)
|
24 |
+
|
25 |
+
# Función para expandir palabras clave con sinónimos
|
26 |
+
def expandir_con_sinonimos(palabras, diccionario):
|
27 |
+
resultado = set(palabras)
|
28 |
+
for palabra in palabras:
|
29 |
+
for clave, sinonimos in diccionario.items():
|
30 |
+
if palabra == clave or palabra in sinonimos:
|
31 |
+
resultado.update([clave] + sinonimos)
|
32 |
+
return list(resultado)
|
33 |
+
|
34 |
# Modelo de embeddings
|
35 |
model_id = "jinaai/jina-embeddings-v2-base-es"
|
36 |
tokenizer = AutoTokenizer.from_pretrained(model_id)
|
|
|
65 |
result_chunks = [chunks[i] for i in indices[0]]
|
66 |
|
67 |
palabras_clave = pregunta.lower().split()
|
68 |
+
palabras_expandidas = expandir_con_sinonimos(palabras_clave, diccionario_sinonimos)
|
69 |
+
|
70 |
+
filtrados = [c for c in result_chunks if any(p in c.lower() for p in palabras_expandidas)]
|
71 |
+
contexto_final = "\n\n".join(filtrados[:3]) if filtrados else "\n\n".join(result_chunks[:3])
|
|
|
72 |
|
73 |
prompt = f"""
|
74 |
Eres un abogado colombiano especializado en el Código de Tránsito, Código de Policía y Código Penal.
|
|
|
117 |
)
|
118 |
|
119 |
if __name__ == "__main__":
|
120 |
+
demo.launch()
|