File size: 2,788 Bytes
7ddca68
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
# 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()