Llama3.1 / app.py
locorene1000's picture
A
c6d9b41 verified
raw
history blame
3.37 kB
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
)
# Acceder al contenido de la respuesta correctamente
result = completion.choices[0].message.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()