File size: 1,488 Bytes
6323a30 |
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
from PyPDF2 import PdfReader
import io
# Hugging Face pipeline ile Türkçe özetleme modeli yükle
summarizer = pipeline("text2text-generation", model="iamseyhmus7/Turkish-Summarization")
def pdf_to_text(pdf_bytes):
reader = PdfReader(io.BytesIO(pdf_bytes))
text = ""
for page in reader.pages:
t = page.extract_text()
if t:
text += t + "\n"
return text
def summarize_input(text, pdf_file):
# Öncelik PDF: Eğer PDF varsa onu kullan, yoksa metni kullan
if pdf_file is not None:
pdf_bytes = pdf_file.read()
text = pdf_to_text(pdf_bytes)
if not text or len(text.strip()) < 10:
return "Özetlenecek yeterli metin bulunamadı."
# Çok uzun metinleri kırpabilirsin (isteğe bağlı)
result = summarizer(text, max_length=80, min_length=20, do_sample=False)
return result[0]['summary_text']
demo = gr.Interface(
fn=summarize_input,
inputs=[
gr.Textbox(label="Türkçe Metin (isteğe bağlı, PDF yüklemezsen kullanılır)", lines=8, placeholder="Metni buraya yapıştırın..."),
gr.File(label="PDF Dosyası (isteğe bağlı)")
],
outputs=gr.Textbox(label="Özet"),
title="Türkçe Metin ve PDF Özetleme",
description="PDF veya metin yükleyerek otomatik Türkçe özet oluşturun.",
allow_flagging='never'
)
if __name__ == "__main__":
demo.launch()
|