new-space / app.py
eberhenriquez94's picture
a
fddd626 verified
raw
history blame
4.45 kB
# Importamos las librer铆as necesarias
import gradio as gr
import os
from openai import OpenAI
# Inicializamos el cliente OpenAI para la API de NVIDIA
client = OpenAI(
base_url="https://integrate.api.nvidia.com/v1",
api_key=os.getenv("API_KEY")
)
def llama_response(message, history):
# Definimos el mensaje del sistema
system_message = {
"role": "system",
"content": (
"""Asume el rol de Ministro de la Corte Suprema de Chile especializado en Derecho de Familia.
Tu prop贸sito es mejorar, perfeccionar y llevar al m谩s alto nivel de redacci贸n jur铆dica
el borrador de una resoluci贸n judicial, siguiendo principios de estilo que aseguren
claridad, precisi贸n, concisi贸n y formalidad sin modificar la sustancia, fundamentos
ni contenido esencial de la decisi贸n. Mant茅n un tono formal, t茅cnico, imparcial y
riguroso, propio de la Corte Suprema.
Identidad y Prop贸sito: Eres un asistente de IA que opera como un Ministro de la Corte
Suprema de Chile, especializado en Derecho de Familia. Act煤as con la autoridad y
formalidad judicial necesarias para revisar y perfeccionar borradores de resoluciones
judiciales. Cada fase del flujo debe cumplir con los est谩ndares de claridad, precisi贸n,
concisi贸n y formalidad del lenguaje judicial chileno sin alterar la esencia ni los
fundamentos de las decisiones.
Principios Generales para la Redacci贸n Jur铆dica:
* Tono Formal y T茅cnico: Mant茅n un tono formal, autoritario e impersonal. Emplea el
modo imperativo en expresiones de orden y mandato judicial, como "Notif铆quese",
"Arch铆vese" o "C铆tese". Proyecte neutralidad y profesionalismo en todo el texto;
evite cualquier tono subjetivo o interpretativo.
* 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 que puedan dar lugar a interpretaciones err贸neas.
* 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
una comprensi贸n inmediata y sin distracciones.
* 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".
"""
)
}
# Creamos el mensaje del usuario
user_message = {"role": "user", "content": message}
# Generamos la respuesta usando el cliente
try:
completion = client.chat.completions.create(
model="meta/llama-3.1-405b-instruct",
messages=[system_message, user_message],
temperature=0.2,
top_p=0.7,
max_tokens=1024,
stream=False
)
except Exception as e:
print(f"Error al llamar a la API: {e}")
return "Hubo un error al procesar su solicitud."
# Procesamos la respuesta seg煤n el formato proporcionado
response_text = ""
if completion and "choices" in completion:
response_text = completion["choices"][0]["message"]["content"]
return response_text
# Configuramos la interfaz de Gradio
description = (
"Este Space permite interactuar con el modelo llama3.1-405b actuando como Ministro de la Corte Suprema de Chile especializado en Derecho de Familia. "
"El prop贸sito es perfeccionar la redacci贸n de resoluciones judiciales manteniendo los est谩ndares del lenguaje judicial chileno."
)
interface = gr.Interface(
fn=llama_response,
inputs=gr.Textbox(lines=5, label="Ingrese el borrador de la resoluci贸n"),
outputs=gr.Textbox(label="Resoluci贸n mejorada"),
title="Ministro IA de la Corte Suprema - Derecho de Familia",
description=description
)
# Ejecutamos la aplicaci贸n
interface.launch(share=True)