import gradio as gr from transformers import pipeline from helper import extract_text_from_pdf, extract_text_from_image, generate_todo summarizer = pipeline("summarization", model="facebook/bart-large-cnn") def process_input(file): file_type = file.name.split('.')[-1] if file_type.lower() == "pdf": text = extract_text_from_pdf(file.name) elif file_type.lower() in ["png", "jpg", "jpeg"]: text = extract_text_from_image(file.name) else: text = file.read().decode("utf-8") if not text.strip(): return "No content found", "" summary = summarizer(text, max_length=120, min_length=30, do_sample=False)[0]['summary_text'] todos = generate_todo(summary) return summary, todos iface = gr.Interface( fn=process_input, inputs=gr.File(type="file", label="Upload text/pdf/image"), outputs=[ gr.Textbox(label="Summary", lines=5), gr.Textbox(label="To-Do List", lines=5) ], title="🧠 Multimodal Productivity Agent", description="Upload text, PDFs, or images to generate a summary and actionable to-do list." ) iface.launch()