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() | |