import torch from transformers import (PegasusForConditionalGeneration, PegasusTokenizer, pipeline) import gradio as gr # Memuat model dan tokenizer untuk PEGASUS dari Hugging Face Model Hub model = PegasusForConditionalGeneration.from_pretrained("fatihfauzan26/PEGASUS_liputan6") tokenizer = PegasusTokenizer.from_pretrained("google/pegasus-cnn_dailymail") # Inisialisasi pipeline untuk tugas ringkasan menggunakan model dan tokenizer yang dimuat summarizer = pipeline("summarization", model=model, tokenizer=tokenizer) # Fungsi untuk meringkas artikel def summarize_article(article): # Mengubah artikel menjadi token yang bisa diproses oleh model (konversi teks ke representasi numerik) input_ids = tokenizer.encode(article, return_tensors='pt') # Menghasilkan ringkasan dari artikel dengan berbagai pengaturan model untuk kualitas output summary_ids = model.generate(input_ids, min_length=30, # Panjang minimal ringkasan max_length=128, # Panjang maksimal ringkasan num_beams=8, # Beam search untuk meningkatkan hasil ringkasan repetition_penalty=2.0, # Penalti untuk pengulangan kata length_penalty=0.8, # Penalti terkait panjang hasil early_stopping=True, # Menghentikan proses jika hasil cukup bagus no_repeat_ngram_size=2, # Menghindari pengulangan frasa yang sama use_cache=True, # Menggunakan cache untuk efisiensi do_sample=True, # Mengambil sampel untuk variasi temperature=1.2, # Mengontrol randomness dari hasil top_k=50, # Mempertimbangkan 50 kemungkinan token teratas top_p=0.95) # Mengambil token yang memiliki probabilitas kumulatif 95% # Mengubah token output menjadi teks ringkasan (decode dari token ke teks) summary_text = tokenizer.decode(summary_ids[0], skip_special_tokens=True) # Mengembalikan teks ringkasan return summary_text # Membuat antarmuka Gradio iface = gr.Interface( fn=summarize_article, # Fungsi yang dijalankan saat pengguna memberikan input inputs=gr.Textbox(lines=10, label="Enter the article you want to summarize"), # Input berupa kotak teks outputs=gr.Textbox(label="Summary"), # Output berupa kotak teks untuk menampilkan ringkasan title="Summarization App using PEGASUS", # Judul aplikasi description="Paste an article and click 'Submit' to get a summarized version using PEGASUS model." # Deskripsi aplikasi ) # Meluncurkan aplikasi Gradio sehingga bisa diakses di browser iface.launch()