File size: 1,519 Bytes
b2671d9 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
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) |