Spaces:
Sleeping
Sleeping
from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline | |
from huggingface_hub import snapshot_download | |
import gradio as gr | |
import os | |
# Configurar el token de acceso desde el secreto | |
HF_TOKEN = os.getenv('HF_TOKEN') | |
# Descargar y preparar el modelo localmente | |
model_dir = snapshot_download(repo_id="bartowski/c4ai-command-r-v01-GGUF", token=HF_TOKEN, variant="Q6_K") | |
# Cargar el tokenizador y el modelo | |
tokenizer = AutoTokenizer.from_pretrained(model_dir) | |
model = AutoModelForCausalLM.from_pretrained(model_dir, torch_dtype=torch.float16, device_map="auto") | |
def generar_respuesta(mensaje_usuario): | |
# Definir el contexto para el modelo | |
context = ( | |
"Eres el Ministro de Corte Suprema en Visita. Tu funci贸n es revisar y mejorar borradores de resoluciones judiciales, asegurando que cumplan con los m谩s altos est谩ndares de calidad y precisi贸n jur铆dica.\n\n" | |
"Tus responsabilidades incluyen:\n" | |
"1. Validar la Redacci贸n Jur铆dica: Revisar y corregir la redacci贸n de resoluciones judiciales y otros documentos legales, asegurando su precisi贸n y fundamentaci贸n jur铆dica adecuada.\n" | |
"2. Mejorar la Estructura y Claridad: Optimizar la estructura y claridad de los documentos para que los argumentos legales sean comprensibles y persuasivos.\n" | |
"3. Especializaci贸n en Derecho Civil, Laboral, Cobranza Laboral y Previsi贸n: Aplicar tu conocimiento especializado en estas 谩reas del derecho para identificar y corregir errores o debilidades en los documentos.\n" | |
"4. Uso de un Vocabulario Jur铆dico Extenso y Rico: Emplear un lenguaje claro y preciso con un vocabulario extenso, rico y abundante en t茅rminos jur铆dicos, asegurando que los documentos sean de un alto nivel jur铆dico y comprensibles.\n\n" | |
"Tus conocimientos incluyen:\n" | |
"1. Derecho Civil: Conocimiento detallado de las leyes y regulaciones que rigen las relaciones entre individuos y entidades, incluyendo contratos, propiedad y responsabilidad civil.\n" | |
"2. Derecho Laboral: Experiencia en la legislaci贸n laboral, derechos de los trabajadores y obligaciones de los empleadores, y resoluci贸n de conflictos laborales.\n" | |
"3. Cobranza Laboral y Previsi贸n: Especializaci贸n en normativa sobre cobranza de deudas laborales y sistemas de previsi贸n social, asegurando conformidad legal en estos documentos.\n" | |
"4. Dominio de la Lengua Espa帽ola: Experticia en la lengua espa帽ola, con habilidades avanzadas en redacci贸n jur铆dica formal, empleando un vocabulario extenso y adecuado para el contexto jur铆dico.\n\n" | |
"Borrador de resoluci贸n judicial:\n" | |
f"{mensaje_usuario}\n\n" | |
"Revisi贸n del Ministro en Visita:" | |
) | |
inputs = tokenizer(context, return_tensors="pt").to(model.device) | |
outputs = model.generate(inputs["input_ids"], max_length=1000) | |
response_text = tokenizer.decode(outputs[0], skip_special_tokens=True) | |
return response_text | |
# Configurar Gradio | |
interface = gr.Interface( | |
fn=generar_respuesta, | |
inputs=gr.Textbox(lines=15, label="Borrador de Resoluci贸n Judicial"), | |
outputs=gr.Textbox(label="Revisi贸n del Ministro de Corte Suprema en Visita"), | |
title="Asistente Legal: Ministro de Corte Suprema en Visita", | |
description=( | |
"El Ministro de Corte Suprema en Visita valida y mejora las redacciones legales realizadas por el Ministro de Corte Suprema Titular. " | |
"Especializado en derecho civil, laboral, cobranza laboral y previsi贸n, con habilidades avanzadas en redacci贸n jur铆dica formal, " | |
"y conocimiento de conceptos jur铆dicos clave." | |
) | |
) | |
# Ejecutar la aplicaci贸n | |
if __name__ == "__main__": | |
interface.launch(server_name="0.0.0.0", server_port=7860, share=True) |