Spaces:
Running
Running
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() |