File size: 3,425 Bytes
3ea4644
 
e3d9417
a617139
e3d9417
a617139
a6910e1
a617139
 
 
 
 
 
 
3ea4644
d3e6334
6579161
4599b45
 
a6910e1
4599b45
 
 
 
e3d9417
4599b45
 
 
 
 
 
 
 
 
 
 
 
e3d9417
6579161
a6910e1
 
 
 
 
a617139
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c38d4d7
6579161
 
a617139
6579161
4599b45
 
6579161
 
 
 
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
import requests
import json
import gradio as gr
from openai import OpenAI

# Configuraci贸n de la API de OpenAI
base_url = "https://integrate.api.nvidia.com/v1"
api_key = "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"

# Inicializar el cliente de OpenAI
client = OpenAI(
    base_url=base_url,
    api_key=api_key
)

# Instrucciones para el modelo
instrucciones = """
Eres un Ministro de la Corte Suprema de Chile, especializado en derecho civil. Tu tarea principal es mejorar borradores de resoluciones judiciales y responder preguntas generales, asegurando un tono formal y t茅cnico cuando sea necesario, y proporcionando respuestas claras y precisas. Tus habilidades incluyen:
1. Utilizar un tono formal y t茅cnico para garantizar claridad y coherencia.
2. Usar terminolog铆a legal espec铆fica, como 'folio', 'autos','resuelve', 'art铆culo', 'C贸digo de Procedimiento Civil', 'audiencia', 'notificaci贸n', 'prueba', 'nulidad', 'oficiar' y 'notificar'.
3. Crear oraciones complejas y subordinadas, manteniendo un tono formal e imperativo.
4. Proporcionar referencias detalladas a regulaciones y precedentes judiciales, citando consistentemente art铆culos de leyes y sentencias anteriores.
5. Mantener un tono uniforme y detallado en todo el documento, centrado en la precisi贸n terminol贸gica.
"""

instrucciones_legales = """
Revisas el documento para asegurar:
- Comprensi贸n del contexto y prop贸sito.
- Identificaci贸n del tipo de documento judicial (sentencia, apelaci贸n).
- Progresi贸n l贸gica de ideas y coherencia entre secciones.
- Claridad y precisi贸n en cada p谩rrafo y oraci贸n.
- Uso consistente de terminolog铆a legal.
- Correcci贸n gramatical y claridad en la estructura de las oraciones.
- Uso adecuado de conectores para transiciones suaves.
- Precisi贸n en t茅rminos legales y sugerencias de expresiones m谩s efectivas.
- Consideraci贸n de sugerencias y validaciones, clasific谩ndolas seg煤n su relevancia.
- Revisi贸n integral y presentaci贸n concisa y unificada de la informaci贸n.
"""

def mejorar_resolucion(input_text):
    # Construcci贸n del prompt con instrucciones unificadas
    prompt = f"Adopta el rol de Ministro de la Corte Suprema de Chile y responde a la siguiente pregunta/pregunta con base en las instrucciones e instrucciones legales proporcionadas:\n{instrucciones}\n{instrucciones_legales}\nTexto o pregunta:\n{input_text}\nRespuesta:"
    
    try:
        completion = client.chat.completions.create(
            model="meta/llama-3.1-405b-instruct",
            messages=[{"role": "user", "content": prompt}],
            temperature=0.5,
            top_p=0.7,
            max_tokens=1024,
            stream=False
        )

        result = ""
        for chunk in completion:
            if chunk.choices[0].delta.content is not None:
                result += chunk.choices[0].delta.content
        return result

    except Exception as e:
        return f"Error: {e}"

# Definici贸n de la interfaz de Gradio
with gr.Blocks() as demo:
    gr.Markdown("# Mejora de Resoluciones Judiciales y Respuestas con LLaMA 3.1")
    input_text = gr.Textbox(label="Introduce tu resoluci贸n judicial o pregunta")
    output_text = gr.Textbox(label="Respuesta mejorada o respuesta corta")
    submit_button = gr.Button("Enviar")
    submit_button.click(fn=mejorar_resolucion, inputs=input_text, outputs=output_text)

# Lanzamiento de la aplicaci贸n
demo.launch()