|
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 |
|
|
|
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) |
|
|