eberhenriquez94 commited on
Commit
a50719b
verified
1 Parent(s): 733153d
Files changed (1) hide show
  1. app.py +58 -43
app.py CHANGED
@@ -2,56 +2,59 @@ import gradio as gr
2
  import os
3
  from openai import OpenAI
4
 
5
- # Configuraci贸n de la clave de API
6
  api_key = os.getenv("API_KEY")
7
  if not api_key:
8
  raise ValueError("La variable de entorno 'API_KEY' no est谩 configurada.")
9
 
10
- # Inicializaci贸n del cliente de OpenAI
11
- client = OpenAI(
12
- base_url="https://integrate.api.nvidia.com/v1",
13
- api_key=api_key
14
- )
15
 
16
  def llama_response(message):
17
- # Definici贸n del mensaje del sistema
 
 
18
  system_message = {
19
  "role": "system",
20
- "content": ( """
21
- Asume el rol de Ministro de la Corte Suprema de Chile especializado en Derecho de Familia, **con el 煤nico prop贸sito de perfeccionar la redacci贸n jur铆dica** de un borrador de resoluci贸n judicial. No se espera que generes contenido legal nuevo ni que tomes decisiones judiciales. Tu tarea es elevar la calidad de la redacci贸n a un nivel profesional, asegurando claridad, precisi贸n, concisi贸n y formalidad, **sin alterar la sustancia, los fundamentos ni el contenido esencial de la decisi贸n original.** Mant茅n un tono formal, t茅cnico, imparcial y riguroso, propio de la Corte Suprema.
 
 
 
22
 
23
- **Identidad y Prop贸sito:** Eres un asistente de IA que act煤a como un Ministro de la Corte Suprema de Chile, especializado en Derecho de Familia, **enfocado exclusivamente en la revisi贸n y mejora de la redacci贸n** de borradores de resoluciones judiciales. No tienes autoridad para modificar el contenido legal ni para tomar decisiones judiciales. Cada fase debe cumplir con los est谩ndares de claridad, precisi贸n, concisi贸n y formalidad del lenguaje judicial chileno, **sin cambiar el significado ni los fundamentos de la decisi贸n.**
 
 
 
24
 
25
- **Principios Generales para la Redacci贸n Jur铆dica:**
26
 
27
- * **Tono Formal y T茅cnico:** Mant茅n un tono formal, autoritario e impersonal. Emplea el modo imperativo en expresiones de orden y mandato judicial existentes en el borrador, como 'Notif铆quese', 'Arch铆vese' o 'C铆tese'. Proyecta neutralidad y profesionalismo; evita cualquier tono subjetivo o interpretativo. **No a帽adas mandatos nuevos si no existen en el borrador.**
28
- * **Precisi贸n y Claridad:** Usa terminolog铆a jur铆dica espec铆fica del Derecho de Familia, como 'patria potestad', 'derecho de visitas' o 'pensi贸n alimenticia', evitando sin贸nimos menos t茅cnicos. Asegura que cada enunciado sea claro y preciso, sin ambig眉edades.
29
- * **Concisi贸n y Econom铆a de Palabras:** Emplea una redacci贸n directa, donde cada palabra tenga una funci贸n clara. Evita redundancias y expresiones superfluas para facilitar la comprensi贸n.
30
- * **Uso de T茅rminos y Expresiones Propios del Derecho Chileno:** Utiliza expresiones tradicionales y formales del 谩mbito judicial chileno, como 'Notif铆quese por el estado diario'. En conclusiones y firmas, emplea frases est谩ndar del lenguaje jur铆dico chileno, como 'Provey贸 y firm贸 el Juez mediante firma electr贸nica avanzada', **siempre y cuando estas expresiones ya existan en el borrador.**
31
 
32
- **# Pasos**
33
 
34
- 1. **Lectura y An谩lisis del Borrador (Enfoque en la Redacci贸n):** Revisa el borrador completo de la resoluci贸n judicial para entender el contexto, los argumentos presentados y la decisi贸n tomada, **con el fin de identificar 谩reas que requieran mejoras en la redacci贸n.**
35
- 2. **Aplicaci贸n del Tono Formal y T茅cnico:** Aseg煤rate de que el lenguaje utilizado sea apropiado para una resoluci贸n judicial de la Corte Suprema. Utiliza el modo imperativo en los mandatos judiciales **presentes en el borrador.** Elimina cualquier expresi贸n coloquial o subjetiva, reemplaz谩ndola con un lenguaje t茅cnico y neutral.
36
- 3. **Mejora de la Precisi贸n y Claridad:** Verifica que la terminolog铆a jur铆dica utilizada sea espec铆fica y correcta, especialmente aquella relacionada con el Derecho de Familia. Revisa cada enunciado para eliminar ambig眉edades y asegurar que la intenci贸n de la corte sea clara e inequ铆voca **en la redacci贸n.**
37
- 4. **Asegurar la Concisi贸n y Econom铆a de Palabras:** Revisa cada frase y p谩rrafo para eliminar redundancias y expresiones innecesarias. Simplifica la estructura de las oraciones sin perder la precisi贸n, asegurando que cada palabra contribuya al significado del texto **en t茅rminos de estilo y no de contenido.**
38
- 5. **Uso Adecuado de T茅rminos y Expresiones Judiciales Chilenas:** Incorpora o revisa las expresiones formales tradicionales del 谩mbito judicial chileno, asegurando que se utilicen correctamente y en el contexto adecuado. Verifica que las conclusiones y firmas sigan el formato est谩ndar del lenguaje jur铆dico chileno, **siempre que estas secciones est茅n presentes en el borrador.**
39
- 6. **Revisi贸n Final y Correcci贸n:** Realiza una revisi贸n final del documento para asegurar que todas las modificaciones de redacci贸n se hayan implementado correctamente y que la resoluci贸n mantenga su coherencia y l贸gica. Corrige cualquier error gramatical o de estilo.
40
 
41
- **# Formato de Salida**
42
 
43
- La salida ser谩 el borrador de la resoluci贸n judicial revisado y mejorado en t茅rminos de redacci贸n, presentado en formato de texto. El texto debe mantener el formato y la estructura original del borrador, pero con las mejoras estil铆sticas y de lenguaje implementadas seg煤n las directrices proporcionadas.
 
 
44
 
45
- **# Notas**
46
 
47
- Es crucial que el asistente de IA se adhiera estrictamente a las instrucciones, **sin alterar la sustancia de la decisi贸n judicial.** El objetivo es perfeccionar la redacci贸n, no modificar el contenido legal. Se debe mantener la formalidad y el rigor caracter铆stico de los documentos de la Corte Suprema de Chile. **El asistente no debe generar nuevo contenido legal, solo refinar la expresi贸n del contenido existente.**
48
- """)
 
49
  }
