Spaces:
Running
Running
eberhenriquez94
commited on
app.py
CHANGED
@@ -1,59 +1,58 @@
|
|
1 |
import gradio as gr
|
2 |
import os
|
3 |
from openai import OpenAI
|
|
|
4 |
|
|
|
5 |
api_key = os.getenv("API_KEY")
|
6 |
if not api_key:
|
7 |
raise ValueError("La variable de entorno 'API_KEY' no est谩 configurada.")
|
8 |
|
|
|
9 |
client = OpenAI(base_url="https://integrate.api.nvidia.com/v1", api_key=api_key)
|
10 |
|
11 |
-
|
12 |
-
|
13 |
-
|
|
|
|
|
14 |
|
15 |
-
|
16 |
-
"role": "system",
|
17 |
-
"content": (
|
18 |
-
"""
|
19 |
-
Act煤a como un Ministro de la Corte Suprema de Chile, especializado en Derecho de Familia. Tu tarea es perfeccionar la redacci贸n de un borrador de resoluci贸n judicial, asegurando claridad, precisi贸n, concisi贸n y formalidad. No debes cambiar la sustancia ni el fundamento de la decisi贸n original.
|
20 |
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
4. **Utilizar expresiones judiciales chilenas est谩ndar.** Usa frases tradicionales en conclusiones y firmas si est谩n presentes (ej., "Provey贸 y firm贸 el Juez mediante firma electr贸nica avanzada").
|
27 |
|
28 |
## Ejemplos:
|
29 |
|
30 |
-
-
|
31 |
Reformular a: "Se establece un r茅gimen de visitas del menor con su padre los fines de semana."
|
32 |
-
-
|
33 |
Reformular a: "Se fija una pensi贸n alimenticia a favor de la demandante para la manutenci贸n del menor."
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
2. Aplica un tono formal y t茅cnico, usando el imperativo solo donde corresponda.
|
39 |
-
3. Mejora la precisi贸n usando terminolog铆a jur铆dica correcta.
|
40 |
-
4. Asegura la concisi贸n eliminando redundancias.
|
41 |
-
5. Utiliza expresiones judiciales chilenas est谩ndar.
|
42 |
-
6. Revisa y corrige el texto final.
|
43 |
|
44 |
## Restricciones:
|
45 |
|
46 |
-
- No
|
47 |
-
- No interpretes ni ampl铆es el contenido existente
|
48 |
- No incluyas an谩lisis o comentarios personales.
|
49 |
|
50 |
## Formato de Salida:
|
51 |
|
52 |
Devuelve el borrador de la resoluci贸n judicial revisado y mejorado en formato de texto, manteniendo la estructura original.
|
53 |
"""
|
54 |
-
|
55 |
-
|
56 |
-
|
|
|
|
|
|
|
|
|
57 |
|
58 |
try:
|
59 |
completion = client.chat.completions.create(
|
@@ -62,43 +61,50 @@ Devuelve el borrador de la resoluci贸n judicial revisado y mejorado en formato d
|
|
62 |
temperature=0.8,
|
63 |
top_p=0.7,
|
64 |
max_tokens=4000,
|
65 |
-
stream=True
|
66 |
)
|
|
|
67 |
response_text = ""
|
68 |
for chunk in completion:
|
69 |
if chunk.choices[0].delta.content is not None:
|
70 |
response_text += chunk.choices[0].delta.content
|
71 |
-
|
72 |
-
|
|
|
|
|
73 |
|
74 |
except Exception as e:
|
75 |
-
print(f"Error
|
76 |
-
yield "Error
|
77 |
|
|
|
78 |
description = """
|
79 |
## Ministro IA de la Corte Suprema - Derecho de Familia
|
80 |
|
81 |
-
Este
|
82 |
-
El prop贸sito es perfeccionar la redacci贸n de resoluciones judiciales manteniendo los est谩ndares del lenguaje judicial chileno.
|
83 |
|
84 |
**Instrucciones:**
|
85 |
-
1.
|
86 |
-
2.
|
87 |
"""
|
88 |
|
89 |
examples = [
|
90 |
-
["El juez decide que el pap谩 puede ver a su hijo los fines de semana."
|
91 |
-
["Se ordena pagarle una pensi贸n a la mam谩 para los gastos del ni帽o.",
|
|
|
|
|
92 |
]
|
93 |
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
)
|
103 |
-
|
104 |
-
|
|
|
|
|
|
1 |
import gradio as gr
|
2 |
import os
|
3 |
from openai import OpenAI
|
4 |
+
from gradio_agentchatbot import AgentChatbot, ChatMessage
|
5 |
|
6 |
+
# Configura la clave de API
|
7 |
api_key = os.getenv("API_KEY")
|
8 |
if not api_key:
|
9 |
raise ValueError("La variable de entorno 'API_KEY' no est谩 configurada.")
|
10 |
|
11 |
+
# Inicializa el cliente OpenAI
|
12 |
client = OpenAI(base_url="https://integrate.api.nvidia.com/v1", api_key=api_key)
|
13 |
|
14 |
+
# Define el mensaje del sistema (mejorado)
|
15 |
+
system_message = {
|
16 |
+
"role": "system",
|
17 |
+
"content": """
|
18 |
+
Act煤a como un Ministro de la Corte Suprema de Chile, especializado en Derecho de Familia. Tu tarea es perfeccionar la redacci贸n de un borrador de resoluci贸n judicial. Debes lograr claridad, precisi贸n, concisi贸n y formalidad, **sin alterar la sustancia de la decisi贸n.**
|
19 |
|
20 |
+
## Instrucciones:
|
|
|
|
|
|
|
|
|
21 |
|
22 |
+
1. **Reemplaza t茅rminos ambiguos o coloquiales con terminolog铆a jur铆dica precisa.** (ej., "r茅gimen de visitas" en lugar de "ver al ni帽o", "pensi贸n alimenticia" en lugar de "dar plata").
|
23 |
+
2. **Elimina redundancias y frases innecesarias.** Simplifica las oraciones manteniendo el significado original.
|
24 |
+
3. **Utiliza un tono formal e impersonal.** Evita expresiones subjetivas o coloquiales. Expresa las decisiones de forma objetiva y concisa.
|
25 |
+
4. **Usa expresiones judiciales chilenas est谩ndar, especialmente en conclusiones y firmas.** (ej., "Provey贸 y firm贸 el Juez mediante firma electr贸nica avanzada").
|
26 |
+
5. **Mant茅n la estructura original del borrador.** No reordenes p谩rrafos ni secciones.
|
|
|
27 |
|
28 |
## Ejemplos:
|
29 |
|
30 |
+
- Borrador: "El juez decide que el pap谩 puede ver a su hijo los fines de semana."
|
31 |
Reformular a: "Se establece un r茅gimen de visitas del menor con su padre los fines de semana."
|
32 |
+
- Borrador: "Se ordena pagarle una pensi贸n a la mam谩 para los gastos del ni帽o."
|
33 |
Reformular a: "Se fija una pensi贸n alimenticia a favor de la demandante para la manutenci贸n del menor."
|
34 |
+
- Borrador: "El pap谩 tiene que pagar la mitad de los gastos del colegio."
|
35 |
+
Reformular a: "Se establece que ambos padres contribuir谩n en partes iguales al pago de los gastos educacionales del menor."
|
36 |
+
- Borrador: "Yo creo que lo mejor para el ni帽o es..."
|
37 |
+
Reformular a: "Se considera que la mejor opci贸n para el bienestar del menor es..."
|
|
|
|
|
|
|
|
|
|
|
38 |
|
39 |
## Restricciones:
|
40 |
|
41 |
+
- **No modifiques las decisiones, los montos, las fechas, ni las partes involucradas en la resoluci贸n.** Tu tarea se limita a mejorar la redacci贸n del texto existente.
|
42 |
+
- No interpretes ni ampl铆es el contenido existente.
|
43 |
- No incluyas an谩lisis o comentarios personales.
|
44 |
|
45 |
## Formato de Salida:
|
46 |
|
47 |
Devuelve el borrador de la resoluci贸n judicial revisado y mejorado en formato de texto, manteniendo la estructura original.
|
48 |
"""
|
49 |
+
}
|
50 |
+
|
51 |
+
def llama_response(prompt, messages):
|
52 |
+
messages.append(ChatMessage(role="user", content=prompt))
|
53 |
+
yield messages, "Procesando..."
|
54 |
+
|
55 |
+
user_message = {"role": "user", "content": prompt}
|
56 |
|
57 |
try:
|
58 |
completion = client.chat.completions.create(
|
|
|
61 |
temperature=0.8,
|
62 |
top_p=0.7,
|
63 |
max_tokens=4000,
|
64 |
+
stream=True,
|
65 |
)
|
66 |
+
|
67 |
response_text = ""
|
68 |
for chunk in completion:
|
69 |
if chunk.choices[0].delta.content is not None:
|
70 |
response_text += chunk.choices[0].delta.content
|
71 |
+
messages.append(ChatMessage(role="assistant", content=response_text))
|
72 |
+
yield messages, "Procesando..."
|
73 |
+
|
74 |
+
yield messages, "Listo"
|
75 |
|
76 |
except Exception as e:
|
77 |
+
print(f"Error: {e}")
|
78 |
+
yield messages + [ChatMessage(role="assistant", content="Error al procesar la solicitud.")], "Error"
|
79 |
|
80 |
+
# Interfaz de Gradio (mejorada)
|
81 |
description = """
|
82 |
## Ministro IA de la Corte Suprema - Derecho de Familia
|
83 |
|
84 |
+
Este espacio perfecciona la redacci贸n de resoluciones judiciales chilenas en Derecho de Familia.
|
|
|
85 |
|
86 |
**Instrucciones:**
|
87 |
+
1. Pega el borrador en el cuadro de texto.
|
88 |
+
2. Haz clic en "Submit".
|
89 |
"""
|
90 |
|
91 |
examples = [
|
92 |
+
["El juez decide que el pap谩 puede ver a su hijo los fines de semana."],
|
93 |
+
["Se ordena pagarle una pensi贸n a la mam谩 para los gastos del ni帽o."],
|
94 |
+
["El pap谩 tiene que pagar la mitad de los gastos del colegio."],
|
95 |
+
["Yo creo que lo mejor para el ni帽o es..."]
|
96 |
]
|
97 |
|
98 |
+
with gr.Blocks() as demo:
|
99 |
+
chatbot = AgentChatbot(label="Resoluci贸n")
|
100 |
+
text_input = gr.Textbox(
|
101 |
+
lines=10,
|
102 |
+
label="Borrador de la Resoluci贸n",
|
103 |
+
placeholder="Ingrese el borrador aqu铆...",
|
104 |
+
)
|
105 |
+
text_input.submit(
|
106 |
+
llama_response, [text_input, chatbot], [chatbot, gr.Label(label="Estado")]
|
107 |
+
)
|
108 |
+
|
109 |
+
if __name__ == "__main__":
|
110 |
+
demo.launch()
|