File size: 2,231 Bytes
6c036c1
aab52b9
 
 
059ead2
a9b1392
aab52b9
b08158b
61e43c4
059ead2
61e43c4
b08158b
c50fc17
059ead2
19693ec
059ead2
b08158b
5ef6d7c
059ead2
 
 
 
5ef6d7c
e3d3bd5
b08158b
 
 
 
19693ec
 
b08158b
059ead2
c0a326a
059ead2
 
b08158b
059ead2
b1f7af6
19693ec
 
aab52b9
 
19693ec
aab52b9
059ead2
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
import gradio as gr
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

# Cargar el modelo m谩s estable que funcion贸 bien en pruebas anteriores
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  

if "model" not in globals():
    model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.float16)
    model.eval()  

# Funci贸n de humanizaci贸n con el mejor ajuste probado
def humanize_text(input_text):
    system_prompt = (
        "Reescribe el siguiente texto de manera m谩s clara, natural y atractiva, "
        "sin cambiar su significado. Reformula frases r铆gidas y estructuradas para "
        "que sean m谩s fluidas y conversacionales, pero sin perder precisi贸n. "
        "Evita tecnicismos y burocracia innecesaria."
    )

    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=130,  # 馃敼 Equilibrio entre reformulaci贸n y velocidad
        min_length=50,  # 馃敼 Evita respuestas demasiado cortas
        do_sample=True,  # 馃敼 Mantiene variabilidad sin ralentizar
        temperature=0.75,  # 馃敼 Buen balance entre creatividad y rapidez
        top_p=0.9,  # 馃敼 Mantiene coherencia en la reescritura
        repetition_penalty=1.05,  # 馃敼 Evita repeticiones sin afectar fluidez
        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 (Versi贸n 脫ptima)")
    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()