File size: 1,544 Bytes
f4bf523
b9925d0
6481074
b9925d0
f4bf523
b9925d0
f4bf523
 
6481074
82366d1
f4bf523
82366d1
 
 
 
 
 
 
 
f4bf523
b9925d0
f4bf523
6481074
82366d1
6481074
 
 
f4bf523
 
 
 
6481074
f4bf523
 
 
 
6481074
f4bf523
 
82366d1
f4bf523
 
 
93822af
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
import gradio as gr
from transformers import pipeline
import tempfile

generador = pipeline("text-generation", model="IIC/MEL", trust_remote_code=True)

def procesar_tarea(archivos, prompt):
    if not prompt:
        return "", None, "Debes escribir un prompt"

    texto = ""
    if archivos:
        for fpath in archivos:
            try:
                with open(fpath, "r", encoding="utf-8") as f:
                    texto += f.read() + "\n\n"
            except Exception:
                pass  # evita fallos si no se puede leer algún archivo

    entrada = prompt + "\n\n" + texto
    salida = generador(entrada, max_new_tokens=512, do_sample=False)
    respuesta = salida[0].get("generated_text", "")

    tmp = tempfile.NamedTemporaryFile(delete=False, suffix=".txt", mode="w", encoding="utf-8")
    tmp.write(respuesta)
    tmp.close()
    return respuesta, tmp.name, None

demo = gr.Interface(
    fn=procesar_tarea,
    inputs=[
        gr.File(label="Sube documentos (.txt, .md, .pdf)", file_count="multiple", type="filepath"),
        gr.Textbox(label="Prompt (instrucción)", lines=3, placeholder="Ej. Resume este texto, explica esto...")
    ],
    outputs=[
        gr.Textbox(label="Resultado (para copiar)", lines=10),
        gr.File(label="Descargar resultado", interactive=False)
    ],
    title="Interfaz MEL con Gradio",
    description="Sube tus documentos (opcional), escribe un prompt y recibe la salida generada. Puedes copiar el texto o descargarlo."
)

if __name__ == "__main__":
    demo.launch(share=True)