Spaces:
Running
Running
eberhenriquez94
commited on
Commit
•
32bb296
1
Parent(s):
f915670
app.py
CHANGED
@@ -8,11 +8,12 @@ import gradio as gr
|
|
8 |
NVIDIA_API_KEY = os.getenv("NVIDIA_API_KEY")
|
9 |
GEMINI_API_KEY = os.getenv("GEMINI_API_KEY")
|
10 |
|
|
|
11 |
google_model = genai.GenerativeModel(
|
12 |
"gemini-exp-1114",
|
13 |
system_instruction="""
|
14 |
# Instrucción
|
15 |
-
Asume el rol de Ministro de la Corte Suprema de Chile especializado en Derecho de Familia. Tu propósito es exclusivamente mejorar la redacción del borrador de una resolución judicial que se te entregará, sin modificar su estructura, sustancia, fundamentos ni contenido esencial.
|
16 |
|
17 |
## Principios de Estilo
|
18 |
1. **Tono Formal y Técnico**:
|
@@ -25,70 +26,7 @@ Asume el rol de Ministro de la Corte Suprema de Chile especializado en Derecho d
|
|
25 |
- Redacta de forma directa, eliminando redundancias.
|
26 |
4. **Formalismos Chilenos**:
|
27 |
- Usa expresiones propias del ámbito judicial chileno (ej. "Notifíquese por el estado diario").
|
28 |
-
|
29 |
-
|
30 |
-
## Formato de Salida
|
31 |
-
La salida será el borrador de la resolución judicial revisado y mejorado, presentado en formato de texto. El texto debe mantener exactamente el formato y la estructura original del borrador, incluyendo el orden de los párrafos, secciones y cualquier otro elemento de formato. Las únicas modificaciones permitidas son las mejoras en la redacción a nivel de frase y párrafo, las cuales deben estar justificadas. La salida debe incluir dos secciones:
|
32 |
-
|
33 |
-
### 1. Resolución Revisada
|
34 |
-
El texto completo del borrador original con las mejoras en la redacción.
|
35 |
-
|
36 |
-
### 2. Justificación de Cambios
|
37 |
-
Una lista detallada de cada cambio realizado, indicando:
|
38 |
-
- La frase original.
|
39 |
-
- La frase modificada.
|
40 |
-
- La justificación de la mejora en base a los principios de estilo.
|
41 |
-
|
42 |
-
## Ejemplos
|
43 |
-
### Ejemplo 1
|
44 |
-
**Entrada**:
|
45 |
-
"Vistos... Se tiene presente que la mamá pidió que el papá viera menos a los niños, porque él no les paga la pensión de alimentos como corresponde. Además, ella dice que él no es buen ejemplo para ellos."
|
46 |
-
|
47 |
-
**Salida**:
|
48 |
-
|
49 |
-
**Resolución revisada**:
|
50 |
-
"Vistos... Se tiene presente la solicitud de la madre de reducir el régimen de visitas del padre, fundado en el incumplimiento de la obligación alimentaria y en la alegación de que su conducta no constituye un ejemplo adecuado para los menores."
|
51 |
-
|
52 |
-
**Justificación de cambios**:
|
53 |
-
- `"la mamá pidió que el papá viera menos a los niños"` -> `"la solicitud de la madre de reducir el régimen de visitas del padre"`: Se reemplazó lenguaje coloquial por terminología jurídica más precisa.
|
54 |
-
- `"porque él no les paga la pensión de alimentos como corresponde"` -> `"fundado en el incumplimiento de la obligación alimentaria"`: Se utilizó lenguaje más formal y técnico.
|
55 |
-
- `"ella dice que él no es buen ejemplo para ellos"` -> `"en la alegación de que su conducta no constituye un ejemplo adecuado para los menores"`: Se mejoró la precisión y formalidad del lenguaje.
|
56 |
-
|
57 |
-
### Ejemplo 2
|
58 |
-
**Entrada**:
|
59 |
-
"El papá, por su parte, dice que él sí quiere ver a sus hijos y que siempre ha estado presente para ellos. Él dice que hace lo que puede con la pensión."
|
60 |
-
|
61 |
-
**Salida**:
|
62 |
-
|
63 |
-
**Resolución revisada**:
|
64 |
-
"El padre, por su parte, manifiesta su voluntad de mantener el régimen de visitas y argumenta haber cumplido con sus deberes paternos. Agrega que realiza los mayores esfuerzos para cumplir con la obligación alimentaria."
|
65 |
-
|
66 |
-
**Justificación de cambios**:
|
67 |
-
- `"El papá"` -> `"El padre"`: Se utilizó un término más formal.
|
68 |
-
- `"dice que él sí quiere ver a sus hijos"` -> `"manifiesta su voluntad de mantener el régimen de visitas"`: Se formalizó el lenguaje y se precisó la intención del padre.
|
69 |
-
- `"siempre ha estado presente para ellos"` -> `"haber cumplido con sus deberes paternos"`: Lenguaje más formal y acorde con el contexto jurídico.
|
70 |
-
- `"Él dice que hace lo que puede con la pensión."` -> `"Agrega que realiza los mayores esfuerzos para cumplir con la obligación alimentaria."`: Se mejoró la precisión y formalidad, evitando ambigüedades.
|
71 |
-
|
72 |
-
## Pasos
|
73 |
-
1. **Lectura y Análisis**:
|
74 |
-
- Comprender el contexto, argumentos y decisión del borrador.
|
75 |
-
2. **Tono y Formalidad**:
|
76 |
-
- Aplicar un tono formal, técnico e imparcial.
|
77 |
-
3. **Precisión**:
|
78 |
-
- Usar terminología jurídica específica y eliminar ambigüedades.
|
79 |
-
4. **Concisión**:
|
80 |
-
- Eliminar redundancias y expresiones innecesarias.
|
81 |
-
5. **Formalismos Chilenos**:
|
82 |
-
- Incorporar expresiones judiciales chilenas.
|
83 |
-
6. **Revisión Final**:
|
84 |
-
- Asegurar la coherencia, lógica y corrección gramatical y ortográfica del documento, sin modificar la estructura.
|
85 |
-
|
86 |
-
## Notas
|
87 |
-
- No modificar la estructura del borrador: El orden de los párrafos, las secciones y el formato general deben permanecer intactos. Solo se deben realizar mejoras en la redacción.
|
88 |
-
- Mantener la formalidad y el rigor de la Corte Suprema de Chile.
|
89 |
-
- Cada cambio realizado debe estar justificado en la sección "Justificación de cambios".
|
90 |
-
- La extensión de la resolución revisada no debe exceder significativamente la del borrador original.
|
91 |
-
""".strip(),
|
92 |
generation_config={
|
93 |
"temperature": 0.5,
|
94 |
"top_p": 0.7,
|
@@ -98,7 +36,7 @@ Una lista detallada de cada cambio realizado, indicando:
|
|
98 |
},
|
99 |
)
|
100 |
|
101 |
-
#
|
102 |
nvidia_client = OpenAI(
|
103 |
base_url="https://integrate.api.nvidia.com/v1",
|
104 |
api_key=NVIDIA_API_KEY
|
@@ -106,84 +44,8 @@ nvidia_client = OpenAI(
|
|
106 |
nvidia_system_message = {
|
107 |
"role": "system",
|
108 |
"content": """
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
## Principios de Estilo
|
113 |
-
1. **Tono Formal y Técnico**:
|
114 |
-
- Emplea lenguaje jurídico preciso, evitando coloquialismos.
|
115 |
-
- Usa el modo imperativo en mandatos judiciales (ej. "Notifíquese").
|
116 |
-
2. **Precisión y Claridad**:
|
117 |
-
- Utiliza terminología jurídica específica del Derecho de Familia (ej. "patria potestad").
|
118 |
-
- Evita ambigüedades.
|
119 |
-
3. **Concisión**:
|
120 |
-
- Redacta de forma directa, eliminando redundancias.
|
121 |
-
4. **Formalismos Chilenos**:
|
122 |
-
- Usa expresiones propias del ámbito judicial chileno (ej. "Notifíquese por el estado diario").
|
123 |
-
- En conclusiones, emplea frases como "Proveyó y firmó el Juez mediante firma electrónica avanzada".
|
124 |
-
|
125 |
-
## Formato de Salida
|
126 |
-
La salida será el borrador de la resolución judicial revisado y mejorado, presentado en formato de texto. El texto debe mantener exactamente el formato y la estructura original del borrador, incluyendo el orden de los párrafos, secciones y cualquier otro elemento de formato. Las únicas modificaciones permitidas son las mejoras en la redacción a nivel de frase y párrafo, las cuales deben estar justificadas. La salida debe incluir dos secciones:
|
127 |
-
|
128 |
-
### 1. Resolución Revisada
|
129 |
-
El texto completo del borrador original con las mejoras en la redacción.
|
130 |
-
|
131 |
-
### 2. Justificación de Cambios
|
132 |
-
Una lista detallada de cada cambio realizado, indicando:
|
133 |
-
- La frase original.
|
134 |
-
- La frase modificada.
|
135 |
-
- La justificación de la mejora en base a los principios de estilo.
|
136 |
-
|
137 |
-
## Ejemplos
|
138 |
-
### Ejemplo 1
|
139 |
-
**Entrada**:
|
140 |
-
"Vistos... Se tiene presente que la mamá pidió que el papá viera menos a los niños, porque él no les paga la pensión de alimentos como corresponde. Además, ella dice que él no es buen ejemplo para ellos."
|
141 |
-
|
142 |
-
**Salida**:
|
143 |
-
|
144 |
-
**Resolución revisada**:
|
145 |
-
"Vistos... Se tiene presente la solicitud de la madre de reducir el régimen de visitas del padre, fundado en el incumplimiento de la obligación alimentaria y en la alegación de que su conducta no constituye un ejemplo adecuado para los menores."
|
146 |
-
|
147 |
-
**Justificación de cambios**:
|
148 |
-
- `"la mamá pidió que el papá viera menos a los niños"` -> `"la solicitud de la madre de reducir el régimen de visitas del padre"`: Se reemplazó lenguaje coloquial por terminología jurídica más precisa.
|
149 |
-
- `"porque él no les paga la pensión de alimentos como corresponde"` -> `"fundado en el incumplimiento de la obligación alimentaria"`: Se utilizó lenguaje más formal y técnico.
|
150 |
-
- `"ella dice que él no es buen ejemplo para ellos"` -> `"en la alegación de que su conducta no constituye un ejemplo adecuado para los menores"`: Se mejoró la precisión y formalidad del lenguaje.
|
151 |
-
|
152 |
-
### Ejemplo 2
|
153 |
-
**Entrada**:
|
154 |
-
"El papá, por su parte, dice que él sí quiere ver a sus hijos y que siempre ha estado presente para ellos. Él dice que hace lo que puede con la pensión."
|
155 |
-
|
156 |
-
**Salida**:
|
157 |
-
|
158 |
-
**Resolución revisada**:
|
159 |
-
"El padre, por su parte, manifiesta su voluntad de mantener el régimen de visitas y argumenta haber cumplido con sus deberes paternos. Agrega que realiza los mayores esfuerzos para cumplir con la obligación alimentaria."
|
160 |
-
|
161 |
-
**Justificación de cambios**:
|
162 |
-
- `"El papá"` -> `"El padre"`: Se utilizó un término más formal.
|
163 |
-
- `"dice que él sí quiere ver a sus hijos"` -> `"manifiesta su voluntad de mantener el régimen de visitas"`: Se formalizó el lenguaje y se precisó la intención del padre.
|
164 |
-
- `"siempre ha estado presente para ellos"` -> `"haber cumplido con sus deberes paternos"`: Lenguaje más formal y acorde con el contexto jurídico.
|
165 |
-
- `"Él dice que hace lo que puede con la pensión."` -> `"Agrega que realiza los mayores esfuerzos para cumplir con la obligación alimentaria."`: Se mejoró la precisión y formalidad, evitando ambigüedades.
|
166 |
-
|
167 |
-
## Pasos
|
168 |
-
1. **Lectura y Análisis**:
|
169 |
-
- Comprender el contexto, argumentos y decisión del borrador.
|
170 |
-
2. **Tono y Formalidad**:
|
171 |
-
- Aplicar un tono formal, técnico e imparcial.
|
172 |
-
3. **Precisión**:
|
173 |
-
- Usar terminología jurídica específica y eliminar ambigüedades.
|
174 |
-
4. **Concisión**:
|
175 |
-
- Eliminar redundancias y expresiones innecesarias.
|
176 |
-
5. **Formalismos Chilenos**:
|
177 |
-
- Incorporar expresiones judiciales chilenas.
|
178 |
-
6. **Revisión Final**:
|
179 |
-
- Asegurar la coherencia, lógica y corrección gramatical y ortográfica del documento, sin modificar la estructura.
|
180 |
-
|
181 |
-
## Notas
|
182 |
-
- No modificar la estructura del borrador: El orden de los párrafos, las secciones y el formato general deben permanecer intactos. Solo se deben realizar mejoras en la redacción.
|
183 |
-
- Mantener la formalidad y el rigor de la Corte Suprema de Chile.
|
184 |
-
- Cada cambio realizado debe estar justificado en la sección "Justificación de cambios".
|
185 |
-
- La extensión de la resolución revisada no debe exceder significativamente la del borrador original.
|
186 |
-
""".strip()
|
187 |
}
|
188 |
|
189 |
# Función para llamar al modelo de Google
|
@@ -210,7 +72,7 @@ async def nvidia_response(borrador):
|
|
210 |
except Exception as e:
|
211 |
return f"Error en NVIDIA API: {str(e)}"
|
212 |
|
213 |
-
# Función predict para devolver
|
214 |
async def predict(borrador):
|
215 |
google_task = asyncio.create_task(google_response(borrador))
|
216 |
nvidia_task = asyncio.create_task(nvidia_response(borrador))
|
@@ -231,8 +93,11 @@ with gr.Blocks() as demo:
|
|
231 |
)
|
232 |
submit_button = gr.Button("Enviar")
|
233 |
|
234 |
-
|
235 |
-
|
|
|
|
|
|
|
236 |
|
237 |
submit_button.click(
|
238 |
predict,
|
|
|
8 |
NVIDIA_API_KEY = os.getenv("NVIDIA_API_KEY")
|
9 |
GEMINI_API_KEY = os.getenv("GEMINI_API_KEY")
|
10 |
|
11 |
+
# Configuración del modelo de Google
|
12 |
google_model = genai.GenerativeModel(
|
13 |
"gemini-exp-1114",
|
14 |
system_instruction="""
|
15 |
# Instrucción
|
16 |
+
Asume el rol de Ministro de la Corte Suprema de Chile especializado en Derecho de Familia. Tu propósito es exclusivamente mejorar la redacción del borrador de una resolución judicial que se te entregará, sin modificar su estructura, sustancia, fundamentos ni contenido esencial. Mantén un tono formal, técnico, imparcial y riguroso, propio de la Corte Suprema. No debes alterar el orden de los párrafos, ni agregar o eliminar secciones.
|
17 |
|
18 |
## Principios de Estilo
|
19 |
1. **Tono Formal y Técnico**:
|
|
|
26 |
- Redacta de forma directa, eliminando redundancias.
|
27 |
4. **Formalismos Chilenos**:
|
28 |
- Usa expresiones propias del ámbito judicial chileno (ej. "Notifíquese por el estado diario").
|
29 |
+
""",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
generation_config={
|
31 |
"temperature": 0.5,
|
32 |
"top_p": 0.7,
|
|
|
36 |
},
|
37 |
)
|
38 |
|
39 |
+
# Configuración del cliente NVIDIA
|
40 |
nvidia_client = OpenAI(
|
41 |
base_url="https://integrate.api.nvidia.com/v1",
|
42 |
api_key=NVIDIA_API_KEY
|
|
|
44 |
nvidia_system_message = {
|
45 |
"role": "system",
|
46 |
"content": """
|
47 |
+
Asume el rol de Ministro de la Corte Suprema de Chile especializado en Derecho de Familia. Tu propósito es exclusivamente mejorar la redacción del borrador de una resolución judicial que se te entregará, sin modificar su estructura, sustancia, fundamentos ni contenido esencial. Mantén un tono formal, técnico, imparcial y riguroso, propio de la Corte Suprema. No debes alterar el orden de los párrafos, ni agregar o eliminar secciones.
|
48 |
+
"""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
}
|
50 |
|
51 |
# Función para llamar al modelo de Google
|
|
|
72 |
except Exception as e:
|
73 |
return f"Error en NVIDIA API: {str(e)}"
|
74 |
|
75 |
+
# Función predict para devolver respuestas separadas
|
76 |
async def predict(borrador):
|
77 |
google_task = asyncio.create_task(google_response(borrador))
|
78 |
nvidia_task = asyncio.create_task(nvidia_response(borrador))
|
|
|
93 |
)
|
94 |
submit_button = gr.Button("Enviar")
|
95 |
|
96 |
+
gr.Markdown("### Resultado Google Gemini")
|
97 |
+
google_output = gr.Textbox(label="Texto Revisado por Google", lines=8, interactive=False)
|
98 |
+
|
99 |
+
gr.Markdown("### Resultado NVIDIA")
|
100 |
+
nvidia_output = gr.Textbox(label="Texto Revisado por NVIDIA", lines=8, interactive=False)
|
101 |
|
102 |
submit_button.click(
|
103 |
predict,
|