coderpotter's picture
Upload folder using huggingface_hub
7b2e5db verified
import gradio as gr
from fpdf import FPDF
from mistletoe import markdown
from research_assistant.app_logging import app_logger
from research_assistant.pipeline.articleSummarization import ArticleSummarization
def process_file(file):
try:
app_logger.info(f"Processing file: {file}")
summary_pipeline = ArticleSummarization(file)
summary = summary_pipeline.get_summary()
word_count = len(summary.split())
except Exception as e:
summary = f"An error occurred: {e}"
word_count = 0
return summary, word_count
def generate_pdf(summary):
pdf = FPDF()
pdf.add_page()
pdf.set_auto_page_break(auto=True, margin=15)
pdf.set_font("Helvetica", size=12)
try:
html_content = markdown(summary)
pdf.write_html(html_content)
except Exception as e:
app_logger.error(f"Error generating PDF: {e}")
pdf.write(5, "Error generating PDF content.")
pdf_output_path = "summary.pdf"
pdf.output(name=pdf_output_path)
return pdf_output_path
def process_and_generate_pdf(file):
summary, wordcount = process_file(file)
pdf_output_path = generate_pdf(summary)
return summary, wordcount, pdf_output_path
iface = gr.Interface(
fn=process_and_generate_pdf,
inputs=gr.File(label="Upload PDF", type="filepath"),
outputs=[
gr.Textbox(label="Summary"),
gr.Number(label="Word Count"),
gr.File(label="Download PDF"),
],
title="Research Assistant Summarizer",
description="Summarize your research paper.",
theme=gr.themes.Default(),
)
if __name__ == "__main__":
iface.launch(share=True)