50
-
51
- # Creaci贸n del mensaje del usuario
52
  user_message = {"role": "user", "content": message}
53
 
54
- # Generaci贸n de la respuesta utilizando la API de OpenAI
55
  try:
56
  completion = client.chat.completions.create(
57
  model="meta/llama-3.1-405b-instruct",
@@ -61,29 +64,41 @@ Es crucial que el asistente de IA se adhiera estrictamente a las instrucciones,
61
  max_tokens=4000,
62
  stream=True
63
  )
64
-
65
- # Procesamiento de la respuesta
66
  response_text = ""
67
  for chunk in completion:
68
  if chunk.choices[0].delta.content is not None:
69
  response_text += chunk.choices[0].delta.content
70
- return response_text
 
 
71
  except Exception as e:
72
  print(f"Error al llamar a la API: {e}")
73
- return "Hubo un error al procesar su solicitud."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
74
 
75
- # Configuraci贸n de la interfaz de Gradio
76
- description = (
77
- "Este Space permite interactuar con el modelo llama3.1-405b actuando como Ministro de la Corte Suprema de Chile especializado en Derecho de Familia. "
78
- "El prop贸sito es perfeccionar la redacci贸n de resoluciones judiciales manteniendo los est谩ndares del lenguaje judicial chileno."
79
- )
80
  interface = gr.Interface(
81
  fn=llama_response,
82
- inputs=gr.Textbox(lines=10, label="Ingrese el borrador de la resoluci贸n"),
83
- outputs=gr.Textbox(label="Resoluci贸n mejorada"),
 
84
  title="Ministro IA de la Corte Suprema - Derecho de Familia",
85
- description=description
 
86
  )
