Pegasus-gradio / app.py
fatihfauzan26's picture
Update komentar app.py
3b911b9 verified
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()