yasamankm's picture
Update app.py
b2671d9 verified
raw
history blame
1.52 kB
import gradio as gr
from transformers import pipeline
import PyPDF2
# لود مدل یکبار هنگام شروع اپ
summarizer = pipeline(
"summarization",
model="m3hrdadfi/mt5-small-parsinlu-summarization-fa"
)
def summarize_text(text):
if not text.strip():
return "متنی وارد نشده است."
result = summarizer(text, max_length=150, min_length=30)
return result[0]["summary_text"]
def summarize_pdf(file):
try:
reader = PyPDF2.PdfReader(file.name)
text = ""
for page in reader.pages:
text += page.extract_text() + "\n"
return summarize_text(text)
except Exception as e:
return f"خطا در خواندن PDF: {e}"
with gr.Blocks() as demo:
gr.Markdown("# 📝 SummarizeX — خلاصه‌ساز متن و PDF")
with gr.Tab("خلاصه متن"):
input_text = gr.Textbox(lines=12, placeholder="متن را اینجا وارد کنید...")
output_summary = gr.Textbox(lines=8, label="خلاصه متن")
btn1 = gr.Button("خلاصه کن")
btn1.click(summarize_text, inputs=input_text, outputs=output_summary)
with gr.Tab("خلاصه PDF"):
pdf_input = gr.File(type="file", file_types=[".pdf"])
pdf_output = gr.Textbox(lines=8, label="خلاصه PDF")
btn2 = gr.Button("خلاصه PDF")
btn2.click(summarize_pdf, inputs=pdf_input, outputs=pdf_output)
if __name__ == "__main__":
demo.launch(server_name="0.0.0.0", server_port=7860)