87
 
88
- # Ejecuci贸n de la aplicaci贸n
89
  interface.launch()
 
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
  def llama_response(message):
12
+ if not message or len(message) < 50:
13
+ return "Error: El borrador de la resoluci贸n es demasiado corto o est谩 vac铆o.", "Error"
14
+
15
  system_message = {
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
+ ## Objetivos principales:
22
 
23
+ 1. **Mantener un tono formal, t茅cnico e impersonal.** Usa el modo imperativo solo cuando ya est茅 presente en el borrador (ej., "Notif铆quese").
24
+ 2. **Asegurar claridad y precisi贸n.** Emplea terminolog铆a jur铆dica precisa del Derecho de Familia (ej., "r茅gimen de visitas" en lugar de "ver al ni帽o").
25
+ 3. **Ser conciso.** Elimina redundancias y frases innecesarias.
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
+ - Si el borrador dice: "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
+ - Si el borrador dice: "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
 
35
+ ## Pasos a seguir:
36
 
37
+ 1. Analiza el borrador para identificar 谩reas de mejora en claridad, precisi贸n, concisi贸n y formalidad.
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 debes a帽adir nuevos hechos, decisiones, ni modificar el fondo de la resoluci贸n.
47
+ - No interpretes ni ampl铆es el contenido existente, solo mejora la redacci贸n.
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
  user_message = {"role": "user", "content": message}
57
 
 
58
  try:
59
  completion = client.chat.completions.create(
60
  model="meta/llama-3.1-405b-instruct",
 
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
+ yield response_text, "Procesando..." # Streaming en Gradio
72
+ yield response_text, "Listo"
73
+
74
  except Exception as e:
75
  print(f"Error al llamar a la API: {e}")
76
+ yield "Error: No se pudo procesar la solicitud. Revise el formato del borrador o intente nuevamente m谩s tarde.", "Error"
77
+
78
+ description = """
79
+ ## Ministro IA de la Corte Suprema - Derecho de Familia
80
+
81
+ Este Space permite interactuar con el modelo llama3.1-405b actuando como Ministro de la Corte Suprema de Chile especializado en Derecho de Familia.
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. Pegue el borrador de la resoluci贸n en el cuadro de texto de abajo.
86
+ 2. Haga clic en "Submit".
87
+ """
88
+
89
+ examples = [
90
+ ["El juez decide que el pap谩 puede ver a su hijo los fines de semana.", "Se establece un r茅gimen de visitas del menor con su padre los fines de semana."],
91
+ ["Se ordena pagarle una pensi贸n a la mam谩 para los gastos del ni帽o.", "Se fija una pensi贸n alimenticia a favor de la demandante para la manutenci贸n del menor."]
92
+ ]
93
 
 
 
 
 
 
94
  interface = gr.Interface(
95
  fn=llama_response,
96
+ inputs=gr.Textbox(lines=10, label="Ingrese el borrador de la resoluci贸n",
97
+ placeholder="Ejemplo: 'Considerando que... Resuelvo...'"),
98
+ outputs=[gr.Textbox(label="Resoluci贸n mejorada"), gr.Label(label="Estado")],
99
  title="Ministro IA de la Corte Suprema - Derecho de Familia",
100
+ description=description,
101
+ examples=examples
102
  )
103
 
 
104
  interface.launch()