Spaces:
Paused
Paused
File size: 2,809 Bytes
6c036c1 aab52b9 b08158b a9b1392 aab52b9 b08158b 61e43c4 b08158b c50fc17 19693ec c0a326a b08158b 5ef6d7c c0a326a 5ef6d7c e3d3bd5 b08158b 19693ec b08158b c0a326a b08158b c0a326a b1f7af6 19693ec aab52b9 19693ec aab52b9 c0a326a b08158b aab52b9 |
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 |
import gradio as gr
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
# Cargar el modelo y el tokenizador solo una vez para evitar recargas
model_name = "BSC-LT/salamandra-2b"
if "tokenizer" not in globals():
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
tokenizer.pad_token = tokenizer.eos_token # 馃敼 Evita errores de atenci贸n
if "model" not in globals():
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.float16)
model.eval() # 馃敼 Optimiza la inferencia para que sea m谩s r谩pida
# Funci贸n de humanizaci贸n de texto con enfoque en contenido persuasivo
def humanize_text(input_text):
system_prompt = (
"Reescribe el siguiente texto de manera m谩s natural, clara y persuasiva, "
"haci茅ndolo m谩s cercano y atractivo para el lector. Reformula las oraciones "
"para que sean m谩s din谩micas y menos r铆gidas, pero sin perder informaci贸n clave. "
"Evita frases gen茅ricas y reempl谩zalas por expresiones m谩s aut茅nticas. "
"Aqu铆 tienes un ejemplo de c贸mo deber铆a sonar la reescritura:\n\n"
"Ejemplo:\n"
"Texto original: 'Nuestro software es la mejor opci贸n para cualquier empresa.'\n"
"Texto humanizado: 'Si buscas una herramienta que realmente optimice tu negocio, nuestro software puede ser justo lo que necesitas.'\n\n"
"Ahora reescribe el siguiente texto:"
)
prompt = f"{system_prompt}\n\nTexto original: {input_text}\n\nTexto humanizado:"
inputs = tokenizer(prompt, return_tensors="pt", padding=True, truncation=True)
outputs = model.generate(
inputs.input_ids,
attention_mask=inputs.attention_mask,
max_new_tokens=140, # 馃敼 Mantiene equilibrio entre reformulaci贸n y velocidad
min_length=50, # 馃敼 Evita respuestas demasiado cortas
do_sample=True, # 馃敼 Reactivamos la variabilidad para que reformule mejor
temperature=0.78, # 馃敼 Ajustamos la creatividad sin perder precisi贸n
top_p=0.9, # 馃敼 Mantiene coherencia en la reescritura
repetition_penalty=1.05, # 馃敼 Evita repeticiones sin restringir demasiado
num_return_sequences=1, # 馃敼 Genera solo una respuesta bien formulada
)
return tokenizer.decode(outputs[0], skip_special_tokens=True)
# Interfaz en Gradio
with gr.Blocks() as demo:
gr.Markdown("# 鉁嶏笍 Humanizaci贸n de Texto con ALIA (Correcci贸n de Reescritura)")
input_text = gr.Textbox(label="Pega aqu铆 el texto generado por IA para humanizar")
output_text = gr.Textbox(label="Texto humanizado por ALIA", interactive=False)
submit_button = gr.Button("Humanizar Texto")
submit_button.click(humanize_text, inputs=input_text, outputs=output_text)
demo.launch()
|