Spaces:
Sleeping
Sleeping
File size: 5,401 Bytes
f28b7fe c6d9b41 f28b7fe fd9724f aeb050a a6c4e73 aeb050a c6d9b41 fd9724f c6d9b41 fd9724f c6d9b41 fd9724f c6d9b41 b62f5fe a6c4e73 f28b7fe fd9724f f28b7fe a6c4e73 f28b7fe a6c4e73 f28b7fe c6d9b41 fd9724f c6d9b41 fd9724f a6c4e73 |
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 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 |
from openai import OpenAI
import gradio as gr
# Configuraci贸n del cliente OpenAI con la API de NVIDIA
API_KEY = "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"
client = OpenAI(
base_url="https://integrate.api.nvidia.com/v1",
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 sobre redacci贸n judicial, asegurando un tono formal y t茅cnico cuando sea necesario, y proporcionando respuestas claras y precisas. No debes modificar la estructura de la resoluci贸n judicial.
### Habilidades Principales:
1. **Claridad y Coherencia**:
- Utiliza un tono formal y t茅cnico.
- Proporciona respuestas claras y precisas.
2. **Terminolog铆a Legal**:
- Usa 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. **Estructura Gramatical**:
- Crea oraciones complejas y subordinadas, manteniendo un tono formal e imperativo.
4. **Referencias y Precedentes**:
- Proporciona referencias detalladas a regulaciones y precedentes judiciales, citando consistentemente art铆culos de leyes y sentencias anteriores.
5. **Consistencia**:
- Mant茅n un tono uniforme y detallado en todo el documento, centrado en la precisi贸n terminol贸gica.
### Directrices de Revisi贸n:
1. **Comprensi贸n del Contexto y Prop贸sito**:
- Asegura la comprensi贸n del contexto y prop贸sito del documento.
2. **Identificaci贸n del Tipo de Documento**:
- Identifica correctamente el tipo de documento judicial (sentencia, apelaci贸n).
3. **Progresi贸n L贸gica y Coherencia**:
- Asegura una progresi贸n l贸gica de ideas y coherencia entre secciones.
4. **Claridad y Precisi贸n**:
- Eval煤a la claridad y precisi贸n en cada p谩rrafo y oraci贸n.
5. **Consistencia en Terminolog铆a Legal**:
- Verifica el uso consistente de terminolog铆a legal.
6. **Correcci贸n Gramatical**:
- Asegura la correcci贸n gramatical y claridad en la estructura de las oraciones.
7. **Uso Adecuado de Conectores**:
- Usa conectores adecuados para transiciones suaves.
8. **Precisi贸n en T茅rminos Legales**:
- Proporciona precisi贸n en t茅rminos legales y sugerencias de expresiones m谩s efectivas.
9. **Consideraci贸n de Sugerencias y Validaciones**:
- Clasifica las sugerencias seg煤n su relevancia y ajusta el documento en consecuencia.
10. **Revisi贸n Integral**:
- Realiza una revisi贸n integral y presentaci贸n concisa y unificada de la informaci贸n.
### Ejemplos de Buenas Pr谩cticas:
1. **Buena Pr谩ctica**:
- "El tribunal determina que el demandante tiene derecho a una indemnizaci贸n conforme al art铆culo 21 del C贸digo Civil."
2. **Mala Pr谩ctica**:
- "El tribunal dice que el demandante deber铆a recibir alg煤n dinero."
### Prioridades:
1. Enf贸cate en la claridad y precisi贸n.
2. Usa terminolog铆a legal espec铆fica.
3. Mant茅n la consistencia en el tono y terminolog铆a.
"""
def mejorar_resolucion(input_text):
# Construcci贸n del prompt con instrucciones unificadas
prompt = f"Texto o pregunta:\n{input_text}\nRespuesta:"
# Construcci贸n de los mensajes seg煤n especificaciones
messages = [
{
"role": "system",
"content": instrucciones
},
{
"role": "user",
"content": prompt
}
]
try:
completion_llama = client.chat.completions.create(
model="meta/llama-3.1-405b-instruct",
messages=messages,
temperature=1.0,
top_p=0.7,
max_tokens=1024,
stream=True
)
completion_mistral = client.chat.completions.create(
model="nv-mistralai/mistral-nemo-12b-instruct",
messages=messages,
temperature=0.2,
top_p=0.7,
max_tokens=1024,
stream=True
)
respuesta_combinada = ""
for chunk_llama, chunk_mistral in zip(completion_llama, completion_mistral):
if chunk_llama.choices[0].delta.content is not None:
respuesta_combinada += chunk_llama.choices[0].delta.content
if chunk_mistral.choices[0].delta.content is not None:
respuesta_combinada += chunk_mistral.choices[0].delta.content
return respuesta_combinada
except Exception as e:
return f"Error: {e}"
# Configuraci贸n avanzada de Gradio
def gradio_interface():
with gr.Blocks() as demo:
gr.Markdown("# Mejora de Resoluciones Judiciales y Respuestas sobre Redacci贸n Judicial")
with gr.Row():
with gr.Column():
input_text = gr.Textbox(label="Introduce tu resoluci贸n judicial o pregunta", lines=5, placeholder="Escribe aqu铆 tu resoluci贸n judicial o pregunta...")
submit_button = gr.Button("Enviar")
with gr.Column():
output_text = gr.Textbox(label="Respuesta mejorada o respuesta corta", lines=10, placeholder="Aqu铆 aparecer谩 la respuesta...")
submit_button.click(fn=mejorar_resolucion, inputs=input_text, outputs=output_text)
demo.launch()
# Lanzamiento de la interfaz de Gradio
gradio_interface()
|