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)