Spaces:
Sleeping
Sleeping
File size: 4,047 Bytes
f03a8aa 86019ac 08d0f2d 7ddca68 a97c80d 70958f3 82b7c7c f1610d6 e03cc71 7961c85 76e4156 e03cc71 7961c85 f21b560 48297a0 08d0f2d 76e4156 08d0f2d f21b560 08d0f2d f21b560 70958f3 3a5f917 7961c85 f21b560 f7876dc f21b560 f7876dc 7961c85 08d0f2d f21b560 82b7c7c f21b560 82b7c7c f21b560 82b7c7c e03cc71 f21b560 82b7c7c e03cc71 82b7c7c 137edac f7587f2 137edac f7587f2 f21b560 137edac e03cc71 137edac f7587f2 e03cc71 82b7c7c 137edac |
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 |
import os
import asyncio
import google.generativeai as genai
import gradio as gr
# Configuraci贸n de claves de API
GEMINI_API_KEY = os.getenv("GEMINI_API_KEY")
genai.configure(api_key=GEMINI_API_KEY)
# Instrucciones del sistema por defecto
default_system_instruction = """
Act煤a como un Ministro de la Corte Suprema de Chile, espec铆ficamente de la Primera Sala especializada en Derecho de Familia, para revisar y perfeccionar un borrador de resoluci贸n judicial. El objetivo es mejorar la gram谩tica, redacci贸n y estilo jur铆dico, manteniendo la estructura y contenido original.
Como Ministro de la Corte Suprema de Chile, especializado en Derecho de Familia, y con una vasta y reconocida trayectoria en la judicatura, tu misi贸n es revisar y perfeccionar un borrador de resoluci贸n judicial, aplicando un tono formal, autoritario e impersonal, empleando el modo imperativo en expresiones de orden y mandato judicial. Proyectar谩s neutralidad y profesionalismo en todo el texto, evitando cualquier tono subjetivo o interpretativo. Usar谩s terminolog铆a jur铆dica espec铆fica del Derecho de Familia, asegurando que cada enunciado sea claro y preciso. Emplear谩s una redacci贸n directa, evitando redundancias y expresiones superfluas. Utilizar谩s expresiones tradicionales y formales del 谩mbito judicial chileno.
El objetivo es elevar el texto a un est谩ndar de excelencia en redacci贸n jur铆dica, asegurando la m谩xima claridad, precisi贸n, concisi贸n y formalidad. **No debes modificar la estructura del borrador, tampoco agregar fundamentaci贸n o hechos. La mejora solo es gramatical, redaccional y est茅tica ling眉铆stica jur铆dica.**
"""
# Configuraci贸n del modelo de Google Gemini
google_gemini_model = genai.GenerativeModel(
"gemini-exp-1121",
generation_config={
"temperature": 0.5,
"top_p": 0.9,
"top_k": 40,
"max_output_tokens": 5000,
"response_mime_type": "text/plain",
},
)
# Configuraci贸n del modelo de Google LearnLM
google_learnlm_model = genai.GenerativeModel(
"learnlm-1.5-pro-experimental",
generation_config={
"temperature": 0.5,
"top_p": 0.9,
"top_k": 40,
"max_output_tokens": 5000,
"response_mime_type": "text/plain",
},
)
# Funci贸n gen茅rica para generar contenido
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)}"
# Combina las respuestas de ambos modelos de Google
async def combine_responses(borrador):
system_instruction = default_system_instruction
# Generar contenido con Google Gemini
google_gemini_result = await generate_content(google_gemini_model, "Google Gemini", system_instruction, borrador)
# Generar contenido con Google LearnLM
google_learnlm_result = await generate_content(google_learnlm_model, "Google LearnLM", system_instruction, borrador)
# Combinar resultados
combined_result = f"**Google Gemini:**\n{google_gemini_result}\n\n**Google LearnLM:**\n{google_learnlm_result}"
return combined_result
# Funci贸n de predicci贸n
async def predict(borrador):
result = await combine_responses(borrador)
return result
# Interfaz Gradio con bot贸n funcional
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") # Bot贸n funcional para enviar el texto
submit_btn.click(
fn=lambda texto: asyncio.run(predict(texto)),
inputs=borrador,
outputs=output
)
if __name__ == "__main__":
demo.launch() |