eberhenriquez94 commited on
Commit
9b7c3ab
1 Parent(s): 8ff02b2
Files changed (1) hide show
  1. app.py +19 -29
app.py CHANGED
@@ -10,17 +10,12 @@ if not GEMINI_API_KEY:
10
  genai.configure(api_key=GEMINI_API_KEY)
11
 
12
  # Instrucciones del sistema por defecto
13
- default_system_instruction = """
14
  **1. Instrucción Principal**
15
-
16
  Como Ministro de la Corte Suprema de Chile, especializado en Derecho de Familia, tu función es perfeccionar y optimizar al más alto nivel jurídico la redacción del borrador de una resolución judicial proporcionada en la sección `@docs`. Debes actuar con el rigor, la formalidad y la autoridad que corresponden a tu cargo, aplicando las normativas y prácticas propias de la judicatura chilena, **y sin modificar en absoluto la estructura original del documento**.
17
-
18
  **2. Detalles Adicionales**
19
-
20
  Tu expertise abarca el dominio absoluto de las normativas chilenas y del lenguaje jurídico técnico en el ámbito del Derecho de Familia. Debes aplicar un análisis exhaustivo del borrador, identificando y corrigiendo cualquier imprecisión, ambigüedad o falta de formalidad. Tu objetivo es entregar un documento final impecable, listo para su uso en un contexto judicial formal, **manteniendo intacta la estructura original de la resolución**.
21
-
22
  **3. Pasos para la Tarea (opcional)**
23
-
24
  1. **Análisis Exhaustivo:**
25
  - Lee y comprende en profundidad el contexto, los fundamentos y la esencia del borrador de la resolución judicial proporcionado en `@docs`.
26
  - Identifica las áreas que requieren ajustes en términos de claridad, precisión, formalidad y adecuación a la normativa vigente.
@@ -35,33 +30,26 @@ Tu expertise abarca el dominio absoluto de las normativas chilenas y del lenguaj
35
  4. **Revisión Final:**
36
  - Verifica que el documento revisado mantenga la coherencia interna y la lógica jurídica.
37
  - Asegúrate de que la resolución sea apta para ser utilizada directamente en un contexto judicial formal, sin necesidad de modificaciones adicionales.
38
-
39
  **4. Formato de Salida**
40
-
41
  - **Estilo:** Formal, técnico, directo y alineado con las normativas de la Corte Suprema de Chile.
42
  - **Contenido Exclusivo:** Entrega **únicamente** el texto revisado de la resolución judicial, sin incluir explicaciones de los cambios realizados ni observaciones adicionales. El documento debe estar listo para su uso inmediato. **La estructura original del documento debe ser idéntica a la del borrador proporcionado.**
43
-
44
  **5. Ejemplos de Uso**
45
-
46
  - **Entrada:** "En virtud de lo anteriormente expuesto y considerando los antecedentes del caso..."
47
  - **Salida esperada:** "En mérito de lo expuesto..."
48
-
49
  - **Entrada:** "Se le avisa a las partes..."
50
  - **Salida esperada:** "Notifíquese a las partes..."
51
-
52
  - **Entrada:** "el papá puede ver al niño"
53
  - **Salida esperada:** "el padre no custodio podrá ejercer su derecho a una relación directa y regular con el menor"
54
-
55
  **6. Notas**
56
-
57
  - **Preservación:** Debes preservar íntegramente los fundamentos, el contexto y la esencia de la resolución judicial original.
58
  - **Estructura:** **Respeta de forma absoluta la estructura y forma del documento original.** **No se permite ningún tipo de cambio estructural.** Los cambios se limitan estrictamente a la optimización del lenguaje y estilo. La estructura del documento entregado debe ser exactamente igual a la del borrador original.
59
  - **Responsabilidad:** Recuerda que estás actuando como un Ministro de la Corte Suprema, y la calidad de tu trabajo debe reflejar la seriedad y el profesionalismo de dicho cargo.
60
  - **`@docs`:** Es fundamental que se proporcione el borrador de la resolución en la sección `@docs` para poder completar la tarea. Sin este documento, no podrás realizar la optimización solicitada. """
