Spaces:
Running
Running
# Importamos las librer铆as necesarias | |
import gradio as gr | |
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="$API_KEY_REQUIRED_IF_EXECUTING_OUTSIDE_NGC" | |
) | |
def llama_response(message, history): | |
# Definimos el mensaje del sistema para que el modelo act煤e como Ministro de la Corte Suprema de Chile | |
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." | |
) | |
} | |
# Creamos el mensaje del usuario | |
user_message = {"role": "user", "content": message} | |
# Generamos la respuesta usando el cliente | |
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 | |
) | |
# Procesamos la respuesta y la devolvemos como texto | |
response_text = "" | |
for chunk in completion: | |
if chunk.choices[0].delta.content is not None: | |
response_text += chunk.choices[0].delta.content | |
return response_text | |
# Creamos la interfaz con Gradio utilizando ChatInterface | |
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.ChatInterface( | |
fn=llama_response, | |
type="messages", | |
title="Ministro IA de la Corte Suprema - Derecho de Familia", | |
description=description | |
) | |
# Ejecutamos la aplicaci贸n | |
interface.launch() | |