File size: 6,874 Bytes
f03a8aa
86019ac
08d0f2d
 
7ddca68
127deef
70958f3
30d11b0
127deef
82b7c7c
f1610d6
e03cc71
145a863
86f7fd1
b4bfbf2
8761c08
9ad50b5
86f7fd1
b4bfbf2
8761c08
9ad50b5
8761c08
9d71e5e
86f7fd1
8761c08
 
86f7fd1
8761c08
 
 
 
86f7fd1
8761c08
 
86f7fd1
8761c08
 
9ad50b5
86f7fd1
9ad50b5
 
8761c08
86f7fd1
 
 
8761c08
 
86f7fd1
8761c08
 
86f7fd1
8761c08
 
9ad50b5
86f7fd1
9ad50b5
86f7fd1
8761c08
86f7fd1
8761c08
7961c85
127deef
 
9599422
127deef
9ad50b5
127deef
 
518e1e1
127deef
 
 
 
 
 
9ad50b5
127deef
9ad50b5
127deef
 
518e1e1
127deef
 
 
08d0f2d
f21b560
f7876dc
f21b560
 
f7876dc
7961c85
08d0f2d
82b7c7c
 
30d11b0
 
 
 
 
 
 
 
f21b560
82b7c7c
 
 
30d11b0
137edac
30d11b0
137edac
f7587f2
30d11b0
 
 
f21b560
30d11b0
137edac
5bcf9f5
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
import os
import asyncio
import google.generativeai as genai
import gradio as gr

# Configuraci贸n de la clave de API
GEMINI_API_KEY = os.getenv("GEMINI_API_KEY")
if not GEMINI_API_KEY:
    raise ValueError("La clave GEMINI_API_KEY no est谩 configurada correctamente.")
genai.configure(api_key=GEMINI_API_KEY)

# Instrucciones del sistema por defecto
default_system_instruction = """
**1. Instrucci贸n Principal**

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**.

**2. Detalles Adicionales**

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**.

**3. Pasos para la Tarea (opcional)**

1. **An谩lisis Exhaustivo:**
    -   Lee y comprende en profundidad el contexto, los fundamentos y la esencia del borrador de la resoluci贸n judicial proporcionado en `@docs`.
    -   Identifica las 谩reas que requieren ajustes en t茅rminos de claridad, precisi贸n, formalidad y adecuaci贸n a la normativa vigente.
2. **Optimizaci贸n Jur铆dica:**
    -   Aplica correcciones de lenguaje, reemplazando t茅rminos ambiguos o informales con lenguaje t茅cnico preciso del Derecho de Familia chileno.
    -   Aseg煤rate de que la redacci贸n sea impecable, utilizando un tono formal, impersonal y autoritario.
    -   Emplea terminolog铆a t茅cnica como "patria potestad", "cuidado personal", "relaci贸n directa y regular" y "alimentos", asegurando claridad y exactitud.
    -   **Conserva de manera estricta e inalterable la estructura y formato original del borrador.**  No se permite ning煤n cambio en la organizaci贸n del documento, ni siquiera si se considera que podr铆a mejorar la claridad. La estructura original debe ser respetada rigurosamente.
3. **Refinamiento y Concisi贸n:**
    -   Elimina redundancias y aseg煤rate de que cada frase sea precisa, directa y aporte valor a la resoluci贸n.
    -   Formaliza las instrucciones y notificaciones con lenguaje t茅cnico y respetando la normativa vigente.
4. **Revisi贸n Final:**
    -   Verifica que el documento revisado mantenga la coherencia interna y la l贸gica jur铆dica.
    -   Aseg煤rate de que la resoluci贸n sea apta para ser utilizada directamente en un contexto judicial formal, sin necesidad de modificaciones adicionales.

**4. Formato de Salida**

-   **Estilo:** Formal, t茅cnico, directo y alineado con las normativas de la Corte Suprema de Chile.
-   **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.**

**5. Ejemplos de Uso**

-   **Entrada:**  "En virtud de lo anteriormente expuesto y considerando los antecedentes del caso..."
-   **Salida esperada:**  "En m茅rito de lo expuesto..."

-   **Entrada:**  "Se le avisa a las partes..."
-   **Salida esperada:**  "Notif铆quese a las partes..."

-   **Entrada:**  "el pap谩 puede ver al ni帽o"
-   **Salida esperada:**  "el padre no custodio podr谩 ejercer su derecho a una relaci贸n directa y regular con el menor"

**6. Notas**

-   **Preservaci贸n:** Debes preservar 铆ntegramente los fundamentos, el contexto y la esencia de la resoluci贸n judicial original.
-   **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.
-   **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.
-   **`@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. """

# Configuraci贸n del modelo de Google Gemini
google_gemini_model = genai.GenerativeModel(
    "gemini-exp-1121",
    generation_config={
        "temperature": 0.3,
        "top_p": 0.9,
        "top_k": 40,
        "max_output_tokens": 8000,
        "response_mime_type": "text/plain",
    },
)

# Configuraci贸n del modelo de Google LearnLM
google_learnlm_model = genai.GenerativeModel(
    "gemini-exp-1206",
    generation_config={
        "temperature": 0.3,
        "top_p": 0.9,
        "top_k": 40,
        "max_output_tokens": 8000,
        "response_mime_type": "text/plain",
    },
)

async def generate_content(client, model_name, system_instruction, borrador):
    try:
        response = await asyncio.to_thread(client.generate_content, [system_instruction, borrador])
        return response.text
    except Exception as e:
        return f"Error en {model_name}: {str(e)}"

async def combine_responses(borrador):
    system_instruction = default_system_instruction
    google_gemini_task = asyncio.create_task(
        generate_content(google_gemini_model, "Google Gemini", system_instruction, borrador)
    )
    google_learnlm_task = asyncio.create_task(
        generate_content(google_learnlm_model, "Google LearnLM", system_instruction, borrador)
    )
    google_gemini_result = await google_gemini_task
    google_learnlm_result = await google_learnlm_task
    combined_result = f"**Google Gemini:**\n{google_gemini_result}\n\n**Google LearnLM:**\n{google_learnlm_result}"
    return combined_result

async def predict(borrador):
    return await combine_responses(borrador)

# Interfaz Gradio
with gr.Blocks() as demo:
    gr.Markdown("### Mejorador de resoluciones judiciales - Derecho de Familia en Chile")
    borrador = gr.Textbox(label="Borrador judicial", placeholder="Escribe o pega el texto aqu铆...", lines=10)
    output = gr.Textbox(label="Resultado mejorado", placeholder="El resultado aparecer谩 aqu铆...", lines=10)
    submit_btn = gr.Button("Enviar")

    submit_btn.click(fn=predict, inputs=borrador, outputs=output)

if __name__ == "__main__":
    demo.launch()