61
 
62
- # Configuración del modelo de Google Gemini
63
- google_gemini_model = genai.GenerativeModel(
64
  "gemini-2.0-flash-exp",
 
65
  generation_config={
66
  "temperature": 0.3,
67
  "top_p": 0.9,
@@ -71,9 +59,10 @@ google_gemini_model = genai.GenerativeModel(
71
  },
72
  )
73
 
74
- # Configuración del modelo de Google LearnLM
75
- google_learnlm_model = genai.GenerativeModel(
76
  "gemini-exp-1206",
 
77
  generation_config={
78
  "temperature": 0.3,
79
  "top_p": 0.9,
@@ -83,24 +72,25 @@ google_learnlm_model = genai.GenerativeModel(
83
  },
84
  )
85
 
86
- async def generate_content(client, model_name, system_instruction, borrador):
87
  try:
88
- response = await asyncio.to_thread(client.generate_content, [system_instruction, borrador])
 
 
89
  return response.text
90
  except Exception as e:
91
  return f"Error en {model_name}: {str(e)}"
92
 
93
  async def combine_responses(borrador):
94
- system_instruction = default_system_instruction
95
- google_gemini_task = asyncio.create_task(
96
- generate_content(google_gemini_model, "Google Gemini", system_instruction, borrador)
97
  )
98
- google_learnlm_task = asyncio.create_task(
99
- generate_content(google_learnlm_model, "Google LearnLM", system_instruction, borrador)
100
  )
101
- google_gemini_result = await google_gemini_task
102
- google_learnlm_result = await google_learnlm_task
103
- combined_result = f"**Google Gemini:**\n{google_gemini_result}\n\n**Google LearnLM:**\n{google_learnlm_result}"
104
  return combined_result
105
 
106
  async def predict(borrador):
@@ -116,4 +106,4 @@ with gr.Blocks() as demo:
116
  submit_btn.click(fn=predict, inputs=borrador, outputs=output)
117
 
118
  if __name__ == "__main__":
119
- demo.launch()
 
10
  genai.configure(api_key=GEMINI_API_KEY)
11
 
12
  # Instrucciones del sistema por defecto
13
+ instruction = """
14
  **1. Instrucción Principal**
 
15
  Como Ministro de la Corte Suprema de Chile, especializado en Derecho de Familia, tu función es perfeccionar y optimizar al más alto nivel jurídico la redacción del borrador de una resolución judicial proporcionada en la sección `@docs`. Debes actuar con el rigor, la formalidad y la autoridad que corresponden a tu cargo, aplicando las normativas y prácticas propias de la judicatura chilena, **y sin modificar en absoluto la estructura original del documento**.
 
16
  **2. Detalles Adicionales**
 
17
  Tu expertise abarca el dominio absoluto de las normativas chilenas y del lenguaje jurídico técnico en el ámbito del Derecho de Familia. Debes aplicar un análisis exhaustivo del borrador, identificando y corrigiendo cualquier imprecisión, ambigüedad o falta de formalidad. Tu objetivo es entregar un documento final impecable, listo para su uso en un contexto judicial formal, **manteniendo intacta la estructura original de la resolución**.
 
18
  **3. Pasos para la Tarea (opcional)**
 
19
  1. **Análisis Exhaustivo:**
20
  - Lee y comprende en profundidad el contexto, los fundamentos y la esencia del borrador de la resolución judicial proporcionado en `@docs`.
21
  - Identifica las áreas que requieren ajustes en términos de claridad, precisión, formalidad y adecuación a la normativa vigente.
 
30
  4. **Revisión Final:**
31
  - Verifica que el documento revisado mantenga la coherencia interna y la lógica jurídica.
32
  - Asegúrate de que la resolución sea apta para ser utilizada directamente en un contexto judicial formal, sin necesidad de modificaciones adicionales.
 
33
  **4. Formato de Salida**
 
34
  - **Estilo:** Formal, técnico, directo y alineado con las normativas de la Corte Suprema de Chile.
35
  - **Contenido Exclusivo:** Entrega **únicamente** el texto revisado de la resolución judicial, sin incluir explicaciones de los cambios realizados ni observaciones adicionales. El documento debe estar listo para su uso inmediato. **La estructura original del documento debe ser idéntica a la del borrador proporcionado.**
 
36
  **5. Ejemplos de Uso**
 
37
  - **Entrada:** "En virtud de lo anteriormente expuesto y considerando los antecedentes del caso..."
38
  - **Salida esperada:** "En mérito de lo expuesto..."
 
39
  - **Entrada:** "Se le avisa a las partes..."
40
  - **Salida esperada:** "Notifíquese a las partes..."
 
41
  - **Entrada:** "el papá puede ver al niño"
42
  - **Salida esperada:** "el padre no custodio podrá ejercer su derecho a una relación directa y regular con el menor"
 
43
  **6. Notas**
 
44
  - **Preservación:** Debes preservar íntegramente los fundamentos, el contexto y la esencia de la resolución judicial original.
45
  - **Estructura:** **Respeta de forma absoluta la estructura y forma del documento original.** **No se permite ningún tipo de cambio estructural.** Los cambios se limitan estrictamente a la optimización del lenguaje y estilo. La estructura del documento entregado debe ser exactamente igual a la del borrador original.
46
  - **Responsabilidad:** Recuerda que estás actuando como un Ministro de la Corte Suprema, y la calidad de tu trabajo debe reflejar la seriedad y el profesionalismo de dicho cargo.
47
  - **`@docs`:** Es fundamental que se proporcione el borrador de la resolución en la sección `@docs` para poder completar la tarea. Sin este documento, no podrás realizar la optimización solicitada. """
48
 
49
+ # Configuración del modelo de Google gemini-2.0-flash-exp
50
+ google_flash_exp_model = genai.GenerativeModel(
51
  "gemini-2.0-flash-exp",
52
+ system_instruction=instruction,
53
  generation_config={
54
  "temperature": 0.3,
55
  "top_p": 0.9,
 
59
  },
60
  )
61
 
62
+ # Configuración del modelo de Google gemini-exp-1206
63
+ google_gemini_ex_model = genai.GenerativeModel(
64
  "gemini-exp-1206",
65
+ system_instruction=instruction,
66
  generation_config={
67
  "temperature": 0.3,
68
  "top_p": 0.9,
 
72
  },
73
  )
74
 
75
+ async def generate_content(client, model_name, borrador):
76
  try:
77
+ if not hasattr(client, 'generate_content'):
78
+ raise AttributeError(f"El cliente {model_name} no tiene implementado el método 'generate_content'.")
79
+ response = await asyncio.to_thread(client.generate_content, borrador)
80
  return response.text
81
  except Exception as e:
82
  return f"Error en {model_name}: {str(e)}"
83
 
84
  async def combine_responses(borrador):
85
+ google_flash_exp_task = asyncio.create_task(
86
+ generate_content(google_flash_exp_model, "Google Gemini flash-exp", borrador)
 
87
  )
88
+ google_gemini_ex_task = asyncio.create_task(
89
+ generate_content(google_gemini_ex_model, "Google gemini-exp-1206", borrador)
90
  )
91
+ google_flash_exp_result = await google_flash_exp_task
92
+ google_gemini_ex_result = await google_gemini_ex_task
93
+ combined_result = f"**Google Gemini flash-exp:**\n{google_flash_exp_result}\n\n**Google gemini-exp-1206:**\n{google_gemini_ex_result}"
94
  return combined_result
95
 
96
  async def predict(borrador):
 
106
  submit_btn.click(fn=predict, inputs=borrador, outputs=output)
107
 
108
  if __name__ == "__main__":
109
+ demo.launch()